All of lore.kernel.org
 help / color / mirror / Atom feed
From: Raag Jadav <raag.jadav@intel.com>
To: bhelgaas@google.com, jarkko.nikula@linux.intel.com,
	mika.westerberg@linux.intel.com,
	andriy.shevchenko@linux.intel.com,
	stanislaw.gruszka@linux.intel.com, lukas@wunner.de,
	rafael@kernel.org, ilpo.jarvinen@linux.intel.com
Cc: linux-pci@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-kernel@vger.kernel.org, gregkh@linuxfoundation.org,
	sashal@kernel.org, Raag Jadav <raag.jadav@intel.com>
Subject: [PATCH v1] PCI / PM: Really allow runtime PM without callback functions
Date: Mon, 12 Feb 2024 12:02:33 +0530	[thread overview]
Message-ID: <20240212063233.5599-1-raag.jadav@intel.com> (raw)

Commit c5eb1190074c ("PCI / PM: Allow runtime PM without callback
functions") tried to eliminate the need for runtime PM callbacks
by modifying pci_pm_runtime_suspend() and pci_pm_runtime_resume(),
but didn't modify pci_pm_runtime_idle() with relevant changes, which
still returns -ENOSYS if the driver supplies no runtime PM callbacks.

Fix this by modifying pci_pm_runtime_idle() such that it allows PCI
device power state transitions without runtime PM callbacks.

 0)               |  pm_runtime_work() {
 0)               |    rpm_idle() {
 0)               |      rpm_check_suspend_allowed() {
 0)   1.500 us    |        __dev_pm_qos_resume_latency(); /* = 0x7fffffff */
 0)   4.840 us    |      } /* rpm_check_suspend_allowed = 0x0 */
 0)   1.550 us    |      __rpm_get_callback(); /* = 0xffffffffb4bc84f0 */
 0)   1.800 us    |      pci_pm_runtime_idle(); /* = -38 */
 0) + 17.070 us   |    } /* rpm_idle = -38 */
 0) + 22.450 us   |  } /* pm_runtime_work = -38 */

Debugged-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Raag Jadav <raag.jadav@intel.com>
Tested-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
---

This is not marked for linux-stable for the need of extensive testing
and can be backported after a few releases if no issues are reported.

 drivers/pci/pci-driver.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
index 51ec9e7e784f..bb7f6775b350 100644
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -1382,10 +1382,7 @@ static int pci_pm_runtime_idle(struct device *dev)
 	if (!pci_dev->driver)
 		return 0;
 
-	if (!pm)
-		return -ENOSYS;
-
-	if (pm->runtime_idle)
+	if (pm && pm->runtime_idle)
 		return pm->runtime_idle(dev);
 
 	return 0;
-- 
2.35.3


             reply	other threads:[~2024-02-12  6:32 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-12  6:32 Raag Jadav [this message]
2024-02-13 14:02 ` [PATCH v1] PCI / PM: Really allow runtime PM without callback functions Rafael J. Wysocki
2024-02-13 20:06 ` Bjorn Helgaas
2024-02-14  6:58   ` Jarkko Nikula
2024-02-14 16:58     ` Bjorn Helgaas
2024-02-14 20:15       ` Raag Jadav
2024-02-26  7:35         ` Raag Jadav
2024-02-26  7:41           ` Mika Westerberg
2024-02-14 10:43   ` Raag Jadav
2024-02-14 13:01     ` Andy Shevchenko
2024-02-14 13:20       ` Raag Jadav
2024-02-14 16:06         ` Bjorn Helgaas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240212063233.5599-1-raag.jadav@intel.com \
    --to=raag.jadav@intel.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bhelgaas@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=jarkko.nikula@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=lukas@wunner.de \
    --cc=mika.westerberg@linux.intel.com \
    --cc=rafael@kernel.org \
    --cc=sashal@kernel.org \
    --cc=stanislaw.gruszka@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.