[PATCH 8/8] Wrote quirk_mpc8641_transparent() to initialize bridge resources.
Milton Miller
miltonm at bga.com
Mon Jun 4 15:55:47 EST 2007
> The 8641 RC poses as a transparent bridge, but does not implement the
> IO_BASE or IO_LIMIT registers in the config space. This means that
> the code which initializes the bridge resources ends up setting the
> IO resources erroneously.
>
> This change sets RC of mpc8641 to be a transparent bridge
> for legacy I/O access and initializes the RC bridge resources
> from the device tree.
>
> Note: The 0x7010 is the device ID of host bridge for MPC8641
> and 0x7011 is the device ID of host bridge fro MPC8641D.
>
...
>
> @@ -339,6 +403,8 @@ static void __devinit early_uli5249(struct pci_dev
> *dev)
> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, quirk_uli1575);
> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5288, quirk_uli5288);
> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229);
> +DECLARE_PCI_FIXUP_EARLY(0x1957, 0x7010, quirk_mpc8641_transparent);
> +DECLARE_PCI_FIXUP_EARLY(0x1957, 0x7011, quirk_mpc8641_transparent);
> DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AL, 0x5249, early_uli5249);
> #endif /* CONFIG_PCI */
This is totally unreadable. include/linux/pci_ids.h exists for a
reason,
please use it. At least the vendor should be in there.
If you want to define the device id with the same naming convention
but in the local source file, I won't object.
Looking back at the rest of the patch:
>
> +#define GET_64BIT(prop, i) ((((u64) (prop)[(i)]) << 32) |
> (prop)[(i)+1])
Please use the (new) helper of_read_number in prom.h.
milton
PS: how about create instead of wrote in the subject?
More information about the Linuxppc-dev
mailing list