]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
i3c: mipi-i3c-hci: Clear INTR_STATUS unconditionally
authorJarkko Nikula <jarkko.nikula@linux.intel.com>
Wed, 9 Apr 2025 14:03:59 +0000 (17:03 +0300)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Thu, 15 May 2025 09:41:13 +0000 (11:41 +0200)
Status fields in INTR_STATUS register are write 1 to clear so do it
unconditionally and move clearing of them out of an if block.

Suggested-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://lore.kernel.org/r/20250409140401.299251-3-jarkko.nikula@linux.intel.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/i3c/master/mipi-i3c-hci/core.c

index 780e9db7e21e4bb4af6f91d842e41c2afe682344..4c4100d2d9afaf00330cc0d32824d475725563ab 100644 (file)
@@ -590,12 +590,11 @@ static irqreturn_t i3c_hci_irq_handler(int irq, void *dev_id)
        u32 val;
 
        val = reg_read(INTR_STATUS);
+       reg_write(INTR_STATUS, val);
        DBG("INTR_STATUS = %#x", val);
 
-       if (val) {
-               reg_write(INTR_STATUS, val);
+       if (val)
                result = IRQ_HANDLED;
-       }
 
        if (val & INTR_HC_RESET_CANCEL) {
                DBG("cancelled reset");