History

media: dvb-usb: dibusb-mc: 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 281b21c1 parent d7634792 files · +62 −42Browse files

Unified · Split

2 files
  1. drivers/media/usb/dvb-usb/dibusb-mc.c +54 −34
  2. include/media/dvb-usb-ids.h +8 −8
drivers/media/usb/dvb-usb/dibusb-mc.c+54−34
@@ -24,25 +24,45 @@ static int dibusb_mc_probe(struct usb_interface *intf, · 23 unmodified lines
2424 }
2525
2626 /* do not change the order of the ID table */
27−static struct usb_device_id dibusb_dib3000mc_table [] = {
28−/* 00 */ { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_MOD3001_COLD) },
29−/* 01 */ { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_MOD3001_WARM) },
30−/* 02 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_USB2_COLD) },
31−/* 03 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_USB2_WARM) }, // ( ? )
32−/* 04 */ { USB_DEVICE(USB_VID_LITEON, USB_PID_LITEON_DVB_T_COLD) },
33−/* 05 */ { USB_DEVICE(USB_VID_LITEON, USB_PID_LITEON_DVB_T_WARM) },
34−/* 06 */ { USB_DEVICE(USB_VID_EMPIA, USB_PID_DIGIVOX_MINI_SL_COLD) },
35−/* 07 */ { USB_DEVICE(USB_VID_EMPIA, USB_PID_DIGIVOX_MINI_SL_WARM) },
36−/* 08 */ { USB_DEVICE(USB_VID_GRANDTEC, USB_PID_GRANDTEC_DVBT_USB2_COLD) },
37−/* 09 */ { USB_DEVICE(USB_VID_GRANDTEC, USB_PID_GRANDTEC_DVBT_USB2_WARM) },
38−/* 10 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ARTEC_T14_COLD) },
39−/* 11 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ARTEC_T14_WARM) },
40−/* 12 */ { USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_COLD) },
41−/* 13 */ { USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_WARM) },
42−/* 14 */ { USB_DEVICE(USB_VID_HUMAX_COEX, USB_PID_DVB_T_USB_STICK_HIGH_SPEED_COLD) },
43−/* 15 */ { USB_DEVICE(USB_VID_HUMAX_COEX, USB_PID_DVB_T_USB_STICK_HIGH_SPEED_WARM) },
44− { } /* Terminating entry */
27+enum {
28+ DIBCOM_MOD3001_COLD,
29+ DIBCOM_MOD3001_WARM,
30+ ULTIMA_TVBOX_USB2_COLD,
31+ ULTIMA_TVBOX_USB2_WARM,
32+ LITEON_DVB_T_COLD,
33+ LITEON_DVB_T_WARM,
34+ EMPIA_DIGIVOX_MINI_SL_COLD,
35+ EMPIA_DIGIVOX_MINI_SL_WARM,
36+ GRANDTEC_DVBT_USB2_COLD,
37+ GRANDTEC_DVBT_USB2_WARM,
38+ ULTIMA_ARTEC_T14_COLD,
39+ ULTIMA_ARTEC_T14_WARM,
40+ LEADTEK_WINFAST_DTV_DONGLE_COLD,
41+ LEADTEK_WINFAST_DTV_DONGLE_WARM,
42+ HUMAX_DVB_T_STICK_HIGH_SPEED_COLD,
43+ HUMAX_DVB_T_STICK_HIGH_SPEED_WARM,
4544 };
45+
46+static struct usb_device_id dibusb_dib3000mc_table[] = {
47+ DVB_USB_DEV(DIBCOM, DIBCOM_MOD3001_COLD),
48+ DVB_USB_DEV(DIBCOM, DIBCOM_MOD3001_WARM),
49+ DVB_USB_DEV(ULTIMA_ELECTRONIC, ULTIMA_TVBOX_USB2_COLD),
50+ DVB_USB_DEV(ULTIMA_ELECTRONIC, ULTIMA_TVBOX_USB2_WARM),
51+ DVB_USB_DEV(LITEON, LITEON_DVB_T_COLD),
52+ DVB_USB_DEV(LITEON, LITEON_DVB_T_WARM),
53+ DVB_USB_DEV(EMPIA, EMPIA_DIGIVOX_MINI_SL_COLD),
54+ DVB_USB_DEV(EMPIA, EMPIA_DIGIVOX_MINI_SL_WARM),
55+ DVB_USB_DEV(GRANDTEC, GRANDTEC_DVBT_USB2_COLD),
56+ DVB_USB_DEV(GRANDTEC, GRANDTEC_DVBT_USB2_WARM),
57+ DVB_USB_DEV(ULTIMA_ELECTRONIC, ULTIMA_ARTEC_T14_COLD),
58+ DVB_USB_DEV(ULTIMA_ELECTRONIC, ULTIMA_ARTEC_T14_WARM),
59+ DVB_USB_DEV(LEADTEK, LEADTEK_WINFAST_DTV_DONGLE_COLD),
60+ DVB_USB_DEV(LEADTEK, LEADTEK_WINFAST_DTV_DONGLE_WARM),
61+ DVB_USB_DEV(HUMAX_COEX, HUMAX_DVB_T_STICK_HIGH_SPEED_COLD),
62+ DVB_USB_DEV(HUMAX_COEX, HUMAX_DVB_T_STICK_HIGH_SPEED_WARM),
63+ { }
64+};
65+
4666 MODULE_DEVICE_TABLE (usb, dibusb_dib3000mc_table);
4767
4868 static struct dvb_usb_device_properties dibusb_mc_properties = {
@@ -95,37 +115,37 @@ static struct dvb_usb_device_properties dibusb_mc_properties = { · 46 unmodified lines
95115 .num_device_descs = 8,
96116 .devices = {
97117 { "DiBcom USB2.0 DVB-T reference design (MOD3000P)",
98− { &dibusb_dib3000mc_table[0], NULL },
99− { &dibusb_dib3000mc_table[1], NULL },
118+ { &dibusb_dib3000mc_table[DIBCOM_MOD3001_COLD], NULL },
119+ { &dibusb_dib3000mc_table[DIBCOM_MOD3001_WARM], NULL },
100120 },
101121 { "Artec T1 USB2.0 TVBOX (please check the warm ID)",
102− { &dibusb_dib3000mc_table[2], NULL },
103− { &dibusb_dib3000mc_table[3], NULL },
122+ { &dibusb_dib3000mc_table[ULTIMA_TVBOX_USB2_COLD], NULL },
123+ { &dibusb_dib3000mc_table[ULTIMA_TVBOX_USB2_WARM], NULL },
104124 },
105125 { "LITE-ON USB2.0 DVB-T Tuner",
106126 /* Also rebranded as Intuix S800, Toshiba */
107− { &dibusb_dib3000mc_table[4], NULL },
108− { &dibusb_dib3000mc_table[5], NULL },
127+ { &dibusb_dib3000mc_table[LITEON_DVB_T_COLD], NULL },
128+ { &dibusb_dib3000mc_table[LITEON_DVB_T_WARM], NULL },
109129 },
110130 { "MSI Digivox Mini SL",
111− { &dibusb_dib3000mc_table[6], NULL },
112− { &dibusb_dib3000mc_table[7], NULL },
131+ { &dibusb_dib3000mc_table[EMPIA_DIGIVOX_MINI_SL_COLD], NULL },
132+ { &dibusb_dib3000mc_table[EMPIA_DIGIVOX_MINI_SL_WARM], NULL },
113133 },
114134 { "GRAND - USB2.0 DVB-T adapter",
115− { &dibusb_dib3000mc_table[8], NULL },
116− { &dibusb_dib3000mc_table[9], NULL },
135+ { &dibusb_dib3000mc_table[GRANDTEC_DVBT_USB2_COLD], NULL },
136+ { &dibusb_dib3000mc_table[GRANDTEC_DVBT_USB2_WARM], NULL },
117137 },
118138 { "Artec T14 - USB2.0 DVB-T",
119− { &dibusb_dib3000mc_table[10], NULL },
120− { &dibusb_dib3000mc_table[11], NULL },
139+ { &dibusb_dib3000mc_table[ULTIMA_ARTEC_T14_COLD], NULL },
140+ { &dibusb_dib3000mc_table[ULTIMA_ARTEC_T14_WARM], NULL },
121141 },
122142 { "Leadtek - USB2.0 Winfast DTV dongle",
123− { &dibusb_dib3000mc_table[12], NULL },
124− { &dibusb_dib3000mc_table[13], NULL },
143+ { &dibusb_dib3000mc_table[LEADTEK_WINFAST_DTV_DONGLE_COLD], NULL },
144+ { &dibusb_dib3000mc_table[LEADTEK_WINFAST_DTV_DONGLE_WARM], NULL },
125145 },
126146 { "Humax/Coex DVB-T USB Stick 2.0 High Speed",
127− { &dibusb_dib3000mc_table[14], NULL },
128− { &dibusb_dib3000mc_table[15], NULL },
147+ { &dibusb_dib3000mc_table[HUMAX_DVB_T_STICK_HIGH_SPEED_COLD], NULL },
148+ { &dibusb_dib3000mc_table[HUMAX_DVB_T_STICK_HIGH_SPEED_WARM], NULL },
129149 },
130150 { NULL },
131151 }
include/media/dvb-usb-ids.h+8−8
@@ -111,8 +111,6 @@ · 110 unmodified lines
111111 #define USB_PID_ANUBIS_MSI_DIGI_VOX_MINI_II 0x1513
112112 #define USB_PID_ANYSEE 0x861f
113113 #define USB_PID_ARTEC_T14BR 0x810f
114−#define USB_PID_ARTEC_T14_COLD 0x810b
115−#define USB_PID_ARTEC_T14_WARM 0x810c
116114 #define USB_PID_ASUS_U3000 0x171f
117115 #define USB_PID_ASUS_U3000H 0x1736
118116 #define USB_PID_ASUS_U3100 0x173f
@@ -195,12 +193,8 @@ · 76 unmodified lines
195193 #define USB_PID_DIBCOM_TFE8096P 0x1f9C
196194 #define USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_COLD 0xdb54
197195 #define USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_WARM 0xdb55
198−#define USB_PID_DIGIVOX_MINI_SL_COLD 0xe360
199−#define USB_PID_DIGIVOX_MINI_SL_WARM 0xe361
200196 #define USB_PID_DPOSH_M9206_COLD 0x9206
201197 #define USB_PID_DPOSH_M9206_WARM 0xa090
202−#define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_COLD 0x5000
203−#define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_WARM 0x5001
204198 #define USB_PID_DVICO_BLUEBIRD_DUAL_1_COLD 0xdb50
205199 #define USB_PID_DVICO_BLUEBIRD_DUAL_1_WARM 0xdb51
206200 #define USB_PID_DVICO_BLUEBIRD_DUAL_2_COLD 0xdb58
@@ -228,6 +222,8 @@ · 21 unmodified lines
228222 #define USB_PID_ELGATO_EYETV_SAT 0x002a
229223 #define USB_PID_ELGATO_EYETV_SAT_V2 0x0025
230224 #define USB_PID_ELGATO_EYETV_SAT_V3 0x0036
225+#define USB_PID_EMPIA_DIGIVOX_MINI_SL_COLD 0xe360
226+#define USB_PID_EMPIA_DIGIVOX_MINI_SL_WARM 0xe361
231227 #define USB_PID_EMPIA_VSTREAM_COLD 0x17de
232228 #define USB_PID_EMPIA_VSTREAM_WARM 0x17df
233229 #define USB_PID_EVOLVEO_XTRATV_STICK 0xa115
@@ -270,6 +266,8 @@ · 36 unmodified lines
270266 #define USB_PID_HAUPPAUGE_TIGER_ATSC_B210 0xb210
271267 #define USB_PID_HAUPPAUGE_WINTV_NOVA_T_USB2_COLD 0x9300
272268 #define USB_PID_HAUPPAUGE_WINTV_NOVA_T_USB2_WARM 0x9301
269+#define USB_PID_HUMAX_DVB_T_STICK_HIGH_SPEED_COLD 0x5000
270+#define USB_PID_HUMAX_DVB_T_STICK_HIGH_SPEED_WARM 0x5001
273271 #define USB_PID_INTEL_CE9500 0x9500
274272 #define USB_PID_ITETECH_IT9135 0x9135
275273 #define USB_PID_ITETECH_IT9135_9005 0x9005
@@ -289,6 +287,8 @@ · 13 unmodified lines
289287 #define USB_PID_KWORLD_VSTREAM_COLD 0x17de
290288 #define USB_PID_KYE_DVB_T_COLD 0x701e
291289 #define USB_PID_KYE_DVB_T_WARM 0x701f
290+#define USB_PID_LEADTEK_WINFAST_DTV_DONGLE_COLD 0x6025
291+#define USB_PID_LEADTEK_WINFAST_DTV_DONGLE_WARM 0x6026
292292 #define USB_PID_LITEON_DVB_T_COLD 0xf000
293293 #define USB_PID_LITEON_DVB_T_WARM 0xf001
294294 #define USB_PID_MEDION_MD95700 0x0932
@@ -412,6 +412,8 @@ · 117 unmodified lines
412412 #define USB_PID_TWINHAN_VP7021_WARM 0x3208
413413 #define USB_PID_TWINHAN_VP7041_COLD 0x3201
414414 #define USB_PID_TWINHAN_VP7041_WARM 0x3202
415+#define USB_PID_ULTIMA_ARTEC_T14_COLD 0x810b
416+#define USB_PID_ULTIMA_ARTEC_T14_WARM 0x810c
415417 #define USB_PID_ULTIMA_TVBOX_AN2235_COLD 0x8107
416418 #define USB_PID_ULTIMA_TVBOX_AN2235_WARM 0x8108
417419 #define USB_PID_ULTIMA_TVBOX_ANCHOR_COLD 0x2235
@@ -447,13 +449,11 @@ · 29 unmodified lines
447449 #define USB_PID_WIDEVIEW_WT220U_ZL0353_WARM 0x022b
448450 #define USB_PID_WINFAST_DTV2000DS 0x6a04
449451 #define USB_PID_WINFAST_DTV2000DS_PLUS 0x6f12
450−#define USB_PID_WINFAST_DTV_DONGLE_COLD 0x6025
451452 #define USB_PID_WINFAST_DTV_DONGLE_GOLD 0x6029
452453 #define USB_PID_WINFAST_DTV_DONGLE_H 0x60f6
453454 #define USB_PID_WINFAST_DTV_DONGLE_MINID 0x6f0f
454455 #define USB_PID_WINFAST_DTV_DONGLE_STK7700P 0x6f00
455456 #define USB_PID_WINFAST_DTV_DONGLE_STK7700P_2 0x6f01
456−#define USB_PID_WINFAST_DTV_DONGLE_WARM 0x6026
457457 #define USB_PID_WINTV_SOLOHD 0x0264
458458 #define USB_PID_WINTV_SOLOHD_2 0x8268
459459 #define USB_PID_XBOX_ONE_TUNER 0x02d5