[PATCH V5 0/5] i3c: mipi-i3c-hci-pci: Enable IBI while runtime suspended for Intel controllers

Adrian Hunter posted 5 patches 3 weeks, 5 days ago
drivers/i3c/master/mipi-i3c-hci/core.c             |  35 +++++-
drivers/i3c/master/mipi-i3c-hci/hci.h              |   7 ++
drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c | 135 +++++++++++++++++++++
3 files changed, 172 insertions(+), 5 deletions(-)
[PATCH V5 0/5] i3c: mipi-i3c-hci-pci: Enable IBI while runtime suspended for Intel controllers
Posted by Adrian Hunter 3 weeks, 5 days ago
Hi


	Please note all patches have Frank's Rev'd-by.


Changes in V5:

	Re-base on top of v7.0 fixes series:
		https://lore.kernel.org/linux-i3c/20260306072451.11131-1-adrian.hunter@intel.com/T

Changes in V4:

    i3c: mipi-i3c-hci: Allow parent to manage runtime PM
	Add Frank's Rev'd-by

    i3c: mipi-i3c-hci-pci: Add optional ability to manage child runtime PM
	Add Frank's Rev'd-by


Changes in V3:

    i3c: master: Mark last_busy on IBI when runtime PM is allowed
	Patch dropped

    i3c: mipi-i3c-hci: Add quirk to allow IBI while runtime suspended
	Add Frank's Rev'd-by

    i3c: mipi-i3c-hci-pci: Add optional ability to manage child runtime PM
	Remove unnecessary pm_runtime_mark_last_busy()

    i3c: mipi-i3c-hci-pci: Enable IBI while runtime suspended for Intel controllers
	Add Frank's Rev'd-by


Changes in V2:

    i3c: mipi-i3c-hci-pci: Set d3hot_delay to 0 for Intel controllers
	Add Frank's Rev'd-by

    i3c: master: Allow controller drivers to select runtime PM device
	Patch dropped

    i3c: master: Mark last_busy on IBI when runtime PM is allowed
	Adjusted slightly for earlier changes

    i3c: mipi-i3c-hci: Allow parent to manage runtime PM
	For HCI_QUIRK_RPM_PARENT_MANAGED case, change from
	disabling runtime PM to instead causing the runtime PM
	callbacks to do nothing

    i3c: mipi-i3c-hci-pci: Add optional ability to manage child runtime PM
	Do not enable autosuspend.
	Callbacks for parent-managed invocation were renamed
	from i3c_hci_runtime_suspend to i3c_hci_rpm_suspend and
	from i3c_hci_runtime_resume to i3c_hci_rpm_resume.
	Amend commit message slightly.

    i3c: mipi-i3c-hci-pci: Enable IBI while runtime suspended for Intel controllers
	Retain HCI_QUIRK_RPM_ALLOWED
	Amend commit message accordingly


Here are patches related to enabling IBI while runtime suspended for Intel
controllers.

Intel LPSS I3C controllers can wake from runtime suspend to receive
in-band interrupts (IBIs).

It is non-trivial to implement because the parent PCI device has 2 I3C bus
instances (MIPI I3C HCI Multi-Bus Instance capability) represented by
platform devices with a separate driver, but the IBI-wakeup is shared by
both, which means runtime PM has to be managed by the parent PCI driver.

To make that work, the PCI driver handles runtime PM, but leverages the
mipi-i3c-hci platform driver's functionality for saving and restoring
controller state.


Adrian Hunter (5):
      i3c: mipi-i3c-hci-pci: Set d3hot_delay to 0 for Intel controllers
      i3c: mipi-i3c-hci: Add quirk to allow IBI while runtime suspended
      i3c: mipi-i3c-hci: Allow parent to manage runtime PM
      i3c: mipi-i3c-hci-pci: Add optional ability to manage child runtime PM
      i3c: mipi-i3c-hci-pci: Enable IBI while runtime suspended for Intel controllers

 drivers/i3c/master/mipi-i3c-hci/core.c             |  35 +++++-
 drivers/i3c/master/mipi-i3c-hci/hci.h              |   7 ++
 drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c | 135 +++++++++++++++++++++
 3 files changed, 172 insertions(+), 5 deletions(-)

Regards
Adrian
Re: [PATCH V5 0/5] i3c: mipi-i3c-hci-pci: Enable IBI while runtime suspended for Intel controllers
Posted by Adrian Hunter 3 hours ago
On 06/03/2026 10:53, Adrian Hunter wrote:
> Hi
> 
> 
> 	Please note all patches have Frank's Rev'd-by.

Can this be queued for next (v7.1)?

> 
> 
> Changes in V5:
> 
> 	Re-base on top of v7.0 fixes series:
> 		https://lore.kernel.org/linux-i3c/20260306072451.11131-1-adrian.hunter@intel.com/T
> 
> Changes in V4:
> 
>     i3c: mipi-i3c-hci: Allow parent to manage runtime PM
> 	Add Frank's Rev'd-by
> 
>     i3c: mipi-i3c-hci-pci: Add optional ability to manage child runtime PM
> 	Add Frank's Rev'd-by
> 
> 
> Changes in V3:
> 
>     i3c: master: Mark last_busy on IBI when runtime PM is allowed
> 	Patch dropped
> 
>     i3c: mipi-i3c-hci: Add quirk to allow IBI while runtime suspended
> 	Add Frank's Rev'd-by
> 
>     i3c: mipi-i3c-hci-pci: Add optional ability to manage child runtime PM
> 	Remove unnecessary pm_runtime_mark_last_busy()
> 
>     i3c: mipi-i3c-hci-pci: Enable IBI while runtime suspended for Intel controllers
> 	Add Frank's Rev'd-by
> 
> 
> Changes in V2:
> 
>     i3c: mipi-i3c-hci-pci: Set d3hot_delay to 0 for Intel controllers
> 	Add Frank's Rev'd-by
> 
>     i3c: master: Allow controller drivers to select runtime PM device
> 	Patch dropped
> 
>     i3c: master: Mark last_busy on IBI when runtime PM is allowed
> 	Adjusted slightly for earlier changes
> 
>     i3c: mipi-i3c-hci: Allow parent to manage runtime PM
> 	For HCI_QUIRK_RPM_PARENT_MANAGED case, change from
> 	disabling runtime PM to instead causing the runtime PM
> 	callbacks to do nothing
> 
>     i3c: mipi-i3c-hci-pci: Add optional ability to manage child runtime PM
> 	Do not enable autosuspend.
> 	Callbacks for parent-managed invocation were renamed
> 	from i3c_hci_runtime_suspend to i3c_hci_rpm_suspend and
> 	from i3c_hci_runtime_resume to i3c_hci_rpm_resume.
> 	Amend commit message slightly.
> 
>     i3c: mipi-i3c-hci-pci: Enable IBI while runtime suspended for Intel controllers
> 	Retain HCI_QUIRK_RPM_ALLOWED
> 	Amend commit message accordingly
> 
> 
> Here are patches related to enabling IBI while runtime suspended for Intel
> controllers.
> 
> Intel LPSS I3C controllers can wake from runtime suspend to receive
> in-band interrupts (IBIs).
> 
> It is non-trivial to implement because the parent PCI device has 2 I3C bus
> instances (MIPI I3C HCI Multi-Bus Instance capability) represented by
> platform devices with a separate driver, but the IBI-wakeup is shared by
> both, which means runtime PM has to be managed by the parent PCI driver.
> 
> To make that work, the PCI driver handles runtime PM, but leverages the
> mipi-i3c-hci platform driver's functionality for saving and restoring
> controller state.
> 
> 
> Adrian Hunter (5):
>       i3c: mipi-i3c-hci-pci: Set d3hot_delay to 0 for Intel controllers
>       i3c: mipi-i3c-hci: Add quirk to allow IBI while runtime suspended
>       i3c: mipi-i3c-hci: Allow parent to manage runtime PM
>       i3c: mipi-i3c-hci-pci: Add optional ability to manage child runtime PM
>       i3c: mipi-i3c-hci-pci: Enable IBI while runtime suspended for Intel controllers
> 
>  drivers/i3c/master/mipi-i3c-hci/core.c             |  35 +++++-
>  drivers/i3c/master/mipi-i3c-hci/hci.h              |   7 ++
>  drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c | 135 +++++++++++++++++++++
>  3 files changed, 172 insertions(+), 5 deletions(-)
> 
> Regards
> Adrian