Re: ACPI based PCI/PCIe bridge hotplug

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

 



On Thu, Feb 28, 2013 at 5:13 AM, Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx> wrote:
> On Wed, Feb 27, 2013 at 08:53:37PM -0800, Yinghai Lu wrote:
>>Yes, Linux kernel support that via acpiphp.
>>
>>but that will more rely on bios do the right job in ACPI DSDT.
>>
>>Also need to make sure BIOS have leave enough bus number range and
>>io/mmio range.
>>
>>Kernel also have pciehp for pcie hotplug.
>
> In the function named register_slot, device_is_managed_by_native_pciehp() is
> called.
>
> Does this means pciehp and acpiphp are two drivers who has the same
> functionality? They couldn't work at the same time? For acpiphp I guess the
> hot-plug events is generated by ACPI. While how about the pciehp?

Yes. for pcie devices, if BIOS have complete hotplug support in ACPI code.

BIOS _OSC implementation has various problems.

So several years ago, Rafael change code with pci root bus to set OSC
at same time for aer, pme, pciehp.

That causes problem that acpiphp can not get enabled because
device_is_managed_by_native_pciehp()
will stop that to hold device for pciehp.
Need user to specify some command line to disable _OSC setting for the
whole root bus.

We already know some chipset (silicon) has problem with pciehp,
because it does not report
surprise removal/ present change correctly.

>
> Also they seems to use the same interface in /sys/bus/pci/slots to represents
> the hot-plugable nodes.

yes, drivers/acpi/pci_slot.c will present that interface too, and it
have reference count.
and when acpiphp or pciehp is loaded later, it could change slot name there.

Thanks

Yinghai
--
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