ChangeSet 1.1608.84.31, 2004/03/10 13:44:37-08:00, stern@rowland.harvard.edu [PATCH] USB: Altsetting/interface update for USB image drivers This patch contains minute updates for the hpusbscsi, mdc800, and microtek drivers. Only two things are worth noting. In the mdc800 driver I removed some unnecessary calls to usb_driver_claim_interface(), usb_driver_release_interface(), and usb_set_interface(). Likewise, in the microtek driver I removed an unnecessary call to usb_set_interface(). drivers/usb/image/hpusbscsi.c | 2 +- drivers/usb/image/mdc800.c | 11 +---------- drivers/usb/image/microtek.c | 21 +++------------------ 3 files changed, 5 insertions(+), 29 deletions(-) diff -Nru a/drivers/usb/image/hpusbscsi.c b/drivers/usb/image/hpusbscsi.c --- a/drivers/usb/image/hpusbscsi.c Tue Mar 16 15:01:46 2004 +++ b/drivers/usb/image/hpusbscsi.c Tue Mar 16 15:01:46 2004 @@ -42,7 +42,7 @@ const struct usb_device_id *id) { struct usb_device *dev = interface_to_usbdev(intf); - struct usb_host_interface *altsetting = intf->altsetting; + struct usb_host_interface *altsetting = intf->cur_altsetting; struct hpusbscsi *new; int error = -ENOMEM; int i; diff -Nru a/drivers/usb/image/mdc800.c b/drivers/usb/image/mdc800.c --- a/drivers/usb/image/mdc800.c Tue Mar 16 15:01:46 2004 +++ b/drivers/usb/image/mdc800.c Tue Mar 16 15:01:46 2004 @@ -431,7 +431,7 @@ err ("probe fails -> wrong Number of Configuration"); return -ENODEV; } - intf_desc = &intf->altsetting[0]; + intf_desc = intf->cur_altsetting; if ( ( intf_desc->desc.bInterfaceClass != 0xff ) @@ -469,13 +469,6 @@ } - usb_driver_claim_interface (&mdc800_usb_driver, intf, mdc800); - if (usb_set_interface (dev, intf_desc->desc.bInterfaceNumber, 0) < 0) - { - err ("MDC800 Configuration fails."); - return -ENODEV; - } - info ("Found Mustek MDC800 on USB."); down (&mdc800->io_lock); @@ -550,8 +543,6 @@ usb_unlink_urb (mdc800->irq_urb); usb_unlink_urb (mdc800->write_urb); usb_unlink_urb (mdc800->download_urb); - - usb_driver_release_interface (&mdc800_usb_driver, intf); mdc800->dev=0; usb_set_intfdata(intf, NULL); diff -Nru a/drivers/usb/image/microtek.c b/drivers/usb/image/microtek.c --- a/drivers/usb/image/microtek.c Tue Mar 16 15:01:46 2004 +++ b/drivers/usb/image/microtek.c Tue Mar 16 15:01:46 2004 @@ -693,7 +693,6 @@ const struct usb_device_id *id) { int i; - int result; int ep_out = -1; int ep_in_set[3]; /* this will break if we have more than three endpoints which is why we check */ @@ -703,7 +702,7 @@ struct vendor_product const* p; struct usb_device *dev = interface_to_usbdev (intf); - /* the altsettting 0 on the interface we're probing */ + /* the current altsetting on the interface we're probing */ struct usb_host_interface *altsetting; MTS_DEBUG_GOT_HERE(); @@ -724,8 +723,8 @@ MTS_MESSAGE( "model %s is not known to be fully supported, reports welcome!\n", p->name ); - /* the altsettting 0 on the interface we're probing */ - altsetting = &(intf->altsetting[0]); + /* the current altsetting on the interface we're probing */ + altsetting = intf->cur_altsetting; /* Check if the config is sane */ @@ -765,20 +764,6 @@ if ( ep_out == -1 ) { MTS_WARNING( "couldn't find an output bulk endpoint. Bailing out.\n" ); return -ENODEV; - } - - result = usb_set_interface(dev, altsetting->desc.bInterfaceNumber, 0); - - MTS_DEBUG("usb_set_interface returned %d.\n",result); - switch( result ) - { - case 0: /* no error */ - break; - - default: - MTS_DEBUG( "unknown error %d from usb_set_interface\n", - (int)result ); - return -ENODEV; }