* [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 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
* 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
* [PATCH 1/12] tm6000: add Terratec Cinergy Hybrid XE @ 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 | 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
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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox