diff options
author | Markus Rechberger <mrechberger@gmail.com> | 2006-02-26 22:07:27 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-02-26 22:07:27 -0500 |
commit | 0004fd59d57a5875db8897966c414a88b5dad481 (patch) | |
tree | e0f28025301fb87125c38ed51a51f6f29456d1fa /drivers/media/video | |
parent | 1d519605f13dd2c51024060465a16ddd1abfb649 (diff) |
V4L/DVB (3291): Added support for xc3028 analogue tuner (Hauppauge HVR900, Terratec Hybrid XS)
Added support for xc3028 to v4l which adds support for:
* Terratec Hybrid XS (analogue)
* Hauppauge HVR 900 (analogue)
Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video')
-rw-r--r-- | drivers/media/video/Makefile | 2 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx-cards.c | 4 | ||||
-rw-r--r-- | drivers/media/video/tuner-core.c | 3 | ||||
-rw-r--r-- | drivers/media/video/tuner-types.c | 21 |
4 files changed, 27 insertions, 3 deletions
diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile index faf728366c4e..60e9c6e3f2b7 100644 --- a/drivers/media/video/Makefile +++ b/drivers/media/video/Makefile | |||
@@ -9,7 +9,7 @@ zoran-objs := zr36120.o zr36120_i2c.o zr36120_mem.o | |||
9 | zr36067-objs := zoran_procfs.o zoran_device.o \ | 9 | zr36067-objs := zoran_procfs.o zoran_device.o \ |
10 | zoran_driver.o zoran_card.o | 10 | zoran_driver.o zoran_card.o |
11 | tuner-objs := tuner-core.o tuner-types.o tuner-simple.o \ | 11 | tuner-objs := tuner-core.o tuner-types.o tuner-simple.o \ |
12 | mt20xx.o tda8290.o tea5767.o | 12 | mt20xx.o tda8290.o tea5767.o xc3028.o |
13 | 13 | ||
14 | msp3400-objs := msp3400-driver.o msp3400-kthreads.o | 14 | msp3400-objs := msp3400-driver.o msp3400-kthreads.o |
15 | 15 | ||
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c index 703927e8da13..e9834c159aec 100644 --- a/drivers/media/video/em28xx/em28xx-cards.c +++ b/drivers/media/video/em28xx/em28xx-cards.c | |||
@@ -158,8 +158,8 @@ struct em28xx_board em28xx_boards[] = { | |||
158 | .name = "Hauppauge WinTV HVR 900", | 158 | .name = "Hauppauge WinTV HVR 900", |
159 | .vchannels = 3, | 159 | .vchannels = 3, |
160 | .norm = VIDEO_MODE_PAL, | 160 | .norm = VIDEO_MODE_PAL, |
161 | .has_tuner = 0, | ||
162 | .tda9887_conf = TDA9887_PRESENT, | 161 | .tda9887_conf = TDA9887_PRESENT, |
162 | .tuner_type = TUNER_XCEIVE_XC3028, | ||
163 | .has_tuner = 1, | 163 | .has_tuner = 1, |
164 | .decoder = EM28XX_TVP5150, | 164 | .decoder = EM28XX_TVP5150, |
165 | .input = {{ | 165 | .input = {{ |
@@ -180,8 +180,8 @@ struct em28xx_board em28xx_boards[] = { | |||
180 | .name = "Terratec Hybrid XS", | 180 | .name = "Terratec Hybrid XS", |
181 | .vchannels = 3, | 181 | .vchannels = 3, |
182 | .norm = VIDEO_MODE_PAL, | 182 | .norm = VIDEO_MODE_PAL, |
183 | .has_tuner = 0, | ||
184 | .tda9887_conf = TDA9887_PRESENT, | 183 | .tda9887_conf = TDA9887_PRESENT, |
184 | .tuner_type = TUNER_XCEIVE_XC3028, | ||
185 | .has_tuner = 1, | 185 | .has_tuner = 1, |
186 | .decoder = EM28XX_TVP5150, | 186 | .decoder = EM28XX_TVP5150, |
187 | .input = {{ | 187 | .input = {{ |
diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c index e34f801c9a10..520f274c89e5 100644 --- a/drivers/media/video/tuner-core.c +++ b/drivers/media/video/tuner-core.c | |||
@@ -217,6 +217,9 @@ static void set_type(struct i2c_client *c, unsigned int type, | |||
217 | i2c_master_send(c,buffer,4); | 217 | i2c_master_send(c,buffer,4); |
218 | default_tuner_init(c); | 218 | default_tuner_init(c); |
219 | break; | 219 | break; |
220 | case TUNER_XCEIVE_XC3028: | ||
221 | xc3028_init(c); | ||
222 | break; | ||
220 | default: | 223 | default: |
221 | default_tuner_init(c); | 224 | default_tuner_init(c); |
222 | break; | 225 | break; |
diff --git a/drivers/media/video/tuner-types.c b/drivers/media/video/tuner-types.c index a90bc04cf807..a4384e6e5318 100644 --- a/drivers/media/video/tuner-types.c +++ b/drivers/media/video/tuner-types.c | |||
@@ -983,6 +983,23 @@ static struct tuner_params tuner_samsung_tcpn_2121p30a_params[] = { | |||
983 | }, | 983 | }, |
984 | }; | 984 | }; |
985 | 985 | ||
986 | /* ------------ TUNER_XCEIVE_XC3028 - Xceive xc3028 ------------ */ | ||
987 | |||
988 | static struct tuner_range tuner_xceive_xc3028_ranges[] = { | ||
989 | { 16 * 140.25 /*MHz*/, 0x02, }, | ||
990 | { 16 * 463.25 /*MHz*/, 0x04, }, | ||
991 | { 16 * 999.99 , 0x01, }, | ||
992 | }; | ||
993 | |||
994 | static struct tuner_params tuner_xceive_xc3028_params[] = { | ||
995 | { | ||
996 | .type = TUNER_XCEIVE_XC3028, | ||
997 | .ranges = tuner_xceive_xc3028_ranges, | ||
998 | .count = ARRAY_SIZE(tuner_xceive_xc3028_ranges), | ||
999 | }, | ||
1000 | }; | ||
1001 | |||
1002 | |||
986 | /* --------------------------------------------------------------------- */ | 1003 | /* --------------------------------------------------------------------- */ |
987 | 1004 | ||
988 | struct tunertype tuners[] = { | 1005 | struct tunertype tuners[] = { |
@@ -1350,6 +1367,10 @@ struct tunertype tuners[] = { | |||
1350 | .params = tuner_samsung_tcpn_2121p30a_params, | 1367 | .params = tuner_samsung_tcpn_2121p30a_params, |
1351 | .count = ARRAY_SIZE(tuner_samsung_tcpn_2121p30a_params), | 1368 | .count = ARRAY_SIZE(tuner_samsung_tcpn_2121p30a_params), |
1352 | }, | 1369 | }, |
1370 | [TUNER_XCEIVE_XC3028] = { /* Xceive 3028 */ | ||
1371 | .name = "Xceive xc3028", | ||
1372 | .params = tuner_xceive_xc3028_params, | ||
1373 | }, | ||
1353 | }; | 1374 | }; |
1354 | 1375 | ||
1355 | unsigned const int tuner_count = ARRAY_SIZE(tuners); | 1376 | unsigned const int tuner_count = ARRAY_SIZE(tuners); |