diff options
author | Matthias Schwarzott <zzam@gentoo.org> | 2009-02-24 10:35:16 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-03-30 11:43:06 -0400 |
commit | 04574185aa9ad0e6be7db96252f3c479beb5b3fa (patch) | |
tree | 35f5b816e08f67867b9dbf4c908e1be69b82d39e | |
parent | 68b3289fdb27f5d3e32587766ddafa487037b0bd (diff) |
V4L/DVB (10823): saa7134: add DVB support for Avermedia A700 cards
Add DVB support for Avermedia DVB-S Pro and
Avermedia DVB-S Hybrid+FM card both labled A700.
They use zl10313 demod (driver mt312) and zl10036 tuner.
[mchehab@redhat.com: change __FUNCTION__ into __func__]
Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/video/saa7134/Kconfig | 2 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 16 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-dvb.c | 27 |
3 files changed, 36 insertions, 9 deletions
diff --git a/drivers/media/video/saa7134/Kconfig b/drivers/media/video/saa7134/Kconfig index fc2164e28e76..a3470ebad50a 100644 --- a/drivers/media/video/saa7134/Kconfig +++ b/drivers/media/video/saa7134/Kconfig | |||
@@ -37,6 +37,8 @@ config VIDEO_SAA7134_DVB | |||
37 | select DVB_ISL6421 if !DVB_FE_CUSTOMISE | 37 | select DVB_ISL6421 if !DVB_FE_CUSTOMISE |
38 | select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE | 38 | select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE |
39 | select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE | 39 | select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE |
40 | select DVB_ZL10036 if !DVB_FE_CUSTOMISE | ||
41 | select DVB_MT312 if !DVB_FE_CUSTOMISE | ||
40 | ---help--- | 42 | ---help--- |
41 | This adds support for DVB cards based on the | 43 | This adds support for DVB cards based on the |
42 | Philips saa7134 chip. | 44 | Philips saa7134 chip. |
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 67c223cc867f..9f69c7c85814 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -4421,8 +4421,7 @@ struct saa7134_board saa7134_boards[] = { | |||
4421 | .radio_type = UNSET, | 4421 | .radio_type = UNSET, |
4422 | .tuner_addr = ADDR_UNSET, | 4422 | .tuner_addr = ADDR_UNSET, |
4423 | .radio_addr = ADDR_UNSET, | 4423 | .radio_addr = ADDR_UNSET, |
4424 | /* no DVB support for now */ | 4424 | .mpeg = SAA7134_MPEG_DVB, |
4425 | /* .mpeg = SAA7134_MPEG_DVB, */ | ||
4426 | .inputs = { { | 4425 | .inputs = { { |
4427 | .name = name_comp, | 4426 | .name = name_comp, |
4428 | .vmux = 1, | 4427 | .vmux = 1, |
@@ -4441,8 +4440,7 @@ struct saa7134_board saa7134_boards[] = { | |||
4441 | .radio_type = UNSET, | 4440 | .radio_type = UNSET, |
4442 | .tuner_addr = ADDR_UNSET, | 4441 | .tuner_addr = ADDR_UNSET, |
4443 | .radio_addr = ADDR_UNSET, | 4442 | .radio_addr = ADDR_UNSET, |
4444 | /* no DVB support for now */ | 4443 | .mpeg = SAA7134_MPEG_DVB, |
4445 | /* .mpeg = SAA7134_MPEG_DVB, */ | ||
4446 | .inputs = { { | 4444 | .inputs = { { |
4447 | .name = name_comp, | 4445 | .name = name_comp, |
4448 | .vmux = 1, | 4446 | .vmux = 1, |
@@ -6084,15 +6082,15 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
6084 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x8c040007, 0x8c040007); | 6082 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x8c040007, 0x8c040007); |
6085 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd); | 6083 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd); |
6086 | break; | 6084 | break; |
6087 | case SAA7134_BOARD_AVERMEDIA_A700_PRO: | ||
6088 | case SAA7134_BOARD_AVERMEDIA_A700_HYBRID: | 6085 | case SAA7134_BOARD_AVERMEDIA_A700_HYBRID: |
6089 | /* write windows gpio values */ | ||
6090 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x80040100, 0x80040100); | ||
6091 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x80040100, 0x00040100); | ||
6092 | printk("%s: %s: hybrid analog/dvb card\n" | 6086 | printk("%s: %s: hybrid analog/dvb card\n" |
6093 | "%s: Sorry, only analog s-video and composite input " | 6087 | "%s: Sorry, of the analog inputs, only analog s-video and composite " |
6094 | "are supported for now.\n", | 6088 | "are supported for now.\n", |
6095 | dev->name, card(dev).name, dev->name); | 6089 | dev->name, card(dev).name, dev->name); |
6090 | case SAA7134_BOARD_AVERMEDIA_A700_PRO: | ||
6091 | /* write windows gpio values */ | ||
6092 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x80040100, 0x80040100); | ||
6093 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x80040100, 0x00040100); | ||
6096 | break; | 6094 | break; |
6097 | } | 6095 | } |
6098 | return 0; | 6096 | return 0; |
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c index af9a22d1b94d..80ad96ad8939 100644 --- a/drivers/media/video/saa7134/saa7134-dvb.c +++ b/drivers/media/video/saa7134/saa7134-dvb.c | |||
@@ -51,6 +51,9 @@ | |||
51 | 51 | ||
52 | #include "zl10353.h" | 52 | #include "zl10353.h" |
53 | 53 | ||
54 | #include "zl10036.h" | ||
55 | #include "mt312.h" | ||
56 | |||
54 | MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]"); | 57 | MODULE_AUTHOR("Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]"); |
55 | MODULE_LICENSE("GPL"); | 58 | MODULE_LICENSE("GPL"); |
56 | 59 | ||
@@ -950,6 +953,17 @@ static struct nxt200x_config kworldatsc110 = { | |||
950 | .demod_address = 0x0a, | 953 | .demod_address = 0x0a, |
951 | }; | 954 | }; |
952 | 955 | ||
956 | /* ------------------------------------------------------------------ */ | ||
957 | |||
958 | static struct mt312_config avertv_a700_mt312 = { | ||
959 | .demod_address = 0x0e, | ||
960 | .voltage_inverted = 1, | ||
961 | }; | ||
962 | |||
963 | static struct zl10036_config avertv_a700_tuner = { | ||
964 | .tuner_address = 0x60, | ||
965 | }; | ||
966 | |||
953 | /* ================================================================== | 967 | /* ================================================================== |
954 | * Core code | 968 | * Core code |
955 | */ | 969 | */ |
@@ -1376,6 +1390,19 @@ static int dvb_init(struct saa7134_dev *dev) | |||
1376 | TUNER_PHILIPS_FMD1216ME_MK3); | 1390 | TUNER_PHILIPS_FMD1216ME_MK3); |
1377 | } | 1391 | } |
1378 | break; | 1392 | break; |
1393 | case SAA7134_BOARD_AVERMEDIA_A700_PRO: | ||
1394 | case SAA7134_BOARD_AVERMEDIA_A700_HYBRID: | ||
1395 | /* Zarlink ZL10313 */ | ||
1396 | fe0->dvb.frontend = dvb_attach(mt312_attach, | ||
1397 | &avertv_a700_mt312, &dev->i2c_adap); | ||
1398 | if (fe0->dvb.frontend) { | ||
1399 | if (dvb_attach(zl10036_attach, fe0->dvb.frontend, | ||
1400 | &avertv_a700_tuner, &dev->i2c_adap) == NULL) { | ||
1401 | wprintk("%s: No zl10036 found!\n", | ||
1402 | __func__); | ||
1403 | } | ||
1404 | } | ||
1405 | break; | ||
1379 | default: | 1406 | default: |
1380 | wprintk("Huh? unknown DVB card?\n"); | 1407 | wprintk("Huh? unknown DVB card?\n"); |
1381 | break; | 1408 | break; |