patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / drivers / usb / media / ov511.c
index cde6a02..c9cef99 100644 (file)
@@ -5603,8 +5603,16 @@ ov518_configure(struct usb_ov511 *ov)
 
        if (ov->bridge == BRG_OV518)
        {
-               struct usb_interface *ifp = ov->dev->config[0].interface[0];
-               __u16 mxps = ifp->altsetting[7].endpoint[0].desc.wMaxPacketSize;
+               struct usb_interface *ifp;
+               struct usb_host_interface *alt;
+               __u16 mxps = 0;
+
+               ifp = usb_ifnum_to_if(ov->dev, 0);
+               if (ifp) {
+                       alt = usb_altnum_to_altsetting(ifp, 7);
+                       if (alt)
+                               mxps = alt->endpoint[0].desc.wMaxPacketSize;
+               }
 
                /* Some OV518s have packet numbering by default, some don't */
                if (mxps == 897)
@@ -5805,7 +5813,7 @@ ov51x_probe(struct usb_interface *intf, const struct usb_device_id *id)
        if (dev->descriptor.bNumConfigurations != 1)
                return -ENODEV;
 
-       idesc = &intf->altsetting[0].desc;
+       idesc = &intf->cur_altsetting->desc;
 
        if (idesc->bInterfaceClass != 0xFF)
                return -ENODEV;