diff options
author | Hartmut Hackmann <hartmut.hackmann@t-online.de> | 2008-04-22 13:46:08 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-04-24 13:07:52 -0400 |
commit | 637afdb563a0801b6983650f889c64c074111776 (patch) | |
tree | 2c52d5083ec21903c3a78fe67ce9a747c5ef3b4c /drivers/media/video/saa7134 | |
parent | 867bc6cccc511ccbf40609ccb6ede2aafdeb922e (diff) |
V4L/DVB (7391): saa7134: Add DVB-S support for the MD 1734 cards with 2 saa7134
Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/saa7134')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 7 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-dvb.c | 23 |
2 files changed, 25 insertions, 5 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index e30f34e019b0..1b6c7d697f04 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -2911,15 +2911,13 @@ struct saa7134_board saa7134_boards[] = { | |||
2911 | }}, | 2911 | }}, |
2912 | }, | 2912 | }, |
2913 | [SAA7134_BOARD_MD7134_BRIDGE_2] = { | 2913 | [SAA7134_BOARD_MD7134_BRIDGE_2] = { |
2914 | /* This card has two saa7134 chips on it, | 2914 | /* The second saa7134 on this card only serves as DVB-S host bridge */ |
2915 | but only one of them is currently working. | ||
2916 | The programming for the primary decoder is | ||
2917 | in SAA7134_BOARD_MD7134 */ | ||
2918 | .name = "Medion 7134 Bridge #2", | 2915 | .name = "Medion 7134 Bridge #2", |
2919 | .audio_clock = 0x00187de7, | 2916 | .audio_clock = 0x00187de7, |
2920 | .radio_type = UNSET, | 2917 | .radio_type = UNSET, |
2921 | .tuner_addr = ADDR_UNSET, | 2918 | .tuner_addr = ADDR_UNSET, |
2922 | .radio_addr = ADDR_UNSET, | 2919 | .radio_addr = ADDR_UNSET, |
2920 | .mpeg = SAA7134_MPEG_DVB, | ||
2923 | }, | 2921 | }, |
2924 | [SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS] = { | 2922 | [SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS] = { |
2925 | .name = "LifeView FlyDVB-T Hybrid Cardbus/MSI TV @nywhere A/D NB", | 2923 | .name = "LifeView FlyDVB-T Hybrid Cardbus/MSI TV @nywhere A/D NB", |
@@ -5438,7 +5436,6 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
5438 | dev->has_remote = SAA7134_REMOTE_I2C; | 5436 | dev->has_remote = SAA7134_REMOTE_I2C; |
5439 | break; | 5437 | break; |
5440 | case SAA7134_BOARD_AVERMEDIA_A169_B: | 5438 | case SAA7134_BOARD_AVERMEDIA_A169_B: |
5441 | case SAA7134_BOARD_MD7134_BRIDGE_2: | ||
5442 | printk("%s: %s: dual saa713x broadcast decoders\n" | 5439 | printk("%s: %s: dual saa713x broadcast decoders\n" |
5443 | "%s: Sorry, none of the inputs to this chip are supported yet.\n" | 5440 | "%s: Sorry, none of the inputs to this chip are supported yet.\n" |
5444 | "%s: Dual decoder functionality is disabled for now, use the other chip.\n", | 5441 | "%s: Dual decoder functionality is disabled for now, use the other chip.\n", |
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c index 00f325ad565a..a29d800616b1 100644 --- a/drivers/media/video/saa7134/saa7134-dvb.c +++ b/drivers/media/video/saa7134/saa7134-dvb.c | |||
@@ -1156,6 +1156,29 @@ static int dvb_init(struct saa7134_dev *dev) | |||
1156 | &dev->i2c_adap); | 1156 | &dev->i2c_adap); |
1157 | attach_xc3028 = 1; | 1157 | attach_xc3028 = 1; |
1158 | break; | 1158 | break; |
1159 | case SAA7134_BOARD_MD7134_BRIDGE_2: | ||
1160 | dev->dvb.frontend = dvb_attach(tda10086_attach, | ||
1161 | &flydvbs, &dev->i2c_adap); | ||
1162 | if (dev->dvb.frontend) { | ||
1163 | struct dvb_frontend *fe; | ||
1164 | if (dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x60, | ||
1165 | &dev->i2c_adap, DVB_PLL_PHILIPS_SD1878_TDA8261) == NULL) | ||
1166 | wprintk("%s: MD7134 DVB-S, no SD1878 " | ||
1167 | "found !\n", __FUNCTION__); | ||
1168 | /* we need to open the i2c gate (we know it exists) */ | ||
1169 | fe = dev->dvb.frontend; | ||
1170 | fe->ops.i2c_gate_ctrl(fe, 1); | ||
1171 | if (dvb_attach(isl6405_attach, fe, | ||
1172 | &dev->i2c_adap, 0x08, 0, 0) == NULL) | ||
1173 | wprintk("%s: MD7134 DVB-S, no ISL6405 " | ||
1174 | "found !\n", __FUNCTION__); | ||
1175 | fe->ops.i2c_gate_ctrl(fe, 0); | ||
1176 | dev->original_set_voltage = fe->ops.set_voltage; | ||
1177 | fe->ops.set_voltage = md8800_set_voltage; | ||
1178 | dev->original_set_high_voltage = fe->ops.enable_high_lnb_voltage; | ||
1179 | fe->ops.enable_high_lnb_voltage = md8800_set_high_voltage; | ||
1180 | } | ||
1181 | break; | ||
1159 | default: | 1182 | default: |
1160 | wprintk("Huh? unknown DVB card?\n"); | 1183 | wprintk("Huh? unknown DVB card?\n"); |
1161 | break; | 1184 | break; |