Re: [PATCH] pci: Don't enable aspm before drivers have had achance to veto it

From: Maxim Levitsky
Date: Fri Jun 18 2010 - 13:44:29 EST


On Fri, 2010-06-18 at 10:15 -0700, Jesse Barnes wrote:
> On Fri, 18 Jun 2010 20:05:42 +0300
> Maxim Levitsky <maximlevitsky@xxxxxxxxx> wrote:
>
> > On Fri, 2010-06-18 at 09:12 -0700, Jesse Barnes wrote:
> > > On Fri, 18 Jun 2010 15:06:51 +0300
> > > Maxim Levitsky <maximlevitsky@xxxxxxxxx> wrote:
> > >
> > > > On Wed, 2010-06-09 at 16:05 -0400, Matthew Garrett wrote:
> > > > > The aspm code will currently set the configured aspm policy before drivers
> > > > > have had an opportunity to indicate that their hardware doesn't support it.
> > > > > Unfortunately, putting some hardware in L0 or L1 can result in the hardware
> > > > > no longer responding to any requests, even after aspm is disabled. It makes
> > > > > more sense to leave aspm policy at the BIOS defaults at initial setup time,
> > > > > reconfiguring it after pci_enable_device() is called. This allows the
> > > > > driver to blacklist individual devices beforehand.
> > > > >
> > > > > Signed-off-by: Matthew Garrett <mjg@xxxxxxxxxx>
> > > > > ---
> > > >
> > > > Hi,
> > > >
> > > > I recently discovered that my aspire one wireless troubles (card just
> > > > dies after a while) are caused by ASPM L0S state.
> > > > The device (AR5001) seems to have a hardware bug, and it also disables
> > > > L0S in windows driver.
> > > >
> > > > Unfortenuly BIOS (news at 11) enables L0S.
> > > >
> > > > Its easy to disable ASPM from driver. It just a matter of calling
> > > > pci_disable_link_state.
> > > >
> > > > However, that depends on CONFIG_PCIEASPM.
> > > >
> > > > How about making pci_disable_link_state always available or even better,
> > > > just make CONFIG_PCIEASPM unconditional?
> > >
> > > The former is ok with me. Care to post a patch?
> > It not that simple at first glance.
> > This functions uses plenty of code from the aspm.c, therefore care
> > should be taken to do that properly.
> >
> > Of course the easy solution is to compile all code in always, and just
> > disable it by runtime switch (it even exists, aspm_disabled)
> > Or, another easy solution is to make ath5k depend on CONFIG_PCIEASPM
> >
> > What do you think?
>
> So unless a device is *really* broken, it seems like the default policy
> should be ok across the board. So let's get a CONFIG_PCIEASPM removal
> patch into the 2.6.36 merge window early to flush out any potential
> problems.
It would be perfect for me.

Best regards,
Maxim Levitsky

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/