Re: [PATCHv4] i2c: cadence: Fix the driver in interrupt flurry case

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> > >     /* Set the slave address in address register - triggers operation */
> > >     cdns_i2c_writereg(id->p_msg->addr & CDNS_I2C_ADDR_MASK,
> > >                                             CDNS_I2C_ADDR_OFFSET);
> > > @@ -413,6 +415,7 @@ static void cdns_i2c_mrecv(struct cdns_i2c *id)
> > >             ((id->p_msg->flags & I2C_M_RECV_LEN) != I2C_M_RECV_LEN) &&
> > >             (id->recv_count <= CDNS_I2C_FIFO_DEPTH))
> > >                     cdns_i2c_clear_bus_hold(id);
> > > +   local_irq_restore(flags);
> > >     cdns_i2c_writereg(CDNS_I2C_ENABLED_INTR_MASK, CDNS_I2C_IER_OFFSET);
> > >  }
> > >
> > >
> >
> > Acked-by: Michal Simek <michal.simek@xxxxxxxxxx>
>
> What if another CPU core processes the interrupt handler?
>
The issue is that  due to  non i2c interrupts the  clear is not
released and the timeout is reached.
If those interrupts are serviced on the other core should  not be an issue.



[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux