Browse Source

V4L/DVB (12807): tm6000: Properly select xc2028 parameters

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Mauro Carvalho Chehab 18 years ago
parent
commit
d544f2c33f
2 changed files with 24 additions and 2 deletions
  1. 22 0
      drivers/staging/tm6000/tm6000-cards.c
  2. 2 2
      drivers/staging/tm6000/tm6000-core.c

+ 22 - 0
drivers/staging/tm6000/tm6000-cards.c

@@ -29,6 +29,7 @@
 
 #include "tm6000.h"
 #include "tm6000-regs.h"
+#include "tuner-xc2028.h"
 
 #define TM6000_BOARD_UNKNOWN			0
 #define TM5600_BOARD_GENERIC			1
@@ -156,6 +157,24 @@ struct usb_device_id tm6000_id_table [] = {
 	{ },
 };
 
+static void tm6000_config_tuner (struct tm6000_core *dev)
+{
+	struct v4l2_priv_tun_config  xc2028_cfg;
+	struct xc2028_ctrl           ctl;
+
+	memset (&ctl,0,sizeof(ctl));
+
+	ctl.fname = "tm6000-xc3028.fw";
+	ctl.type  = XC2028_FIRM_MTS;
+
+	xc2028_cfg.tuner = TUNER_XC2028;
+	xc2028_cfg.priv  = &ctl;
+
+printk("Setting firmware parameters for tm6000\n");
+
+	tm6000_i2c_call_clients(dev, TUNER_SET_CONFIG, &xc2028_cfg);
+}
+
 static int tm6000_init_dev(struct tm6000_core *dev)
 {
 	struct v4l2_frequency f;
@@ -191,6 +210,9 @@ static int tm6000_init_dev(struct tm6000_core *dev)
 
 	/* Request tuner */
 	request_module ("tuner");
+
+	tm6000_config_tuner (dev);
+
 //	norm=V4L2_STD_NTSC_M;
 	dev->norm=V4L2_STD_PAL_M;
 	tm6000_i2c_call_clients(dev, VIDIOC_S_STD, &dev->norm);

+ 2 - 2
drivers/staging/tm6000/tm6000-core.c

@@ -375,9 +375,9 @@ int tm6000_init (struct tm6000_core *dev)
 
 	msleep(50);
 
-	return 0;
-
 #endif /* HACK */
+
+	return 0;
 }
 
 #define tm6000_wrt(dev,req,reg,val, data...)				\