[PATCH v3 1/3] i3c: mipi-i3c-hci: Fix missing STAT_IBI_STATUS_THLD in PIO mode

Frank Li Frank.li at oss.nxp.com
Mon Aug 17 12:48:26 PDT 2026


On Mon, Aug 17, 2026 at 04:26:45PM +0800, Jian-Ming Liao wrote:
> In PIO mode initialization, STAT_IBI_STATUS_THLD was missing from
> pio->enabled_irqs. As a result, the host controller interrupt signal for
> IBI threshold was never enabled when transfer starts, preventing IBI
> status descriptors from being properly processed in PIO mode.
>
> Include STAT_IBI_STATUS_THLD in pio->enabled_irqs so that the IBI
> threshold interrupt is activated alongside error interrupts upon the first
> transfer.
>
> Fixes: 9ad9a52cce28 ("i3c/master: introduce the mipi-i3c-hci driver")
> Co-developed-by: Patrick Yen <Patrick_Yen at asmedia.com.tw>
> Signed-off-by: Patrick Yen <Patrick_Yen at asmedia.com.tw>
> Signed-off-by: Jian-Ming Liao <Jm_Liao at asmedia.com.tw>
> ---

Reviewed-by: Frank Li <Frank.Li at nxp.com>

> v3:
>  - Added Fixes tag (Adrian).
>  - Updated commit message and code comment to accurately reflect that
>    STAT_IBI_STATUS_THLD is activated on the first transfer (Adrian).
>  - Aligned From: and Signed-off-by: email addresses (Adrian).
> v2:
>  - Removed "Hot-Join" references from the commit message and comments,
>    as the change focuses strictly on enabling STAT_IBI_STATUS_THLD
>    for general IBI reception per HCI spec.
>
>  drivers/i3c/master/mipi-i3c-hci/pio.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/i3c/master/mipi-i3c-hci/pio.c b/drivers/i3c/master/mipi-i3c-hci/pio.c
> index ff2657ee220b..a1341d66bc65 100644
> --- a/drivers/i3c/master/mipi-i3c-hci/pio.c
> +++ b/drivers/i3c/master/mipi-i3c-hci/pio.c
> @@ -185,8 +185,11 @@ static void __hci_pio_init(struct i3c_hci *hci, u32 *size_val_ptr)
>  	pio_reg_write(INTR_SIGNAL_ENABLE, 0x0);
>  	pio_reg_write(INTR_STATUS_ENABLE, 0xffffffff);
>
> -	/* Always accept error interrupts (will be activated on first xfer) */
> -	pio->enabled_irqs = STAT_ALL_ERRORS;
> +	/*
> +	 * Always accept error interrupts and IBI threshold interrupt
> +	 * (will be activated on first xfer).
> +	 */
> +	pio->enabled_irqs = STAT_ALL_ERRORS | STAT_IBI_STATUS_THLD;
>  }
>
>  static void hci_pio_suspend(struct i3c_hci *hci)
> --
> 2.43.0
>
>
> --
> linux-i3c mailing list
> linux-i3c at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-i3c



More information about the linux-i3c mailing list