• Kenji Kaneshige's avatar
    PCI ASPM: support per direction l0s management · ac18018a
    Kenji Kaneshige authored
    The L0s state can be managed separately for each direction (upstream
    direction and downstream direction) of the link. But in the current
    implementation, those are mixed up. With this patch, L0s for each
    direction are managed separately.
    
    To maintain three states (upstream direction L0s, downstream L0s and
    L1), 'aspm_support', 'aspm_enabled', 'aspm_capable', 'aspm_disable'
    and 'aspm_default' fields in struct pcie_link_state are changed to
    3-bit from 2-bit. The 'latency' field is separated to two 'latency_up'
    and 'latency_dw' fields to maintain exit latencies for each direction
    of the link. For L0, 'latency_up.l0' and 'latency_dw.l0' are used to
    configure upstream direction L0s and downstream direction L0s
    respectively. For L1, larger value of 'latency_up.l1' and
    'latency_dw.l1' is considered as L1 exit latency.
    Acked-by: default avatarShaohua Li <shaohua.li@intel.com>
    Signed-off-by: default avatarKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
    Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
    ac18018a
aspm.c 25.2 KB