[PATCH V4 14/14] i3c: mipi-i3c-hci: Advertise IBI wakeup capability

Adrian Hunter adrian.hunter at intel.com
Thu Aug 6 10:37:27 PDT 2026


On 06/08/2026 16:54, sashiko-bot at kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Medium] The platform driver sets the I3C master `ibi_wakeup` flag but fails to propagate the wakeup state during system suspend for non-PCI platform devices, breaking IBI wakeup functionality.
> --
> 
> --- Patch [14]: [PATCH V4 14/14] i3c: mipi-i3c-hci: Advertise IBI wakeup capability ---
> commit 443a5c0d5859df8fbad91b6e456865274a7f7ca9
> Author: Adrian Hunter <adrian.hunter at intel.com>
> 
> i3c: mipi-i3c-hci: Advertise IBI wakeup capability
> 
> This commit sets master->ibi_wakeup during probe when the associated system
> device advertises wakeup capability. This allows the I3C core to mark
> IBI-capable I3C devices as wakeup capable.
> 
>> diff --git a/drivers/i3c/master/mipi-i3c-hci/core.c b/drivers/i3c/master/mipi-i3c-hci/core.c
>> index f95da427d7a9e..06acf6cf5a0db 100644
>> --- a/drivers/i3c/master/mipi-i3c-hci/core.c
>> +++ b/drivers/i3c/master/mipi-i3c-hci/core.c
> [ ... ]
>> @@ -1180,6 +1181,9 @@ static int i3c_hci_probe(struct platform_device *pdev)
>>  	if (hci->quirks & HCI_QUIRK_RPM_IBI_ALLOWED)
>>  		hci->master.rpm_ibi_allowed = true;
>>  
>> +	if (device_can_wakeup(i3c_hci_sysdev(&pdev->dev)))
>> +		hci->master.ibi_wakeup = true;
>> +
> 
> [Severity: Medium]
> If we advertise ibi_wakeup here for non-PCI platform devices, how does the
> suspend path know to actually arm the system wakeup?
> 
> While the PCI glue driver aggregates wakeup states by checking
> i3c_master_has_wakeup_enabled_devs() during suspend, the native platform
> suspend routine i3c_hci_suspend() does not appear to check this or enable
> wakeups:
> 
> drivers/i3c/master/mipi-i3c-hci/core.c:i3c_hci_suspend() {
> 	struct i3c_hci *hci = dev_get_drvdata(dev);
> 
> 	if (!(hci->quirks & HCI_QUIRK_RPM_ALLOWED))
> 		return 0;
> 
> 	return pm_runtime_force_suspend(dev);
> }
> 
> Does this mean IBI wakeups will silently fail to wake the system for non-PCI
> platform devices, or is there another mechanism handling the wakeup
> propagation for them?

It is assumed that platform firmware will not be amended to advertise
controller wakeup capability before that is supported.

> 
>>  	return i3c_master_register(&hci->master, &pdev->dev, &i3c_hci_ops, false);
>>  }
> 




More information about the linux-i3c mailing list