History

media: dvb-usb: dibusb-mb: use an enum for the device number

The device number is currently a value that needs to be the same on two separate tables, but the code doesn't actually enforce it, leading to errors as boards get added or removed. Fix it by using an enum.

Mauro Carvalho Chehab committed 4 years ago

Commit d7634791 parent 5710a242 files · +101 −75Browse files

Unified · Split

2 files
  1. drivers/media/usb/dvb-usb/dibusb-mb.c +93 −72
  2. include/media/dvb-usb-ids.h +8 −3
drivers/media/usb/dvb-usb/dibusb-mb.c+93−72
@@ -121,56 +121,77 @@ static int dibusb_probe(struct usb_interface *intf, · 120 unmodified lines
121}121}
122 122
123/* do not change the order of the ID table */123/* do not change the order of the ID table */
124static struct usb_device_id dibusb_dib3000mb_table [] = {124enum {
125/* 00 */ { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_AVERMEDIA_DVBT_USB_COLD) },125 WIDEVIEW_DVBT_USB_COLD,
126/* 01 */ { USB_DEVICE(USB_VID_WIDEVIEW, USB_PID_AVERMEDIA_DVBT_USB_WARM) },126 WIDEVIEW_DVBT_USB_WARM,
127/* 02 */ { USB_DEVICE(USB_VID_COMPRO, USB_PID_COMPRO_DVBU2000_COLD) },127 COMPRO_DVBU2000_COLD,
128/* 03 */ { USB_DEVICE(USB_VID_COMPRO, USB_PID_COMPRO_DVBU2000_WARM) },128 COMPRO_DVBU2000_WARM,
129/* 04 */ { USB_DEVICE(USB_VID_COMPRO_UNK, USB_PID_COMPRO_DVBU2000_UNK_COLD) },129 COMPRO_DVBU2000_UNK_COLD,
130/* 05 */ { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_MOD3000_COLD) },130 DIBCOM_MOD3000_COLD,
131/* 06 */ { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_MOD3000_WARM) },131 DIBCOM_MOD3000_WARM,
132/* 07 */ { USB_DEVICE(USB_VID_EMPIA, USB_PID_KWORLD_VSTREAM_COLD) },132 EMPIA_VSTREAM_COLD,
133/* 08 */ { USB_DEVICE(USB_VID_EMPIA, USB_PID_KWORLD_VSTREAM_WARM) },133 EMPIA_VSTREAM_WARM,
134/* 09 */ { USB_DEVICE(USB_VID_GRANDTEC, USB_PID_GRANDTEC_DVBT_USB_COLD) },134 GRANDTEC_DVBT_USB_COLD,
135/* 10 */ { USB_DEVICE(USB_VID_GRANDTEC, USB_PID_GRANDTEC_DVBT_USB_WARM) },135 GRANDTEC_DVBT_USB_WARM,
136/* 11 */ { USB_DEVICE(USB_VID_GRANDTEC, USB_PID_DIBCOM_MOD3000_COLD) },136 GRANDTEC_MOD3000_COLD,
137/* 12 */ { USB_DEVICE(USB_VID_GRANDTEC, USB_PID_DIBCOM_MOD3000_WARM) },137 GRANDTEC_MOD3000_WARM,
138/* 13 */ { USB_DEVICE(USB_VID_HYPER_PALTEK, USB_PID_UNK_HYPER_PALTEK_COLD) },138 UNK_HYPER_PALTEK_COLD,
139/* 14 */ { USB_DEVICE(USB_VID_HYPER_PALTEK, USB_PID_UNK_HYPER_PALTEK_WARM) },139 UNK_HYPER_PALTEK_WARM,
140/* 15 */ { USB_DEVICE(USB_VID_VISIONPLUS, USB_PID_TWINHAN_VP7041_COLD) },140 VISIONPLUS_VP7041_COLD,
141/* 16 */ { USB_DEVICE(USB_VID_VISIONPLUS, USB_PID_TWINHAN_VP7041_WARM) },141 VISIONPLUS_VP7041_WARM,
142/* 17 */ { USB_DEVICE(USB_VID_TWINHAN, USB_PID_TWINHAN_VP7041_COLD) },142 TWINHAN_VP7041_COLD,
143/* 18 */ { USB_DEVICE(USB_VID_TWINHAN, USB_PID_TWINHAN_VP7041_WARM) },143 TWINHAN_VP7041_WARM,
144/* 19 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_COLD) },144 ULTIMA_TVBOX_COLD,
145/* 20 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_WARM) },145 ULTIMA_TVBOX_WARM,
146/* 21 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_AN2235_COLD) },146 ULTIMA_TVBOX_AN2235_COLD,
147/* 22 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_AN2235_WARM) },147 ULTIMA_TVBOX_AN2235_WARM,
148/* 23 */ { USB_DEVICE(USB_VID_ADSTECH, USB_PID_ADSTECH_USB2_COLD) },148 ADSTECH_USB2_COLD,
149 149 ADSTECH_USB2_WARM,
150/* device ID with default DIBUSB2_0-firmware and with the hacked firmware */150 KYE_DVB_T_COLD,
151/* 24 */ { USB_DEVICE(USB_VID_ADSTECH, USB_PID_ADSTECH_USB2_WARM) },151 KYE_DVB_T_WARM,
152/* 25 */ { USB_DEVICE(USB_VID_KYE, USB_PID_KYE_DVB_T_COLD) },152 KWORLD_VSTREAM_COLD,
153/* 26 */ { USB_DEVICE(USB_VID_KYE, USB_PID_KYE_DVB_T_WARM) },153 ULTIMA_TVBOX_USB2_COLD,
154 154 ULTIMA_TVBOX_USB2_WARM,
155/* 27 */ { USB_DEVICE(USB_VID_KWORLD, USB_PID_KWORLD_VSTREAM_COLD) },155 ULTIMA_TVBOX_ANCHOR_COLD,
156 156};
157/* 28 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_USB2_COLD) },
158/* 29 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_USB2_WARM) },
159
160/*
161 * XXX: As Artec just 'forgot' to program the EEPROM on some Artec T1 devices
162 * we don't catch these faulty IDs (namely 'Cypress FX1 USB controller') that
163 * have been left on the device. If you don't have such a device but an Artec
164 * device that's supposed to work with this driver but is not detected by it,
165 * free to enable CONFIG_DVB_USB_DIBUSB_MB_FAULTY via your kernel config.
166 */
167 157
158static struct usb_device_id dibusb_dib3000mb_table[] = {
159 DVB_USB_DEV(WIDEVIEW, WIDEVIEW_DVBT_USB_COLD),
160 DVB_USB_DEV(WIDEVIEW, WIDEVIEW_DVBT_USB_WARM),
161 DVB_USB_DEV(COMPRO, COMPRO_DVBU2000_COLD),
162 DVB_USB_DEV(COMPRO, COMPRO_DVBU2000_WARM),
163 DVB_USB_DEV(COMPRO_UNK, COMPRO_DVBU2000_UNK_COLD),
164 DVB_USB_DEV(DIBCOM, DIBCOM_MOD3000_COLD),
165 DVB_USB_DEV(DIBCOM, DIBCOM_MOD3000_WARM),
166 DVB_USB_DEV(EMPIA, EMPIA_VSTREAM_COLD),
167 DVB_USB_DEV(EMPIA, EMPIA_VSTREAM_WARM),
168 DVB_USB_DEV(GRANDTEC, GRANDTEC_DVBT_USB_COLD),
169 DVB_USB_DEV(GRANDTEC, GRANDTEC_DVBT_USB_WARM),
170 DVB_USB_DEV(GRANDTEC, GRANDTEC_MOD3000_COLD),
171 DVB_USB_DEV(GRANDTEC, GRANDTEC_MOD3000_WARM),
172 DVB_USB_DEV(HYPER_PALTEK, UNK_HYPER_PALTEK_COLD),
173 DVB_USB_DEV(HYPER_PALTEK, UNK_HYPER_PALTEK_WARM),
174 DVB_USB_DEV(VISIONPLUS, VISIONPLUS_VP7041_COLD),
175 DVB_USB_DEV(VISIONPLUS, VISIONPLUS_VP7041_WARM),
176 DVB_USB_DEV(TWINHAN, TWINHAN_VP7041_COLD),
177 DVB_USB_DEV(TWINHAN, TWINHAN_VP7041_WARM),
178 DVB_USB_DEV(ULTIMA_ELECTRONIC, ULTIMA_TVBOX_COLD),
179 DVB_USB_DEV(ULTIMA_ELECTRONIC, ULTIMA_TVBOX_WARM),
180 DVB_USB_DEV(ULTIMA_ELECTRONIC, ULTIMA_TVBOX_AN2235_COLD),
181 DVB_USB_DEV(ULTIMA_ELECTRONIC, ULTIMA_TVBOX_AN2235_WARM),
182 DVB_USB_DEV(ADSTECH, ADSTECH_USB2_COLD),
183 DVB_USB_DEV(ADSTECH, ADSTECH_USB2_WARM),
184 DVB_USB_DEV(KYE, KYE_DVB_T_COLD),
185 DVB_USB_DEV(KYE, KYE_DVB_T_WARM),
186 DVB_USB_DEV(KWORLD, KWORLD_VSTREAM_COLD),
187 DVB_USB_DEV(ULTIMA_ELECTRONIC, ULTIMA_TVBOX_USB2_COLD),
188 DVB_USB_DEV(ULTIMA_ELECTRONIC, ULTIMA_TVBOX_USB2_WARM),
168#ifdef CONFIG_DVB_USB_DIBUSB_MB_FAULTY189#ifdef CONFIG_DVB_USB_DIBUSB_MB_FAULTY
169/* 30 */ { USB_DEVICE(USB_VID_ANCHOR, USB_PID_ULTIMA_TVBOX_ANCHOR_COLD) },190 DVB_USB_DEV(ANCHOR, ULTIMA_TVBOX_ANCHOR_COLD),
170#endif191#endif
171 192 { }
172 { } /* Terminating entry */
173};193};
194
174MODULE_DEVICE_TABLE (usb, dibusb_dib3000mb_table);195MODULE_DEVICE_TABLE (usb, dibusb_dib3000mb_table);
175 196
176static struct dvb_usb_device_properties dibusb1_1_properties = {197static struct dvb_usb_device_properties dibusb1_1_properties = {
@@ -226,40 +247,40 @@ static struct dvb_usb_device_properties dibusb1_1_properties = { · 49 unmodified lines
226 .num_device_descs = 9,247 .num_device_descs = 9,
227 .devices = {248 .devices = {
228 { "AVerMedia AverTV DVBT USB1.1",249 { "AVerMedia AverTV DVBT USB1.1",
229 { &dibusb_dib3000mb_table[0], NULL },250 { &dibusb_dib3000mb_table[WIDEVIEW_DVBT_USB_COLD], NULL },
230 { &dibusb_dib3000mb_table[1], NULL },251 { &dibusb_dib3000mb_table[WIDEVIEW_DVBT_USB_WARM], NULL },
231 },252 },
232 { "Compro Videomate DVB-U2000 - DVB-T USB1.1 (please confirm to linux-dvb)",253 { "Compro Videomate DVB-U2000 - DVB-T USB1.1 (please confirm to linux-dvb)",
233 { &dibusb_dib3000mb_table[2], &dibusb_dib3000mb_table[4], NULL},254 { &dibusb_dib3000mb_table[COMPRO_DVBU2000_COLD], &dibusb_dib3000mb_table[COMPRO_DVBU2000_UNK_COLD], NULL},
234 { &dibusb_dib3000mb_table[3], NULL },255 { &dibusb_dib3000mb_table[COMPRO_DVBU2000_WARM], NULL },
235 },256 },
236 { "DiBcom USB1.1 DVB-T reference design (MOD3000)",257 { "DiBcom USB1.1 DVB-T reference design (MOD3000)",
237 { &dibusb_dib3000mb_table[5], NULL },258 { &dibusb_dib3000mb_table[DIBCOM_MOD3000_COLD], NULL },
238 { &dibusb_dib3000mb_table[6], NULL },259 { &dibusb_dib3000mb_table[DIBCOM_MOD3000_WARM], NULL },
239 },260 },
240 { "KWorld V-Stream XPERT DTV - DVB-T USB1.1",261 { "KWorld V-Stream XPERT DTV - DVB-T USB1.1",
241 { &dibusb_dib3000mb_table[7], NULL },262 { &dibusb_dib3000mb_table[EMPIA_VSTREAM_COLD], NULL },
242 { &dibusb_dib3000mb_table[8], NULL },263 { &dibusb_dib3000mb_table[EMPIA_VSTREAM_WARM], NULL },
243 },264 },
244 { "Grandtec USB1.1 DVB-T",265 { "Grandtec USB1.1 DVB-T",
245 { &dibusb_dib3000mb_table[9], &dibusb_dib3000mb_table[11], NULL },266 { &dibusb_dib3000mb_table[GRANDTEC_DVBT_USB_COLD], &dibusb_dib3000mb_table[GRANDTEC_MOD3000_COLD], NULL },
246 { &dibusb_dib3000mb_table[10], &dibusb_dib3000mb_table[12], NULL },267 { &dibusb_dib3000mb_table[GRANDTEC_DVBT_USB_WARM], &dibusb_dib3000mb_table[GRANDTEC_MOD3000_WARM], NULL },
247 },268 },
248 { "Unknown USB1.1 DVB-T device ???? please report the name to the author",269 { "Unknown USB1.1 DVB-T device ???? please report the name to the author",
249 { &dibusb_dib3000mb_table[13], NULL },270 { &dibusb_dib3000mb_table[UNK_HYPER_PALTEK_COLD], NULL },
250 { &dibusb_dib3000mb_table[14], NULL },271 { &dibusb_dib3000mb_table[UNK_HYPER_PALTEK_WARM], NULL },
251 },272 },
252 { "TwinhanDTV USB-Ter USB1.1 / Magic Box I / HAMA USB1.1 DVB-T device",273 { "TwinhanDTV USB-Ter USB1.1 / Magic Box I / HAMA USB1.1 DVB-T device",
253 { &dibusb_dib3000mb_table[15], &dibusb_dib3000mb_table[17], NULL},274 { &dibusb_dib3000mb_table[VISIONPLUS_VP7041_COLD], &dibusb_dib3000mb_table[TWINHAN_VP7041_COLD], NULL},
254 { &dibusb_dib3000mb_table[16], &dibusb_dib3000mb_table[18], NULL},275 { &dibusb_dib3000mb_table[VISIONPLUS_VP7041_WARM], &dibusb_dib3000mb_table[TWINHAN_VP7041_WARM], NULL},
255 },276 },
256 { "Artec T1 USB1.1 TVBOX with AN2135",277 { "Artec T1 USB1.1 TVBOX with AN2135",
257 { &dibusb_dib3000mb_table[19], NULL },278 { &dibusb_dib3000mb_table[ULTIMA_TVBOX_COLD], NULL },
258 { &dibusb_dib3000mb_table[20], NULL },279 { &dibusb_dib3000mb_table[ULTIMA_TVBOX_WARM], NULL },
259 },280 },
260 { "VideoWalker DVB-T USB",281 { "VideoWalker DVB-T USB",
261 { &dibusb_dib3000mb_table[25], NULL },282 { &dibusb_dib3000mb_table[KYE_DVB_T_COLD], NULL },
262 { &dibusb_dib3000mb_table[26], NULL },283 { &dibusb_dib3000mb_table[KYE_DVB_T_WARM], NULL },
263 },284 },
264 }285 }
265};286};
@@ -319,12 +340,12 @@ static struct dvb_usb_device_properties dibusb1_1_an2235_properties = { · 53 unmodified lines
319#endif340#endif
320 .devices = {341 .devices = {
321 { "Artec T1 USB1.1 TVBOX with AN2235",342 { "Artec T1 USB1.1 TVBOX with AN2235",
322 { &dibusb_dib3000mb_table[21], NULL },343 { &dibusb_dib3000mb_table[ULTIMA_TVBOX_AN2235_COLD], NULL },
323 { &dibusb_dib3000mb_table[22], NULL },344 { &dibusb_dib3000mb_table[ULTIMA_TVBOX_AN2235_WARM], NULL },
324 },345 },
325#ifdef CONFIG_DVB_USB_DIBUSB_MB_FAULTY346#ifdef CONFIG_DVB_USB_DIBUSB_MB_FAULTY
326 { "Artec T1 USB1.1 TVBOX with AN2235 (faulty USB IDs)",347 { "Artec T1 USB1.1 TVBOX with AN2235 (faulty USB IDs)",
327 { &dibusb_dib3000mb_table[30], NULL },348 { &dibusb_dib3000mb_table[ULTIMA_TVBOX_ANCHOR_COLD], NULL },
328 { NULL },349 { NULL },
329 },350 },
330 { NULL },351 { NULL },
@@ -384,11 +405,11 @@ static struct dvb_usb_device_properties dibusb2_0b_properties = { · 53 unmodified lines
384 .num_device_descs = 2,405 .num_device_descs = 2,
385 .devices = {406 .devices = {
386 { "KWorld/ADSTech Instant DVB-T USB2.0",407 { "KWorld/ADSTech Instant DVB-T USB2.0",
387 { &dibusb_dib3000mb_table[23], NULL },408 { &dibusb_dib3000mb_table[ADSTECH_USB2_COLD], NULL },
388 { &dibusb_dib3000mb_table[24], NULL },409 { &dibusb_dib3000mb_table[ADSTECH_USB2_WARM], NULL },
389 },410 },
390 { "KWorld Xpert DVB-T USB2.0",411 { "KWorld Xpert DVB-T USB2.0",
391 { &dibusb_dib3000mb_table[27], NULL },412 { &dibusb_dib3000mb_table[KWORLD_VSTREAM_COLD], NULL },
392 { NULL }413 { NULL }
393 },414 },
394 { NULL },415 { NULL },
@@ -446,8 +467,8 @@ static struct dvb_usb_device_properties artec_t1_usb2_properties = { · 51 unmodified lines
446 .num_device_descs = 1,467 .num_device_descs = 1,
447 .devices = {468 .devices = {
448 { "Artec T1 USB2.0",469 { "Artec T1 USB2.0",
449 { &dibusb_dib3000mb_table[28], NULL },470 { &dibusb_dib3000mb_table[ULTIMA_TVBOX_USB2_COLD], NULL },
450 { &dibusb_dib3000mb_table[29], NULL },471 { &dibusb_dib3000mb_table[ULTIMA_TVBOX_USB2_WARM], NULL },
451 },472 },
452 { NULL },473 { NULL },
453 }474 }
include/media/dvb-usb-ids.h+8−3
@@ -133,8 +133,6 @@ · 132 unmodified lines
133#define USB_PID_AVERMEDIA_B835 0xb835133#define USB_PID_AVERMEDIA_B835 0xb835
134#define USB_PID_AVERMEDIA_DVBT_USB2_COLD 0xa800134#define USB_PID_AVERMEDIA_DVBT_USB2_COLD 0xa800
135#define USB_PID_AVERMEDIA_DVBT_USB2_WARM 0xa801135#define USB_PID_AVERMEDIA_DVBT_USB2_WARM 0xa801
136#define USB_PID_AVERMEDIA_DVBT_USB_COLD 0x0001
137#define USB_PID_AVERMEDIA_DVBT_USB_WARM 0x0002
138#define USB_PID_AVERMEDIA_EXPRESS 0xb568136#define USB_PID_AVERMEDIA_EXPRESS 0xb568
139#define USB_PID_AVERMEDIA_H335 0x0335137#define USB_PID_AVERMEDIA_H335 0x0335
140#define USB_PID_AVERMEDIA_HYBRID_ULTRA_USB_M039R 0x0039138#define USB_PID_AVERMEDIA_HYBRID_ULTRA_USB_M039R 0x0039
@@ -230,6 +228,8 @@ · 89 unmodified lines
230#define USB_PID_ELGATO_EYETV_SAT 0x002a228#define USB_PID_ELGATO_EYETV_SAT 0x002a
231#define USB_PID_ELGATO_EYETV_SAT_V2 0x0025229#define USB_PID_ELGATO_EYETV_SAT_V2 0x0025
232#define USB_PID_ELGATO_EYETV_SAT_V3 0x0036230#define USB_PID_ELGATO_EYETV_SAT_V3 0x0036
231#define USB_PID_EMPIA_VSTREAM_COLD 0x17de
232#define USB_PID_EMPIA_VSTREAM_WARM 0x17df
233#define USB_PID_EVOLVEO_XTRATV_STICK 0xa115233#define USB_PID_EVOLVEO_XTRATV_STICK 0xa115
234#define USB_PID_FREECOM_DVBT 0x0160234#define USB_PID_FREECOM_DVBT 0x0160
235#define USB_PID_FREECOM_DVBT_2 0x0161235#define USB_PID_FREECOM_DVBT_2 0x0161
@@ -251,6 +251,8 @@ · 15 unmodified lines
251#define USB_PID_GRANDTEC_DVBT_USB2_WARM 0x0bc7251#define USB_PID_GRANDTEC_DVBT_USB2_WARM 0x0bc7
252#define USB_PID_GRANDTEC_DVBT_USB_COLD 0x0fa0252#define USB_PID_GRANDTEC_DVBT_USB_COLD 0x0fa0
253#define USB_PID_GRANDTEC_DVBT_USB_WARM 0x0fa1253#define USB_PID_GRANDTEC_DVBT_USB_WARM 0x0fa1
254#define USB_PID_GRANDTEC_MOD3000_COLD 0x0bb8
255#define USB_PID_GRANDTEC_MOD3000_WARM 0x0bb9
254#define USB_PID_HAMA_DVBT_HYBRID 0x2758256#define USB_PID_HAMA_DVBT_HYBRID 0x2758
255#define USB_PID_HANFTEK_UMT_010_COLD 0x0001257#define USB_PID_HANFTEK_UMT_010_COLD 0x0001
256#define USB_PID_HANFTEK_UMT_010_WARM 0x0015258#define USB_PID_HANFTEK_UMT_010_WARM 0x0015
@@ -285,7 +287,6 @@ · 28 unmodified lines
285#define USB_PID_KWORLD_UB383_T 0xe383287#define USB_PID_KWORLD_UB383_T 0xe383
286#define USB_PID_KWORLD_UB499_2T_T09 0xe409288#define USB_PID_KWORLD_UB499_2T_T09 0xe409
287#define USB_PID_KWORLD_VSTREAM_COLD 0x17de289#define USB_PID_KWORLD_VSTREAM_COLD 0x17de
288#define USB_PID_KWORLD_VSTREAM_WARM 0x17df
289#define USB_PID_KYE_DVB_T_COLD 0x701e290#define USB_PID_KYE_DVB_T_COLD 0x701e
290#define USB_PID_KYE_DVB_T_WARM 0x701f291#define USB_PID_KYE_DVB_T_WARM 0x701f
291#define USB_PID_LITEON_DVB_T_COLD 0xf000292#define USB_PID_LITEON_DVB_T_COLD 0xf000
@@ -429,10 +430,14 @@ · 137 unmodified lines
429#define USB_PID_VISIONPLUS_VP7020_COLD 0x3203430#define USB_PID_VISIONPLUS_VP7020_COLD 0x3203
430#define USB_PID_VISIONPLUS_VP7020_WARM 0x3204431#define USB_PID_VISIONPLUS_VP7020_WARM 0x3204
431#define USB_PID_VISIONPLUS_VP7021_COLD 0x3207432#define USB_PID_VISIONPLUS_VP7021_COLD 0x3207
433#define USB_PID_VISIONPLUS_VP7041_COLD 0x3201
434#define USB_PID_VISIONPLUS_VP7041_WARM 0x3202
432#define USB_PID_VISIONPLUS_VP7045_COLD 0x3205435#define USB_PID_VISIONPLUS_VP7045_COLD 0x3205
433#define USB_PID_VISIONPLUS_VP7045_WARM 0x3206436#define USB_PID_VISIONPLUS_VP7045_WARM 0x3206
434#define USB_PID_WIDEVIEW_DTT200U_COLD 0x0201437#define USB_PID_WIDEVIEW_DTT200U_COLD 0x0201
435#define USB_PID_WIDEVIEW_DTT200U_WARM 0x0301438#define USB_PID_WIDEVIEW_DTT200U_WARM 0x0301
439#define USB_PID_WIDEVIEW_DVBT_USB_COLD 0x0001
440#define USB_PID_WIDEVIEW_DVBT_USB_WARM 0x0002
436#define USB_PID_WIDEVIEW_WT220U_COLD 0x0222441#define USB_PID_WIDEVIEW_WT220U_COLD 0x0222
437#define USB_PID_WIDEVIEW_WT220U_FC_COLD 0x0225442#define USB_PID_WIDEVIEW_WT220U_FC_COLD 0x0225
438#define USB_PID_WIDEVIEW_WT220U_FC_WARM 0x0226443#define USB_PID_WIDEVIEW_WT220U_FC_WARM 0x0226