aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuergen Gier <juergen.gier@gmx.de>2015-05-14 07:55:04 -0400
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2015-06-06 06:29:17 -0400
commit4aed283c0f7c2b60dc211d2ab8966b3e8c0dddf7 (patch)
tree032a10fbcd96e801558e97e12be64c494a22e139
parent7a60743f347c9d03811c5a2b9aa92431be19e512 (diff)
[media] saa7134: switch tuner FMD1216ME_MK3 to analog
The tuner FMD1216ME_MK3 suffers the same problem as FMD1216MEX_MK3, as described in saa7134-cards.c (disabled IF, enabled DVB-T). The card does work under MS Windows, after soft reboot into Linux it continues to work, only then tda9887 is loaded as well. I copied the relevant code from the BEHOLD_H6 section to MD7134. The CTX946 TV card doesn't detect a signal after cold boot, seems Signed-off-by: Juergen Gier <juergen.gier@gmx.de> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
-rw-r--r--drivers/media/pci/saa7134/saa7134-cards.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/drivers/media/pci/saa7134/saa7134-cards.c b/drivers/media/pci/saa7134/saa7134-cards.c
index 9fac6a9b7937..c52032940af6 100644
--- a/drivers/media/pci/saa7134/saa7134-cards.c
+++ b/drivers/media/pci/saa7134/saa7134-cards.c
@@ -7798,10 +7798,11 @@ int saa7134_board_init2(struct saa7134_dev *dev)
7798 case SAA7134_BOARD_MD7134: 7798 case SAA7134_BOARD_MD7134:
7799 { 7799 {
7800 u8 subaddr; 7800 u8 subaddr;
7801 u8 data[3]; 7801 u8 data[3], data1[] = { 0x09, 0x9f, 0x86, 0x11};
7802 int ret, tuner_t; 7802 int ret, tuner_t;
7803 struct i2c_msg msg[] = {{.addr=0x50, .flags=0, .buf=&subaddr, .len = 1}, 7803 struct i2c_msg msg[] = {{.addr = 0x50, .flags = 0, .buf = &subaddr, .len = 1},
7804 {.addr=0x50, .flags=I2C_M_RD, .buf=data, .len = 3}}; 7804 {.addr = 0x50, .flags = I2C_M_RD, .buf = data, .len = 3}},
7805 msg1 = {.addr = 0x61, .flags = 0, .buf = data1, .len = sizeof(data1)};
7805 7806
7806 subaddr= 0x14; 7807 subaddr= 0x14;
7807 tuner_t = 0; 7808 tuner_t = 0;
@@ -7856,6 +7857,16 @@ int saa7134_board_init2(struct saa7134_dev *dev)
7856 } 7857 }
7857 7858
7858 pr_info("%s Tuner type is %d\n", dev->name, dev->tuner_type); 7859 pr_info("%s Tuner type is %d\n", dev->name, dev->tuner_type);
7860
7861 /* The tuner TUNER_PHILIPS_FMD1216ME_MK3 after hardware */
7862 /* start has disabled IF and enabled DVB-T. When saa7134 */
7863 /* scan I2C devices it will not detect IF tda9887 and can`t*/
7864 /* watch TV without software reboot. To solve this problem */
7865 /* switch the tuner to analog TV mode manually. */
7866 if (dev->tuner_type == TUNER_PHILIPS_FMD1216ME_MK3) {
7867 if (i2c_transfer(&dev->i2c_adap, &msg1, 1) != 1)
7868 printk(KERN_WARNING "%s: Unable to enable IF of the tuner.\n", dev->name);
7869 }
7859 break; 7870 break;
7860 } 7871 }
7861 case SAA7134_BOARD_PHILIPS_EUROPA: 7872 case SAA7134_BOARD_PHILIPS_EUROPA: