* [PATCH] backlight: Use id->driver_data to differentiate lp855x chips
@ 2012-03-21 10:11 Axel Lin
2012-03-21 11:16 ` Kim, Milo
2012-03-22 21:51 ` Andrew Morton
0 siblings, 2 replies; 3+ messages in thread
From: Axel Lin @ 2012-03-21 10:11 UTC (permalink / raw)
To: linux-kernel; +Cc: Richard Purdie, Milo(Woogyom) Kim, Andrew Morton
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.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
drivers/video/backlight/lp855x_bl.c | 28 +++++++++++++++++-----------
1 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/drivers/video/backlight/lp855x_bl.c b/drivers/video/backlight/lp855x_bl.c
index ce0c53a..c2c420e 100644
--- a/drivers/video/backlight/lp855x_bl.c
+++ b/drivers/video/backlight/lp855x_bl.c
@@ -25,7 +25,8 @@
#define MAX_BRIGHTNESS 255
struct 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);
--
1.7.5.4
^ permalink raw reply related [flat|nested] 3+ messages in thread* RE: [PATCH] backlight: Use id->driver_data to differentiate lp855x chips
2012-03-21 10:11 [PATCH] backlight: Use id->driver_data to differentiate lp855x chips Axel Lin
@ 2012-03-21 11:16 ` Kim, Milo
2012-03-22 21:51 ` Andrew Morton
1 sibling, 0 replies; 3+ messages in thread
From: Kim, Milo @ 2012-03-21 11:16 UTC (permalink / raw)
To: Axel Lin; +Cc: Richard Purdie, Andrew Morton, linux-kernel@vger.kernel.org
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 779 bytes --]
> -----Original Message-----
> From: Axel Lin [mailto:axel.lin@gmail.com]
> Sent: Wednesday, March 21, 2012 7:11 PM
> To: linux-kernel@vger.kernel.org
> Cc: Richard Purdie; Kim, Milo; Andrew Morton
> Subject: [PATCH] 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.
>
> Signed-off-by: Axel Lin <axel.lin@gmail.com>
Thanks for catching this !
Signed-off-by: Milo (Woogyom) Kim <milo.kim@ti.com>
ÿôèº{.nÇ+·®+%Ëÿ±éݶ\x17¥wÿº{.nÇ+·¥{±þG«éÿ{ayº\x1dÊÚë,j\a¢f£¢·hïêÿêçz_è®\x03(éÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?¨èÚ&£ø§~á¶iOæ¬z·vØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?I¥
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] backlight: Use id->driver_data to differentiate lp855x chips
2012-03-21 10:11 [PATCH] backlight: Use id->driver_data to differentiate lp855x chips Axel Lin
2012-03-21 11:16 ` Kim, Milo
@ 2012-03-22 21:51 ` Andrew Morton
1 sibling, 0 replies; 3+ messages in thread
From: Andrew Morton @ 2012-03-22 21:51 UTC (permalink / raw)
To: Axel Lin; +Cc: linux-kernel, Richard Purdie, Milo(Woogyom) Kim
On Wed, 21 Mar 2012 18:11:27 +0800
Axel Lin <axel.lin@gmail.com> wrote:
> 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.
>
> -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:
--- a/drivers/video/backlight/lp855x_bl.c~backlight-use-id-driver_data-to-differentiate-lp855x-chips-fix
+++ a/drivers/video/backlight/lp855x_bl.c
@@ -82,7 +82,7 @@ static bool lp855x_is_valid_rom_area(str
return false;
}
- return (addr >= start && addr <= end) ? true : false;
+ return (addr >= start && addr <= end);
}
static int lp855x_init_registers(struct lp855x *lp)
_
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-03-22 21:51 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-21 10:11 [PATCH] backlight: Use id->driver_data to differentiate lp855x chips Axel Lin
2012-03-21 11:16 ` Kim, Milo
2012-03-22 21:51 ` Andrew Morton
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.