patch-2.3.48 linux/drivers/parport/share.c

Next file: linux/drivers/pci/pci.ids
Previous file: linux/drivers/parport/probe.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.47/linux/drivers/parport/share.c linux/drivers/parport/share.c
@@ -247,7 +247,19 @@
 {
 #ifdef CONFIG_PARPORT_1284
 	/* Analyse the IEEE1284.3 topology of the port. */
-	parport_daisy_init (port);
+	if (parport_daisy_init (port) == 0) {
+		/* No devices were detected.  Perhaps they are in some
+                   funny state; let's try to reset them and see if
+                   they wake up. */
+		parport_daisy_fini (port);
+		parport_write_control (port, PARPORT_CONTROL_SELECT);
+		udelay (50);
+		parport_write_control (port,
+				       PARPORT_CONTROL_SELECT |
+				       PARPORT_CONTROL_INIT);
+		udelay (50);
+		parport_daisy_init (port);
+	}
 #endif
 
 	/* Let drivers know that a new port has arrived. */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)