Skip to contentSkip to conversation

hotplug-2001_01_23 and kernel 2.4.1

DISCUSSION Greg KH 3 participants 4 messages Jan 31, 2001 – Feb 2, 2001 USB

lore
Share & tools
lore

Greg KH

author
#0 lore raw

I think there was a patch to the printer driver to fix this, but I don't remember, does anyone on linux-usb-devel or linux-hotplug see this same thing (I don't have a USB printer handy at the moment.)

greg k-h

Quoted 26 lines · Gordon Lack

I've just combined these 2.

Bascially Ok, but one problem...

I have an Epson Stylus 740 printer on USB. The kernel calls out to
hotplug with a TYPE os 7/1/2 for this (and hence no INTERFACE value).

So, the scripts set the 3 interface values to 1000 (out of range).

This doesn't match any of the 3 printer entries in
/lib/modules/2.4.1/modules.usbconf. *Those* entries have Interface settings of 7/1/1, 7/1/2 and 7/1/3, but no Device settings.

So it looks to me as though something has swaped the meaning of the
Interface and Device settings between whatever produces the modules.usbconf files (if this is modutils then I've just upgrade to 2.4.2) and what your hotplug scripts expect.

If I swap the two pairs of 3 fields arround in the "while read ..."
line of the usb.agent script then all is Ok.

I hope this makes sense and is useful....

   Thanks....
                    Gordon Lack
Signature · 6 lines
greg@(kroah|wirex).com

_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
[email protected]
http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
#1 lore raw

Try this patch. If it works, it should go to Linus.

It's not so much that things got switched, as that there are two mechanisms for specifying device/interface type and they don't strictly overlap (according to my brief investigation). Some printers use one mechanism (interface typing), others use another (device typing).

- Dave

----- Original Message -----
From: Greg KH <[email protected]>
To: Gordon Lack <[email protected]>
Cc: <[email protected]>; <[email protected]>
Sent: Wednesday, January 31, 2001 2:41 PM
Subject: Re: hotplug-2001_01_23 and kernel 2.4.1

Quoted 29 lines

I think there was a patch to the printer driver to fix this, but I don't remember, does anyone on linux-usb-devel or linux-hotplug see this same thing (I don't have a USB printer handy at the moment.)

greg k-h

Quoted 22 lines · Gordon Lack

I've just combined these 2.

Bascially Ok, but one problem...

I have an Epson Stylus 740 printer on USB. The kernel calls out to
hotplug with a TYPE os 7/1/2 for this (and hence no INTERFACE value).

So, the scripts set the 3 interface values to 1000 (out of range).

This doesn't match any of the 3 printer entries in
/lib/modules/2.4.1/modules.usbconf. *Those* entries have Interface settings of 7/1/1, 7/1/2 and 7/1/3, but no Device settings.

So it looks to me as though something has swaped the meaning of the
Interface and Device settings between whatever produces the modules.usbconf files (if this is modutils then I've just upgrade to 2.4.2) and what your hotplug scripts expect.

If I swap the two pairs of 3 fields arround in the "while read ..."
line of the usb.agent script then all is Ok.

Quoted 8 lines
Quoted 4 lines

I hope this makes sense and is useful....

   Thanks....
                    Gordon Lack

--
greg@(kroah|wirex).com

drivers/usb/printer.c +3 -0
@@ -613,6 +613,9 @@
 };
 
 static struct usb_device_id usblp_ids [] = {
+    { bDeviceClass: 7, bDeviceSubClass: 1, bDeviceProtocol: 1},
+    { bDeviceClass: 7, bDeviceSubClass: 1, bDeviceProtocol: 2},
+    { bDeviceClass: 7, bDeviceSubClass: 1, bDeviceProtocol: 3},
     { bInterfaceClass: 7, bInterfaceSubClass: 1, bInterfaceProtocol: 1},
     { bInterfaceClass: 7, bInterfaceSubClass: 1, bInterfaceProtocol: 2},
     { bInterfaceClass: 7, bInterfaceSubClass: 1, bInterfaceProtocol: 3},
#2 lore raw
In reply to Greg KH
Quoted 1 line

Try this patch. If it works, it should go to Linus.

... but it won't, it needs to use the new macros that got introduced in the 2.4.0 "final" kernel. That one was against test12-pre3, which doesn't have them. A working version should go to Linus, that much is true! :-)

_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#3 lore raw
In reply to Greg KH
Quoted 7 lines · David Brownell
Quoted 2 lines

Try this patch. If it works, it should go to Linus.

... but it won't, it needs to use the new macros that got introduced in the 2.4.0 "final" kernel. That one was against test12-pre3, which doesn't have them. A working version should go to Linus, that much is true! :-)

Well, it seems to work at 2.4.1 once (trivially) converted to the new
macros. \switching on the printer now gets the printer module loaded.

Thanks. Patch against 2.1.4 appended (I've just got the modified and
original file in one dir).

printer.c renamed from printer.c.orig +3 -0
@@ -613,6 +613,9 @@
 };
 
 static struct usb_device_id usblp_ids [] = {
+	{ USB_DEVICE_INFO(7, 1, 1) },
+	{ USB_DEVICE_INFO(7, 1, 2) },
+	{ USB_DEVICE_INFO(7, 1, 3) },
 	{ USB_INTERFACE_INFO(7, 1, 1) },
 	{ USB_INTERFACE_INFO(7, 1, 2) },
 	{ USB_INTERFACE_INFO(7, 1, 3) },