public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 8/12] tm6000: add tuner parameter
  2010-02-05 22:48         ` [PATCH 7/12] tm6000: add tuner callback for dvb frontend stefan.ringel
@ 2010-02-05 22:48           ` stefan.ringel
  0 siblings, 0 replies; 14+ messages in thread
From: stefan.ringel @ 2010-02-05 22:48 UTC (permalink / raw)
  To: linux-media; +Cc: mchehab, dheitmueller, Stefan Ringel

From: Stefan Ringel <stefan.ringel@arcor.de>

---
 drivers/staging/tm6000/tm6000-cards.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c
index 4592397..f22f8ad 100644
--- a/drivers/staging/tm6000/tm6000-cards.c
+++ b/drivers/staging/tm6000/tm6000-cards.c
@@ -312,7 +312,7 @@ static void tm6000_config_tuner (struct tm6000_core *dev)
 	memset(&tun_setup, 0, sizeof(tun_setup));
 	tun_setup.type   = dev->tuner_type;
 	tun_setup.addr   = dev->tuner_addr;
-	tun_setup.mode_mask = T_ANALOG_TV | T_RADIO;
+	tun_setup.mode_mask = T_ANALOG_TV | T_RADIO | T_DIGITAL_TV;
 	tun_setup.tuner_callback = tm6000_tuner_callback;
 
 	v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_type_addr, &tun_setup);
@@ -324,10 +324,12 @@ static void tm6000_config_tuner (struct tm6000_core *dev)
 		memset(&xc2028_cfg, 0, sizeof(xc2028_cfg));
 		memset (&ctl,0,sizeof(ctl));
 
-		ctl.mts   = 1;
-		ctl.read_not_reliable = 1;
+		ctl.input1 = 1;
+		ctl.read_not_reliable = 0;
 		ctl.msleep = 10;
-
+		ctl.demod = XC3028_FE_ZARLINK456;
+		ctl.vhfbw7 = 1;
+		ctl.uhfbw8 = 1;
 		xc2028_cfg.tuner = TUNER_XC2028;
 		xc2028_cfg.priv  = &ctl;
 
-- 
1.6.4.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 1/12] tm6000: add Terratec Cinergy Hybrid XE
@ 2010-02-05 22:57 stefan.ringel
  2010-02-05 22:57 ` [PATCH 2/12] tm6000: avoid unregister the driver after success at tm6000_init_dev stefan.ringel
  2010-02-08  2:34 ` [PATCH 1/12] tm6000: add Terratec Cinergy Hybrid XE Mauro Carvalho Chehab
  0 siblings, 2 replies; 14+ messages in thread
From: stefan.ringel @ 2010-02-05 22:57 UTC (permalink / raw)
  To: linux-media; +Cc: mchehab, dheitmueller, Stefan Ringel

From: Stefan Ringel <stefan.ringel@arcor.de>

Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de>
---
 drivers/staging/tm6000/tm6000-cards.c |   22 +++++++++++++++++++++-
 1 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c
index c4db903..7f594a2 100644
--- a/drivers/staging/tm6000/tm6000-cards.c
+++ b/drivers/staging/tm6000/tm6000-cards.c
@@ -44,6 +44,10 @@
 #define TM6000_BOARD_FREECOM_AND_SIMILAR	7
 #define TM6000_BOARD_ADSTECH_MINI_DUAL_TV	8
 #define TM6010_BOARD_HAUPPAUGE_900H		9
+#define TM6010_BOARD_BEHOLD_WANDER		10
+#define TM6010_BOARD_BEHOLD_VOYAGER		11
+#define TM6010_BOARD_TERRATEC_CINERGY_HYBRID_XE	12
+
 
 #define TM6000_MAXBOARDS        16
 static unsigned int card[]     = {[0 ... (TM6000_MAXBOARDS - 1)] = UNSET };
@@ -208,7 +212,21 @@ struct tm6000_board tm6000_boards[] = {
 		},
 		.gpio_addr_tun_reset = TM6000_GPIO_2,
 	},
-
+	[TM6010_BOARD_TERRATEC_CINERGY_HYBRID_XE] = {
+		.name         = "Terratec Cinergy Hybrid XE",
+		.tuner_type   = TUNER_XC2028, /* has a XC3028 */
+		.tuner_addr   = 0xc2 >> 1,
+		.demod_addr   = 0x1e >> 1,
+		.type         = TM6010,
+		.caps = {
+			.has_tuner    = 1,
+			.has_dvb      = 1,
+			.has_zl10353  = 1,
+			.has_eeprom   = 1,
+			.has_remote   = 1,
+		},
+		.gpio_addr_tun_reset = TM6010_GPIO_2,
+	}
 };
 
 /* table of devices that work with this driver */
@@ -221,6 +239,7 @@ struct usb_device_id tm6000_id_table [] = {
 	{ USB_DEVICE(0x2040, 0x6600), .driver_info = TM6010_BOARD_HAUPPAUGE_900H },
 	{ USB_DEVICE(0x6000, 0xdec0), .driver_info = TM6010_BOARD_BEHOLD_WANDER },
 	{ USB_DEVICE(0x6000, 0xdec1), .driver_info = TM6010_BOARD_BEHOLD_VOYAGER },
+	{ USB_DEVICE(0x0ccd, 0x0086), .driver_info = TM6010_BOARD_TERRATEC_CINERGY_HYBRID_XE },
 	{ },
 };
 
@@ -311,6 +330,7 @@ static void tm6000_config_tuner (struct tm6000_core *dev)
 
 		switch(dev->model) {
 		case TM6010_BOARD_HAUPPAUGE_900H:
+		case TM6010_BOARD_TERRATEC_CINERGY_HYBRID_XE:
 			ctl.fname = "xc3028L-v36.fw";
 			break;
 		default:
-- 
1.6.4.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 2/12] tm6000: avoid unregister the driver after success at tm6000_init_dev
  2010-02-05 22:57 [PATCH 1/12] tm6000: add Terratec Cinergy Hybrid XE stefan.ringel
@ 2010-02-05 22:57 ` stefan.ringel
  2010-02-05 22:57   ` [PATCH 3/12] tm6000: clean the identifer string stefan.ringel
  2010-02-08  2:34 ` [PATCH 1/12] tm6000: add Terratec Cinergy Hybrid XE Mauro Carvalho Chehab
  1 sibling, 1 reply; 14+ messages in thread
From: stefan.ringel @ 2010-02-05 22:57 UTC (permalink / raw)
  To: linux-media; +Cc: mchehab, dheitmueller, Stefan Ringel

From: Stefan Ringel <stefan.ringel@arcor.de>

Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de>
---
 drivers/staging/tm6000/tm6000-cards.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c
index 7f594a2..e697ce3 100644
--- a/drivers/staging/tm6000/tm6000-cards.c
+++ b/drivers/staging/tm6000/tm6000-cards.c
@@ -422,6 +422,7 @@ static int tm6000_init_dev(struct tm6000_core *dev)
 		}
 #endif
 	}
+	return 0;
 
 err2:
 	v4l2_device_unregister(&dev->v4l2_dev);
-- 
1.6.4.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 3/12] tm6000: clean the identifer string
  2010-02-05 22:57 ` [PATCH 2/12] tm6000: avoid unregister the driver after success at tm6000_init_dev stefan.ringel
@ 2010-02-05 22:57   ` stefan.ringel
  2010-02-05 22:57     ` [PATCH 4/12] tm6000: adding special usb request to quiting tuner transfer stefan.ringel
  0 siblings, 1 reply; 14+ messages in thread
From: stefan.ringel @ 2010-02-05 22:57 UTC (permalink / raw)
  To: linux-media; +Cc: mchehab, dheitmueller, Stefan Ringel

From: Stefan Ringel <stefan.ringel@arcor.de>

Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de>
---
 drivers/staging/tm6000/tm6000-cards.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c
index e697ce3..1167b01 100644
--- a/drivers/staging/tm6000/tm6000-cards.c
+++ b/drivers/staging/tm6000/tm6000-cards.c
@@ -480,7 +480,7 @@ static int tm6000_usb_probe(struct usb_interface *interface,
 	/* Check to see next free device and mark as used */
 	nr=find_first_zero_bit(&tm6000_devused,TM6000_MAXBOARDS);
 	if (nr >= TM6000_MAXBOARDS) {
-		printk ("tm6000: Supports only %i em28xx boards.\n",TM6000_MAXBOARDS);
+		printk ("tm6000: Supports only %i tm60xx boards.\n",TM6000_MAXBOARDS);
 		usb_put_dev(usbdev);
 		return -ENOMEM;
 	}
-- 
1.6.4.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 4/12] tm6000: adding special usb request to quiting tuner transfer
  2010-02-05 22:57   ` [PATCH 3/12] tm6000: clean the identifer string stefan.ringel
@ 2010-02-05 22:57     ` stefan.ringel
  2010-02-05 22:57       ` [PATCH 5/12] tm6000: update init table and sequence for tm6010 stefan.ringel
  0 siblings, 1 reply; 14+ messages in thread
From: stefan.ringel @ 2010-02-05 22:57 UTC (permalink / raw)
  To: linux-media; +Cc: mchehab, dheitmueller, Stefan Ringel

From: Stefan Ringel <stefan.ringel@arcor.de>

Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de>
---
 drivers/staging/tm6000/tm6000-i2c.c |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/drivers/staging/tm6000/tm6000-i2c.c b/drivers/staging/tm6000/tm6000-i2c.c
index 4da10f5..3e43ad7 100644
--- a/drivers/staging/tm6000/tm6000-i2c.c
+++ b/drivers/staging/tm6000/tm6000-i2c.c
@@ -86,6 +86,11 @@ static int tm6000_i2c_xfer(struct i2c_adapter *i2c_adap,
 				msgs[i].len == 1 ? 0 : msgs[i].buf[1],
 				msgs[i + 1].buf, msgs[i + 1].len);
 			i++;
+			
+			if ((dev->dev_type == TM6010) && (addr == 0xc2)) {
+				tm6000_set_reg(dev, 0x32, 0,0);
+				tm6000_set_reg(dev, 0x33, 0,0);
+			}
 			if (i2c_debug >= 2)
 				for (byte = 0; byte < msgs[i].len; byte++)
 					printk(" %02x", msgs[i].buf[byte]);
@@ -99,6 +104,12 @@ static int tm6000_i2c_xfer(struct i2c_adapter *i2c_adap,
 				REQ_16_SET_GET_I2C_WR1_RDN,
 				addr | msgs[i].buf[0] << 8, 0,
 				msgs[i].buf + 1, msgs[i].len - 1);
+				
+			
+			if ((dev->dev_type == TM6010) && (addr == 0xc2)) {
+				tm6000_set_reg(dev, 0x32, 0,0);
+				tm6000_set_reg(dev, 0x33, 0,0);
+			}
 		}
 		if (i2c_debug >= 2)
 			printk("\n");
@@ -198,7 +209,7 @@ static struct i2c_algorithm tm6000_algo = {
 
 static struct i2c_adapter tm6000_adap_template = {
 	.owner = THIS_MODULE,
-	.class = I2C_CLASS_TV_ANALOG,
+	.class = I2C_CLASS_TV_ANALOG | I2C_CLASS_TV_DIGITAL,
 	.name = "tm6000",
 	.id = I2C_HW_B_TM6000,
 	.algo = &tm6000_algo,
-- 
1.6.4.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 5/12] tm6000: update init table and sequence for tm6010
  2010-02-05 22:57     ` [PATCH 4/12] tm6000: adding special usb request to quiting tuner transfer stefan.ringel
@ 2010-02-05 22:57       ` stefan.ringel
  2010-02-05 22:57         ` [PATCH 7/12] tm6000: add tuner callback for dvb frontend stefan.ringel
  0 siblings, 1 reply; 14+ messages in thread
From: stefan.ringel @ 2010-02-05 22:57 UTC (permalink / raw)
  To: linux-media; +Cc: mchehab, dheitmueller, Stefan Ringel

From: Stefan Ringel <stefan.ringel@arcor.de>

Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de>
---
 drivers/staging/tm6000/tm6000-core.c |  179 ++++++++++++++++++++++++----------
 1 files changed, 128 insertions(+), 51 deletions(-)

diff --git a/drivers/staging/tm6000/tm6000-core.c b/drivers/staging/tm6000/tm6000-core.c
index 7ec13d5..a2e2af5 100644
--- a/drivers/staging/tm6000/tm6000-core.c
+++ b/drivers/staging/tm6000/tm6000-core.c
@@ -414,7 +414,15 @@ struct reg_init tm6010_init_tab[] = {
 	{ REQ_07_SET_GET_AVREG, 0x3f, 0x00 },
 
 	{ REQ_05_SET_GET_USBREG, 0x18, 0x00 },
-
+	
+	/* additional from Terratec Cinergy Hybrid XE */
+	{ REQ_07_SET_GET_AVREG, 0xdc, 0xaa },
+	{ REQ_07_SET_GET_AVREG, 0xdd, 0x30 },
+	{ REQ_07_SET_GET_AVREG, 0xde, 0x20 },
+	{ REQ_07_SET_GET_AVREG, 0xdf, 0xd0 },
+	{ REQ_04_EN_DISABLE_MCU_INT, 0x02, 0x00 },
+	{ REQ_07_SET_GET_AVREG, 0xd8, 0x2f },
+	
 	/* set remote wakeup key:any key wakeup */
 	{ REQ_07_SET_GET_AVREG,  0xe5,  0xfe },
 	{ REQ_07_SET_GET_AVREG,  0xda,  0xff },
@@ -424,6 +432,7 @@ int tm6000_init (struct tm6000_core *dev)
 {
 	int board, rc=0, i, size;
 	struct reg_init *tab;
+	u8 buf[40];
 
 	if (dev->dev_type == TM6010) {
 		tab = tm6010_init_tab;
@@ -444,61 +453,129 @@ int tm6000_init (struct tm6000_core *dev)
 		}
 	}
 
-	msleep(5); /* Just to be conservative */
-
-	/* Check board version - maybe 10Moons specific */
-	board=tm6000_get_reg16 (dev, 0x40, 0, 0);
-	if (board >=0) {
-		printk (KERN_INFO "Board version = 0x%04x\n",board);
-	} else {
-		printk (KERN_ERR "Error %i while retrieving board version\n",board);
-	}
-
+	/* hack */
 	if (dev->dev_type == TM6010) {
-		/* Turn xceive 3028 on */
-		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN, TM6010_GPIO_3, 0x01);
-		msleep(11);
-	}
-
-	/* Reset GPIO1 and GPIO4. */
-	for (i=0; i< 2; i++) {
-		rc = tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
-					dev->tuner_reset_gpio, 0x00);
-		if (rc<0) {
-			printk (KERN_ERR "Error %i doing GPIO1 reset\n",rc);
-			return rc;
-		}
-
-		msleep(10); /* Just to be conservative */
-		rc = tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
-					dev->tuner_reset_gpio, 0x01);
-		if (rc<0) {
-			printk (KERN_ERR "Error %i doing GPIO1 reset\n",rc);
-			return rc;
-		}
-
-		msleep(10);
-		rc=tm6000_set_reg (dev, REQ_03_SET_GET_MCU_PIN, TM6000_GPIO_4, 0);
-		if (rc<0) {
-			printk (KERN_ERR "Error %i doing GPIO4 reset\n",rc);
-			return rc;
-		}
-
-		msleep(10);
-		rc=tm6000_set_reg (dev, REQ_03_SET_GET_MCU_PIN, TM6000_GPIO_4, 1);
-		if (rc<0) {
-			printk (KERN_ERR "Error %i doing GPIO4 reset\n",rc);
-			return rc;
-		}
-
-		if (!i) {
-			rc=tm6000_get_reg16(dev, 0x40,0,0);
-			if (rc>=0) {
-				printk ("board=%d\n", rc);
+		
+		msleep(15);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
+				TM6010_GPIO_4, 0);
+		msleep(15);
+				
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
+				TM6010_GPIO_1, 0);
+	
+		msleep(50);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
+				TM6010_GPIO_1, 1);
+		
+		msleep(15);
+		tm6000_read_write_usb (dev, 0xc0, 0x0e, 0x0010, 0x4400, buf, 2);
+		
+		msleep(15);
+		tm6000_read_write_usb (dev, 0xc0, 0x10, 0xf432, 0x0000, buf, 2);
+	
+		msleep(15);
+		buf[0] = 0x12;
+		buf[1] = 0x34;
+		tm6000_read_write_usb (dev, 0x40, 0x10, 0xf432, 0x0000, buf, 2);
+	
+		msleep(15);
+		tm6000_read_write_usb (dev, 0xc0, 0x10, 0xf432, 0x0000, buf, 2);
+	
+		msleep(15);
+		tm6000_read_write_usb (dev, 0xc0, 0x10, 0x0032, 0x0000, buf, 2);
+
+		msleep(15);
+		buf[0] = 0x00;
+		buf[1] = 0x01;
+		tm6000_read_write_usb (dev, 0x40, 0x10, 0xf332, 0x0000, buf, 2);
+	
+		msleep(15);
+		tm6000_read_write_usb (dev, 0xc0, 0x10, 0x00c0, 0x0000, buf, 39);
+	
+		msleep(15);
+		buf[0] = 0x00;
+		buf[1] = 0x00;
+		tm6000_read_write_usb (dev, 0x40, 0x10, 0xf332, 0x0000, buf, 2);
+	
+		msleep(15);
+		tm6000_read_write_usb (dev, 0xc0, 0x10, 0x7f1f, 0x0000, buf, 2);
+//		printk(KERN_INFO "buf %#x %#x \n", buf[0], buf [1]);
+		msleep(15);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
+				TM6010_GPIO_4, 1);
+		msleep(15);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
+	    			TM6010_GPIO_0, 1);
+		msleep(15);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
+				TM6010_GPIO_7, 0);
+		msleep(15);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
+				TM6010_GPIO_5, 1);
+	
+		msleep(15);
+	
+		for (i=0; i< size; i++) {
+			rc= tm6000_set_reg (dev, tab[i].req, tab[i].reg, tab[i].val);
+			if (rc<0) {
+				printk (KERN_ERR "Error %i while setting req %d, "
+						 "reg %d to value %d\n", rc,
+						 tab[i].req,tab[i].reg, tab[i].val);
+				return rc;
 			}
 		}
+			
+		msleep(15);
+	
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
+				TM6010_GPIO_4, 0);
+		msleep(15);
+
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
+				TM6010_GPIO_1, 0);
+	
+		msleep(50);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
+				TM6010_GPIO_1, 1);
+		
+		msleep(15);
+		tm6000_read_write_usb (dev, 0xc0, 0x0e, 0x00c2, 0x0008, buf, 2);
+//		printk(KERN_INFO "buf %#x %#x \n", buf[0], buf[1]);
+		msleep(15);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
+				TM6010_GPIO_2, 1);
+		msleep(15);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
+				TM6010_GPIO_2, 0);
+		msleep(15);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
+				TM6010_GPIO_2, 1);
+		msleep(15);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
+				TM6010_GPIO_2, 1);
+		msleep(15);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
+				TM6010_GPIO_2, 0);
+		msleep(15);
+		tm6000_set_reg(dev, REQ_03_SET_GET_MCU_PIN,
+				TM6010_GPIO_2, 1);
+		msleep(15);
 	}
+	/* hack end */
+	
+	msleep(5); /* Just to be conservative */
 
+	/* Check board version - maybe 10Moons specific */
+	if (dev->dev_type == TM5600) {
+		 board=tm6000_get_reg16 (dev, 0x40, 0, 0);
+		if (board >=0) {
+			printk (KERN_INFO "Board version = 0x%04x\n",board);
+		} else {
+			printk (KERN_ERR "Error %i while retrieving board version\n",board);
+		}
+	}
+	
 	msleep(50);
 
 	return 0;
-- 
1.6.4.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 7/12] tm6000: add tuner callback for dvb frontend
  2010-02-05 22:57       ` [PATCH 5/12] tm6000: update init table and sequence for tm6010 stefan.ringel
@ 2010-02-05 22:57         ` stefan.ringel
  2010-02-05 22:57           ` [PATCH 8/12] tm6000: add tuner parameter stefan.ringel
  0 siblings, 1 reply; 14+ messages in thread
From: stefan.ringel @ 2010-02-05 22:57 UTC (permalink / raw)
  To: linux-media; +Cc: mchehab, dheitmueller, Stefan Ringel

From: Stefan Ringel <stefan.ringel@arcor.de>

Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de>
---
 drivers/staging/tm6000/tm6000-cards.c |    2 +-
 drivers/staging/tm6000/tm6000-dvb.c   |    3 ++-
 drivers/staging/tm6000/tm6000.h       |    3 +++
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c
index 5cf5d58..4592397 100644
--- a/drivers/staging/tm6000/tm6000-cards.c
+++ b/drivers/staging/tm6000/tm6000-cards.c
@@ -245,7 +245,7 @@ struct usb_device_id tm6000_id_table [] = {
 
 /* Tuner callback to provide the proper gpio changes needed for xc2028 */
 
-static int tm6000_tuner_callback(void *ptr, int component, int command, int arg)
+int tm6000_tuner_callback(void *ptr, int component, int command, int arg)
 {
 	int rc=0;
 	struct tm6000_core *dev = ptr;
diff --git a/drivers/staging/tm6000/tm6000-dvb.c b/drivers/staging/tm6000/tm6000-dvb.c
index e900d6d..fdbee30 100644
--- a/drivers/staging/tm6000/tm6000-dvb.c
+++ b/drivers/staging/tm6000/tm6000-dvb.c
@@ -235,7 +235,8 @@ int tm6000_dvb_register(struct tm6000_core *dev)
 			.i2c_adap = &dev->i2c_adap,
 			.i2c_addr = dev->tuner_addr,
 		};
-
+		
+		dvb->frontend->callback = tm6000_tuner_callback;
 		ret = dvb_register_frontend(&dvb->adapter, dvb->frontend);
 		if (ret < 0) {
 			printk(KERN_ERR
diff --git a/drivers/staging/tm6000/tm6000.h b/drivers/staging/tm6000/tm6000.h
index 877cbf6..d713c48 100644
--- a/drivers/staging/tm6000/tm6000.h
+++ b/drivers/staging/tm6000/tm6000.h
@@ -202,6 +202,9 @@ struct tm6000_fh {
 			V4L2_STD_PAL_M|V4L2_STD_PAL_60|V4L2_STD_NTSC_M| \
 			V4L2_STD_NTSC_M_JP|V4L2_STD_SECAM
 
+/* In tm6000-cards.c */
+
+int tm6000_tuner_callback (void *ptr, int component, int command, int arg);
 /* In tm6000-core.c */
 
 int tm6000_read_write_usb (struct tm6000_core *dev, u8 reqtype, u8 req,
-- 
1.6.4.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 8/12] tm6000: add tuner parameter
  2010-02-05 22:57         ` [PATCH 7/12] tm6000: add tuner callback for dvb frontend stefan.ringel
@ 2010-02-05 22:57           ` stefan.ringel
  2010-02-05 22:57             ` [PATCH 9/12] tm6000: remove unused function stefan.ringel
  2010-02-08  2:55             ` [PATCH 8/12] tm6000: add tuner parameter Mauro Carvalho Chehab
  0 siblings, 2 replies; 14+ messages in thread
From: stefan.ringel @ 2010-02-05 22:57 UTC (permalink / raw)
  To: linux-media; +Cc: mchehab, dheitmueller, Stefan Ringel

From: Stefan Ringel <stefan.ringel@arcor.de>

Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de>
---
 drivers/staging/tm6000/tm6000-cards.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c
index 4592397..f22f8ad 100644
--- a/drivers/staging/tm6000/tm6000-cards.c
+++ b/drivers/staging/tm6000/tm6000-cards.c
@@ -312,7 +312,7 @@ static void tm6000_config_tuner (struct tm6000_core *dev)
 	memset(&tun_setup, 0, sizeof(tun_setup));
 	tun_setup.type   = dev->tuner_type;
 	tun_setup.addr   = dev->tuner_addr;
-	tun_setup.mode_mask = T_ANALOG_TV | T_RADIO;
+	tun_setup.mode_mask = T_ANALOG_TV | T_RADIO | T_DIGITAL_TV;
 	tun_setup.tuner_callback = tm6000_tuner_callback;
 
 	v4l2_device_call_all(&dev->v4l2_dev, 0, tuner, s_type_addr, &tun_setup);
@@ -324,10 +324,12 @@ static void tm6000_config_tuner (struct tm6000_core *dev)
 		memset(&xc2028_cfg, 0, sizeof(xc2028_cfg));
 		memset (&ctl,0,sizeof(ctl));
 
-		ctl.mts   = 1;
-		ctl.read_not_reliable = 1;
+		ctl.input1 = 1;
+		ctl.read_not_reliable = 0;
 		ctl.msleep = 10;
-
+		ctl.demod = XC3028_FE_ZARLINK456;
+		ctl.vhfbw7 = 1;
+		ctl.uhfbw8 = 1;
 		xc2028_cfg.tuner = TUNER_XC2028;
 		xc2028_cfg.priv  = &ctl;
 
-- 
1.6.4.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 9/12] tm6000: remove unused function
  2010-02-05 22:57           ` [PATCH 8/12] tm6000: add tuner parameter stefan.ringel
@ 2010-02-05 22:57             ` stefan.ringel
  2010-02-08  2:55             ` [PATCH 8/12] tm6000: add tuner parameter Mauro Carvalho Chehab
  1 sibling, 0 replies; 14+ messages in thread
From: stefan.ringel @ 2010-02-05 22:57 UTC (permalink / raw)
  To: linux-media; +Cc: mchehab, dheitmueller, Stefan Ringel

From: Stefan Ringel <stefan.ringel@arcor.de>

Signed-off-by: Stefan Ringel <stefan.ringel@arcor.de>
---
 drivers/staging/tm6000/tm6000.h |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/drivers/staging/tm6000/tm6000.h b/drivers/staging/tm6000/tm6000.h
index d713c48..e88836d 100644
--- a/drivers/staging/tm6000/tm6000.h
+++ b/drivers/staging/tm6000/tm6000.h
@@ -212,7 +212,6 @@ int tm6000_read_write_usb (struct tm6000_core *dev, u8 reqtype, u8 req,
 int tm6000_get_reg (struct tm6000_core *dev, u8 req, u16 value, u16 index);
 int tm6000_set_reg (struct tm6000_core *dev, u8 req, u16 value, u16 index);
 int tm6000_init (struct tm6000_core *dev);
-int tm6000_init_after_firmware (struct tm6000_core *dev);
 
 int tm6000_init_analog_mode (struct tm6000_core *dev);
 int tm6000_init_digital_mode (struct tm6000_core *dev);
-- 
1.6.4.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/12] tm6000: add Terratec Cinergy Hybrid XE
  2010-02-05 22:57 [PATCH 1/12] tm6000: add Terratec Cinergy Hybrid XE stefan.ringel
  2010-02-05 22:57 ` [PATCH 2/12] tm6000: avoid unregister the driver after success at tm6000_init_dev stefan.ringel
@ 2010-02-08  2:34 ` Mauro Carvalho Chehab
  1 sibling, 0 replies; 14+ messages in thread
From: Mauro Carvalho Chehab @ 2010-02-08  2:34 UTC (permalink / raw)
  To: stefan.ringel; +Cc: linux-media, dheitmueller

> diff --git a/drivers/staging/tm6000/tm6000-cards.c b/drivers/staging/tm6000/tm6000-cards.c
> index c4db903..7f594a2 100644
> --- a/drivers/staging/tm6000/tm6000-cards.c
> +++ b/drivers/staging/tm6000/tm6000-cards.c
> @@ -44,6 +44,10 @@
>  #define TM6000_BOARD_FREECOM_AND_SIMILAR	7
>  #define TM6000_BOARD_ADSTECH_MINI_DUAL_TV	8
>  #define TM6010_BOARD_HAUPPAUGE_900H		9
> +#define TM6010_BOARD_BEHOLD_WANDER		10
> +#define TM6010_BOARD_BEHOLD_VOYAGER		11
> +#define TM6010_BOARD_TERRATEC_CINERGY_HYBRID_XE	12
> +

This patch is addins just Cinergy Hybrid XE. I'll commit it, by removing the entries for Behold
cards and renumbering the card to 10.



Cheers,
Mauro

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 8/12] tm6000: add tuner parameter
  2010-02-05 22:57           ` [PATCH 8/12] tm6000: add tuner parameter stefan.ringel
  2010-02-05 22:57             ` [PATCH 9/12] tm6000: remove unused function stefan.ringel
@ 2010-02-08  2:55             ` Mauro Carvalho Chehab
  2010-02-08 15:55               ` Stefan Ringel
  1 sibling, 1 reply; 14+ messages in thread
From: Mauro Carvalho Chehab @ 2010-02-08  2:55 UTC (permalink / raw)
  To: stefan.ringel; +Cc: linux-media, dheitmueller

stefan.ringel@arcor.de wrote:

> +		ctl.vhfbw7 = 1;
> +		ctl.uhfbw8 = 1;

I don't think you need to set this, as the driver will automatically do the firmware
tricks for the firmwares. This will probably just change the default to start
wit firmware 7/8.

-- 

Cheers,
Mauro

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 8/12] tm6000: add tuner parameter
  2010-02-08  2:55             ` [PATCH 8/12] tm6000: add tuner parameter Mauro Carvalho Chehab
@ 2010-02-08 15:55               ` Stefan Ringel
  2010-02-08 16:48                 ` Stefan Ringel
  2010-02-08 17:58                 ` Mauro Carvalho Chehab
  0 siblings, 2 replies; 14+ messages in thread
From: Stefan Ringel @ 2010-02-08 15:55 UTC (permalink / raw)
  To: Mauro Carvalho Chehab; +Cc: linux-media, dheitmueller

Am 08.02.2010 03:55, schrieb Mauro Carvalho Chehab:
> stefan.ringel@arcor.de wrote:
>
>   
>> +		ctl.vhfbw7 = 1;
>> +		ctl.uhfbw8 = 1;
>>     
> I don't think you need to set this, as the driver will automatically do the firmware
> tricks for the firmwares. This will probably just change the default to start
> wit firmware 7/8.
>
>   

if it's going to bw 7 it doesn't use DTV 7, it's use DTV 7 not DTV78, I
have it tested. I think if it's switch between DTV7 and DTV 8 it's not
always set DTV78. ( it's set DTV 7 DTV 8 or DTV78)

-- 
Stefan Ringel <stefan.ringel@arcor.de>


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 8/12] tm6000: add tuner parameter
  2010-02-08 15:55               ` Stefan Ringel
@ 2010-02-08 16:48                 ` Stefan Ringel
  2010-02-08 17:58                 ` Mauro Carvalho Chehab
  1 sibling, 0 replies; 14+ messages in thread
From: Stefan Ringel @ 2010-02-08 16:48 UTC (permalink / raw)
  To: Mauro Carvalho Chehab; +Cc: linux-media, dheitmueller

Am 08.02.2010 16:55, schrieb Stefan Ringel:
> Am 08.02.2010 03:55, schrieb Mauro Carvalho Chehab:
>   
>> stefan.ringel@arcor.de wrote:
>>
>>   
>>     
>>> +		ctl.vhfbw7 = 1;
>>> +		ctl.uhfbw8 = 1;
>>>     
>>>       
>> I don't think you need to set this, as the driver will automatically do the firmware
>> tricks for the firmwares. This will probably just change the default to start
>> wit firmware 7/8.
>>
>>   
>>     
> if it's going to bw 7 it doesn't use DTV 7, it's use DTV 7 not DTV78, I
> have it tested. I think if it's switch between DTV7 and DTV 8 it's not
> always set DTV78. ( it's set DTV 7 DTV 8 or DTV78)
>
>   

    switch (bw) {
    case BANDWIDTH_8_MHZ:
        if (p->frequency < 470000000)
            priv->ctrl.vhfbw7 = 0;
        else
            priv->ctrl.uhfbw8 = 1;
        type |= (priv->ctrl.vhfbw7 && priv->ctrl.uhfbw8) ? DTV78 : DTV8;
        type |= F8MHZ;
        break;
    case BANDWIDTH_7_MHZ:
        if (p->frequency < 470000000)
            priv->ctrl.vhfbw7 = 1;
        else
            priv->ctrl.uhfbw8 = 0;
        type |= (priv->ctrl.vhfbw7 && priv->ctrl.uhfbw8) ? DTV78 : DTV7;
        type |= F8MHZ;
        break;
    case BANDWIDTH_6_MHZ:
        type |= DTV6;
        priv->ctrl.vhfbw7 = 0;
        priv->ctrl.uhfbw8 = 0;
        break;
    default:
        tuner_err("error: bandwidth not supported.\n");
    };

That is the actually part from tuner-xc2028.c, but I think here is the
checking wrong if Bandwidth 8 MHz & frequency < 470 MHz then DTV8, and
if Bandwidth 7 MHz & frequency => 470 MHz then DTV7. The first check in
code is OK, but the second check in code is not OK.

-- 
Stefan Ringel <stefan.ringel@arcor.de>


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 8/12] tm6000: add tuner parameter
  2010-02-08 15:55               ` Stefan Ringel
  2010-02-08 16:48                 ` Stefan Ringel
@ 2010-02-08 17:58                 ` Mauro Carvalho Chehab
  1 sibling, 0 replies; 14+ messages in thread
From: Mauro Carvalho Chehab @ 2010-02-08 17:58 UTC (permalink / raw)
  To: Stefan Ringel; +Cc: linux-media, dheitmueller

Stefan Ringel wrote:
> Am 08.02.2010 03:55, schrieb Mauro Carvalho Chehab:
>> stefan.ringel@arcor.de wrote:
>>
>>   
>>> +		ctl.vhfbw7 = 1;
>>> +		ctl.uhfbw8 = 1;
>>>     
>> I don't think you need to set this, as the driver will automatically do the firmware
>> tricks for the firmwares. This will probably just change the default to start
>> wit firmware 7/8.
>>
>>   
> 
> if it's going to bw 7 it doesn't use DTV 7, it's use DTV 7 not DTV78, I
> have it tested. I think if it's switch between DTV7 and DTV 8 it's not
> always set DTV78. ( it's set DTV 7 DTV 8 or DTV78)
> 

Sorry but I didn't understand what you meant. Anyway, the patch were committed as-is.
We may eventually need to revisit this code later.


-- 

Cheers,
Mauro

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2010-02-08 18:53 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-05 22:57 [PATCH 1/12] tm6000: add Terratec Cinergy Hybrid XE stefan.ringel
2010-02-05 22:57 ` [PATCH 2/12] tm6000: avoid unregister the driver after success at tm6000_init_dev stefan.ringel
2010-02-05 22:57   ` [PATCH 3/12] tm6000: clean the identifer string stefan.ringel
2010-02-05 22:57     ` [PATCH 4/12] tm6000: adding special usb request to quiting tuner transfer stefan.ringel
2010-02-05 22:57       ` [PATCH 5/12] tm6000: update init table and sequence for tm6010 stefan.ringel
2010-02-05 22:57         ` [PATCH 7/12] tm6000: add tuner callback for dvb frontend stefan.ringel
2010-02-05 22:57           ` [PATCH 8/12] tm6000: add tuner parameter stefan.ringel
2010-02-05 22:57             ` [PATCH 9/12] tm6000: remove unused function stefan.ringel
2010-02-08  2:55             ` [PATCH 8/12] tm6000: add tuner parameter Mauro Carvalho Chehab
2010-02-08 15:55               ` Stefan Ringel
2010-02-08 16:48                 ` Stefan Ringel
2010-02-08 17:58                 ` Mauro Carvalho Chehab
2010-02-08  2:34 ` [PATCH 1/12] tm6000: add Terratec Cinergy Hybrid XE Mauro Carvalho Chehab
  -- strict thread matches above, loose matches on Subject: below --
2010-02-05 22:48 stefan.ringel
2010-02-05 22:48 ` [PATCH 2/12] tm6000: avoid unregister the driver after success at tm6000_init_dev stefan.ringel
2010-02-05 22:48   ` [PATCH 3/12] tm6000: clean the identifer string stefan.ringel
2010-02-05 22:48     ` [PATCH 4/12] tm6000: adding special usb request to quiting tuner transfer stefan.ringel
2010-02-05 22:48       ` [PATCH 5/12] tm6000: update init table and sequence for tm6010 stefan.ringel
2010-02-05 22:48         ` [PATCH 7/12] tm6000: add tuner callback for dvb frontend stefan.ringel
2010-02-05 22:48           ` [PATCH 8/12] tm6000: add tuner parameter stefan.ringel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox