[PATCH 17/17] i3c: mipi-i3c-hci-pci: Add Runtime PM support

Adrian Hunter adrian.hunter at intel.com
Sat Dec 20 07:10:31 PST 2025


On 19/12/2025 19:21, Frank Li wrote:
> On Fri, Dec 19, 2025 at 04:45:34PM +0200, Adrian Hunter wrote:
>> Enable Runtime PM for the mipi_i3c_hci_pci driver. Introduce helpers to
>> allow and forbid Runtime PM during probe and remove, using pm_runtime APIs.
>>
>> Signed-off-by: Adrian Hunter <adrian.hunter at intel.com>
>> ---
>>  .../i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c  | 17 +++++++++++++++++
>>  1 file changed, 17 insertions(+)
>>
>> diff --git a/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c b/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c
>> index 458f871a2e61..1b38771667e5 100644
>> --- a/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c
>> +++ b/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c
>> @@ -18,6 +18,7 @@
>>  #include <linux/platform_data/mipi-i3c-hci.h>
>>  #include <linux/platform_device.h>
>>  #include <linux/pm_qos.h>
>> +#include <linux/pm_runtime.h>
>>
>>  /*
>>   * There can up to 15 instances, but implementations have at most 2 at this
>> @@ -208,6 +209,18 @@ static const struct mipi_i3c_hci_pci_info intel_si_2_info = {
>>  	.instance_count = 1,
>>  };
>>
>> +static void mipi_i3c_hci_pci_rpm_allow(struct device *dev)
>> +{
>> +	pm_runtime_put(dev);
>> +	pm_runtime_allow(dev);
> 
> why not pm_runtime_enable() but you use pm_runtime_allow()?

That is how the PCI bus does things.

There is pm_runtime_forbid() and pm_runtime_enable() in pci_pm_init(),
and then pm_runtime_get_sync() in local_pci_probe().

Refer to:

	commit 967577b062417b4e4b8e27b711220f4124f5153a
	Author: Ying Huang <huang.ying.caritas at gmail.com>
	Date:   Tue Nov 20 16:08:22 2012 +0800

	    PCI/PM: Keep runtime PM enabled for unbound PCI devices

	commit bb910a7040e90a0ca3d3e8245d6d5c128a5d1287
	Author: Rafael J. Wysocki <rjw at rjwysocki.net>
	Date:   Sat Feb 27 21:37:37 2010 +0100

	    PCI/PM Runtime: Make runtime PM of PCI devices inactive by default




More information about the linux-i3c mailing list