Re: [PATCH 1/3] pciehp: add ACPI based slot detection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx>:
> On Monday, January 5, 2009 10:47 am Jesse Barnes wrote:
> > On Tuesday, December 16, 2008 7:07 pm Kenji Kaneshige wrote:
> > > There is a problem that some non hot-pluggable PCIe slots are detected
> > > as hot-pluggable by pciehp on some platforms. The immediate cause of
> > > this problem is that hot-plug capable bit in the Slot Capabilities
> > > register is set even for non hot-pluggable slots on those platforms.
> > > It seems a BIOS/hardware problem, but we need workaround about that.
> > >
> > > Some of those platforms define hot-pluggable PCIe slots on ACPI
> > > namespace properly, while hot-plug capable bit in the Slot
> > > Capabilities register is set improperly. So using ACPI namespace
> > > information in pciehp to detect PCIe hot-pluggable slots would be a
> > > workaround.
> > >
> > > This patch adds 'pciehp_detect_mode' module option. When 'acpi' is
> > > specified, pciehp uses ACPI namespace information to detect PCIe
> > > hot-pluggable slots.
> > >
> > > Signed-off-by: Kenji Kaneshige <kaneshige.kenji@xxxxxxxxxxxxxx>
> >
> > Thanks Kenji-san, I applied these three.  Hopefully Alex can test on some
> > of his problematic platforms; I'll see if it helps on my systems too.
> 
> Cool, this one seems to fix the slot detection issue on my t61 at least.  I 
> only see one slot now and no conflicts apparently.  acpiphp still registers 
> two slots with a slot number of 1 (so I get "1" and "1-1"), but pciehp just 
> registers one called "5", which matches what acpiphp sees in slot "1".

The symptoms sound like your namespace is broken in two ways:

	- presenting multiple slots when there is only 1
	- the slots both have _SUN value of 1

Kenji-san's patch only tweaks pciehp in a way to better detect
hotpluggable slots; pciehp will still get the name of the slot
from PCI config space (slot capabilities) and not the _SUN.

So, the PCIe registers were programmed correctly by BIOS, but
ACPI sounds hosed. :-/

Just to verify, can I see the output of 1/address and
1-1/address, along with lspci -vt output and your DSDT?

I don't suspect we'll be able to do anything about that in
acpiphp; at least I don't have any ideas off the top of my head.

Maybe we can do something like the reverse logic in acpiphp -- if
we find duplicate slot names, then bomb out and suggest trying
pciehp instead? (Ok, that wasn't a serious proposal because of
how ugly it was, but maybe it'll inspire someone else to come up
with a better idea.)

Thanks.

/ac

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

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux