diff options
-rw-r--r-- | drivers/media/dvb/siano/smsusb.c | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/drivers/media/dvb/siano/smsusb.c b/drivers/media/dvb/siano/smsusb.c index 02528f12ecf0..ca9bb36544c0 100644 --- a/drivers/media/dvb/siano/smsusb.c +++ b/drivers/media/dvb/siano/smsusb.c @@ -32,6 +32,14 @@ #define MAX_BUFFERS 50 #define MAX_URBS 10 +/* TO DO: move these to a header file */ +#define USB_VID_SIANO 0x187f + +#define USB_PID_STELLAR 0x0100 +#define USB_PID_NOVA_A 0x0200 +#define USB_PID_NOVA_B 0x0201 +#define USB_PID_VEGA 0x0300 + typedef struct _smsusb_device smsusb_device_t; typedef struct _smsusb_urb @@ -302,7 +310,8 @@ int smsusb_init_device(struct usb_interface *intf) dev->udev = interface_to_usbdev(intf); switch (dev->udev->descriptor.idProduct) { - case 0x100: + + case USB_PID_STELLAR: dev->buffer_size = USB1_BUFFER_SIZE; params.setmode_handler = smsusb1_setmode; @@ -311,13 +320,17 @@ int smsusb_init_device(struct usb_interface *intf) printk(KERN_INFO "%s stellar device found\n", __func__ ); break; default: - if (dev->udev->descriptor.idProduct == 0x200) { + switch (dev->udev->descriptor.idProduct) { + case USB_PID_NOVA_A: params.device_type = SMS_NOVA_A0; printk(KERN_INFO "%s nova A0 found\n", __func__ ); - } else if (dev->udev->descriptor.idProduct == 0x201) { + break; + default: + case USB_PID_NOVA_B: params.device_type = SMS_NOVA_B0; printk(KERN_INFO "%s nova B0 found\n", __func__); - } else { + break; + case USB_PID_VEGA: params.device_type = SMS_VEGA; printk(KERN_INFO "%s Vega found\n", __func__); } @@ -421,9 +434,9 @@ void smsusb_disconnect(struct usb_interface *intf) } static struct usb_device_id smsusb_id_table [] = { - { USB_DEVICE(0x187F, 0x0010) }, - { USB_DEVICE(0x187F, 0x0100) }, - { USB_DEVICE(0x187F, 0x0200) }, + { USB_DEVICE(USB_VID_SIANO, 0x0010) }, + { USB_DEVICE(USB_VID_SIANO, USB_PID_STELLAR) }, + { USB_DEVICE(USB_VID_SIANO, USB_PID_NOVA_A) }, { } /* Terminating entry */ }; MODULE_DEVICE_TABLE (usb, smsusb_id_table); |