OSDN Git Service

PCI/ACPI: Advertise _HPX Type 3 support via _OSC
authorAlexandru Gagniuc <mr.nuke.me@gmail.com>
Fri, 15 Mar 2019 19:29:40 +0000 (14:29 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 23 Apr 2019 21:38:16 +0000 (16:38 -0500)
_OSC now has a way to inform firmware that OS has the capability to
interpret _HPX Type 3 setting records.  This was added by the following
PCI Firmware Specification ECN:

  ECN:  _HPX and PCIe Completion Timeout related _OSC Enhancements
  Date: September 12, 2018
  Affected Document: PCI Firmware Specification, Rev. 3.2

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/acpi/pci_root.c
include/linux/acpi.h

index 707aafc..c36781a 100644 (file)
@@ -145,6 +145,7 @@ static struct pci_osc_bit_struct pci_osc_support_bit[] = {
        { OSC_PCI_CLOCK_PM_SUPPORT, "ClockPM" },
        { OSC_PCI_SEGMENT_GROUPS_SUPPORT, "Segments" },
        { OSC_PCI_MSI_SUPPORT, "MSI" },
+       { OSC_PCI_HPX_TYPE_3_SUPPORT, "HPX-Type3" },
 };
 
 static struct pci_osc_bit_struct pci_osc_control_bit[] = {
@@ -446,6 +447,7 @@ static void negotiate_os_control(struct acpi_pci_root *root, int *no_aspm,
         * PCI domains, so we indicate this in _OSC support capabilities.
         */
        support = OSC_PCI_SEGMENT_GROUPS_SUPPORT;
+       support |= OSC_PCI_HPX_TYPE_3_SUPPORT;
        if (pci_ext_cfg_avail())
                support |= OSC_PCI_EXT_CONFIG_SUPPORT;
        if (pcie_aspm_support_enabled())
index d5dcebd..b84bcd7 100644 (file)
@@ -513,7 +513,8 @@ extern bool osc_pc_lpi_support_confirmed;
 #define OSC_PCI_CLOCK_PM_SUPPORT               0x00000004
 #define OSC_PCI_SEGMENT_GROUPS_SUPPORT         0x00000008
 #define OSC_PCI_MSI_SUPPORT                    0x00000010
-#define OSC_PCI_SUPPORT_MASKS                  0x0000001f
+#define OSC_PCI_HPX_TYPE_3_SUPPORT             0x00000100
+#define OSC_PCI_SUPPORT_MASKS                  0x0000011f
 
 /* PCI Host Bridge _OSC: Capabilities DWORD 3: Control Field */
 #define OSC_PCI_EXPRESS_NATIVE_HP_CONTROL      0x00000001