Re: [PATCH, RFC] Earlier I2C initialization

From: David Brownell
Date: Thu Jun 12 2008 - 16:21:18 EST


On Wednesday 11 June 2008, Maciej W. Rozycki wrote:
> > That being said, I'm not sure if the comparison with the PCI subsystem
> > holds... I am under the impression that PCI bus handling doesn't
> > require dedicated drivers? At least I can't see any under drivers/pci.
>
>  Of course it does require them.  It is just due to their very nature they
> tend to be placed under arch/,

PCI root hubs, yes. The drivers/pci/hotplug bridges are slightly
more generic, ditto drivers/pci/pcie and the CardBus bridges in
drivers/pcmcia. At one point, lack of a generic (non-hotplug) PCI
bridge driver was viewed as a weakness of that driver stack.

Also, drivers/acpi/pci_root.c binds the root at subsys_initcall.
That's done *after* some earlier PCI magic; I never bothered
to sort through that little maze.


> although there are some cases where the
> same system controller can be used for a range of processors (e.g. some
> Marvell chips can be used either with MIPS or PowerPC CPUs) and they might
> be arguably put in a place more suitable for sharing between
> architectures.  See arch/mips/pci/ for an example of a generous bunch of
> PCI host drivers.

Which, for the record, get very early initialization using two
different mechanisms:

- many use arch_initcall()

- the "arch" subtree is linked before the "drivers" subtree

I don't think I2C needs to worry about arch_initcall just now,
but if necessary it could initialize earlier than subsys_initcall.

- Dave

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