Message ID | 20200909203059.23427-4-eajames@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | input: misc: Add IBM Operation Panel driver | expand |
On Wed, Sep 09, 2020 at 03:30:57PM -0500, Eddie James wrote: > Mask the IRQ status to only the bits that the driver checks. This > prevents excessive driver warnings when operating in slave mode > when additional bits are set that the driver doesn't handle. > > Signed-off-by: Eddie James <eajames@linux.ibm.com> > Reviewed-by: Tao Ren <rentao.bupt@gmail.com> I reconsidered and applied it now because this helps whenever slave mode is used. So, applied to for-current, thanks!
On Thu, Sep 10, 2020 at 08:18:13AM +0200, Wolfram Sang wrote: > On Wed, Sep 09, 2020 at 03:30:57PM -0500, Eddie James wrote: > > Mask the IRQ status to only the bits that the driver checks. This > > prevents excessive driver warnings when operating in slave mode > > when additional bits are set that the driver doesn't handle. > > > > Signed-off-by: Eddie James <eajames@linux.ibm.com> > > Reviewed-by: Tao Ren <rentao.bupt@gmail.com> > > I reconsidered and applied it now because this helps whenever slave mode > is used. So, applied to for-current, thanks! If someone could provide a Fixes tag, that would be welcome. For me, not knowing the HW it doesn't look trivial to determine.
On Wed, Sep 9, 2020 at 1:31 PM Eddie James <eajames@linux.ibm.com> wrote: > > Mask the IRQ status to only the bits that the driver checks. This > prevents excessive driver warnings when operating in slave mode > when additional bits are set that the driver doesn't handle. > > Signed-off-by: Eddie James <eajames@linux.ibm.com> > Reviewed-by: Tao Ren <rentao.bupt@gmail.com> Sorry, looks like I didn't get my comment in in time. Looks good in principle. One minor comment below: > --- > drivers/i2c/busses/i2c-aspeed.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/i2c/busses/i2c-aspeed.c b/drivers/i2c/busses/i2c-aspeed.c > index 31268074c422..724bf30600d6 100644 > --- a/drivers/i2c/busses/i2c-aspeed.c > +++ b/drivers/i2c/busses/i2c-aspeed.c > @@ -69,6 +69,7 @@ > * These share bit definitions, so use the same values for the enable & > * status bits. > */ > +#define ASPEED_I2CD_INTR_RECV_MASK 0xf000ffff Could we define ASPEED_I2CD_INTR_RECV_MASK to be ASPEED_I2CD_INTR_ALL ? > #define ASPEED_I2CD_INTR_SDA_DL_TIMEOUT BIT(14) > #define ASPEED_I2CD_INTR_BUS_RECOVER_DONE BIT(13) > #define ASPEED_I2CD_INTR_SLAVE_MATCH BIT(7) > @@ -604,6 +605,7 @@ static irqreturn_t aspeed_i2c_bus_irq(int irq, void *dev_id) > writel(irq_received & ~ASPEED_I2CD_INTR_RX_DONE, > bus->base + ASPEED_I2C_INTR_STS_REG); > readl(bus->base + ASPEED_I2C_INTR_STS_REG); > + irq_received &= ASPEED_I2CD_INTR_RECV_MASK; > irq_remaining = irq_received; > > #if IS_ENABLED(CONFIG_I2C_SLAVE) > -- > 2.26.2 >
On 9/10/20 4:00 AM, Brendan Higgins wrote: > On Wed, Sep 9, 2020 at 1:31 PM Eddie James <eajames@linux.ibm.com> wrote: >> Mask the IRQ status to only the bits that the driver checks. This >> prevents excessive driver warnings when operating in slave mode >> when additional bits are set that the driver doesn't handle. >> >> Signed-off-by: Eddie James <eajames@linux.ibm.com> >> Reviewed-by: Tao Ren <rentao.bupt@gmail.com> > Sorry, looks like I didn't get my comment in in time. > > Looks good in principle. One minor comment below: > >> --- >> drivers/i2c/busses/i2c-aspeed.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/i2c/busses/i2c-aspeed.c b/drivers/i2c/busses/i2c-aspeed.c >> index 31268074c422..724bf30600d6 100644 >> --- a/drivers/i2c/busses/i2c-aspeed.c >> +++ b/drivers/i2c/busses/i2c-aspeed.c >> @@ -69,6 +69,7 @@ >> * These share bit definitions, so use the same values for the enable & >> * status bits. >> */ >> +#define ASPEED_I2CD_INTR_RECV_MASK 0xf000ffff > Could we define ASPEED_I2CD_INTR_RECV_MASK to be ASPEED_I2CD_INTR_ALL ? That was my original thought... there is another define for that already a few lines down though. Thanks, Eddie > >> #define ASPEED_I2CD_INTR_SDA_DL_TIMEOUT BIT(14) >> #define ASPEED_I2CD_INTR_BUS_RECOVER_DONE BIT(13) >> #define ASPEED_I2CD_INTR_SLAVE_MATCH BIT(7) >> @@ -604,6 +605,7 @@ static irqreturn_t aspeed_i2c_bus_irq(int irq, void *dev_id) >> writel(irq_received & ~ASPEED_I2CD_INTR_RX_DONE, >> bus->base + ASPEED_I2C_INTR_STS_REG); >> readl(bus->base + ASPEED_I2C_INTR_STS_REG); >> + irq_received &= ASPEED_I2CD_INTR_RECV_MASK; >> irq_remaining = irq_received; >> >> #if IS_ENABLED(CONFIG_I2C_SLAVE) >> -- >> 2.26.2 >>
diff --git a/drivers/i2c/busses/i2c-aspeed.c b/drivers/i2c/busses/i2c-aspeed.c index 31268074c422..724bf30600d6 100644 --- a/drivers/i2c/busses/i2c-aspeed.c +++ b/drivers/i2c/busses/i2c-aspeed.c @@ -69,6 +69,7 @@ * These share bit definitions, so use the same values for the enable & * status bits. */ +#define ASPEED_I2CD_INTR_RECV_MASK 0xf000ffff #define ASPEED_I2CD_INTR_SDA_DL_TIMEOUT BIT(14) #define ASPEED_I2CD_INTR_BUS_RECOVER_DONE BIT(13) #define ASPEED_I2CD_INTR_SLAVE_MATCH BIT(7) @@ -604,6 +605,7 @@ static irqreturn_t aspeed_i2c_bus_irq(int irq, void *dev_id) writel(irq_received & ~ASPEED_I2CD_INTR_RX_DONE, bus->base + ASPEED_I2C_INTR_STS_REG); readl(bus->base + ASPEED_I2C_INTR_STS_REG); + irq_received &= ASPEED_I2CD_INTR_RECV_MASK; irq_remaining = irq_received; #if IS_ENABLED(CONFIG_I2C_SLAVE)