[media] cx231xx: Simplify interface checking logic at probe
Just a cleanup patch. Removes one indent level by moving the return -ENODEV to happen before the device register logic, if the interface is not the audio/video (int 1). Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
b8bc77db1e
commit
8bb84227d1
|
@ -844,110 +844,110 @@ static int cx231xx_usb_probe(struct usb_interface *interface,
|
||||||
udev = usb_get_dev(interface_to_usbdev(interface));
|
udev = usb_get_dev(interface_to_usbdev(interface));
|
||||||
ifnum = interface->altsetting[0].desc.bInterfaceNumber;
|
ifnum = interface->altsetting[0].desc.bInterfaceNumber;
|
||||||
|
|
||||||
if (ifnum == 1) {
|
/*
|
||||||
/*
|
* Interface number 0 - IR interface (handled by mceusb driver)
|
||||||
* Interface number 0 - IR interface
|
* Interface number 1 - AV interface (handled by this driver)
|
||||||
*/
|
*/
|
||||||
/* Check to see next free device and mark as used */
|
if (ifnum != 1)
|
||||||
nr = find_first_zero_bit(&cx231xx_devused, CX231XX_MAXBOARDS);
|
return -ENODEV;
|
||||||
cx231xx_devused |= 1 << nr;
|
|
||||||
|
|
||||||
if (nr >= CX231XX_MAXBOARDS) {
|
/* Check to see next free device and mark as used */
|
||||||
cx231xx_err(DRIVER_NAME
|
nr = find_first_zero_bit(&cx231xx_devused, CX231XX_MAXBOARDS);
|
||||||
|
cx231xx_devused |= 1 << nr;
|
||||||
|
|
||||||
|
if (nr >= CX231XX_MAXBOARDS) {
|
||||||
|
cx231xx_err(DRIVER_NAME
|
||||||
": Supports only %i cx231xx boards.\n", CX231XX_MAXBOARDS);
|
": Supports only %i cx231xx boards.\n", CX231XX_MAXBOARDS);
|
||||||
cx231xx_devused &= ~(1 << nr);
|
cx231xx_devused &= ~(1 << nr);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* allocate memory for our device state and initialize it */
|
/* allocate memory for our device state and initialize it */
|
||||||
dev = kzalloc(sizeof(*dev), GFP_KERNEL);
|
dev = kzalloc(sizeof(*dev), GFP_KERNEL);
|
||||||
if (dev == NULL) {
|
if (dev == NULL) {
|
||||||
cx231xx_err(DRIVER_NAME ": out of memory!\n");
|
cx231xx_err(DRIVER_NAME ": out of memory!\n");
|
||||||
cx231xx_devused &= ~(1 << nr);
|
cx231xx_devused &= ~(1 << nr);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
snprintf(dev->name, 29, "cx231xx #%d", nr);
|
snprintf(dev->name, 29, "cx231xx #%d", nr);
|
||||||
dev->devno = nr;
|
dev->devno = nr;
|
||||||
dev->model = id->driver_info;
|
dev->model = id->driver_info;
|
||||||
dev->video_mode.alt = -1;
|
dev->video_mode.alt = -1;
|
||||||
dev->interface_count++;
|
|
||||||
|
|
||||||
/* reset gpio dir and value */
|
dev->interface_count++;
|
||||||
dev->gpio_dir = 0;
|
/* reset gpio dir and value */
|
||||||
dev->gpio_val = 0;
|
dev->gpio_dir = 0;
|
||||||
dev->xc_fw_load_done = 0;
|
dev->gpio_val = 0;
|
||||||
dev->has_alsa_audio = 1;
|
dev->xc_fw_load_done = 0;
|
||||||
dev->power_mode = -1;
|
dev->has_alsa_audio = 1;
|
||||||
atomic_set(&dev->devlist_count, 0);
|
dev->power_mode = -1;
|
||||||
|
atomic_set(&dev->devlist_count, 0);
|
||||||
|
|
||||||
/* 0 - vbi ; 1 -sliced cc mode */
|
/* 0 - vbi ; 1 -sliced cc mode */
|
||||||
dev->vbi_or_sliced_cc_mode = 0;
|
dev->vbi_or_sliced_cc_mode = 0;
|
||||||
|
|
||||||
/* get maximum no.of IAD interfaces */
|
/* get maximum no.of IAD interfaces */
|
||||||
assoc_desc = udev->actconfig->intf_assoc[0];
|
assoc_desc = udev->actconfig->intf_assoc[0];
|
||||||
dev->max_iad_interface_count = assoc_desc->bInterfaceCount;
|
dev->max_iad_interface_count = assoc_desc->bInterfaceCount;
|
||||||
|
|
||||||
/* init CIR module TBD */
|
/* init CIR module TBD */
|
||||||
|
|
||||||
/* store the current interface */
|
/* store the current interface */
|
||||||
lif = interface;
|
lif = interface;
|
||||||
|
|
||||||
/*mode_tv: digital=1 or analog=0*/
|
/*mode_tv: digital=1 or analog=0*/
|
||||||
dev->mode_tv = 0;
|
dev->mode_tv = 0;
|
||||||
|
|
||||||
dev->USE_ISO = transfer_mode;
|
dev->USE_ISO = transfer_mode;
|
||||||
|
|
||||||
switch (udev->speed) {
|
switch (udev->speed) {
|
||||||
case USB_SPEED_LOW:
|
case USB_SPEED_LOW:
|
||||||
speed = "1.5";
|
speed = "1.5";
|
||||||
break;
|
break;
|
||||||
case USB_SPEED_UNKNOWN:
|
case USB_SPEED_UNKNOWN:
|
||||||
case USB_SPEED_FULL:
|
case USB_SPEED_FULL:
|
||||||
speed = "12";
|
speed = "12";
|
||||||
break;
|
break;
|
||||||
case USB_SPEED_HIGH:
|
case USB_SPEED_HIGH:
|
||||||
speed = "480";
|
speed = "480";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
speed = "unknown";
|
speed = "unknown";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (udev->manufacturer)
|
if (udev->manufacturer)
|
||||||
strlcpy(descr, udev->manufacturer, sizeof(descr));
|
strlcpy(descr, udev->manufacturer, sizeof(descr));
|
||||||
|
|
||||||
if (udev->product) {
|
if (udev->product) {
|
||||||
if (*descr)
|
|
||||||
strlcat(descr, " ", sizeof(descr));
|
|
||||||
strlcat(descr, udev->product, sizeof(descr));
|
|
||||||
}
|
|
||||||
if (*descr)
|
if (*descr)
|
||||||
strlcat(descr, " ", sizeof(descr));
|
strlcat(descr, " ", sizeof(descr));
|
||||||
|
strlcat(descr, udev->product, sizeof(descr));
|
||||||
|
}
|
||||||
|
if (*descr)
|
||||||
|
strlcat(descr, " ", sizeof(descr));
|
||||||
|
|
||||||
cx231xx_info("New device %s@ %s Mbps "
|
cx231xx_info("New device %s@ %s Mbps "
|
||||||
"(%04x:%04x) with %d interfaces\n",
|
"(%04x:%04x) with %d interfaces\n",
|
||||||
descr,
|
descr,
|
||||||
speed,
|
speed,
|
||||||
le16_to_cpu(udev->descriptor.idVendor),
|
le16_to_cpu(udev->descriptor.idVendor),
|
||||||
le16_to_cpu(udev->descriptor.idProduct),
|
le16_to_cpu(udev->descriptor.idProduct),
|
||||||
dev->max_iad_interface_count);
|
dev->max_iad_interface_count);
|
||||||
|
|
||||||
/* store the interface 0 back */
|
/* store the interface 0 back */
|
||||||
lif = udev->actconfig->interface[0];
|
lif = udev->actconfig->interface[0];
|
||||||
|
|
||||||
/* increment interface count */
|
/* increment interface count */
|
||||||
dev->interface_count++;
|
dev->interface_count++;
|
||||||
|
|
||||||
/* get device number */
|
/* get device number */
|
||||||
nr = dev->devno;
|
nr = dev->devno;
|
||||||
|
|
||||||
assoc_desc = udev->actconfig->intf_assoc[0];
|
assoc_desc = udev->actconfig->intf_assoc[0];
|
||||||
if (assoc_desc->bFirstInterface != ifnum) {
|
if (assoc_desc->bFirstInterface != ifnum) {
|
||||||
cx231xx_err(DRIVER_NAME ": Not found "
|
cx231xx_err(DRIVER_NAME ": Not found "
|
||||||
"matching IAD interface\n");
|
"matching IAD interface\n");
|
||||||
return -ENODEV;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue