Re: [RFC PATCH 00/16] Refine PCI host bridge scan interfaces

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

 



On Tuesday 18 November 2014 20:17:57 Yijing Wang wrote:
> 
> >>
> >> I hope platforms with ACPI or DT could both use pci_create_host_bridge().
> >> Why we need to use two different ways to process it ?
> > 
> > These are completely different use cases:
> > 
> > a) For DT, we want loadable device drivers that start by probing a host
> >    bridge device which was added through the DT platform code. The
> >    driver is self-contained, and eventually we want to be able to unload
> >    it. We have lots of different per-soc drivers that require different
> >    quirks
> > 
> > b) For ACPI, the interface is defined in the ACPI spec across architectures
> >    and SoCs, we don't have host bridge drivers and the code that initializes
> >    the PCI is required early during boot and called from architecture
> >    code. There is no parent device, as ACPI sees PCI as a fundamental building
> >    block by itself, and there are no drivers because the firmware does
> >    the initial hardware setup, so we only have to access the config space.
> 
> Hmmm, I'm a little confused, so why you think ACPI host driver should not use
> pci_create_host_bridge(), because ACPI PCI driver has no parent device ?

It's one of the difference. Having a parent device can certainly make your
life simpler, since you have devm_kzalloc(), dev_info(), etc. Coming from
the other end, I think ACPI needs PCI to be available during early boot,
at a time where we might not want pci_create_host_bridge() to do the
right thing.

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