Subject: [Linaro-acpi] [RFC PATCH 4/4] arm64, acpi, pci: Provide arch-specific calls for PCI host bridge dirver (PNP0A03).

From: [email-masked] (Arnd Bergmann)
Date: Fri, 14 Nov 2014 15:53:35 +0100

On Friday 14 November 2014 15:10:12 Tomasz Nowicki wrote:
> On 07.11.2014 15:24, Arnd Bergmann wrote:
> > On Friday 07 November 2014 14:27:56 Tomasz Nowicki wrote:
> >>
> >>   #ifdef CONFIG_PCI
> >> +struct pci_controller {
> >> +	struct acpi_device *companion;
> >> +	int segment;
> >> +	int node;		/* nearest node with memory or NUMA_NO_NODE for global allocation */
> >> +};
> >> +
> >> +#define PCI_CONTROLLER(busdev) ((struct pci_controller *) busdev->sysdata)
> >> +
> >
> > Don't use busdev->sysdata in architecture specific code, it belongs to the
> > host bridge driver with the new model. For ACPI you don't have a host bridge
> > driver, but it's better to keep these separate.
> >
> > The segment is always the same as the domain number, so just use that.
> > The node and companion members here can get added to struct pci_host_bridge.
> 
> The reason why I put segment field to struct pci_controller is to 
> initialize domain_nr of struct pci_bus being in pci_create_root_bus(), 
> domain_nr can be used later on though. Correct me I am wrong.
> 
> Honestly I do not see the way to create root bus without e.g. 
> sysdata.segment here.

See the patches that Liviu and Lorenzo have been posting recently. This
should be straightforward in 3.19.

	Arnd