i2c: xiic: Remove interrupt enable/disable in Rx path
authorRaviteja Narayanam <raviteja.narayanam@xilinx.com>
Thu, 2 Feb 2023 09:41:35 +0000 (15:11 +0530)
committerWolfram Sang <wsa@kernel.org>
Fri, 3 Feb 2023 16:35:08 +0000 (17:35 +0100)
'DYNAMIC_MODE_READ_BROKEN_BIT' quirk added in the driver,
effected IP versions no longer enter dynamic mode.
So, remove local_irq_save/local_irq_restore APIs from driver.

Signed-off-by: Raviteja Narayanam <raviteja.narayanam@xilinx.com>
Signed-off-by: Manikanta Guntupalli <manikanta.guntupalli@amd.com>
Acked-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/busses/i2c-xiic.c

index 554f83e..8503b50 100644 (file)
@@ -741,7 +741,6 @@ static void xiic_start_recv(struct xiic_i2c *i2c)
        u16 rx_watermark;
        u8 cr = 0, rfd_set = 0;
        struct i2c_msg *msg = i2c->rx_msg = i2c->tx_msg;
-       unsigned long flags;
 
        dev_dbg(i2c->adap.dev.parent, "%s entry, ISR: 0x%x, CR: 0x%x\n",
                __func__, xiic_getreg32(i2c, XIIC_IISR_OFFSET),
@@ -773,8 +772,6 @@ static void xiic_start_recv(struct xiic_i2c *i2c)
                        bytes--;
                xiic_setreg8(i2c, XIIC_RFD_REG_OFFSET, bytes);
 
-               local_irq_save(flags);
-
                /* write the address */
                xiic_setreg16(i2c, XIIC_DTR_REG_OFFSET,
                              i2c_8bit_addr_from_msg(msg) |
@@ -787,8 +784,6 @@ static void xiic_start_recv(struct xiic_i2c *i2c)
                xiic_setreg16(i2c, XIIC_DTR_REG_OFFSET, val);
 
                xiic_irq_clr_en(i2c, XIIC_INTR_BNB_MASK);
-
-               local_irq_restore(flags);
        } else {
                /*
                 * If previous message is Tx, make sure that Tx FIFO is empty