backlight: Use id->driver_data to differentiate lp855x chips
Subsystems (2)
PATCH 1/1 backlight: Use id->driver_data to differentiate lp855x chips
Current code has corresponding driver_data settings for different chip types. Use the driver_data to differentiate lp855x chips.
Also make lp855x_is_valid_rom_area() return bool instead of int.
--- drivers/video/backlight/lp855x_bl.c | 28 +++++++++++++++++----------- 1 files changed, 17 insertions(+), 11 deletions(-)
drivers/video/backlight/lp855x_bl.c +17 -11
@@ -25,7 +25,8 @@#define MAX_BRIGHTNESS 255struct lp855x { -const char *chipid; +const char *chipname; +enum lp855x_chip_id chip_id;struct i2c_client *client;struct backlight_device *bl;struct device *dev;
@@ -61,23 +62,27 @@ static int lp855x_write_byte(struct lp855x *lp, u8 reg, u8 data)return ret; } -static int lp855x_is_valid_rom_area (struct lp855x *lp,u8 addr) +static bool lp855x_is_valid_rom_area (struct lp855x *lp,u8 addr) { -const char *id = lp->chipid;u8 start, end; -if (strstr (id,"lp8550" ) ||strstr (id,"lp8551" ) - ||strstr (id,"lp8552" ) ||strstr (id,"lp8553" )) { +switch (lp->chip_id) { +case LP8550 : +case LP8551 : +case LP8552 : +case LP8553 : start =EEPROM_START ; end =EEPROM_END ; - }else if (strstr (id,"lp8556" )) { +break ; +case LP8556 : start =EPROM_START ; end =EPROM_END ; - }else { -return 0 ; +break ; +default : +return false; } -return (addr >= start && addr <= end) ?1 :0 ; +return (addr >= start && addr <= end) ? true : false; }static int lp855x_init_registers (struct lp855x *lp)
@@ -199,7 +204,7 @@ static ssize_t lp855x_get_chip_id(struct device *dev, struct device_attribute *attr, char *buf) { struct lp855x *lp = dev_get_drvdata(dev); -return scnprintf (buf,BUF_SIZE ,"%s\n" , lp->chipid); +return scnprintf (buf,BUF_SIZE ,"%s\n" , lp->chipname); } static ssize_t lp855x_get_bl_ctl_mode(struct device *dev,
@@ -253,7 +258,8 @@ static int lp855x_probe(struct i2c_client *cl, const struct i2c_device_id *id) lp->client = cl; lp->dev = &cl->dev; lp->pdata = pdata; - lp->chipid = id->name; + lp->chipname = id->name; + lp->chip_id = id->driver_data;i2c_set_clientdata (cl, lp);mutex_init (&lp->xfer_lock);
Signature · 1 line
1.7.5.4
Quoted 8 lines
-----Original Message-----
From: Axel Lin [mailto:[email protected]]
Sent: Wednesday, March 21, 2012 7:11 PM
To: [email protected]
Cc: Richard Purdie; Kim, Milo; Andrew Morton
Subject: [PATCH] backlight: Useid->driver_datato differentiate lp855x chips
Quoted 7 lines
Current code has corresponding
driver_datasettings for different chip types.
Use thedriver_datato differentiate lp855x chips.Also make
lp855x_is_valid_rom_area()return bool instead of int.Signed-off-by Axel Lin <[email protected]>
Thanks for catching this !
���{.n�+�������+%�����ݶ��w��{.n�+����{��G�����{ay�ʇڙ�,j��f���h��������z_�(�階�ݢj"���m������G������?����&���~��iO��z��v�^�m����������?�I�
Quoted 5 lines · On Wed, 21 Mar 2012 18:11:27 +0800 Axel Lin <[email protected]> wrote:
Current code has corresponding
driver_datasettings for different chip types. Use thedriver_datato differentiate lp855x chips.Also make
lp855x_is_valid_rom_area()return bool instead of int.
Review
Quoted 9 lines
(quoted diff) +2
-2-static int lp855x_is_valid_rom_area(struct lp855x *lp, u8 addr) +static bool lp855x_is_valid_rom_area(struct lp855x *lp, u8 addr) { - return (addr >= start && addr <= end) ? 1 : 0; + return (addr >= start && addr <= end) ? true : false; }
This:
drivers/video/backlight/lp855x_bl.c renamed from drivers/video/backlight/lp855x_bl.c~backlight-use-id-driver_data-to-differentiate-lp855x-chips-fix +1 -1
@@ -82,7 +82,7 @@ static bool lp855x_is_valid_rom_area(strreturn false; } -return (addr >= start && addr <= end) ? true : false; +return (addr >= start && addr <= end); }static int lp855x_init_registers (struct lp855x *lp)
_