Re: [PATCH] i2c: tegra: proper handling of error cases

From: Thierry Reding
Date: Mon Apr 18 2016 - 03:26:16 EST


On Sat, Apr 16, 2016 at 08:08:50AM +0000, Shardar Mohammed wrote:
[...]
> > > if (!(msg->flags & I2C_M_RD))
> > > tegra_i2c_fill_tx_fifo(i2c_dev);
> > >
> > > - int_mask = I2C_INT_NO_ACK | I2C_INT_ARBITRATION_LOST;
> > > if (i2c_dev->hw->has_per_pkt_xfer_complete_irq)
> > > int_mask |= I2C_INT_PACKET_XFER_COMPLETE;
> > > if (msg->flags & I2C_M_RD)
> > > int_mask |= I2C_INT_RX_FIFO_DATA_REQ;
> > > else if (i2c_dev->msg_buf_remaining)
> > > int_mask |= I2C_INT_TX_FIFO_DATA_REQ;
> > > +
> > > tegra_i2c_unmask_irq(i2c_dev, int_mask);
> >
> > Can this line be removed? The NO_ACK and ARBITRATION_LOST interrupts
> > are already unmasked earlier.
>
> [Shardar] unmask_irq() here is enabling other interrupts
> (PACKET_XFER_COMPLETE/TX_FIFO_DATA_REQ/RX_FIFO_DATA_REQ). please let
> me know if my understanding is wrong from your comment.

You're right, I obviously wasn't looking closely enough.

Thierry

Attachment: signature.asc
Description: PGP signature