[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:
Mauro Carvalho Chehab 2011-01-29 22:10:56 -03:00
parent b8bc77db1e
commit 8bb84227d1
1 changed files with 83 additions and 83 deletions

View File

@ -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;
} }