* [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