|
@@ -299,7 +299,7 @@ struct tm6000_board tm6000_boards[] = {
|
|
|
};
|
|
|
|
|
|
/* table of devices that work with this driver */
|
|
|
-struct usb_device_id tm6000_id_table [] = {
|
|
|
+struct usb_device_id tm6000_id_table[] = {
|
|
|
{ USB_DEVICE(0x6000, 0x0001), .driver_info = TM5600_BOARD_10MOONS_UT821 },
|
|
|
{ USB_DEVICE(0x6000, 0x0002), .driver_info = TM6010_BOARD_GENERIC },
|
|
|
{ USB_DEVICE(0x06e1, 0xf332), .driver_info = TM6000_BOARD_ADSTECH_DUAL_TV },
|
|
@@ -324,23 +324,23 @@ struct usb_device_id tm6000_id_table [] = {
|
|
|
|
|
|
int tm6000_tuner_callback(void *ptr, int component, int command, int arg)
|
|
|
{
|
|
|
- int rc=0;
|
|
|
+ int rc = 0;
|
|
|
struct tm6000_core *dev = ptr;
|
|
|
|
|
|
- if (dev->tuner_type!=TUNER_XC2028)
|
|
|
+ if (dev->tuner_type != TUNER_XC2028)
|
|
|
return 0;
|
|
|
|
|
|
switch (command) {
|
|
|
case XC2028_RESET_CLK:
|
|
|
- tm6000_set_reg (dev, REQ_04_EN_DISABLE_MCU_INT,
|
|
|
+ tm6000_set_reg(dev, REQ_04_EN_DISABLE_MCU_INT,
|
|
|
0x02, arg);
|
|
|
msleep(10);
|
|
|
- rc=tm6000_set_reg (dev, REQ_03_SET_GET_MCU_PIN,
|
|
|
+ rc = tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
|
|
|
TM6000_GPIO_CLK, 0);
|
|
|
- if (rc<0)
|
|
|
+ if (rc < 0)
|
|
|
return rc;
|
|
|
msleep(10);
|
|
|
- rc=tm6000_set_reg (dev, REQ_03_SET_GET_MCU_PIN,
|
|
|
+ rc = tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
|
|
|
TM6000_GPIO_CLK, 1);
|
|
|
break;
|
|
|
case XC2028_TUNER_RESET:
|
|
@@ -389,24 +389,24 @@ int tm6000_tuner_callback(void *ptr, int component, int command, int arg)
|
|
|
}
|
|
|
break;
|
|
|
case 1:
|
|
|
- tm6000_set_reg (dev, REQ_04_EN_DISABLE_MCU_INT,
|
|
|
+ tm6000_set_reg(dev, REQ_04_EN_DISABLE_MCU_INT,
|
|
|
0x02, 0x01);
|
|
|
msleep(10);
|
|
|
break;
|
|
|
|
|
|
case 2:
|
|
|
- rc=tm6000_set_reg (dev, REQ_03_SET_GET_MCU_PIN,
|
|
|
+ rc = tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
|
|
|
TM6000_GPIO_CLK, 0);
|
|
|
- if (rc<0)
|
|
|
+ if (rc < 0)
|
|
|
return rc;
|
|
|
msleep(100);
|
|
|
- rc=tm6000_set_reg (dev, REQ_03_SET_GET_MCU_PIN,
|
|
|
+ rc = tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
|
|
|
TM6000_GPIO_CLK, 1);
|
|
|
msleep(100);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- return (rc);
|
|
|
+ return rc;
|
|
|
}
|
|
|
|
|
|
int tm6000_cards_setup(struct tm6000_core *dev)
|
|
@@ -507,28 +507,28 @@ int tm6000_cards_setup(struct tm6000_core *dev)
|
|
|
return 0;
|
|
|
};
|
|
|
|
|
|
-static void tm6000_config_tuner (struct tm6000_core *dev)
|
|
|
+static void tm6000_config_tuner(struct tm6000_core *dev)
|
|
|
{
|
|
|
- struct tuner_setup tun_setup;
|
|
|
+ struct tuner_setup tun_setup;
|
|
|
|
|
|
/* Load tuner module */
|
|
|
v4l2_i2c_new_subdev(&dev->v4l2_dev, &dev->i2c_adap,
|
|
|
- "tuner", "tuner",dev->tuner_addr, NULL);
|
|
|
+ "tuner", "tuner", dev->tuner_addr, NULL);
|
|
|
|
|
|
memset(&tun_setup, 0, sizeof(tun_setup));
|
|
|
- tun_setup.type = dev->tuner_type;
|
|
|
- tun_setup.addr = dev->tuner_addr;
|
|
|
+ tun_setup.type = dev->tuner_type;
|
|
|
+ tun_setup.addr = dev->tuner_addr;
|
|
|
tun_setup.mode_mask = T_ANALOG_TV | T_RADIO | T_DIGITAL_TV;
|
|
|
tun_setup.tuner_callback = tm6000_tuner_callback;
|
|
|
|
|
|
v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_type_addr, &tun_setup);
|
|
|
|
|
|
if (dev->tuner_type == TUNER_XC2028) {
|
|
|
- struct v4l2_priv_tun_config xc2028_cfg;
|
|
|
- struct xc2028_ctrl ctl;
|
|
|
+ struct v4l2_priv_tun_config xc2028_cfg;
|
|
|
+ struct xc2028_ctrl ctl;
|
|
|
|
|
|
memset(&xc2028_cfg, 0, sizeof(xc2028_cfg));
|
|
|
- memset (&ctl,0,sizeof(ctl));
|
|
|
+ memset(&ctl, 0, sizeof(ctl));
|
|
|
|
|
|
ctl.input1 = 1;
|
|
|
ctl.read_not_reliable = 0;
|
|
@@ -539,7 +539,7 @@ static void tm6000_config_tuner (struct tm6000_core *dev)
|
|
|
xc2028_cfg.tuner = TUNER_XC2028;
|
|
|
xc2028_cfg.priv = &ctl;
|
|
|
|
|
|
- switch(dev->model) {
|
|
|
+ switch (dev->model) {
|
|
|
case TM6010_BOARD_HAUPPAUGE_900H:
|
|
|
case TM6010_BOARD_TERRATEC_CINERGY_HYBRID_XE:
|
|
|
case TM6010_BOARD_TWINHAN_TU501:
|
|
@@ -580,8 +580,8 @@ static int tm6000_init_dev(struct tm6000_core *dev)
|
|
|
dev->caps = tm6000_boards[dev->model].caps;
|
|
|
|
|
|
/* initialize hardware */
|
|
|
- rc=tm6000_init (dev);
|
|
|
- if (rc<0)
|
|
|
+ rc = tm6000_init(dev);
|
|
|
+ if (rc < 0)
|
|
|
goto err;
|
|
|
|
|
|
rc = v4l2_device_register(&dev->udev->dev, &dev->v4l2_dev);
|
|
@@ -589,8 +589,8 @@ static int tm6000_init_dev(struct tm6000_core *dev)
|
|
|
goto err;
|
|
|
|
|
|
/* register i2c bus */
|
|
|
- rc=tm6000_i2c_register(dev);
|
|
|
- if (rc<0)
|
|
|
+ rc = tm6000_i2c_register(dev);
|
|
|
+ if (rc < 0)
|
|
|
goto err;
|
|
|
|
|
|
/* Default values for STD and resolutions */
|
|
@@ -599,7 +599,7 @@ static int tm6000_init_dev(struct tm6000_core *dev)
|
|
|
dev->norm = V4L2_STD_PAL_M;
|
|
|
|
|
|
/* Configure tuner */
|
|
|
- tm6000_config_tuner (dev);
|
|
|
+ tm6000_config_tuner(dev);
|
|
|
|
|
|
/* Set video standard */
|
|
|
v4l2_device_call_all(&dev->v4l2_dev, 0, core, s_std, dev->norm);
|
|
@@ -616,20 +616,20 @@ static int tm6000_init_dev(struct tm6000_core *dev)
|
|
|
"tvaudio", "tvaudio", I2C_ADDR_TDA9874, NULL);
|
|
|
|
|
|
/* register and initialize V4L2 */
|
|
|
- rc=tm6000_v4l2_register(dev);
|
|
|
- if (rc<0)
|
|
|
+ rc = tm6000_v4l2_register(dev);
|
|
|
+ if (rc < 0)
|
|
|
goto err;
|
|
|
|
|
|
- if(dev->caps.has_dvb) {
|
|
|
+ if (dev->caps.has_dvb) {
|
|
|
dev->dvb = kzalloc(sizeof(*(dev->dvb)), GFP_KERNEL);
|
|
|
- if(!dev->dvb) {
|
|
|
+ if (!dev->dvb) {
|
|
|
rc = -ENOMEM;
|
|
|
goto err2;
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_VIDEO_TM6000_DVB
|
|
|
rc = tm6000_dvb_register(dev);
|
|
|
- if(rc < 0) {
|
|
|
+ if (rc < 0) {
|
|
|
kfree(dev->dvb);
|
|
|
dev->dvb = NULL;
|
|
|
goto err2;
|
|
@@ -668,7 +668,7 @@ static void get_max_endpoint(struct usb_device *udev,
|
|
|
tm_ep->bInterfaceNumber = alt->desc.bInterfaceNumber;
|
|
|
tm_ep->bAlternateSetting = alt->desc.bAlternateSetting;
|
|
|
|
|
|
- printk("tm6000: %s endpoint: 0x%02x (max size=%u bytes)\n",
|
|
|
+ printk(KERN_INFO "tm6000: %s endpoint: 0x%02x (max size=%u bytes)\n",
|
|
|
msgtype, curr_e->desc.bEndpointAddress,
|
|
|
size);
|
|
|
}
|
|
@@ -683,22 +683,21 @@ static int tm6000_usb_probe(struct usb_interface *interface,
|
|
|
{
|
|
|
struct usb_device *usbdev;
|
|
|
struct tm6000_core *dev = NULL;
|
|
|
- int i,rc=0;
|
|
|
- int nr=0;
|
|
|
+ int i, rc = 0;
|
|
|
+ int nr = 0;
|
|
|
char *speed;
|
|
|
|
|
|
-
|
|
|
- usbdev=usb_get_dev(interface_to_usbdev(interface));
|
|
|
+ usbdev = usb_get_dev(interface_to_usbdev(interface));
|
|
|
|
|
|
/* Selects the proper interface */
|
|
|
- rc=usb_set_interface(usbdev,0,1);
|
|
|
- if (rc<0)
|
|
|
+ rc = usb_set_interface(usbdev, 0, 1);
|
|
|
+ if (rc < 0)
|
|
|
goto err;
|
|
|
|
|
|
/* Check to see next free device and mark as used */
|
|
|
- nr=find_first_zero_bit(&tm6000_devused,TM6000_MAXBOARDS);
|
|
|
+ nr = find_first_zero_bit(&tm6000_devused, TM6000_MAXBOARDS);
|
|
|
if (nr >= TM6000_MAXBOARDS) {
|
|
|
- printk ("tm6000: Supports only %i tm60xx boards.\n",TM6000_MAXBOARDS);
|
|
|
+ printk(KERN_ERR "tm6000: Supports only %i tm60xx boards.\n", TM6000_MAXBOARDS);
|
|
|
usb_put_dev(usbdev);
|
|
|
return -ENOMEM;
|
|
|
}
|
|
@@ -706,24 +705,23 @@ static int tm6000_usb_probe(struct usb_interface *interface,
|
|
|
/* Create and initialize dev struct */
|
|
|
dev = kzalloc(sizeof(*dev), GFP_KERNEL);
|
|
|
if (dev == NULL) {
|
|
|
- printk ("tm6000" ": out of memory!\n");
|
|
|
+ printk(KERN_ERR "tm6000" ": out of memory!\n");
|
|
|
usb_put_dev(usbdev);
|
|
|
return -ENOMEM;
|
|
|
}
|
|
|
spin_lock_init(&dev->slock);
|
|
|
|
|
|
/* Increment usage count */
|
|
|
- tm6000_devused|=1<<nr;
|
|
|
+ tm6000_devused |= 1<<nr;
|
|
|
snprintf(dev->name, 29, "tm6000 #%d", nr);
|
|
|
|
|
|
- dev->model=id->driver_info;
|
|
|
- if ((card[nr]>=0) && (card[nr]<ARRAY_SIZE(tm6000_boards))) {
|
|
|
- dev->model=card[nr];
|
|
|
- }
|
|
|
+ dev->model = id->driver_info;
|
|
|
+ if ((card[nr] >= 0) && (card[nr] < ARRAY_SIZE(tm6000_boards)))
|
|
|
+ dev->model = card[nr];
|
|
|
|
|
|
INIT_LIST_HEAD(&dev->tm6000_corelist);
|
|
|
- dev->udev= usbdev;
|
|
|
- dev->devno=nr;
|
|
|
+ dev->udev = usbdev;
|
|
|
+ dev->devno = nr;
|
|
|
|
|
|
switch (usbdev->speed) {
|
|
|
case USB_SPEED_LOW:
|
|
@@ -755,7 +753,7 @@ static int tm6000_usb_probe(struct usb_interface *interface,
|
|
|
dir_out = ((e->desc.bEndpointAddress &
|
|
|
USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT);
|
|
|
|
|
|
- printk("tm6000: alt %d, interface %i, class %i\n",
|
|
|
+ printk(KERN_INFO "tm6000: alt %d, interface %i, class %i\n",
|
|
|
i,
|
|
|
interface->altsetting[i].desc.bInterfaceNumber,
|
|
|
interface->altsetting[i].desc.bInterfaceClass);
|
|
@@ -792,7 +790,7 @@ static int tm6000_usb_probe(struct usb_interface *interface,
|
|
|
}
|
|
|
|
|
|
|
|
|
- printk("tm6000: New video device @ %s Mbps (%04x:%04x, ifnum %d)\n",
|
|
|
+ printk(KERN_INFO "tm6000: New video device @ %s Mbps (%04x:%04x, ifnum %d)\n",
|
|
|
speed,
|
|
|
le16_to_cpu(dev->udev->descriptor.idVendor),
|
|
|
le16_to_cpu(dev->udev->descriptor.idProduct),
|
|
@@ -800,8 +798,8 @@ static int tm6000_usb_probe(struct usb_interface *interface,
|
|
|
|
|
|
/* check if the the device has the iso in endpoint at the correct place */
|
|
|
if (!dev->isoc_in.endp) {
|
|
|
- printk("tm6000: probing error: no IN ISOC endpoint!\n");
|
|
|
- rc= -ENODEV;
|
|
|
+ printk(KERN_ERR "tm6000: probing error: no IN ISOC endpoint!\n");
|
|
|
+ rc = -ENODEV;
|
|
|
|
|
|
goto err;
|
|
|
}
|
|
@@ -809,19 +807,19 @@ static int tm6000_usb_probe(struct usb_interface *interface,
|
|
|
/* save our data pointer in this interface device */
|
|
|
usb_set_intfdata(interface, dev);
|
|
|
|
|
|
- printk("tm6000: Found %s\n", tm6000_boards[dev->model].name);
|
|
|
+ printk(KERN_INFO "tm6000: Found %s\n", tm6000_boards[dev->model].name);
|
|
|
|
|
|
- rc=tm6000_init_dev(dev);
|
|
|
+ rc = tm6000_init_dev(dev);
|
|
|
|
|
|
- if (rc<0)
|
|
|
+ if (rc < 0)
|
|
|
goto err;
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
err:
|
|
|
- printk("tm6000: Error %d while registering\n", rc);
|
|
|
+ printk(KERN_ERR "tm6000: Error %d while registering\n", rc);
|
|
|
|
|
|
- tm6000_devused&=~(1<<nr);
|
|
|
+ tm6000_devused &= ~(1<<nr);
|
|
|
usb_put_dev(usbdev);
|
|
|
|
|
|
kfree(dev);
|
|
@@ -841,12 +839,12 @@ static void tm6000_usb_disconnect(struct usb_interface *interface)
|
|
|
if (!dev)
|
|
|
return;
|
|
|
|
|
|
- printk("tm6000: disconnecting %s\n", dev->name);
|
|
|
+ printk(KERN_INFO "tm6000: disconnecting %s\n", dev->name);
|
|
|
|
|
|
mutex_lock(&dev->lock);
|
|
|
|
|
|
#ifdef CONFIG_VIDEO_TM6000_DVB
|
|
|
- if(dev->dvb) {
|
|
|
+ if (dev->dvb) {
|
|
|
tm6000_dvb_unregister(dev);
|
|
|
kfree(dev->dvb);
|
|
|
}
|
|
@@ -858,8 +856,6 @@ static void tm6000_usb_disconnect(struct usb_interface *interface)
|
|
|
|
|
|
v4l2_device_unregister(&dev->v4l2_dev);
|
|
|
|
|
|
-// wake_up_interruptible_all(&dev->open);
|
|
|
-
|
|
|
dev->state |= DEV_DISCONNECTED;
|
|
|
|
|
|
usb_put_dev(dev->udev);
|
|
@@ -886,7 +882,7 @@ static int __init tm6000_module_init(void)
|
|
|
/* register this driver with the USB subsystem */
|
|
|
result = usb_register(&tm6000_usb_driver);
|
|
|
if (result)
|
|
|
- printk("tm6000"
|
|
|
+ printk(KERN_ERR "tm6000"
|
|
|
" usb_register failed. Error number %d.\n", result);
|
|
|
|
|
|
return result;
|