On Fri, Jun 14, 2013 at 2:26 PM, Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote: > [+cc Maxim, Jussi] > > Yeah, this is a huge mess. It makes my head hurt. I don't think it's > reasonable to add more flags because that will make my head hurt even > more. > > If I understand correctly, on Roman's system (the Acer Aspire One > AOA150 netbook mentioned in > https://bugzilla.kernel.org/show_bug.cgi?id=55211): > > - The BIOS leaves ASPM enabled for the ath5k device (03:00.0) > - The BIOS does not allow the OS to manage ASPM (via _OSC) > - The ath5k device does not work correctly with ASPM enabled > - The ath5k driver calls pci_disable_link_state(), but we do not > disable ASPM because we don't have permission from the BIOS looks like Matthew Garrett path is causing problem: commit 4949be16822e92a18ea0cc1616319926628092ee Author: Matthew Garrett <mjg@xxxxxxxxxx> Date: Tue Mar 6 13:41:49 2012 -0500 PCI: ignore pre-1.1 ASPM quirking when ASPM is disabled commit c9651e70ad0aa499814817cbf3cc1d0b806ed3a1 Author: Matthew Garrett <mjg@xxxxxxxxxx> Date: Tue Mar 27 10:17:41 2012 -0400 ASPM: Fix pcie devices with non-pcie children after those two patches, it aspm_disabled is set, via _osc early, pre-1.1 devices aspm register will be touched even aspm_force is not specified. pcie_aspm_init_link_state will all the way to pcie_config_aspm_path ==> pcie_config_aspm_link in that path, aspm_disabled is not checked nowhere. BTW, when aspm is not disabled, even the link is allocated, because it is black listed, so it is never get touched. Matthew's patch is not needed in any case. I would suspect that that aspm enabling in Roman's system could set by that path instead of BIOS. Roman, can you please check two patches + linsus' tree on your system? Thanks Yinghai
Attachment:
revert_revert_osc_change_linus.patch
Description: Binary data
Attachment:
revert_matthew_aspm_disabled.patch
Description: Binary data