Re: [RFC PATCH 1/3] MIPS: PCI: Use pci_bus_remove_resources()/pci_bus_add_resource()to set up root resources
From: Bjorn Helgaas
Date: Wed Aug 24 2011 - 10:36:15 EST
On Wed, Aug 24, 2011 at 12:24 AM, Deng-Cheng Zhu
<dengcheng.zhu@xxxxxxxxx> wrote:
> Use this new style (instead of filling in the pci_bus->resource[] array
> directly) to hide some ugly implementation details.
>
> Signed-off-by: Deng-Cheng Zhu <dengcheng.zhu@xxxxxxxxx>
> ---
> arch/mips/pci/pci.c | 11 +++++++++--
> 1 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c
> index 33bba7b..7473214 100644
> --- a/arch/mips/pci/pci.c
> +++ b/arch/mips/pci/pci.c
> @@ -261,6 +261,14 @@ static void pcibios_fixup_device_resources(struct pci_dev *dev,
> }
> }
>
> +static void __devinit
> +pcibios_setup_root_resources(struct pci_bus *bus, struct pci_controller *ctrl)
> +{
> + pci_bus_remove_resources(bus);
> + pci_bus_add_resource(bus, ctrl->io_resource, 0);
> + pci_bus_add_resource(bus, ctrl->mem_resource, 0);
> +}
> +
> void __devinit pcibios_fixup_bus(struct pci_bus *bus)
> {
> /* Propagate hose info into the subordinate devices. */
> @@ -270,8 +278,7 @@ void __devinit pcibios_fixup_bus(struct pci_bus *bus)
> struct pci_dev *dev = bus->self;
>
> if (!dev) {
> - bus->resource[0] = hose->io_resource;
> - bus->resource[1] = hose->mem_resource;
> + pcibios_setup_root_resources(bus, hose);
> } else if (pci_probe_only &&
> (dev->class >> 8) == PCI_CLASS_BRIDGE_PCI) {
> pci_read_bridge_bases(bus);
I don't understand this patch.
Wouldn't it be enough to have [PATCH 2/3], which adds the
pci_create_bus() argument with nobody using it yet, then [PATCH 3/3],
which makes mips supply the new argument, and add a hunk to [PATCH
3/3] that completely removes the bus->resource fixups in
pcibios_fixup_bus() at the same time?
Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/