diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-03-05 20:35:44 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-03-21 06:45:06 -0400 |
commit | 347d8f1fa69f4dd021f1ca3d69e1527d95f185e0 (patch) | |
tree | ec7025a899f91801871cc7c1773ad5adeacf4f1e | |
parent | b4059095ab281b940b52a6a0e826de25eb50e3c7 (diff) |
[media] siano: add new devices to the Siano Driver
This patch is based on Doron Cohen's patches:
http://patchwork.linuxtv.org/patch/7881/
http://patchwork.linuxtv.org/patch/7888/
http://patchwork.linuxtv.org/patch/7883/
It basically merges the above patches, rebasing them to
the macro definitions used upstream, with are different
than the ones used by them internally.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/common/siano/sms-cards.c | 65 | ||||
-rw-r--r-- | drivers/media/common/siano/sms-cards.h | 8 | ||||
-rw-r--r-- | drivers/media/mmc/siano/smssdio.c | 10 | ||||
-rw-r--r-- | drivers/media/usb/siano/smsusb.c | 31 |
4 files changed, 111 insertions, 3 deletions
diff --git a/drivers/media/common/siano/sms-cards.c b/drivers/media/common/siano/sms-cards.c index 04bb04ca414f..bb6e558b8120 100644 --- a/drivers/media/common/siano/sms-cards.c +++ b/drivers/media/common/siano/sms-cards.c | |||
@@ -28,43 +28,53 @@ MODULE_PARM_DESC(cards_dbg, "set debug level (info=1, adv=2 (or-able))"); | |||
28 | static struct sms_board sms_boards[] = { | 28 | static struct sms_board sms_boards[] = { |
29 | [SMS_BOARD_UNKNOWN] = { | 29 | [SMS_BOARD_UNKNOWN] = { |
30 | .name = "Unknown board", | 30 | .name = "Unknown board", |
31 | .type = SMS_UNKNOWN_TYPE, | ||
32 | .default_mode = DEVICE_MODE_NONE, | ||
31 | }, | 33 | }, |
32 | [SMS1XXX_BOARD_SIANO_STELLAR] = { | 34 | [SMS1XXX_BOARD_SIANO_STELLAR] = { |
33 | .name = "Siano Stellar Digital Receiver", | 35 | .name = "Siano Stellar Digital Receiver", |
34 | .type = SMS_STELLAR, | 36 | .type = SMS_STELLAR, |
37 | .default_mode = DEVICE_MODE_DVBT_BDA, | ||
35 | }, | 38 | }, |
36 | [SMS1XXX_BOARD_SIANO_NOVA_A] = { | 39 | [SMS1XXX_BOARD_SIANO_NOVA_A] = { |
37 | .name = "Siano Nova A Digital Receiver", | 40 | .name = "Siano Nova A Digital Receiver", |
38 | .type = SMS_NOVA_A0, | 41 | .type = SMS_NOVA_A0, |
42 | .default_mode = DEVICE_MODE_DVBT_BDA, | ||
39 | }, | 43 | }, |
40 | [SMS1XXX_BOARD_SIANO_NOVA_B] = { | 44 | [SMS1XXX_BOARD_SIANO_NOVA_B] = { |
41 | .name = "Siano Nova B Digital Receiver", | 45 | .name = "Siano Nova B Digital Receiver", |
42 | .type = SMS_NOVA_B0, | 46 | .type = SMS_NOVA_B0, |
47 | .default_mode = DEVICE_MODE_DVBT_BDA, | ||
43 | }, | 48 | }, |
44 | [SMS1XXX_BOARD_SIANO_VEGA] = { | 49 | [SMS1XXX_BOARD_SIANO_VEGA] = { |
45 | .name = "Siano Vega Digital Receiver", | 50 | .name = "Siano Vega Digital Receiver", |
46 | .type = SMS_VEGA, | 51 | .type = SMS_VEGA, |
52 | .default_mode = DEVICE_MODE_CMMB, | ||
47 | }, | 53 | }, |
48 | [SMS1XXX_BOARD_HAUPPAUGE_CATAMOUNT] = { | 54 | [SMS1XXX_BOARD_HAUPPAUGE_CATAMOUNT] = { |
49 | .name = "Hauppauge Catamount", | 55 | .name = "Hauppauge Catamount", |
50 | .type = SMS_STELLAR, | 56 | .type = SMS_STELLAR, |
51 | .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-stellar-dvbt-01.fw", | 57 | .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-stellar-dvbt-01.fw", |
58 | .default_mode = DEVICE_MODE_DVBT_BDA, | ||
52 | }, | 59 | }, |
53 | [SMS1XXX_BOARD_HAUPPAUGE_OKEMO_A] = { | 60 | [SMS1XXX_BOARD_HAUPPAUGE_OKEMO_A] = { |
54 | .name = "Hauppauge Okemo-A", | 61 | .name = "Hauppauge Okemo-A", |
55 | .type = SMS_NOVA_A0, | 62 | .type = SMS_NOVA_A0, |
56 | .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-nova-a-dvbt-01.fw", | 63 | .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-nova-a-dvbt-01.fw", |
64 | .default_mode = DEVICE_MODE_DVBT_BDA, | ||
57 | }, | 65 | }, |
58 | [SMS1XXX_BOARD_HAUPPAUGE_OKEMO_B] = { | 66 | [SMS1XXX_BOARD_HAUPPAUGE_OKEMO_B] = { |
59 | .name = "Hauppauge Okemo-B", | 67 | .name = "Hauppauge Okemo-B", |
60 | .type = SMS_NOVA_B0, | 68 | .type = SMS_NOVA_B0, |
61 | .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-nova-b-dvbt-01.fw", | 69 | .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-nova-b-dvbt-01.fw", |
70 | .default_mode = DEVICE_MODE_DVBT_BDA, | ||
62 | }, | 71 | }, |
63 | [SMS1XXX_BOARD_HAUPPAUGE_WINDHAM] = { | 72 | [SMS1XXX_BOARD_HAUPPAUGE_WINDHAM] = { |
64 | .name = "Hauppauge WinTV MiniStick", | 73 | .name = "Hauppauge WinTV MiniStick", |
65 | .type = SMS_NOVA_B0, | 74 | .type = SMS_NOVA_B0, |
66 | .fw[DEVICE_MODE_ISDBT_BDA] = "sms1xxx-hcw-55xxx-isdbt-02.fw", | 75 | .fw[DEVICE_MODE_ISDBT_BDA] = "sms1xxx-hcw-55xxx-isdbt-02.fw", |
67 | .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-hcw-55xxx-dvbt-02.fw", | 76 | .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-hcw-55xxx-dvbt-02.fw", |
77 | .default_mode = DEVICE_MODE_DVBT_BDA, | ||
68 | .rc_codes = RC_MAP_HAUPPAUGE, | 78 | .rc_codes = RC_MAP_HAUPPAUGE, |
69 | .board_cfg.leds_power = 26, | 79 | .board_cfg.leds_power = 26, |
70 | .board_cfg.led0 = 27, | 80 | .board_cfg.led0 = 27, |
@@ -78,6 +88,7 @@ static struct sms_board sms_boards[] = { | |||
78 | .name = "Hauppauge WinTV MiniCard", | 88 | .name = "Hauppauge WinTV MiniCard", |
79 | .type = SMS_NOVA_B0, | 89 | .type = SMS_NOVA_B0, |
80 | .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-hcw-55xxx-dvbt-02.fw", | 90 | .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-hcw-55xxx-dvbt-02.fw", |
91 | .default_mode = DEVICE_MODE_DVBT_BDA, | ||
81 | .lna_ctrl = 29, | 92 | .lna_ctrl = 29, |
82 | .board_cfg.foreign_lna0_ctrl = 29, | 93 | .board_cfg.foreign_lna0_ctrl = 29, |
83 | .rf_switch = 17, | 94 | .rf_switch = 17, |
@@ -87,17 +98,64 @@ static struct sms_board sms_boards[] = { | |||
87 | .name = "Hauppauge WinTV MiniCard", | 98 | .name = "Hauppauge WinTV MiniCard", |
88 | .type = SMS_NOVA_B0, | 99 | .type = SMS_NOVA_B0, |
89 | .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-hcw-55xxx-dvbt-02.fw", | 100 | .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-hcw-55xxx-dvbt-02.fw", |
101 | .default_mode = DEVICE_MODE_DVBT_BDA, | ||
90 | .lna_ctrl = -1, | 102 | .lna_ctrl = -1, |
91 | }, | 103 | }, |
92 | [SMS1XXX_BOARD_SIANO_NICE] = { | 104 | [SMS1XXX_BOARD_SIANO_NICE] = { |
93 | /* 11 */ | ||
94 | .name = "Siano Nice Digital Receiver", | 105 | .name = "Siano Nice Digital Receiver", |
95 | .type = SMS_NOVA_B0, | 106 | .type = SMS_NOVA_B0, |
107 | .default_mode = DEVICE_MODE_DVBT_BDA, | ||
96 | }, | 108 | }, |
97 | [SMS1XXX_BOARD_SIANO_VENICE] = { | 109 | [SMS1XXX_BOARD_SIANO_VENICE] = { |
98 | /* 12 */ | ||
99 | .name = "Siano Venice Digital Receiver", | 110 | .name = "Siano Venice Digital Receiver", |
100 | .type = SMS_VEGA, | 111 | .type = SMS_VEGA, |
112 | .default_mode = DEVICE_MODE_CMMB, | ||
113 | }, | ||
114 | [SMS1XXX_BOARD_SIANO_STELLAR_ROM] = { | ||
115 | .name = "Siano Stellar Digital Receiver ROM", | ||
116 | .type = SMS_STELLAR, | ||
117 | .default_mode = DEVICE_MODE_DVBT_BDA, | ||
118 | .intf_num = 1, | ||
119 | }, | ||
120 | [SMS1XXX_BOARD_ZTE_DVB_DATA_CARD] = { | ||
121 | .name = "ZTE Data Card Digital Receiver", | ||
122 | .type = SMS_NOVA_B0, | ||
123 | .default_mode = DEVICE_MODE_DVBT_BDA, | ||
124 | .intf_num = 5, | ||
125 | .mtu = 15792, | ||
126 | }, | ||
127 | [SMS1XXX_BOARD_ONDA_MDTV_DATA_CARD] = { | ||
128 | .name = "ONDA Data Card Digital Receiver", | ||
129 | .type = SMS_NOVA_B0, | ||
130 | .default_mode = DEVICE_MODE_DVBT_BDA, | ||
131 | .intf_num = 6, | ||
132 | .mtu = 15792, | ||
133 | }, | ||
134 | [SMS1XXX_BOARD_SIANO_MING] = { | ||
135 | .name = "Siano Ming Digital Receiver", | ||
136 | .type = SMS_MING, | ||
137 | .default_mode = DEVICE_MODE_CMMB, | ||
138 | }, | ||
139 | [SMS1XXX_BOARD_SIANO_PELE] = { | ||
140 | .name = "Siano Pele Digital Receiver", | ||
141 | .type = SMS_PELE, | ||
142 | .default_mode = DEVICE_MODE_ISDBT_BDA, | ||
143 | }, | ||
144 | [SMS1XXX_BOARD_SIANO_RIO] = { | ||
145 | .name = "Siano Rio Digital Receiver", | ||
146 | .type = SMS_RIO, | ||
147 | .default_mode = DEVICE_MODE_ISDBT_BDA, | ||
148 | }, | ||
149 | [SMS1XXX_BOARD_SIANO_DENVER_1530] = { | ||
150 | .name = "Siano Denver (ATSC-M/H) Digital Receiver", | ||
151 | .type = SMS_DENVER_1530, | ||
152 | .default_mode = DEVICE_MODE_ATSC, | ||
153 | .crystal = 2400, | ||
154 | }, | ||
155 | [SMS1XXX_BOARD_SIANO_DENVER_2160] = { | ||
156 | .name = "Siano Denver (TDMB) Digital Receiver", | ||
157 | .type = SMS_DENVER_2160, | ||
158 | .default_mode = DEVICE_MODE_DAB_TDMB, | ||
101 | }, | 159 | }, |
102 | }; | 160 | }; |
103 | 161 | ||
@@ -119,7 +177,8 @@ static inline void sms_gpio_assign_11xx_default_led_config( | |||
119 | } | 177 | } |
120 | 178 | ||
121 | int sms_board_event(struct smscore_device_t *coredev, | 179 | int sms_board_event(struct smscore_device_t *coredev, |
122 | enum SMS_BOARD_EVENTS gevent) { | 180 | enum SMS_BOARD_EVENTS gevent) |
181 | { | ||
123 | struct smscore_config_gpio MyGpioConfig; | 182 | struct smscore_config_gpio MyGpioConfig; |
124 | 183 | ||
125 | sms_gpio_assign_11xx_default_led_config(&MyGpioConfig); | 184 | sms_gpio_assign_11xx_default_led_config(&MyGpioConfig); |
diff --git a/drivers/media/common/siano/sms-cards.h b/drivers/media/common/siano/sms-cards.h index 9f1861aa71c9..c63b544c49c5 100644 --- a/drivers/media/common/siano/sms-cards.h +++ b/drivers/media/common/siano/sms-cards.h | |||
@@ -37,6 +37,14 @@ | |||
37 | #define SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2 10 | 37 | #define SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2 10 |
38 | #define SMS1XXX_BOARD_SIANO_NICE 11 | 38 | #define SMS1XXX_BOARD_SIANO_NICE 11 |
39 | #define SMS1XXX_BOARD_SIANO_VENICE 12 | 39 | #define SMS1XXX_BOARD_SIANO_VENICE 12 |
40 | #define SMS1XXX_BOARD_SIANO_STELLAR_ROM 13 | ||
41 | #define SMS1XXX_BOARD_ZTE_DVB_DATA_CARD 14 | ||
42 | #define SMS1XXX_BOARD_ONDA_MDTV_DATA_CARD 15 | ||
43 | #define SMS1XXX_BOARD_SIANO_MING 16 | ||
44 | #define SMS1XXX_BOARD_SIANO_PELE 17 | ||
45 | #define SMS1XXX_BOARD_SIANO_RIO 18 | ||
46 | #define SMS1XXX_BOARD_SIANO_DENVER_1530 19 | ||
47 | #define SMS1XXX_BOARD_SIANO_DENVER_2160 20 | ||
40 | 48 | ||
41 | struct sms_board_gpio_cfg { | 49 | struct sms_board_gpio_cfg { |
42 | int lna_vhf_exist; | 50 | int lna_vhf_exist; |
diff --git a/drivers/media/mmc/siano/smssdio.c b/drivers/media/mmc/siano/smssdio.c index 15d34935e00b..c96da47bece5 100644 --- a/drivers/media/mmc/siano/smssdio.c +++ b/drivers/media/mmc/siano/smssdio.c | |||
@@ -61,6 +61,16 @@ static const struct sdio_device_id smssdio_ids[] = { | |||
61 | .driver_data = SMS1XXX_BOARD_SIANO_VEGA}, | 61 | .driver_data = SMS1XXX_BOARD_SIANO_VEGA}, |
62 | {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, SDIO_DEVICE_ID_SIANO_VENICE), | 62 | {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, SDIO_DEVICE_ID_SIANO_VENICE), |
63 | .driver_data = SMS1XXX_BOARD_SIANO_VEGA}, | 63 | .driver_data = SMS1XXX_BOARD_SIANO_VEGA}, |
64 | {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, 0x302), | ||
65 | .driver_data = SMS1XXX_BOARD_SIANO_MING}, | ||
66 | {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, 0x500), | ||
67 | .driver_data = SMS1XXX_BOARD_SIANO_PELE}, | ||
68 | {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, 0x600), | ||
69 | .driver_data = SMS1XXX_BOARD_SIANO_RIO}, | ||
70 | {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, 0x700), | ||
71 | .driver_data = SMS1XXX_BOARD_SIANO_DENVER_2160}, | ||
72 | {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, 0x800), | ||
73 | .driver_data = SMS1XXX_BOARD_SIANO_DENVER_1530}, | ||
64 | { /* end: all zeroes */ }, | 74 | { /* end: all zeroes */ }, |
65 | }; | 75 | }; |
66 | 76 | ||
diff --git a/drivers/media/usb/siano/smsusb.c b/drivers/media/usb/siano/smsusb.c index a31bf74a5957..751c0d6d98b8 100644 --- a/drivers/media/usb/siano/smsusb.c +++ b/drivers/media/usb/siano/smsusb.c | |||
@@ -441,6 +441,7 @@ static int smsusb_probe(struct usb_interface *intf, | |||
441 | const struct usb_device_id *id) | 441 | const struct usb_device_id *id) |
442 | { | 442 | { |
443 | struct usb_device *udev = interface_to_usbdev(intf); | 443 | struct usb_device *udev = interface_to_usbdev(intf); |
444 | char devpath[32]; | ||
444 | int i, rc; | 445 | int i, rc; |
445 | 446 | ||
446 | sms_info("interface number %d", | 447 | sms_info("interface number %d", |
@@ -485,6 +486,16 @@ static int smsusb_probe(struct usb_interface *intf, | |||
485 | return -ENODEV; | 486 | return -ENODEV; |
486 | } | 487 | } |
487 | 488 | ||
489 | if (id->driver_info == SMS1XXX_BOARD_SIANO_STELLAR_ROM) { | ||
490 | sms_info("stellar device was found."); | ||
491 | snprintf(devpath, sizeof(devpath), "usb\\%d-%s", | ||
492 | udev->bus->busnum, udev->devpath); | ||
493 | sms_info("stellar device was found."); | ||
494 | return smsusb1_load_firmware( | ||
495 | udev, smscore_registry_getmode(devpath), | ||
496 | id->driver_info); | ||
497 | } | ||
498 | |||
488 | rc = smsusb_init_device(intf, id->driver_info); | 499 | rc = smsusb_init_device(intf, id->driver_info); |
489 | sms_info("rc %d", rc); | 500 | sms_info("rc %d", rc); |
490 | sms_board_load_modules(id->driver_info); | 501 | sms_board_load_modules(id->driver_info); |
@@ -602,6 +613,26 @@ static const struct usb_device_id smsusb_id_table[] = { | |||
602 | .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM }, | 613 | .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM }, |
603 | { USB_DEVICE(0x2040, 0xf5a0), | 614 | { USB_DEVICE(0x2040, 0xf5a0), |
604 | .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM }, | 615 | .driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM }, |
616 | { USB_DEVICE(0x187f, 0x0202), | ||
617 | .driver_info = SMS1XXX_BOARD_SIANO_NICE }, | ||
618 | { USB_DEVICE(0x187f, 0x0301), | ||
619 | .driver_info = SMS1XXX_BOARD_SIANO_VENICE }, | ||
620 | { USB_DEVICE(0x187f, 0x0302), | ||
621 | .driver_info = SMS1XXX_BOARD_SIANO_VENICE }, | ||
622 | { USB_DEVICE(0x187f, 0x0310), | ||
623 | .driver_info = SMS1XXX_BOARD_SIANO_MING }, | ||
624 | { USB_DEVICE(0x187f, 0x0500), | ||
625 | .driver_info = SMS1XXX_BOARD_SIANO_PELE }, | ||
626 | { USB_DEVICE(0x187f, 0x0600), | ||
627 | .driver_info = SMS1XXX_BOARD_SIANO_RIO }, | ||
628 | { USB_DEVICE(0x187f, 0x0700), | ||
629 | .driver_info = SMS1XXX_BOARD_SIANO_DENVER_2160 }, | ||
630 | { USB_DEVICE(0x187f, 0x0800), | ||
631 | .driver_info = SMS1XXX_BOARD_SIANO_DENVER_1530 }, | ||
632 | { USB_DEVICE(0x19D2, 0x0086), | ||
633 | .driver_info = SMS1XXX_BOARD_ZTE_DVB_DATA_CARD }, | ||
634 | { USB_DEVICE(0x19D2, 0x0078), | ||
635 | .driver_info = SMS1XXX_BOARD_ONDA_MDTV_DATA_CARD }, | ||
605 | { } /* Terminating entry */ | 636 | { } /* Terminating entry */ |
606 | }; | 637 | }; |
607 | 638 | ||