tsl2563: fixed bug with disabling interrupts
In tsl_2563_write_interrupt_config and tsl2562_remove, interrupts are not disabled where they should be. This seems to be from a mistake of using |= instead of &= in 2 lines of code. Signed-off-by: Derek Basehore <dbasehore@chromium.org> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
Родитель
e3db9ef6eb
Коммит
95273f8952
|
@ -652,7 +652,7 @@ static int tsl2563_write_interrupt_config(struct iio_dev *indio_dev,
|
|||
}
|
||||
|
||||
if (!state && (chip->intr & 0x30)) {
|
||||
chip->intr |= ~0x30;
|
||||
chip->intr &= ~0x30;
|
||||
ret = i2c_smbus_write_byte_data(chip->client,
|
||||
TSL2563_CMD | TSL2563_REG_INT,
|
||||
chip->intr);
|
||||
|
@ -814,7 +814,7 @@ static int __devexit tsl2563_remove(struct i2c_client *client)
|
|||
if (!chip->int_enabled)
|
||||
cancel_delayed_work(&chip->poweroff_work);
|
||||
/* Ensure that interrupts are disabled - then flush any bottom halves */
|
||||
chip->intr |= ~0x30;
|
||||
chip->intr &= ~0x30;
|
||||
i2c_smbus_write_byte_data(chip->client, TSL2563_CMD | TSL2563_REG_INT,
|
||||
chip->intr);
|
||||
flush_scheduled_work();
|
||||
|
|
Загрузка…
Ссылка в новой задаче