lkml.org 
[lkml]   [2012]   [Feb]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/3] pcie: Add support for setting default ASPM policy
    Date
    Distributions may wish to provide different defaults for PCIE ASPM
    depending on their target audience. Provide a configuration option for
    choosing the default policy.

    Signed-off-by: Matthew Garrett <mjg@redhat.com>
    Cc: linux-pci@vger.kernel.org
    Cc: jbarnes@virtuousgeek.org
    ---
    drivers/pci/pcie/Kconfig | 25 +++++++++++++++++++++++++
    drivers/pci/pcie/aspm.c | 8 ++++++++
    2 files changed, 33 insertions(+), 0 deletions(-)

    diff --git a/drivers/pci/pcie/Kconfig b/drivers/pci/pcie/Kconfig
    index 72962cc..6c8bc58 100644
    --- a/drivers/pci/pcie/Kconfig
    +++ b/drivers/pci/pcie/Kconfig
    @@ -55,6 +55,31 @@ config PCIEASPM_DEBUG
    This enables PCI Express ASPM debug support. It will add per-device
    interface to control ASPM.

    +choice
    + prompt "Default ASPM policy"
    + default PCIEASPM_DEFAULT
    + depends on PCIEASPM
    +
    +config PCIEASPM_DEFAULT
    + bool "BIOS default"
    + depends on PCIEASPM
    + help
    + Use the BIOS defaults for PCI Express ASPM.
    +
    +config PCIEASPM_POWERSAVE
    + bool "Powersave"
    + depends on PCIEASPM
    + help
    + Enable PCI Express ASPM L0s and L1 where possible, even if the
    + BIOS did not.
    +
    +config PCIEASPM_PERFORMANCE
    + bool "Performance"
    + depends on PCIEASPM
    + help
    + Disable PCI Express ASPM L0s and L1, even if the BIOS enabled them.
    +endchoice
    +
    config PCIE_PME
    def_bool y
    depends on PCIEPORTBUS && PM_RUNTIME && EXPERIMENTAL && ACPI
    diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
    index 1cfbf22..a0de5e1 100644
    --- a/drivers/pci/pcie/aspm.c
    +++ b/drivers/pci/pcie/aspm.c
    @@ -76,7 +76,15 @@ static LIST_HEAD(link_list);
    #define POLICY_DEFAULT 0 /* BIOS default setting */
    #define POLICY_PERFORMANCE 1 /* high performance */
    #define POLICY_POWERSAVE 2 /* high power saving */
    +
    +#ifdef CONFIG_PCIEASPM_PERFORMANCE
    +static int aspm_policy = POLICY_PERFORMANCE;
    +#elif defined CONFIG_PCIEASPM_POWERSAVE
    +static int aspm_policy = POLICY_POWERSAVE;
    +#else
    static int aspm_policy;
    +#endif
    +
    static const char *policy_str[] = {
    [POLICY_DEFAULT] = "default",
    [POLICY_PERFORMANCE] = "performance",
    --
    1.7.7.6


    \
     
     \ /
      Last update: 2012-02-03 16:21    [W:0.039 / U:60.516 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site