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
24}24}
25 25
26/* do not change the order of the ID table */26/* do not change the order of the ID table */
27static struct usb_device_id dibusb_dib3000mc_table [] = {27enum {
28/* 00 */ { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_MOD3001_COLD) },28 DIBCOM_MOD3001_COLD,
29/* 01 */ { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_MOD3001_WARM) },29 DIBCOM_MOD3001_WARM,
30/* 02 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_USB2_COLD) },30 ULTIMA_TVBOX_USB2_COLD,
31/* 03 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ULTIMA_TVBOX_USB2_WARM) }, // ( ? )31 ULTIMA_TVBOX_USB2_WARM,
32/* 04 */ { USB_DEVICE(USB_VID_LITEON, USB_PID_LITEON_DVB_T_COLD) },32 LITEON_DVB_T_COLD,
33/* 05 */ { USB_DEVICE(USB_VID_LITEON, USB_PID_LITEON_DVB_T_WARM) },33 LITEON_DVB_T_WARM,
34/* 06 */ { USB_DEVICE(USB_VID_EMPIA, USB_PID_DIGIVOX_MINI_SL_COLD) },34 EMPIA_DIGIVOX_MINI_SL_COLD,
35/* 07 */ { USB_DEVICE(USB_VID_EMPIA, USB_PID_DIGIVOX_MINI_SL_WARM) },35 EMPIA_DIGIVOX_MINI_SL_WARM,
36/* 08 */ { USB_DEVICE(USB_VID_GRANDTEC, USB_PID_GRANDTEC_DVBT_USB2_COLD) },36 GRANDTEC_DVBT_USB2_COLD,
37/* 09 */ { USB_DEVICE(USB_VID_GRANDTEC, USB_PID_GRANDTEC_DVBT_USB2_WARM) },37 GRANDTEC_DVBT_USB2_WARM,
38/* 10 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ARTEC_T14_COLD) },38 ULTIMA_ARTEC_T14_COLD,
39/* 11 */ { USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ARTEC_T14_WARM) },39 ULTIMA_ARTEC_T14_WARM,
40/* 12 */ { USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_COLD) },40 LEADTEK_WINFAST_DTV_DONGLE_COLD,
41/* 13 */ { USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_WARM) },41 LEADTEK_WINFAST_DTV_DONGLE_WARM,
42/* 14 */ { USB_DEVICE(USB_VID_HUMAX_COEX, USB_PID_DVB_T_USB_STICK_HIGH_SPEED_COLD) },42 HUMAX_DVB_T_STICK_HIGH_SPEED_COLD,
43/* 15 */ { USB_DEVICE(USB_VID_HUMAX_COEX, USB_PID_DVB_T_USB_STICK_HIGH_SPEED_WARM) },43 HUMAX_DVB_T_STICK_HIGH_SPEED_WARM,
44 { } /* Terminating entry */
45};44};
45
46static 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
46MODULE_DEVICE_TABLE (usb, dibusb_dib3000mc_table);66MODULE_DEVICE_TABLE (usb, dibusb_dib3000mc_table);
47 67
48static struct dvb_usb_device_properties dibusb_mc_properties = {68static struct dvb_usb_device_properties dibusb_mc_properties = {
@@ -95,37 +115,37 @@ static struct dvb_usb_device_properties dibusb_mc_properties = { · 46 unmodified lines
95 .num_device_descs = 8,115 .num_device_descs = 8,
96 .devices = {116 .devices = {
97 { "DiBcom USB2.0 DVB-T reference design (MOD3000P)",117 { "DiBcom USB2.0 DVB-T reference design (MOD3000P)",
98 { &dibusb_dib3000mc_table[0], NULL },118 { &dibusb_dib3000mc_table[DIBCOM_MOD3001_COLD], NULL },
99 { &dibusb_dib3000mc_table[1], NULL },119 { &dibusb_dib3000mc_table[DIBCOM_MOD3001_WARM], NULL },
100 },120 },
101 { "Artec T1 USB2.0 TVBOX (please check the warm ID)",121 { "Artec T1 USB2.0 TVBOX (please check the warm ID)",
102 { &dibusb_dib3000mc_table[2], NULL },122 { &dibusb_dib3000mc_table[ULTIMA_TVBOX_USB2_COLD], NULL },
103 { &dibusb_dib3000mc_table[3], NULL },123 { &dibusb_dib3000mc_table[ULTIMA_TVBOX_USB2_WARM], NULL },
104 },124 },
105 { "LITE-ON USB2.0 DVB-T Tuner",125 { "LITE-ON USB2.0 DVB-T Tuner",
106 /* Also rebranded as Intuix S800, Toshiba */126 /* Also rebranded as Intuix S800, Toshiba */
107 { &dibusb_dib3000mc_table[4], NULL },127 { &dibusb_dib3000mc_table[LITEON_DVB_T_COLD], NULL },
108 { &dibusb_dib3000mc_table[5], NULL },128 { &dibusb_dib3000mc_table[LITEON_DVB_T_WARM], NULL },
109 },129 },
110 { "MSI Digivox Mini SL",130 { "MSI Digivox Mini SL",
111 { &dibusb_dib3000mc_table[6], NULL },131 { &dibusb_dib3000mc_table[EMPIA_DIGIVOX_MINI_SL_COLD], NULL },
112 { &dibusb_dib3000mc_table[7], NULL },132 { &dibusb_dib3000mc_table[EMPIA_DIGIVOX_MINI_SL_WARM], NULL },
113 },133 },
114 { "GRAND - USB2.0 DVB-T adapter",134 { "GRAND - USB2.0 DVB-T adapter",
115 { &dibusb_dib3000mc_table[8], NULL },135 { &dibusb_dib3000mc_table[GRANDTEC_DVBT_USB2_COLD], NULL },
116 { &dibusb_dib3000mc_table[9], NULL },136 { &dibusb_dib3000mc_table[GRANDTEC_DVBT_USB2_WARM], NULL },
117 },137 },
118 { "Artec T14 - USB2.0 DVB-T",138 { "Artec T14 - USB2.0 DVB-T",
119 { &dibusb_dib3000mc_table[10], NULL },139 { &dibusb_dib3000mc_table[ULTIMA_ARTEC_T14_COLD], NULL },
120 { &dibusb_dib3000mc_table[11], NULL },140 { &dibusb_dib3000mc_table[ULTIMA_ARTEC_T14_WARM], NULL },
121 },141 },
122 { "Leadtek - USB2.0 Winfast DTV dongle",142 { "Leadtek - USB2.0 Winfast DTV dongle",
123 { &dibusb_dib3000mc_table[12], NULL },143 { &dibusb_dib3000mc_table[LEADTEK_WINFAST_DTV_DONGLE_COLD], NULL },
124 { &dibusb_dib3000mc_table[13], NULL },144 { &dibusb_dib3000mc_table[LEADTEK_WINFAST_DTV_DONGLE_WARM], NULL },
125 },145 },
126 { "Humax/Coex DVB-T USB Stick 2.0 High Speed",146 { "Humax/Coex DVB-T USB Stick 2.0 High Speed",
127 { &dibusb_dib3000mc_table[14], NULL },147 { &dibusb_dib3000mc_table[HUMAX_DVB_T_STICK_HIGH_SPEED_COLD], NULL },
128 { &dibusb_dib3000mc_table[15], NULL },148 { &dibusb_dib3000mc_table[HUMAX_DVB_T_STICK_HIGH_SPEED_WARM], NULL },
129 },149 },
130 { NULL },150 { NULL },
131 }151 }
include/media/dvb-usb-ids.h+8−8
@@ -111,8 +111,6 @@ · 110 unmodified lines
111#define USB_PID_ANUBIS_MSI_DIGI_VOX_MINI_II 0x1513111#define USB_PID_ANUBIS_MSI_DIGI_VOX_MINI_II 0x1513
112#define USB_PID_ANYSEE 0x861f112#define USB_PID_ANYSEE 0x861f
113#define USB_PID_ARTEC_T14BR 0x810f113#define USB_PID_ARTEC_T14BR 0x810f
114#define USB_PID_ARTEC_T14_COLD 0x810b
115#define USB_PID_ARTEC_T14_WARM 0x810c
116#define USB_PID_ASUS_U3000 0x171f114#define USB_PID_ASUS_U3000 0x171f
117#define USB_PID_ASUS_U3000H 0x1736115#define USB_PID_ASUS_U3000H 0x1736
118#define USB_PID_ASUS_U3100 0x173f116#define USB_PID_ASUS_U3100 0x173f
@@ -195,12 +193,8 @@ · 76 unmodified lines
195#define USB_PID_DIBCOM_TFE8096P 0x1f9C193#define USB_PID_DIBCOM_TFE8096P 0x1f9C
196#define USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_COLD 0xdb54194#define USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_COLD 0xdb54
197#define USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_WARM 0xdb55195#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
200#define USB_PID_DPOSH_M9206_COLD 0x9206196#define USB_PID_DPOSH_M9206_COLD 0x9206
201#define USB_PID_DPOSH_M9206_WARM 0xa090197#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
204#define USB_PID_DVICO_BLUEBIRD_DUAL_1_COLD 0xdb50198#define USB_PID_DVICO_BLUEBIRD_DUAL_1_COLD 0xdb50
205#define USB_PID_DVICO_BLUEBIRD_DUAL_1_WARM 0xdb51199#define USB_PID_DVICO_BLUEBIRD_DUAL_1_WARM 0xdb51
206#define USB_PID_DVICO_BLUEBIRD_DUAL_2_COLD 0xdb58200#define USB_PID_DVICO_BLUEBIRD_DUAL_2_COLD 0xdb58
@@ -228,6 +222,8 @@ · 21 unmodified lines
228#define USB_PID_ELGATO_EYETV_SAT 0x002a222#define USB_PID_ELGATO_EYETV_SAT 0x002a
229#define USB_PID_ELGATO_EYETV_SAT_V2 0x0025223#define USB_PID_ELGATO_EYETV_SAT_V2 0x0025
230#define USB_PID_ELGATO_EYETV_SAT_V3 0x0036224#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
231#define USB_PID_EMPIA_VSTREAM_COLD 0x17de227#define USB_PID_EMPIA_VSTREAM_COLD 0x17de
232#define USB_PID_EMPIA_VSTREAM_WARM 0x17df228#define USB_PID_EMPIA_VSTREAM_WARM 0x17df
233#define USB_PID_EVOLVEO_XTRATV_STICK 0xa115229#define USB_PID_EVOLVEO_XTRATV_STICK 0xa115
@@ -270,6 +266,8 @@ · 36 unmodified lines
270#define USB_PID_HAUPPAUGE_TIGER_ATSC_B210 0xb210266#define USB_PID_HAUPPAUGE_TIGER_ATSC_B210 0xb210
271#define USB_PID_HAUPPAUGE_WINTV_NOVA_T_USB2_COLD 0x9300267#define USB_PID_HAUPPAUGE_WINTV_NOVA_T_USB2_COLD 0x9300
272#define USB_PID_HAUPPAUGE_WINTV_NOVA_T_USB2_WARM 0x9301268#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
273#define USB_PID_INTEL_CE9500 0x9500271#define USB_PID_INTEL_CE9500 0x9500
274#define USB_PID_ITETECH_IT9135 0x9135272#define USB_PID_ITETECH_IT9135 0x9135
275#define USB_PID_ITETECH_IT9135_9005 0x9005273#define USB_PID_ITETECH_IT9135_9005 0x9005
@@ -289,6 +287,8 @@ · 13 unmodified lines
289#define USB_PID_KWORLD_VSTREAM_COLD 0x17de287#define USB_PID_KWORLD_VSTREAM_COLD 0x17de
290#define USB_PID_KYE_DVB_T_COLD 0x701e288#define USB_PID_KYE_DVB_T_COLD 0x701e
291#define USB_PID_KYE_DVB_T_WARM 0x701f289#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
292#define USB_PID_LITEON_DVB_T_COLD 0xf000292#define USB_PID_LITEON_DVB_T_COLD 0xf000
293#define USB_PID_LITEON_DVB_T_WARM 0xf001293#define USB_PID_LITEON_DVB_T_WARM 0xf001
294#define USB_PID_MEDION_MD95700 0x0932294#define USB_PID_MEDION_MD95700 0x0932
@@ -412,6 +412,8 @@ · 117 unmodified lines
412#define USB_PID_TWINHAN_VP7021_WARM 0x3208412#define USB_PID_TWINHAN_VP7021_WARM 0x3208
413#define USB_PID_TWINHAN_VP7041_COLD 0x3201413#define USB_PID_TWINHAN_VP7041_COLD 0x3201
414#define USB_PID_TWINHAN_VP7041_WARM 0x3202414#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
415#define USB_PID_ULTIMA_TVBOX_AN2235_COLD 0x8107417#define USB_PID_ULTIMA_TVBOX_AN2235_COLD 0x8107
416#define USB_PID_ULTIMA_TVBOX_AN2235_WARM 0x8108418#define USB_PID_ULTIMA_TVBOX_AN2235_WARM 0x8108
417#define USB_PID_ULTIMA_TVBOX_ANCHOR_COLD 0x2235419#define USB_PID_ULTIMA_TVBOX_ANCHOR_COLD 0x2235
@@ -447,13 +449,11 @@ · 29 unmodified lines
447#define USB_PID_WIDEVIEW_WT220U_ZL0353_WARM 0x022b449#define USB_PID_WIDEVIEW_WT220U_ZL0353_WARM 0x022b
448#define USB_PID_WINFAST_DTV2000DS 0x6a04450#define USB_PID_WINFAST_DTV2000DS 0x6a04
449#define USB_PID_WINFAST_DTV2000DS_PLUS 0x6f12451#define USB_PID_WINFAST_DTV2000DS_PLUS 0x6f12
450#define USB_PID_WINFAST_DTV_DONGLE_COLD 0x6025
451#define USB_PID_WINFAST_DTV_DONGLE_GOLD 0x6029452#define USB_PID_WINFAST_DTV_DONGLE_GOLD 0x6029
452#define USB_PID_WINFAST_DTV_DONGLE_H 0x60f6453#define USB_PID_WINFAST_DTV_DONGLE_H 0x60f6
453#define USB_PID_WINFAST_DTV_DONGLE_MINID 0x6f0f454#define USB_PID_WINFAST_DTV_DONGLE_MINID 0x6f0f
454#define USB_PID_WINFAST_DTV_DONGLE_STK7700P 0x6f00455#define USB_PID_WINFAST_DTV_DONGLE_STK7700P 0x6f00
455#define USB_PID_WINFAST_DTV_DONGLE_STK7700P_2 0x6f01456#define USB_PID_WINFAST_DTV_DONGLE_STK7700P_2 0x6f01
456#define USB_PID_WINFAST_DTV_DONGLE_WARM 0x6026
457#define USB_PID_WINTV_SOLOHD 0x0264457#define USB_PID_WINTV_SOLOHD 0x0264
458#define USB_PID_WINTV_SOLOHD_2 0x8268458#define USB_PID_WINTV_SOLOHD_2 0x8268
459#define USB_PID_XBOX_ONE_TUNER 0x02d5459#define USB_PID_XBOX_ONE_TUNER 0x02d5