aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHartmut Hackmann <hartmut.hackmann@t-online.de>2006-02-26 22:09:11 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-02-26 22:09:11 -0500
commit44fd06fa9002c42b367c152594cc95b7632c081d (patch)
tree296578d5a5bb6ff131ac2c8b1fa6b88be0548153
parent36f4f334a169e5d42721d74b5d92fda89f792b06 (diff)
V4L/DVB (3378): Restore power on defaults of tda9887 after tda8290 probe
The probing code for tda8290 changes the state of the tda9887 GP ports. The patch assumes that if probing for tda8290 failed, this must be a tda9887 and restores its power on defaults. This should solve the module load order issue with some pinnacle cards. Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c4
-rw-r--r--drivers/media/video/tda8290.c8
2 files changed, 7 insertions, 5 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
index ca90a73f71d4..eaf32b81ccf8 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -2213,7 +2213,7 @@ struct saa7134_board saa7134_boards[] = {
2213 .radio_type = UNSET, 2213 .radio_type = UNSET,
2214 .tuner_addr = 0x61, 2214 .tuner_addr = 0x61,
2215 .radio_addr = ADDR_UNSET, 2215 .radio_addr = ADDR_UNSET,
2216 .tda9887_conf = TDA9887_PRESENT, 2216 .tda9887_conf = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
2217 .mpeg = SAA7134_MPEG_DVB, 2217 .mpeg = SAA7134_MPEG_DVB,
2218 .inputs = {{ 2218 .inputs = {{
2219 .name = name_tv, 2219 .name = name_tv,
@@ -2237,7 +2237,7 @@ struct saa7134_board saa7134_boards[] = {
2237 .radio_type = UNSET, 2237 .radio_type = UNSET,
2238 .tuner_addr = 0x61, 2238 .tuner_addr = 0x61,
2239 .radio_addr = ADDR_UNSET, 2239 .radio_addr = ADDR_UNSET,
2240 .tda9887_conf = TDA9887_PRESENT, 2240 .tda9887_conf = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
2241 .mpeg = SAA7134_MPEG_DVB, 2241 .mpeg = SAA7134_MPEG_DVB,
2242 .inputs = {{ 2242 .inputs = {{
2243 .name = name_tv, 2243 .name = name_tv,
diff --git a/drivers/media/video/tda8290.c b/drivers/media/video/tda8290.c
index 2b954b3d2ba6..027c8a074dfe 100644
--- a/drivers/media/video/tda8290.c
+++ b/drivers/media/video/tda8290.c
@@ -584,9 +584,10 @@ int tda8290_init(struct i2c_client *c)
584 584
585int tda8290_probe(struct i2c_client *c) 585int tda8290_probe(struct i2c_client *c)
586{ 586{
587 unsigned char soft_reset[] = { 0x00, 0x00 }; 587 unsigned char soft_reset[] = { 0x00, 0x00 };
588 unsigned char easy_mode_b[] = { 0x01, 0x02 }; 588 unsigned char easy_mode_b[] = { 0x01, 0x02 };
589 unsigned char easy_mode_g[] = { 0x01, 0x04 }; 589 unsigned char easy_mode_g[] = { 0x01, 0x04 };
590 unsigned char restore_9886[] = { 0x00, 0xd6, 0x30 };
590 unsigned char addr_dto_lsb = 0x07; 591 unsigned char addr_dto_lsb = 0x07;
591 unsigned char data; 592 unsigned char data;
592 593
@@ -603,6 +604,7 @@ int tda8290_probe(struct i2c_client *c)
603 return 0; 604 return 0;
604 } 605 }
605 } 606 }
607 i2c_master_send(c, restore_9886, 3);
606 return -1; 608 return -1;
607} 609}
608 610