summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorManivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>2026-04-21 16:11:01 +0530
committerBjorn Helgaas <bhelgaas@google.com>2026-04-27 09:47:15 -0500
commit73ae5392b0cfcce02efa23ee7123d8764ef070a8 (patch)
tree986d2b5a32c9e29f8070d6ea9013368fda204a17 /drivers
parent254f49634ee16a731174d2ae34bc50bd5f45e731 (diff)
downloadlinux-73ae5392b0cfcce02efa23ee7123d8764ef070a8.tar.gz
linux-73ae5392b0cfcce02efa23ee7123d8764ef070a8.zip
PCI/pwrctrl: Move pci_pwrctrl_is_required() earlier in file
Move pci_pwrctrl_is_required() earlier in the file so it can be used by pci_pwrctrl_power_off_device() and pci_pwrctrl_power_on_device(). Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> [bhelgaas: split to its own patch] Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> Link: https://patch.msgid.link/20260421104102.12322-1-manivannan.sadhasivam@oss.qualcomm.com
Diffstat (limited to 'drivers')
-rw-r--r--drivers/pci/pwrctrl/core.c84
1 files changed, 42 insertions, 42 deletions
diff --git a/drivers/pci/pwrctrl/core.c b/drivers/pci/pwrctrl/core.c
index 97cff5b8ca88..a692aeaee81a 100644
--- a/drivers/pci/pwrctrl/core.c
+++ b/drivers/pci/pwrctrl/core.c
@@ -139,6 +139,48 @@ int devm_pci_pwrctrl_device_set_ready(struct device *dev,
}
EXPORT_SYMBOL_GPL(devm_pci_pwrctrl_device_set_ready);
+/*
+ * Check whether the pwrctrl device really needs to be created or not. The
+ * pwrctrl device will only be created if the node satisfies below requirements:
+ *
+ * 1. Presence of compatible property with "pci" prefix to match against the
+ * pwrctrl driver (AND)
+ * 2. At least one of the power supplies defined in the devicetree node of the
+ * device (OR) in the remote endpoint parent node to indicate pwrctrl
+ * requirement.
+ */
+static bool pci_pwrctrl_is_required(struct device_node *np)
+{
+ struct device_node *endpoint;
+ const char *compat;
+ int ret;
+
+ ret = of_property_read_string(np, "compatible", &compat);
+ if (ret < 0)
+ return false;
+
+ if (!strstarts(compat, "pci"))
+ return false;
+
+ if (of_pci_supply_present(np))
+ return true;
+
+ if (of_graph_is_present(np)) {
+ for_each_endpoint_of_node(np, endpoint) {
+ struct device_node *remote __free(device_node) =
+ of_graph_get_remote_port_parent(endpoint);
+ if (remote) {
+ if (of_pci_supply_present(remote)) {
+ of_node_put(endpoint);
+ return true;
+ }
+ }
+ }
+ }
+
+ return false;
+}
+
static int __pci_pwrctrl_power_off_device(struct device *dev)
{
struct pci_pwrctrl *pwrctrl = dev_get_drvdata(dev);
@@ -268,48 +310,6 @@ err_power_off:
}
EXPORT_SYMBOL_GPL(pci_pwrctrl_power_on_devices);
-/*
- * Check whether the pwrctrl device really needs to be created or not. The
- * pwrctrl device will only be created if the node satisfies below requirements:
- *
- * 1. Presence of compatible property with "pci" prefix to match against the
- * pwrctrl driver (AND)
- * 2. At least one of the power supplies defined in the devicetree node of the
- * device (OR) in the remote endpoint parent node to indicate pwrctrl
- * requirement.
- */
-static bool pci_pwrctrl_is_required(struct device_node *np)
-{
- struct device_node *endpoint;
- const char *compat;
- int ret;
-
- ret = of_property_read_string(np, "compatible", &compat);
- if (ret < 0)
- return false;
-
- if (!strstarts(compat, "pci"))
- return false;
-
- if (of_pci_supply_present(np))
- return true;
-
- if (of_graph_is_present(np)) {
- for_each_endpoint_of_node(np, endpoint) {
- struct device_node *remote __free(device_node) =
- of_graph_get_remote_port_parent(endpoint);
- if (remote) {
- if (of_pci_supply_present(remote)) {
- of_node_put(endpoint);
- return true;
- }
- }
- }
- }
-
- return false;
-}
-
static int pci_pwrctrl_create_device(struct device_node *np,
struct device *parent)
{