Tegra K1 PCIe ASPM/L0s


We found below statement from your source history:

PCIE: tegra: enable ASPM and disable L0s

Enable ASPM feature for Tegra12 but keep L0s
disabled as its broken.

Bug 1483608

Change-Id: Ie1f8c10dc1d95c4b5164f9030aa5560542c81f1b
Signed-off-by: Bibek Basu <bbasu@nvidia.com>
Reviewed-on: http://git-master/r/391647
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Matthew Pedro <mapedro@nvidia.com>

Later this L0s blocking code is removed. Tegra-K1 manuals do not say anything about L0s being broken. We also found out that on later kernel versions than we currently use (3.10), PCIe driver has L0s whitelist for certain devices.
Is there errata documentation for Tegra-K1 regarding this issue and is this still valid or can we activate L0s?

There is no issue with ASPM-L0s from Tegra-K1 point of view as it has been verified thoroughly for its functionality with both ASPM-L0s and L1 states.
But, we found that many devices available out there in open market has broken ASPM-L0s even though their capability registers say they are capable. In case of some of those devices, we even got confirmation from respective vendor(s) that ASPM-L0s is indeed broken and in other cases, we could only confirm it based on PCIe protocol analyzer trace.
Initially, we tried not to enable ASPM-L0s for all, but then, later on we decided to disable L0s only for those where we have clear information that L0s is broken.
If you are planning to enable ASPM, make sure that end point’s vendor confirms the functionality of device with ASPM-l0s enabled.