[PATCH] linkstation / kurobox support

Arnd Bergmann arnd at arndb.de
Sat Dec 2 21:56:36 EST 2006


On Friday 01 December 2006 22:53, Guennadi Liakhovetski wrote:
> +static int __init add_bridge(struct device_node *dev)
> +{
> +       int len;
> +       struct pci_controller *hose;
> +       int *bus_range;
> +
> +       printk("Adding PCI host bridge %s\n", dev->full_name);
> +
> +       bus_range = (int *) get_property(dev, "bus-range", &len);
> +       if (bus_range == NULL || len < 2 * sizeof(int))
> +               printk(KERN_WARNING "Can't get bus-range for %s, assume"
> +                               " bus 0\n", dev->full_name);
> +
> +       hose = pcibios_alloc_controller();
> +       if (hose == NULL)
> +               return -ENOMEM;
> +       hose->first_busno = bus_range ? bus_range[0] : 0;
> +       hose->last_busno = bus_range ? bus_range[1] : 0xff;
> +       hose->arch_data = dev;
> +       setup_indirect_pci(hose, 0xfec00000, 0xfee00000);
> +
> +       /* Interpret the "ranges" property */
> +       /* This also maps the I/O region and sets isa_io/mem_base */
> +       pci_process_bridge_OF_ranges(hose, dev, 1);
> +
> +       return 0;
> +}

Can't you use the new PCI probing from arch/powerpc/kernel/of_platform
for this?

> +#ifdef CONFIG_BLK_DEV_INITRD
> +       if (initrd_start)
> +               ROOT_DEV = Root_RAM0;
> +       else
> +#endif
> +#ifdef CONFIG_ROOT_NFS
> +               ROOT_DEV = Root_NFS;
> +#else
> +               ROOT_DEV = Root_HDA1;
> +#endif
> +

This looks wrong. Didn't the same code come up recently in a review for
another platform? What was the conclusion?

	Arnd <><


More information about the Linuxppc-dev mailing list