[PATCH V4 14/14] i3c: mipi-i3c-hci: Advertise IBI wakeup capability
sashiko-bot at kernel.org
sashiko-bot at kernel.org
Thu Aug 6 06:54:34 PDT 2026
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?
> return i3c_master_register(&hci->master, &pdev->dev, &i3c_hci_ops, false);
> }
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260806131857.119830-1-adrian.hunter@intel.com?part=14
More information about the linux-i3c
mailing list