lkml.org 
[lkml]   [2020]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 68/75] i2c: qcom: Fix IRQ error misassignement
    Date
    From: Robert Foss <robert.foss@linaro.org>

    commit 14718b3e129b058cb716a60c6faf40ef68661c54 upstream.

    During cci_isr() errors read from register fields belonging to
    i2c master1 are currently assigned to the status field belonging to
    i2c master0. This patch corrects this error, and always assigns
    master1 errors to the status field of master1.

    Fixes: e517526195de ("i2c: Add Qualcomm CCI I2C driver")
    Reported-by: Loic Poulain <loic.poulain@linaro.org>
    Suggested-by: Loic Poulain <loic.poulain@linaro.org>
    Signed-off-by: Robert Foss <robert.foss@linaro.org>
    Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/i2c/busses/i2c-qcom-cci.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/drivers/i2c/busses/i2c-qcom-cci.c
    +++ b/drivers/i2c/busses/i2c-qcom-cci.c
    @@ -194,9 +194,9 @@ static irqreturn_t cci_isr(int irq, void
    if (unlikely(val & CCI_IRQ_STATUS_0_I2C_M1_ERROR)) {
    if (val & CCI_IRQ_STATUS_0_I2C_M1_Q0_NACK_ERR ||
    val & CCI_IRQ_STATUS_0_I2C_M1_Q1_NACK_ERR)
    - cci->master[0].status = -ENXIO;
    + cci->master[1].status = -ENXIO;
    else
    - cci->master[0].status = -EIO;
    + cci->master[1].status = -EIO;

    writel(CCI_HALT_REQ_I2C_M1_Q0Q1, cci->base + CCI_HALT_REQ);
    ret = IRQ_HANDLED;

    \
     
     \ /
      Last update: 2020-12-10 16:01    [W:4.120 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site