Re: [PATCH V4 14/14] i3c: mipi-i3c-hci: Advertise IBI wakeup capability
[email protected] Thu, 06 Aug 2026 13:54:34 +0000
| Newsgroups | org.kernel.vger.linux-pci,org.infradead.lists.linux-i3c |
|---|---|
| Message-ID | <[email protected]> |
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? > return i3c_master_register(&hci->master, &pdev->dev, &i3c_hci_ops, false); > } -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=14