aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2015-02-17 09:30:34 -0500
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2015-04-08 11:36:37 -0400
commit974e08d8f02fdfc97915054d8e0c7d3cbe6b9e6e (patch)
tree1192e5587d74ed8b8e4b2e2350f01ab97789ae1a
parent67a260f1eb5020888b157794007b4bdabdd85898 (diff)
[media] cxusb: Use enum to represent table offsets rather than hard-coding numbers
Use enum to represent table offsets rather than hard-coding numbers to avoid problems with the numbers becoming out of sync with the table. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
-rw-r--r--drivers/media/usb/dvb-usb/cxusb.c155
1 files changed, 111 insertions, 44 deletions
diff --git a/drivers/media/usb/dvb-usb/cxusb.c b/drivers/media/usb/dvb-usb/cxusb.c
index f327c49d7e09..ffc3704abded 100644
--- a/drivers/media/usb/dvb-usb/cxusb.c
+++ b/drivers/media/usb/dvb-usb/cxusb.c
@@ -1516,28 +1516,95 @@ static void cxusb_disconnect(struct usb_interface *intf)
1516 dvb_usb_device_exit(intf); 1516 dvb_usb_device_exit(intf);
1517} 1517}
1518 1518
1519static struct usb_device_id cxusb_table [] = { 1519enum cxusb_table_index {
1520 { USB_DEVICE(USB_VID_MEDION, USB_PID_MEDION_MD95700) }, 1520 MEDION_MD95700,
1521 { USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_LG064F_COLD) }, 1521 DVICO_BLUEBIRD_LG064F_COLD,
1522 { USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_LG064F_WARM) }, 1522 DVICO_BLUEBIRD_LG064F_WARM,
1523 { USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_DUAL_1_COLD) }, 1523 DVICO_BLUEBIRD_DUAL_1_COLD,
1524 { USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_DUAL_1_WARM) }, 1524 DVICO_BLUEBIRD_DUAL_1_WARM,
1525 { USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_LGZ201_COLD) }, 1525 DVICO_BLUEBIRD_LGZ201_COLD,
1526 { USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_LGZ201_WARM) }, 1526 DVICO_BLUEBIRD_LGZ201_WARM,
1527 { USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_TH7579_COLD) }, 1527 DVICO_BLUEBIRD_TH7579_COLD,
1528 { USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_TH7579_WARM) }, 1528 DVICO_BLUEBIRD_TH7579_WARM,
1529 { USB_DEVICE(USB_VID_DVICO, USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_COLD) }, 1529 DIGITALNOW_BLUEBIRD_DUAL_1_COLD,
1530 { USB_DEVICE(USB_VID_DVICO, USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_WARM) }, 1530 DIGITALNOW_BLUEBIRD_DUAL_1_WARM,
1531 { USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_DUAL_2_COLD) }, 1531 DVICO_BLUEBIRD_DUAL_2_COLD,
1532 { USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_DUAL_2_WARM) }, 1532 DVICO_BLUEBIRD_DUAL_2_WARM,
1533 { USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_DUAL_4) }, 1533 DVICO_BLUEBIRD_DUAL_4,
1534 { USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_DVB_T_NANO_2) }, 1534 DVICO_BLUEBIRD_DVB_T_NANO_2,
1535 { USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_DVB_T_NANO_2_NFW_WARM) }, 1535 DVICO_BLUEBIRD_DVB_T_NANO_2_NFW_WARM,
1536 { USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_VOLAR_A868R) }, 1536 AVERMEDIA_VOLAR_A868R,
1537 { USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_DUAL_4_REV_2) }, 1537 DVICO_BLUEBIRD_DUAL_4_REV_2,
1538 { USB_DEVICE(USB_VID_CONEXANT, USB_PID_CONEXANT_D680_DMB) }, 1538 CONEXANT_D680_DMB,
1539 { USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_D689) }, 1539 MYGICA_D689,
1540 { USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230) }, 1540 MYGICA_T230,
1541 NR__cxusb_table_index
1542};
1543
1544static struct usb_device_id cxusb_table[NR__cxusb_table_index + 1] = {
1545 [MEDION_MD95700] = {
1546 USB_DEVICE(USB_VID_MEDION, USB_PID_MEDION_MD95700)
1547 },
1548 [DVICO_BLUEBIRD_LG064F_COLD] = {
1549 USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_LG064F_COLD)
1550 },
1551 [DVICO_BLUEBIRD_LG064F_WARM] = {
1552 USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_LG064F_WARM)
1553 },
1554 [DVICO_BLUEBIRD_DUAL_1_COLD] = {
1555 USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_DUAL_1_COLD)
1556 },
1557 [DVICO_BLUEBIRD_DUAL_1_WARM] = {
1558 USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_DUAL_1_WARM)
1559 },
1560 [DVICO_BLUEBIRD_LGZ201_COLD] = {
1561 USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_LGZ201_COLD)
1562 },
1563 [DVICO_BLUEBIRD_LGZ201_WARM] = {
1564 USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_LGZ201_WARM)
1565 },
1566 [DVICO_BLUEBIRD_TH7579_COLD] = {
1567 USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_TH7579_COLD)
1568 },
1569 [DVICO_BLUEBIRD_TH7579_WARM] = {
1570 USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_TH7579_WARM)
1571 },
1572 [DIGITALNOW_BLUEBIRD_DUAL_1_COLD] = {
1573 USB_DEVICE(USB_VID_DVICO, USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_COLD)
1574 },
1575 [DIGITALNOW_BLUEBIRD_DUAL_1_WARM] = {
1576 USB_DEVICE(USB_VID_DVICO, USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_WARM)
1577 },
1578 [DVICO_BLUEBIRD_DUAL_2_COLD] = {
1579 USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_DUAL_2_COLD)
1580 },
1581 [DVICO_BLUEBIRD_DUAL_2_WARM] = {
1582 USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_DUAL_2_WARM)
1583 },
1584 [DVICO_BLUEBIRD_DUAL_4] = {
1585 USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_DUAL_4)
1586 },
1587 [DVICO_BLUEBIRD_DVB_T_NANO_2] = {
1588 USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_DVB_T_NANO_2)
1589 },
1590 [DVICO_BLUEBIRD_DVB_T_NANO_2_NFW_WARM] = {
1591 USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_DVB_T_NANO_2_NFW_WARM)
1592 },
1593 [AVERMEDIA_VOLAR_A868R] = {
1594 USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_VOLAR_A868R)
1595 },
1596 [DVICO_BLUEBIRD_DUAL_4_REV_2] = {
1597 USB_DEVICE(USB_VID_DVICO, USB_PID_DVICO_BLUEBIRD_DUAL_4_REV_2)
1598 },
1599 [CONEXANT_D680_DMB] = {
1600 USB_DEVICE(USB_VID_CONEXANT, USB_PID_CONEXANT_D680_DMB)
1601 },
1602 [MYGICA_D689] = {
1603 USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_D689)
1604 },
1605 [MYGICA_T230] = {
1606 USB_DEVICE(USB_VID_CONEXANT, USB_PID_MYGICA_T230)
1607 },
1541 {} /* Terminating entry */ 1608 {} /* Terminating entry */
1542}; 1609};
1543MODULE_DEVICE_TABLE (usb, cxusb_table); 1610MODULE_DEVICE_TABLE (usb, cxusb_table);
@@ -1581,7 +1648,7 @@ static struct dvb_usb_device_properties cxusb_medion_properties = {
1581 .devices = { 1648 .devices = {
1582 { "Medion MD95700 (MDUSBTV-HYBRID)", 1649 { "Medion MD95700 (MDUSBTV-HYBRID)",
1583 { NULL }, 1650 { NULL },
1584 { &cxusb_table[0], NULL }, 1651 { &cxusb_table[MEDION_MD95700], NULL },
1585 }, 1652 },
1586 } 1653 }
1587}; 1654};
@@ -1637,8 +1704,8 @@ static struct dvb_usb_device_properties cxusb_bluebird_lgh064f_properties = {
1637 .num_device_descs = 1, 1704 .num_device_descs = 1,
1638 .devices = { 1705 .devices = {
1639 { "DViCO FusionHDTV5 USB Gold", 1706 { "DViCO FusionHDTV5 USB Gold",
1640 { &cxusb_table[1], NULL }, 1707 { &cxusb_table[DVICO_BLUEBIRD_LG064F_COLD], NULL },
1641 { &cxusb_table[2], NULL }, 1708 { &cxusb_table[DVICO_BLUEBIRD_LG064F_WARM], NULL },
1642 }, 1709 },
1643 } 1710 }
1644}; 1711};
@@ -1693,16 +1760,16 @@ static struct dvb_usb_device_properties cxusb_bluebird_dee1601_properties = {
1693 .num_device_descs = 3, 1760 .num_device_descs = 3,
1694 .devices = { 1761 .devices = {
1695 { "DViCO FusionHDTV DVB-T Dual USB", 1762 { "DViCO FusionHDTV DVB-T Dual USB",
1696 { &cxusb_table[3], NULL }, 1763 { &cxusb_table[DVICO_BLUEBIRD_DUAL_1_COLD], NULL },
1697 { &cxusb_table[4], NULL }, 1764 { &cxusb_table[DVICO_BLUEBIRD_DUAL_1_WARM], NULL },
1698 }, 1765 },
1699 { "DigitalNow DVB-T Dual USB", 1766 { "DigitalNow DVB-T Dual USB",
1700 { &cxusb_table[9], NULL }, 1767 { &cxusb_table[DIGITALNOW_BLUEBIRD_DUAL_1_COLD], NULL },
1701 { &cxusb_table[10], NULL }, 1768 { &cxusb_table[DIGITALNOW_BLUEBIRD_DUAL_1_WARM], NULL },
1702 }, 1769 },
1703 { "DViCO FusionHDTV DVB-T Dual Digital 2", 1770 { "DViCO FusionHDTV DVB-T Dual Digital 2",
1704 { &cxusb_table[11], NULL }, 1771 { &cxusb_table[DVICO_BLUEBIRD_DUAL_2_COLD], NULL },
1705 { &cxusb_table[12], NULL }, 1772 { &cxusb_table[DVICO_BLUEBIRD_DUAL_2_WARM], NULL },
1706 }, 1773 },
1707 } 1774 }
1708}; 1775};
@@ -1756,8 +1823,8 @@ static struct dvb_usb_device_properties cxusb_bluebird_lgz201_properties = {
1756 .num_device_descs = 1, 1823 .num_device_descs = 1,
1757 .devices = { 1824 .devices = {
1758 { "DViCO FusionHDTV DVB-T USB (LGZ201)", 1825 { "DViCO FusionHDTV DVB-T USB (LGZ201)",
1759 { &cxusb_table[5], NULL }, 1826 { &cxusb_table[DVICO_BLUEBIRD_LGZ201_COLD], NULL },
1760 { &cxusb_table[6], NULL }, 1827 { &cxusb_table[DVICO_BLUEBIRD_LGZ201_WARM], NULL },
1761 }, 1828 },
1762 } 1829 }
1763}; 1830};
@@ -1812,8 +1879,8 @@ static struct dvb_usb_device_properties cxusb_bluebird_dtt7579_properties = {
1812 .num_device_descs = 1, 1879 .num_device_descs = 1,
1813 .devices = { 1880 .devices = {
1814 { "DViCO FusionHDTV DVB-T USB (TH7579)", 1881 { "DViCO FusionHDTV DVB-T USB (TH7579)",
1815 { &cxusb_table[7], NULL }, 1882 { &cxusb_table[DVICO_BLUEBIRD_TH7579_COLD], NULL },
1816 { &cxusb_table[8], NULL }, 1883 { &cxusb_table[DVICO_BLUEBIRD_TH7579_WARM], NULL },
1817 }, 1884 },
1818 } 1885 }
1819}; 1886};
@@ -1865,7 +1932,7 @@ static struct dvb_usb_device_properties cxusb_bluebird_dualdig4_properties = {
1865 .devices = { 1932 .devices = {
1866 { "DViCO FusionHDTV DVB-T Dual Digital 4", 1933 { "DViCO FusionHDTV DVB-T Dual Digital 4",
1867 { NULL }, 1934 { NULL },
1868 { &cxusb_table[13], NULL }, 1935 { &cxusb_table[DVICO_BLUEBIRD_DUAL_4], NULL },
1869 }, 1936 },
1870 } 1937 }
1871}; 1938};
@@ -1918,7 +1985,7 @@ static struct dvb_usb_device_properties cxusb_bluebird_nano2_properties = {
1918 .devices = { 1985 .devices = {
1919 { "DViCO FusionHDTV DVB-T NANO2", 1986 { "DViCO FusionHDTV DVB-T NANO2",
1920 { NULL }, 1987 { NULL },
1921 { &cxusb_table[14], NULL }, 1988 { &cxusb_table[DVICO_BLUEBIRD_DVB_T_NANO_2], NULL },
1922 }, 1989 },
1923 } 1990 }
1924}; 1991};
@@ -1972,8 +2039,8 @@ static struct dvb_usb_device_properties cxusb_bluebird_nano2_needsfirmware_prope
1972 .num_device_descs = 1, 2039 .num_device_descs = 1,
1973 .devices = { 2040 .devices = {
1974 { "DViCO FusionHDTV DVB-T NANO2 w/o firmware", 2041 { "DViCO FusionHDTV DVB-T NANO2 w/o firmware",
1975 { &cxusb_table[14], NULL }, 2042 { &cxusb_table[DVICO_BLUEBIRD_DVB_T_NANO_2], NULL },
1976 { &cxusb_table[15], NULL }, 2043 { &cxusb_table[DVICO_BLUEBIRD_DVB_T_NANO_2_NFW_WARM], NULL },
1977 }, 2044 },
1978 } 2045 }
1979}; 2046};
@@ -2017,7 +2084,7 @@ static struct dvb_usb_device_properties cxusb_aver_a868r_properties = {
2017 .devices = { 2084 .devices = {
2018 { "AVerMedia AVerTVHD Volar (A868R)", 2085 { "AVerMedia AVerTVHD Volar (A868R)",
2019 { NULL }, 2086 { NULL },
2020 { &cxusb_table[16], NULL }, 2087 { &cxusb_table[AVERMEDIA_VOLAR_A868R], NULL },
2021 }, 2088 },
2022 } 2089 }
2023}; 2090};
@@ -2071,7 +2138,7 @@ struct dvb_usb_device_properties cxusb_bluebird_dualdig4_rev2_properties = {
2071 .devices = { 2138 .devices = {
2072 { "DViCO FusionHDTV DVB-T Dual Digital 4 (rev 2)", 2139 { "DViCO FusionHDTV DVB-T Dual Digital 4 (rev 2)",
2073 { NULL }, 2140 { NULL },
2074 { &cxusb_table[17], NULL }, 2141 { &cxusb_table[DVICO_BLUEBIRD_DUAL_4_REV_2], NULL },
2075 }, 2142 },
2076 } 2143 }
2077}; 2144};
@@ -2125,7 +2192,7 @@ static struct dvb_usb_device_properties cxusb_d680_dmb_properties = {
2125 { 2192 {
2126 "Conexant DMB-TH Stick", 2193 "Conexant DMB-TH Stick",
2127 { NULL }, 2194 { NULL },
2128 { &cxusb_table[18], NULL }, 2195 { &cxusb_table[CONEXANT_D680_DMB], NULL },
2129 }, 2196 },
2130 } 2197 }
2131}; 2198};
@@ -2179,7 +2246,7 @@ static struct dvb_usb_device_properties cxusb_mygica_d689_properties = {
2179 { 2246 {
2180 "Mygica D689 DMB-TH", 2247 "Mygica D689 DMB-TH",
2181 { NULL }, 2248 { NULL },
2182 { &cxusb_table[19], NULL }, 2249 { &cxusb_table[MYGICA_D689], NULL },
2183 }, 2250 },
2184 } 2251 }
2185}; 2252};
@@ -2232,7 +2299,7 @@ static struct dvb_usb_device_properties cxusb_mygica_t230_properties = {
2232 { 2299 {
2233 "Mygica T230 DVB-T/T2/C", 2300 "Mygica T230 DVB-T/T2/C",
2234 { NULL }, 2301 { NULL },
2235 { &cxusb_table[20], NULL }, 2302 { &cxusb_table[MYGICA_T230], NULL },
2236 }, 2303 },
2237 } 2304 }
2238}; 2305};