In message: [linux-yocto PATCH] i2c: xiic: Drop the duplicate codes introduced 
by stable merge
on 27/07/2023 Kevin Hao wrote:

> From: Kevin Hao <kexin....@windriver.com>
> 
> After the merge of stable v5.15.122 stable kernel (commit 4900bde55da2),
> two blocks to handle the BNB (bus not busy) interrupt were introduced.
> One was added by SDK commit 622176d24add ("i2c: xiic: Fix Tx Interrupt
> path for grouped messages"), and the other was added by stable commit
> 9eaef43fef90 ("i2c: xiic: Defer xiic_wakeup() and __xiic_start_xfer() in
> xiic_process()"). So drop the codes introduced by the SDK commit and
> also restore a bug fix in the original code introduced by SDK commit
> 19d54cfd5ccb ("i2c: xiic: Add smbus_block_read functionality").
> 
> Signed-off-by: Kevin Hao <kexin....@windriver.com>
> ---
> Hi Bruce,
> 
> Please help me merge this into the following two branches:
>   v5.15/standard/sdkv5.15/xlnx-soc
>   v5.15/standard/preempt-rt/sdkv5.15/xlnx-soc

merged.

Bruce

> 
>  drivers/i2c/busses/i2c-xiic.c | 29 ++++++-----------------------
>  1 file changed, 6 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/i2c/busses/i2c-xiic.c b/drivers/i2c/busses/i2c-xiic.c
> index c63cd2e50e13..c490f0ee250e 100644
> --- a/drivers/i2c/busses/i2c-xiic.c
> +++ b/drivers/i2c/busses/i2c-xiic.c
> @@ -700,6 +700,12 @@ static irqreturn_t xiic_process(int irq, void *dev_id)
>               /* The bus is not busy, disable BusNotBusy interrupt */
>               xiic_irq_dis(i2c, XIIC_INTR_BNB_MASK);
>  
> +             if (i2c->tx_msg && i2c->smbus_block_read) {
> +                     i2c->smbus_block_read = false;
> +                     /* Set requested message len=1 to indicate STATE_DONE */
> +                     i2c->tx_msg->len = 1;
> +             }
> +
>               if (!i2c->tx_msg)
>                       goto out;
>  
> @@ -751,29 +757,6 @@ static irqreturn_t xiic_process(int irq, void *dev_id)
>                       xiic_irq_dis(i2c, XIIC_INTR_TX_HALF_MASK);
>       }
>  
> -     if (pend & XIIC_INTR_BNB_MASK) {
> -             /* IIC bus has transitioned to not busy */
> -             clr |= XIIC_INTR_BNB_MASK;
> -
> -             /* The bus is not busy, disable BusNotBusy interrupt */
> -             xiic_irq_dis(i2c, XIIC_INTR_BNB_MASK);
> -
> -             if (i2c->tx_msg && i2c->smbus_block_read) {
> -                     i2c->smbus_block_read = false;
> -                     /* Set requested message len=1 to indicate STATE_DONE */
> -                     i2c->tx_msg->len = 1;
> -             }
> -
> -             if (!i2c->tx_msg)
> -                     goto out;
> -
> -             if (i2c->nmsgs == 1 && !i2c->rx_msg &&
> -                 xiic_tx_space(i2c) == 0)
> -                     xiic_wakeup(i2c, STATE_DONE);
> -             else
> -                     xiic_wakeup(i2c, STATE_ERROR);
> -     }
> -
>  out:
>       dev_dbg(i2c->adap.dev.parent, "%s clr: 0x%x\n", __func__, clr);
>  
> -- 
> 2.39.2
> 
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#12905): 
https://lists.yoctoproject.org/g/linux-yocto/message/12905
Mute This Topic: https://lists.yoctoproject.org/mt/100385712/21656
Group Owner: linux-yocto+ow...@lists.yoctoproject.org
Unsubscribe: 
https://lists.yoctoproject.org/g/linux-yocto/leave/6687884/21656/624485779/xyzzy
 [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to