I have a question about one of your comment On Fri, 2010-10-08 at 16:35 +0200, ext Jonathan Cameron wrote: > On 10/08/10 14:42, Samu Onkalo wrote: > > This is a driver for ROHM BH1770GLC and OSRAM SFH7770 combined > > ALS and proximity sensor. > > > > Interface is sysfs based. The driver uses interrupts to provide new data. > > The driver supports pm_runtime and regulator frameworks. > > > > See Documentation/misc-devices/bhsfh.txt for details > > Couple of nitpicks / formatting suggestions inline. > > > > > +/* chip->mutex is kept when this is called */ > > +static int bhsfh_lux_update_thresholds(struct bhsfh_chip *chip, > > + u16 threshold_hi, u16 threshold_lo) > > +{ > > + u8 data[4]; > > u8 data[4] = { threshold_hi, > threshold_hi >> 8, > threshold_lo, > threshold_low >> 8}; > and loose the below will give same result. What do you mean by that? Threshold_lo / threshold_hi parameters can be modified before they are stored to HW. > > + int ret; > > + > > + /* sysfs may call this when the chip is powered off */ > > + if (pm_runtime_suspended(&chip->client->dev)) > > + return 0; > > + > > + /* > > + * Compensate threshold values with the correction factors if not > > + * set to minimum or maximum. > > + * Min & max values disables interrupts. > > + */ > > + if (threshold_hi != BHSFH_LUX_RANGE && threshold_hi != 0) > > + threshold_hi = bhsfh_lux_adjusted_to_raw(chip, threshold_hi); > > + > > + if (threshold_lo != BHSFH_LUX_RANGE && threshold_lo != 0) > > + threshold_lo = bhsfh_lux_adjusted_to_raw(chip, threshold_lo); Code above can modify values. > > + > > + if (chip->lux_thres_hi_onchip == threshold_hi && > > + chip->lux_thres_lo_onchip == threshold_lo) > > + return 0; > > + > > + chip->lux_thres_hi_onchip = threshold_hi; > > + chip->lux_thres_lo_onchip = threshold_lo; > > + > > + data[0] = threshold_hi; > > + data[1] = threshold_hi >> 8; > > + data[2] = threshold_lo; > > + data[3] = threshold_lo >> 8; > > + > > + ret = i2c_smbus_write_i2c_block_data(chip->client, > > + BHSFH_ALS_TH_UP_0, > > + ARRAY_SIZE(data), > > + data); > > + return ret; > > +} > > + -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html