diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-08-15 05:58:45 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-08-15 05:58:45 +0900 |
commit | d2dcd9101b1a940ce8496601ba871e47f84881ec (patch) | |
tree | 3de9cb11379d51eb01b568a20c8d7c585c89d10e /drivers/i2c/chips/tsl2550.c | |
parent | 8010fbe7a67c2f993cbb11b9d8b7e98528256dd1 (diff) | |
parent | 606b4c992f3b28f906100f1b6eb49059909d8da7 (diff) |
Merge branch 'master' into sh/cachetlb
Diffstat (limited to 'drivers/i2c/chips/tsl2550.c')
-rw-r--r-- | drivers/i2c/chips/tsl2550.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/i2c/chips/tsl2550.c b/drivers/i2c/chips/tsl2550.c index 1a9cc135219..b96f3025e58 100644 --- a/drivers/i2c/chips/tsl2550.c +++ b/drivers/i2c/chips/tsl2550.c @@ -27,7 +27,7 @@ #include <linux/delay.h> #define TSL2550_DRV_NAME "tsl2550" -#define DRIVER_VERSION "1.1.1" +#define DRIVER_VERSION "1.1.2" /* * Defines @@ -189,13 +189,16 @@ static int tsl2550_calculate_lux(u8 ch0, u8 ch1) u8 r = 128; /* Avoid division by 0 and count 1 cannot be greater than count 0 */ - if (c0 && (c1 <= c0)) - r = c1 * 128 / c0; + if (c1 <= c0) + if (c0) { + r = c1 * 128 / c0; + + /* Calculate LUX */ + lux = ((c0 - c1) * ratio_lut[r]) / 256; + } else + lux = 0; else - return -1; - - /* Calculate LUX */ - lux = ((c0 - c1) * ratio_lut[r]) / 256; + return -EAGAIN; /* LUX range check */ return lux > TSL2550_MAX_LUX ? TSL2550_MAX_LUX : lux; |