lkml.org 
[lkml]   [2021]   [Aug]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH net-next v3 2/3] PCI/ASPM: Introduce a new helper to report ASPM support status
    Date
    Introduce a new helper, pcie_aspm_supported(), to report ASPM support
    status.

    The user will be introduced by next patch.

    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    ---
    v3:
    - This is a new patch

    drivers/pci/pcie/aspm.c | 11 +++++++++++
    include/linux/pci.h | 2 ++
    2 files changed, 13 insertions(+)

    diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
    index 013a47f587cea..eeea6a04ab0cf 100644
    --- a/drivers/pci/pcie/aspm.c
    +++ b/drivers/pci/pcie/aspm.c
    @@ -1201,6 +1201,17 @@ bool pcie_aspm_enabled(struct pci_dev *pdev)
    }
    EXPORT_SYMBOL_GPL(pcie_aspm_enabled);

    +bool pcie_aspm_supported(struct pci_dev *pdev)
    +{
    + struct pcie_link_state *link = pcie_aspm_get_link(pdev);
    +
    + if (!link)
    + return false;
    +
    + return link->aspm_support;
    +}
    +EXPORT_SYMBOL_GPL(pcie_aspm_supported);
    +
    static ssize_t aspm_attr_show_common(struct device *dev,
    struct device_attribute *attr,
    char *buf, u8 state)
    diff --git a/include/linux/pci.h b/include/linux/pci.h
    index 540b377ca8f61..b7b71982f2405 100644
    --- a/include/linux/pci.h
    +++ b/include/linux/pci.h
    @@ -1602,6 +1602,7 @@ int pci_disable_link_state_locked(struct pci_dev *pdev, int state);
    void pcie_no_aspm(void);
    bool pcie_aspm_support_enabled(void);
    bool pcie_aspm_enabled(struct pci_dev *pdev);
    +bool pcie_aspm_supported(struct pci_dev *pdev);
    #else
    static inline int pci_disable_link_state(struct pci_dev *pdev, int state)
    { return 0; }
    @@ -1610,6 +1611,7 @@ static inline int pci_disable_link_state_locked(struct pci_dev *pdev, int state)
    static inline void pcie_no_aspm(void) { }
    static inline bool pcie_aspm_support_enabled(void) { return false; }
    static inline bool pcie_aspm_enabled(struct pci_dev *pdev) { return false; }
    +static inline bool pcie_aspm_supported(struct pci_dev *pdev) { return false; }
    #endif

    #ifdef CONFIG_PCIEAER
    --
    2.32.0
    \
     
     \ /
      Last update: 2021-08-19 07:47    [W:4.792 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site