ChangeSet 1.823.3.11, 2002/11/12 17:14:43-08:00, [EMAIL PROTECTED]
[PATCH] Re: USB scanner fix for 2.5.47 was not good ?
Bad news is that the scanner endpoint change did not work, maybe I
mistested it or it never worked. My version worked, but was very ugly.
Here is a working one (against 2.5.47), this also looks nicer (I did not know the
EP_XXX() could be changed too):
diff -Nru a/drivers/usb/image/scanner.c b/drivers/usb/image/scanner.c
--- a/drivers/usb/image/scanner.c Thu Nov 14 14:12:35 2002
+++ b/drivers/usb/image/scanner.c Thu Nov 14 14:12:35 2002
@@ -840,7 +840,7 @@
struct usb_device *dev = interface_to_usbdev (intf);
struct scn_usb_data *scn;
struct usb_host_interface *interface;
- struct usb_host_endpoint *endpoint;
+ struct usb_endpoint_descriptor *endpoint;
int ep_cnt;
int ix;
@@ -911,7 +911,6 @@
}
interface = intf->altsetting;
- endpoint = &interface->endpoint[0];
/*
* Start checking for two bulk endpoints OR two bulk endpoints *and* one
@@ -929,22 +928,23 @@
ep_cnt = have_bulk_in = have_bulk_out = have_intr = 0;
while (ep_cnt < interface->desc.bNumEndpoints) {
+ endpoint = &interface->endpoint[ep_cnt].desc;
- if (!have_bulk_in && IS_EP_BULK_IN(endpoint[ep_cnt])) {
+ if (!have_bulk_in && IS_EP_BULK_IN(endpoint)) {
ep_cnt++;
have_bulk_in = ep_cnt;
dbg("probe_scanner: bulk_in_ep:%d", have_bulk_in);
continue;
}
- if (!have_bulk_out && IS_EP_BULK_OUT(endpoint[ep_cnt])) {
+ if (!have_bulk_out && IS_EP_BULK_OUT(endpoint)) {
ep_cnt++;
have_bulk_out = ep_cnt;
dbg("probe_scanner: bulk_out_ep:%d", have_bulk_out);
continue;
}
- if (!have_intr && IS_EP_INTR(endpoint[ep_cnt])) {
+ if (!have_intr && IS_EP_INTR(endpoint)) {
ep_cnt++;
have_intr = ep_cnt;
dbg("probe_scanner: intr_ep:%d", have_intr);
diff -Nru a/drivers/usb/image/scanner.h b/drivers/usb/image/scanner.h
--- a/drivers/usb/image/scanner.h Thu Nov 14 14:12:35 2002
+++ b/drivers/usb/image/scanner.h Thu Nov 14 14:12:35 2002
@@ -211,10 +211,10 @@
MODULE_DEVICE_TABLE (usb, scanner_device_ids);
-#define IS_EP_BULK(ep) ((ep).desc.bmAttributes == USB_ENDPOINT_XFER_BULK ? 1 : 0)
-#define IS_EP_BULK_IN(ep) (IS_EP_BULK(ep) && ((ep).desc.bEndpointAddress &
USB_ENDPOINT_DIR_MASK) == USB_DIR_IN)
-#define IS_EP_BULK_OUT(ep) (IS_EP_BULK(ep) && ((ep).desc.bEndpointAddress &
USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT)
-#define IS_EP_INTR(ep) ((ep).desc.bmAttributes == USB_ENDPOINT_XFER_INT ? 1 : 0)
+#define IS_EP_BULK(ep) ((ep)->bmAttributes == USB_ENDPOINT_XFER_BULK ? 1 : 0)
+#define IS_EP_BULK_IN(ep) (IS_EP_BULK(ep) && ((ep)->bEndpointAddress &
+USB_ENDPOINT_DIR_MASK) == USB_DIR_IN)
+#define IS_EP_BULK_OUT(ep) (IS_EP_BULK(ep) && ((ep)->bEndpointAddress &
+USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT)
+#define IS_EP_INTR(ep) ((ep)->bmAttributes == USB_ENDPOINT_XFER_INT ? 1 : 0)
#define USB_SCN_MINOR(X) minor((X)->i_rdev) - SCN_BASE_MNR
-------------------------------------------------------
This sf.net email is sponsored by: To learn the basics of securing
your web site with SSL, click here to get a FREE TRIAL of a Thawte
Server Certificate: http://www.gothawte.com/rd524.html
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel