Commit c9455fbb authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

V4L/DVB (9717): em28xx: improve message probing logs

On some em28xx devices, there's an unused interface. This is printed on
the logs as an error. We can just ignore that interface.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 6e4ae872
...@@ -2196,12 +2196,6 @@ static int em28xx_usb_probe(struct usb_interface *interface, ...@@ -2196,12 +2196,6 @@ static int em28xx_usb_probe(struct usb_interface *interface,
return -ENODEV; return -ENODEV;
} }
em28xx_err(DRIVER_NAME " new video device (%04x:%04x): interface %i, class %i\n",
udev->descriptor.idVendor,
udev->descriptor.idProduct,
ifnum,
interface->altsetting[0].desc.bInterfaceClass);
endpoint = &interface->cur_altsetting->endpoint[0].desc; endpoint = &interface->cur_altsetting->endpoint[0].desc;
/* check if the device has the iso in endpoint at the correct place */ /* check if the device has the iso in endpoint at the correct place */
...@@ -2212,21 +2206,39 @@ static int em28xx_usb_probe(struct usb_interface *interface, ...@@ -2212,21 +2206,39 @@ static int em28xx_usb_probe(struct usb_interface *interface,
/* It's a newer em2874/em2875 device */ /* It's a newer em2874/em2875 device */
isoc_pipe = 0; isoc_pipe = 0;
} else { } else {
int check_interface = 1;
isoc_pipe = 1; isoc_pipe = 1;
endpoint = &interface->cur_altsetting->endpoint[1].desc; endpoint = &interface->cur_altsetting->endpoint[1].desc;
if ((endpoint->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) != if ((endpoint->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) !=
USB_ENDPOINT_XFER_ISOC) { USB_ENDPOINT_XFER_ISOC)
em28xx_err(DRIVER_NAME " probing error: endpoint is non-ISO endpoint!\n"); check_interface = 0;
em28xx_devused &= ~(1<<nr);
return -ENODEV; if ((endpoint->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT)
} check_interface = 0;
if ((endpoint->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT) {
em28xx_err(DRIVER_NAME " probing error: endpoint is ISO OUT endpoint!\n"); if (!check_interface) {
em28xx_err(DRIVER_NAME " video device (%04x:%04x): "
"interface %i, class %i found.\n",
udev->descriptor.idVendor,
udev->descriptor.idProduct,
ifnum,
interface->altsetting[0].desc.bInterfaceClass);
em28xx_err(DRIVER_NAME " This is an anciliary "
"interface not used by the driver\n");
em28xx_devused &= ~(1<<nr); em28xx_devused &= ~(1<<nr);
return -ENODEV; return -ENODEV;
} }
} }
em28xx_err(DRIVER_NAME " new video device (%04x:%04x): interface %i, class %i\n",
udev->descriptor.idVendor,
udev->descriptor.idProduct,
ifnum,
interface->altsetting[0].desc.bInterfaceClass);
if (nr >= EM28XX_MAXBOARDS) { if (nr >= EM28XX_MAXBOARDS) {
printk(DRIVER_NAME ": Supports only %i em28xx boards.\n", printk(DRIVER_NAME ": Supports only %i em28xx boards.\n",
EM28XX_MAXBOARDS); EM28XX_MAXBOARDS);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment