ChangeSet 1.1062, 2003/04/14 10:25:40-07:00, henning@meier-geinitz.de [PATCH] USB scanner.c endpoint detection fix This patch fixes the endpoint numbers. They were numbered from 1 to n but that assumption is not correct in all cases. diff -Nru a/drivers/usb/image/scanner.c b/drivers/usb/image/scanner.c --- a/drivers/usb/image/scanner.c Wed Apr 16 10:48:55 2003 +++ b/drivers/usb/image/scanner.c Wed Apr 16 10:48:55 2003 @@ -355,6 +355,10 @@ * is closed and disconnected. Avoids crashes when writing to a * disconnected device. (Thanks to Greg KH). * + * 0.4.12 2003-04-11 + * - Fixed endpoint detection. The endpoints were numbered from 1 to n but + * that assumption is not correct in all cases. + * * TODO * - Performance * - Select/poll methods @@ -957,7 +961,7 @@ info ("probe_scanner: ignoring additional bulk_in_ep:%d", ep_cnt); continue; } - have_bulk_in = ep_cnt; + have_bulk_in = endpoint->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK; dbg("probe_scanner: bulk_in_ep:%d", have_bulk_in); continue; } @@ -968,7 +972,7 @@ info ("probe_scanner: ignoring additional bulk_out_ep:%d", ep_cnt); continue; } - have_bulk_out = ep_cnt; + have_bulk_out = endpoint->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK; dbg("probe_scanner: bulk_out_ep:%d", have_bulk_out); continue; } @@ -979,7 +983,7 @@ info ("probe_scanner: ignoring additional intr_ep:%d", ep_cnt); continue; } - have_intr = ep_cnt; + have_intr = endpoint->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK; dbg("probe_scanner: intr_ep:%d", have_intr); continue; }