lkml.org 
[lkml]   [2011]   [Mar]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: 2.6.38 regression caused by commit 415e12b
Date
On Wednesday, March 02, 2011, Sarah Sharp wrote:
> On Wed, Mar 02, 2011 at 01:17:04AM +0100, Rafael J. Wysocki wrote:
> > On Wednesday, March 02, 2011, Sarah Sharp wrote:
> > > On Wed, Mar 02, 2011 at 12:30:16AM +0100, Rafael J. Wysocki wrote:
> > > > On Tuesday, March 01, 2011, Sarah Sharp wrote:
> > > > > On Tue, Mar 01, 2011 at 09:55:33PM +0100, Rafael J. Wysocki wrote:
> > > > > > Please check if the appended patch (on top of the Linus' current) helps.
> > > > >
> > > > > Sorry, it doesn't help. Same message as before.
> > > >
> > > > Can you send dmesg with the patch applied, please?
> > >
> > > Attached.
> >
> > Something's fishy. Evidently, _OSC is not executed on your system
> > although it should be with the patch.
> >
> > Please try the patch below instead and send dmesg (either way).
>
> The host controller works with that patch. dmesg is attached.

OK, thanks.

There are two problems. First, your BIOS says that ASPM is not supported
by it, so we don't call _OSC, which should be fixed by the previous patch.
Second, pci_msi_enabled() returns 0 on your system, which is kind of strange,
because it evidently uses MSIs (as visible in the dmesg).

While I think we can safely request _OSC control even if ASPM is not supported
by the hardware (according to the BIOS), which is done after the first patch,
we need to figure out why 0 is returned by pci_msi_enabled() on your system
and try to work around that.

Thanks,
Rafael


> > ---
> > drivers/acpi/pci_root.c | 11 +++++------
> > 1 file changed, 5 insertions(+), 6 deletions(-)
> >
> > Index: linux-2.6/drivers/acpi/pci_root.c
> > ===================================================================
> > --- linux-2.6.orig/drivers/acpi/pci_root.c
> > +++ linux-2.6/drivers/acpi/pci_root.c
> > @@ -48,10 +48,7 @@ static int acpi_pci_root_add(struct acpi
> > static int acpi_pci_root_remove(struct acpi_device *device, int type);
> > static int acpi_pci_root_start(struct acpi_device *device);
> >
> > -#define ACPI_PCIE_REQ_SUPPORT (OSC_EXT_PCI_CONFIG_SUPPORT \
> > - | OSC_ACTIVE_STATE_PWR_SUPPORT \
> > - | OSC_CLOCK_PWR_CAPABILITY_SUPPORT \
> > - | OSC_MSI_SUPPORT)
> > +#define ACPI_PCIE_REQ_SUPPORT (OSC_EXT_PCI_CONFIG_SUPPORT | OSC_MSI_SUPPORT)
> >
> > static const struct acpi_device_id root_device_ids[] = {
> > {"PNP0A03", 0},
> > @@ -572,8 +569,10 @@ static int __devinit acpi_pci_root_add(s
> > if (flags != base_flags)
> > acpi_pci_osc_support(root, flags);
> >
> > - if (!pcie_ports_disabled
> > - && (flags & ACPI_PCIE_REQ_SUPPORT) == ACPI_PCIE_REQ_SUPPORT) {
> > + if (!pcie_ports_disabled) {
> > + dev_info(root->bus->bridge,
> > + "ACPI _OSC support set (0x%02x)\n", flags);
> > +
> > flags = OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL
> > | OSC_PCI_EXPRESS_NATIVE_HP_CONTROL
> > | OSC_PCI_EXPRESS_PME_CONTROL;
>



\
 
 \ /
  Last update: 2011-03-02 12:23    [W:0.085 / U:1.712 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site