Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

V4L/DVB (3655): Support for a new revision of the WT220U-stick

There seems to be a new version of the USB DVB-T stick from WideView with a new demod-revision inside and thus a new firwmare.
This patch enables support for that.
Thanks to Mikel Martin for early testing.

Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>

authored by

Patrick Boettcher and committed by
Mauro Carvalho Chehab
d46e6451 f8962605

+48 -1
+46 -1
drivers/media/dvb/dvb-usb/dtt200u.c
··· 94 94 95 95 static struct dvb_usb_properties dtt200u_properties; 96 96 static struct dvb_usb_properties wt220u_properties; 97 + static struct dvb_usb_properties wt220u_zl0353_properties; 97 98 98 99 static int dtt200u_usb_probe(struct usb_interface *intf, 99 100 const struct usb_device_id *id) 100 101 { 101 102 if (dvb_usb_device_init(intf,&dtt200u_properties,THIS_MODULE,NULL) == 0 || 102 - dvb_usb_device_init(intf,&wt220u_properties,THIS_MODULE,NULL) == 0) 103 + dvb_usb_device_init(intf,&wt220u_properties,THIS_MODULE,NULL) == 0 || 104 + dvb_usb_device_init(intf,&wt220u_zl0353_properties,THIS_MODULE,NULL) == 0) 103 105 return 0; 104 106 105 107 return -ENODEV; ··· 112 110 { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_DTT200U_WARM) }, 113 111 { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_COLD) }, 114 112 { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_WARM) }, 113 + { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_ZL0353_COLD) }, 114 + { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_WT220U_ZL0353_WARM) }, 115 115 { 0 }, 116 116 }; 117 117 MODULE_DEVICE_TABLE(usb, dtt200u_usb_table); ··· 195 191 { .name = "WideView WT-220U PenType Receiver (Typhoon/Freecom)", 196 192 .cold_ids = { &dtt200u_usb_table[2], NULL }, 197 193 .warm_ids = { &dtt200u_usb_table[3], NULL }, 194 + }, 195 + { NULL }, 196 + } 197 + }; 198 + 199 + static struct dvb_usb_properties wt220u_zl0353_properties = { 200 + .caps = DVB_USB_HAS_PID_FILTER | DVB_USB_NEED_PID_FILTERING, 201 + .pid_filter_count = 15, 202 + 203 + .usb_ctrl = CYPRESS_FX2, 204 + .firmware = "dvb-usb-wt220u-zl0353-01.fw", 205 + 206 + .power_ctrl = dtt200u_power_ctrl, 207 + .streaming_ctrl = dtt200u_streaming_ctrl, 208 + .pid_filter = dtt200u_pid_filter, 209 + .frontend_attach = dtt200u_frontend_attach, 210 + 211 + .rc_interval = 300, 212 + .rc_key_map = dtt200u_rc_keys, 213 + .rc_key_map_size = ARRAY_SIZE(dtt200u_rc_keys), 214 + .rc_query = dtt200u_rc_query, 215 + 216 + .generic_bulk_ctrl_endpoint = 0x01, 217 + 218 + /* parameter for the MPEG2-data transfer */ 219 + .urb = { 220 + .type = DVB_USB_BULK, 221 + .count = 7, 222 + .endpoint = 0x02, 223 + .u = { 224 + .bulk = { 225 + .buffersize = 4096, 226 + } 227 + } 228 + }, 229 + 230 + .num_device_descs = 1, 231 + .devices = { 232 + { .name = "WideView WT-220U PenType Receiver (based on ZL353)", 233 + .cold_ids = { &dtt200u_usb_table[4], NULL }, 234 + .warm_ids = { &dtt200u_usb_table[5], NULL }, 198 235 }, 199 236 { NULL }, 200 237 }
+2
drivers/media/dvb/dvb-usb/dvb-usb-ids.h
··· 83 83 #define USB_PID_DTT200U_WARM 0x0301 84 84 #define USB_PID_WT220U_COLD 0x0222 85 85 #define USB_PID_WT220U_WARM 0x0221 86 + #define USB_PID_WT220U_ZL0353_COLD 0x022a 87 + #define USB_PID_WT220U_ZL0353_WARM 0x022b 86 88 #define USB_PID_WINTV_NOVA_T_USB2_COLD 0x9300 87 89 #define USB_PID_WINTV_NOVA_T_USB2_WARM 0x9301 88 90 #define USB_PID_NEBULA_DIGITV 0x0201