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/