diff options
author | Mauro Carvalho Chehab <mchehab@brturbo.com.br> | 2005-11-09 00:37:24 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-09 10:56:17 -0500 |
commit | 596d92d5128d308b5a79f21c3e72c87f5fc7e58b (patch) | |
tree | 3957529296b0765e7979f205a9dd0bce7de1eb7a /drivers/media/video/em28xx/em28xx-cards.c | |
parent | 2b5200a7b19a53969db68c97d379339592ca6a4f (diff) |
[PATCH] v4l: 767: included support for em2800
- Included support for em2800.
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/media/video/em28xx/em28xx-cards.c')
-rw-r--r-- | drivers/media/video/em28xx/em28xx-cards.c | 125 |
1 files changed, 113 insertions, 12 deletions
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c index 7333bbad8871..91c70ebd0ea4 100644 --- a/drivers/media/video/em28xx/em28xx-cards.c +++ b/drivers/media/video/em28xx/em28xx-cards.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | em2820-cards.c - driver for Empia EM2820/2840 USB video capture devices | 2 | em2820-cards.c - driver for Empia EM2800/EM2820/2840 USB video capture devices |
3 | 3 | ||
4 | Copyright (C) 2005 Markus Rechberger <mrechberger@gmail.com> | 4 | Copyright (C) 2005 Markus Rechberger <mrechberger@gmail.com> |
5 | Ludovico Cavedon <cavedon@sssup.it> | 5 | Ludovico Cavedon <cavedon@sssup.it> |
@@ -35,14 +35,43 @@ | |||
35 | 35 | ||
36 | #include "em2820.h" | 36 | #include "em2820.h" |
37 | 37 | ||
38 | enum em2820_board_entry { | ||
39 | EM2820_BOARD_TERRATEC_CINERGY_250, | ||
40 | EM2820_BOARD_PINNACLE_USB_2, | ||
41 | EM2820_BOARD_HAUPPAUGE_WINTV_USB_2, | ||
42 | EM2820_BOARD_MSI_VOX_USB_2 | ||
43 | }; | ||
44 | |||
45 | struct em2820_board em2820_boards[] = { | 38 | struct em2820_board em2820_boards[] = { |
39 | [EM2800_BOARD_UNKNOWN] = { | ||
40 | .name = "Unknown EM2800 video grabber", | ||
41 | .is_em2800 = 1, | ||
42 | .vchannels = 2, | ||
43 | .norm = VIDEO_MODE_PAL, | ||
44 | .tda9887_conf = TDA9887_PRESENT, | ||
45 | .has_tuner = 1, | ||
46 | .decoder = EM2820_SAA7113, | ||
47 | .input = {{ | ||
48 | .type = EM2820_VMUX_COMPOSITE1, | ||
49 | .vmux = 0, | ||
50 | .amux = 1, | ||
51 | },{ | ||
52 | .type = EM2820_VMUX_SVIDEO, | ||
53 | .vmux = 9, | ||
54 | .amux = 1, | ||
55 | }}, | ||
56 | }, | ||
57 | [EM2820_BOARD_UNKNOWN] = { | ||
58 | .name = "Unknown EM2820/2840 video grabber", | ||
59 | .is_em2800 = 0, | ||
60 | .vchannels = 2, | ||
61 | .norm = VIDEO_MODE_PAL, | ||
62 | .tda9887_conf = TDA9887_PRESENT, | ||
63 | .has_tuner = 1, | ||
64 | .decoder = EM2820_SAA7113, | ||
65 | .input = {{ | ||
66 | .type = EM2820_VMUX_COMPOSITE1, | ||
67 | .vmux = 0, | ||
68 | .amux = 1, | ||
69 | },{ | ||
70 | .type = EM2820_VMUX_SVIDEO, | ||
71 | .vmux = 9, | ||
72 | .amux = 1, | ||
73 | }}, | ||
74 | }, | ||
46 | [EM2820_BOARD_TERRATEC_CINERGY_250] = { | 75 | [EM2820_BOARD_TERRATEC_CINERGY_250] = { |
47 | .name = "Terratec Cinergy 250 USB", | 76 | .name = "Terratec Cinergy 250 USB", |
48 | .vchannels = 3, | 77 | .vchannels = 3, |
@@ -129,17 +158,88 @@ struct em2820_board em2820_boards[] = { | |||
129 | .amux = 1, | 158 | .amux = 1, |
130 | }}, | 159 | }}, |
131 | }, | 160 | }, |
132 | { } /* Terminating entry */ | 161 | [EM2800_BOARD_TERRATEC_CINERGY_200] = { |
162 | .name = "Terratec Cinergy 200 USB", | ||
163 | .chip_id = 0x4, | ||
164 | .is_em2800 = 1, | ||
165 | .vchannels = 3, | ||
166 | .norm = VIDEO_MODE_PAL, | ||
167 | .tuner_type = TUNER_LG_PAL_NEW_TAPC, | ||
168 | .tda9887_conf = TDA9887_PRESENT, | ||
169 | .has_tuner = 1, | ||
170 | .decoder = EM2820_SAA7113, | ||
171 | .input = {{ | ||
172 | .type = EM2820_VMUX_TELEVISION, | ||
173 | .vmux = 2, | ||
174 | .amux = 0, | ||
175 | },{ | ||
176 | .type = EM2820_VMUX_COMPOSITE1, | ||
177 | .vmux = 0, | ||
178 | .amux = 1, | ||
179 | },{ | ||
180 | .type = EM2820_VMUX_SVIDEO, | ||
181 | .vmux = 9, | ||
182 | .amux = 1, | ||
183 | }}, | ||
184 | }, | ||
185 | [EM2800_BOARD_LEADTEK_WINFAST_USBII] = { | ||
186 | .name = "Leadtek Winfast USB II", | ||
187 | .chip_id = 0x2, | ||
188 | .is_em2800 = 1, | ||
189 | .vchannels = 3, | ||
190 | .norm = VIDEO_MODE_PAL, | ||
191 | .tuner_type = TUNER_LG_PAL_NEW_TAPC, | ||
192 | .tda9887_conf = TDA9887_PRESENT, | ||
193 | .has_tuner = 1, | ||
194 | .decoder = EM2820_SAA7113, | ||
195 | .input = {{ | ||
196 | .type = EM2820_VMUX_TELEVISION, | ||
197 | .vmux = 2, | ||
198 | .amux = 0, | ||
199 | },{ | ||
200 | .type = EM2820_VMUX_COMPOSITE1, | ||
201 | .vmux = 0, | ||
202 | .amux = 1, | ||
203 | },{ | ||
204 | .type = EM2820_VMUX_SVIDEO, | ||
205 | .vmux = 9, | ||
206 | .amux = 1, | ||
207 | }}, | ||
208 | }, | ||
209 | [EM2800_BOARD_KWORLD_USB2800] = { | ||
210 | .name = "Kworld USB2800", | ||
211 | .chip_id = 0x7, | ||
212 | .is_em2800 = 1, | ||
213 | .vchannels = 3, | ||
214 | .norm = VIDEO_MODE_PAL, | ||
215 | .tuner_type = TUNER_PHILIPS_ATSC, | ||
216 | .tda9887_conf = TDA9887_PRESENT, | ||
217 | .has_tuner = 1, | ||
218 | .decoder = EM2820_SAA7113, | ||
219 | .input = {{ | ||
220 | .type = EM2820_VMUX_TELEVISION, | ||
221 | .vmux = 2, | ||
222 | .amux = 0, | ||
223 | },{ | ||
224 | .type = EM2820_VMUX_COMPOSITE1, | ||
225 | .vmux = 0, | ||
226 | .amux = 1, | ||
227 | },{ | ||
228 | .type = EM2820_VMUX_SVIDEO, | ||
229 | .vmux = 9, | ||
230 | .amux = 1, | ||
231 | }}, | ||
232 | }, | ||
133 | }; | 233 | }; |
234 | const unsigned int em2820_bcount = ARRAY_SIZE(em2820_boards); | ||
134 | 235 | ||
135 | /* table of devices that work with this driver */ | 236 | /* table of devices that work with this driver */ |
136 | struct usb_device_id em2820_id_table [] = { | 237 | struct usb_device_id em2820_id_table [] = { |
137 | /* Terratec Cinerhy 200 USB: em2800 nor supported, at the moment */ | 238 | { USB_DEVICE(0xeb1a, 0x2800), .driver_info = EM2800_BOARD_UNKNOWN }, |
138 | /* { USB_DEVICE(0xeb1a, 0x2800), .driver_info = EM2800_BOARD_TERRATEC_CINERGY_200 }, */ | 239 | { USB_DEVICE(0xeb1a, 0x2820), .driver_info = EM2820_BOARD_UNKNOWN }, |
139 | { USB_DEVICE(0x0ccd, 0x0036), .driver_info = EM2820_BOARD_TERRATEC_CINERGY_250 }, | 240 | { USB_DEVICE(0x0ccd, 0x0036), .driver_info = EM2820_BOARD_TERRATEC_CINERGY_250 }, |
140 | { USB_DEVICE(0x2304, 0x0208), .driver_info = EM2820_BOARD_PINNACLE_USB_2 }, | 241 | { USB_DEVICE(0x2304, 0x0208), .driver_info = EM2820_BOARD_PINNACLE_USB_2 }, |
141 | { USB_DEVICE(0x2040, 0x4200), .driver_info = EM2820_BOARD_HAUPPAUGE_WINTV_USB_2 }, | 242 | { USB_DEVICE(0x2040, 0x4200), .driver_info = EM2820_BOARD_HAUPPAUGE_WINTV_USB_2 }, |
142 | { USB_DEVICE(0xeb1a, 0x2820), .driver_info = EM2820_BOARD_MSI_VOX_USB_2 }, | ||
143 | { }, | 243 | { }, |
144 | }; | 244 | }; |
145 | 245 | ||
@@ -163,6 +263,7 @@ void em2820_card_setup(struct em2820 *dev) | |||
163 | } | 263 | } |
164 | 264 | ||
165 | EXPORT_SYMBOL(em2820_boards); | 265 | EXPORT_SYMBOL(em2820_boards); |
266 | EXPORT_SYMBOL(em2820_bcount); | ||
166 | EXPORT_SYMBOL(em2820_id_table); | 267 | EXPORT_SYMBOL(em2820_id_table); |
167 | 268 | ||
168 | MODULE_DEVICE_TABLE (usb, em2820_id_table); | 269 | MODULE_DEVICE_TABLE (usb, em2820_id_table); |