PCI/ACPI: Move _OSC query checks to separate function
authorJoerg Roedel <jroedel@suse.de>
Tue, 24 Aug 2021 12:20:53 +0000 (14:20 +0200)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 28 Sep 2021 21:19:10 +0000 (16:19 -0500)
Move the checks about whether the _OSC controls are requested from the
firmware to a separate function.

Link: https://lore.kernel.org/r/20210824122054.29481-4-joro@8bytes.org
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Rafael J. Wysocki <rafael@kernel.org>
drivers/acpi/pci_root.c

index ed4e6b5..f12e512 100644 (file)
@@ -449,6 +449,24 @@ static u32 calculate_control(void)
        return control;
 }
 
+static bool os_control_query_checks(struct acpi_pci_root *root, u32 support)
+{
+       struct acpi_device *device = root->device;
+
+       if (pcie_ports_disabled) {
+               dev_info(&device->dev, "PCIe port services disabled; not requesting _OSC control\n");
+               return false;
+       }
+
+       if ((support & ACPI_PCIE_REQ_SUPPORT) != ACPI_PCIE_REQ_SUPPORT) {
+               decode_osc_support(root, "not requesting OS control; OS requires",
+                                  ACPI_PCIE_REQ_SUPPORT);
+               return false;
+       }
+
+       return true;
+}
+
 static void negotiate_os_control(struct acpi_pci_root *root, int *no_aspm,
                                 bool is_pcie)
 {
@@ -485,16 +503,8 @@ static void negotiate_os_control(struct acpi_pci_root *root, int *no_aspm,
                return;
        }
 
-       if (pcie_ports_disabled) {
-               dev_info(&device->dev, "PCIe port services disabled; not requesting _OSC control\n");
+       if (!os_control_query_checks(root, support))
                return;
-       }
-
-       if ((support & ACPI_PCIE_REQ_SUPPORT) != ACPI_PCIE_REQ_SUPPORT) {
-               decode_osc_support(root, "not requesting OS control; OS requires",
-                                  ACPI_PCIE_REQ_SUPPORT);
-               return;
-       }
 
        requested = control = calculate_control();