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

Adrian Hunter <[email protected]>
Newsgroups org.infradead.lists.linux-i3c,dev.linux.lists.sashiko-reviews,org.kernel.vger.linux-pci
Organization Intel Finland Oy, Registered Address: c/o Alberga Business Park, 6 krs, Bertel Jungin Aukio 5, 02600 Espoo, Business Identity Code: 0357606 - 4, Domiciled in Helsinki
Message-ID <[email protected]>
On 06/08/2026 16:54, [email protected] 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 <[email protected]>
> 
> 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);
>>  }
> 


-- 
linux-i3c mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-i3c
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.