The following patch fixes this problem by adding a request_module
call to the the function used to enumerate all physical paralell
ports. A similar method has been used for the SCSI subsystem, which
uses a similar module structure as the new paralell port code ( both
low level host adapter drivers, and high level SCSI device drivers are
inserted on top of the generic middle lever SCSI modules).
To use the, add the following line to your /etc/conf.modules:
alias parport_lowlevel parport_pc
Regards,
Alain
diff -ur 2.1.48/linux/drivers/misc/parport_share.c linux/drivers/misc/parport_share.c
--- 2.1.48/linux/drivers/misc/parport_share.c Tue Aug 5 22:02:07 1997
+++ linux/drivers/misc/parport_share.c Tue Aug 5 22:17:05 1997
@@ -19,6 +19,11 @@
#include <linux/kernel.h>
#include <linux/malloc.h>
+#ifdef CONFIG_KERNELD
+#include <linux/kerneld.h>
+#endif
+
+
#undef PARPORT_PARANOID
static struct parport *portlist = NULL, *portlist_tail = NULL;
@@ -27,6 +32,10 @@
/* Return a list of all the ports we know about. */
struct parport *parport_enumerate(void)
{
+#ifdef CONFIG_KERNELD
+ if (portlist == NULL)
+ request_module("parport_lowlevel");
+#endif
return portlist;
}