From 1421e948a32a8dfe08ff80f54dff95445d8cc51f Mon Sep 17 00:00:00 2001 From: Adrian Hunter Date: Fri, 7 Aug 2026 17:56:38 +0300 Subject: [PATCH] i3c: mipi-i3c-hci: Advertise IBI wakeup capability Set master->ibi_wakeup during probe when the associated system device advertises wakeup capability, allowing the I3C core to mark IBI-capable I3C devices as wakeup capable. Tweak the comment for i3c_hci_sysdev() to mention the new usage. Signed-off-by: Adrian Hunter Reviewed-by: Frank Li Link: https://patch.msgid.link/20260807145638.168865-15-adrian.hunter@intel.com Signed-off-by: Alexandre Belloni --- drivers/i3c/master/mipi-i3c-hci/core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/i3c/master/mipi-i3c-hci/core.c b/drivers/i3c/master/mipi-i3c-hci/core.c index f95da427d7a9..06acf6cf5a0d 100644 --- a/drivers/i3c/master/mipi-i3c-hci/core.c +++ b/drivers/i3c/master/mipi-i3c-hci/core.c @@ -119,12 +119,13 @@ static inline struct i3c_hci *to_i3c_hci(struct i3c_master_controller *m) } /** - * i3c_hci_sysdev() - Get the device to use for DMA + * i3c_hci_sysdev() - Get the device to use for DMA and system PM * @dev: Device the HCI controller is bound to * * When an IOMMU is enabled, DMA API calls must use the device that IOMMU * setup was done for. Under PCI enumeration that is the PCI device, not - * the "mipi-i3c-hci" platform device below it. + * the "mipi-i3c-hci" platform device below it. The same device owns + * system PM and wakeup configuration. * * Return: @dev's parent if it is a PCI device, otherwise @dev. */ @@ -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; + return i3c_master_register(&hci->master, &pdev->dev, &i3c_hci_ops, false); }