Messages in this thread | ![/](/images/icornerl.gif) | | From | Keith Owens <> | Subject | Re: module depencies during startup | Date | Wed, 28 Mar 2001 11:45:21 +1000 |
| |
On Tue, 27 Mar 2001 20:09:13 +0200, Tea Age <th@visuelle-maschinen.de> wrote: >I found out, that agpgart, which is needed by i810fb, is initialized >_after_ i810fb setup. Therefore i810fb failes to initialize.
This will be messy. I assume you put i810fb in drivers/char/Makefile as something like this obj-$(CONFIG_I810FB) += i810fb.o That links i810fb.o into drivers/char/char.o in a defined order relative to the other objects in drivers/char. In the top level Makefile we have
DRIVERS =drivers/block/block.o \ drivers/char/char.o \ ... DRIVERS-$(CONFIG_AGP) += drivers/char/agp/agp.o
so everything in drivers/char is linked into vmlinux before agp is linked. Since the link order defines the execution order of the __initcall routines, everything in drivers/char/char.o is initialised before agp.
Two possible fixes, which one you use depends on what the frame buffer maintainers think is the correct approach.
(1) Move agp.o ahead of char.o in the drivers list so agp is available to all char drivers. Will that break any char drivers? I have no idea, ask the agp and frame buffer maintainers.
(2) Move i810fb to its own directory under drivers/char, like agp and drm. Adjust drivers/char/Makefile accordingly and add
DRIVERS-$(CONFIG_I810FB) += i810fb.o
after agp in the top level Makefile. This will work as a short term fix but the correct order for agp versus the rest of the char drivers still needs to be reviewd (and documented!).
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |