i2c: designware: Simplify slave interrupt handler nesting
Interrupt processing code in i2c-designware-slave.c is bit more readable if not divided into another subroutine. Also explicit IRQ_NONE and IRQ_HANDLED return values are more obvious. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Wolfram Sang <wsa@kernel.org>
This commit is contained in:
parent
5cd6985030
commit
4c7107c297
|
@ -147,9 +147,9 @@ static u32 i2c_dw_read_clear_intrbits_slave(struct dw_i2c_dev *dev)
|
|||
* Interrupt service routine. This gets called whenever an I2C slave interrupt
|
||||
* occurs.
|
||||
*/
|
||||
|
||||
static int i2c_dw_irq_handler_slave(struct dw_i2c_dev *dev)
|
||||
static irqreturn_t i2c_dw_isr_slave(int this_irq, void *dev_id)
|
||||
{
|
||||
struct dw_i2c_dev *dev = dev_id;
|
||||
u32 raw_stat, stat, enabled, tmp;
|
||||
u8 val = 0, slave_activity;
|
||||
|
||||
|
@ -159,7 +159,7 @@ static int i2c_dw_irq_handler_slave(struct dw_i2c_dev *dev)
|
|||
slave_activity = ((tmp & DW_IC_STATUS_SLAVE_ACTIVITY) >> 6);
|
||||
|
||||
if (!enabled || !(raw_stat & ~DW_IC_INTR_ACTIVITY) || !dev->slave)
|
||||
return 0;
|
||||
return IRQ_NONE;
|
||||
|
||||
stat = i2c_dw_read_clear_intrbits_slave(dev);
|
||||
dev_dbg(dev->dev,
|
||||
|
@ -205,17 +205,7 @@ static int i2c_dw_irq_handler_slave(struct dw_i2c_dev *dev)
|
|||
if (stat & DW_IC_INTR_STOP_DET)
|
||||
i2c_slave_event(dev->slave, I2C_SLAVE_STOP, &val);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static irqreturn_t i2c_dw_isr_slave(int this_irq, void *dev_id)
|
||||
{
|
||||
struct dw_i2c_dev *dev = dev_id;
|
||||
int ret;
|
||||
|
||||
ret = i2c_dw_irq_handler_slave(dev);
|
||||
|
||||
return IRQ_RETVAL(ret);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static const struct i2c_algorithm i2c_dw_algo = {
|
||||
|
|
Loading…
Reference in New Issue