Although the interface could be set in identify state, ideally it should be 
done in
the probe.

Allow d->props.bInterfaceNumber try to set the correct interface rather than 
return error.


Signed-off-by: Malcolm Priestley <tvbox...@gmail.com>
---
 drivers/media/dvb/dvb-usb/dvb_usb_init.c |   11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/media/dvb/dvb-usb/dvb_usb_init.c 
b/drivers/media/dvb/dvb-usb/dvb_usb_init.c
index c16a28a..b2eb8ac 100644
--- a/drivers/media/dvb/dvb-usb/dvb_usb_init.c
+++ b/drivers/media/dvb/dvb-usb/dvb_usb_init.c
@@ -391,8 +391,15 @@ int dvb_usbv2_probe(struct usb_interface *intf,
 
        if (d->intf->cur_altsetting->desc.bInterfaceNumber !=
                        d->props.bInterfaceNumber) {
-               ret = -ENODEV;
-               goto err_kfree;
+               usb_reset_configuration(d->udev);
+
+               ret = usb_set_interface(d->udev,
+                       d->intf->cur_altsetting->desc.bInterfaceNumber,
+                               d->props.bInterfaceNumber);
+               if (ret < 0) {
+                       ret = -ENODEV;
+                       goto err_kfree;
+               }
        }
 
        mutex_init(&d->usb_mutex);
-- 
1.7.10








--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to