Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 192699
b: refs/heads/master
c: df7c1d9
h: refs/heads/master
i:
  192697: 5fa080d
  192695: 75bde45
v: v3
  • Loading branch information
Mauro Carvalho Chehab committed May 18, 2010
1 parent 303a6e3 commit 7d5efb0
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8ae1fc6e10cdf9be754cccee2a3ee551a981ab08
refs/heads/master: df7c1d9a4a021b63af92f0197ac47c3d51ac3cf8
40 changes: 31 additions & 9 deletions trunk/drivers/staging/tm6000/tm6000-cards.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
#define TM6000_BOARD_ADSTECH_DUAL_TV 6
#define TM6000_BOARD_FREECOM_AND_SIMILAR 7
#define TM6000_BOARD_ADSTECH_MINI_DUAL_TV 8
#define TM6010_BOARD_HAUPPAUGE_900H 9

#define TM6000_MAXBOARDS 16
static unsigned int card[] = {[0 ... (TM6000_MAXBOARDS - 1)] = UNSET };
Expand Down Expand Up @@ -161,6 +162,20 @@ struct tm6000_board tm6000_boards[] = {
},
.gpio_addr_tun_reset = TM6000_GPIO_4,
},
[TM6010_BOARD_HAUPPAUGE_900H] = {
.name = "Hauppauge HVR-900H",
.tuner_type = TUNER_XC2028, /* has a XC3028 */
.tuner_addr = 0xc2,
.demod_addr = 0x1e,
.type = TM6010,
.caps = {
.has_tuner = 1,
.has_dvb = 1,
.has_zl10353 = 1,
.has_eeprom = 1,
},
.gpio_addr_tun_reset = TM6000_GPIO_2,
},
};

/* table of devices that work with this driver */
Expand All @@ -170,23 +185,19 @@ struct usb_device_id tm6000_id_table [] = {
{ USB_DEVICE(0x06e1, 0xf332), .driver_info = TM6000_BOARD_ADSTECH_DUAL_TV },
{ USB_DEVICE(0x14aa, 0x0620), .driver_info = TM6000_BOARD_FREECOM_AND_SIMILAR },
{ USB_DEVICE(0x06e1, 0xb339), .driver_info = TM6000_BOARD_ADSTECH_MINI_DUAL_TV },
{ USB_DEVICE(0x2040, 0x6600), .driver_info = TM6010_BOARD_HAUPPAUGE_900H },
{ },
};

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));

request_module ("tuner");

if (dev->tuner_type == TUNER_XC2028) {
if (dev->dev_type == TM6010)
ctl.fname = "xc3028-v27.fw";
else
ctl.fname = "tm6000-xc3028.fw";
struct v4l2_priv_tun_config xc2028_cfg;
struct xc2028_ctrl ctl;

memset (&ctl,0,sizeof(ctl));

ctl.mts = 1;
ctl.read_not_reliable = 1;
Expand All @@ -195,6 +206,17 @@ static void tm6000_config_tuner (struct tm6000_core *dev)
xc2028_cfg.tuner = TUNER_XC2028;
xc2028_cfg.priv = &ctl;

switch(dev->model) {
case TM6010_BOARD_HAUPPAUGE_900H:
ctl.fname = "xc3028L-v36.fw";
break;
default:
if (dev->dev_type == TM6010)
ctl.fname = "xc3028-v27.fw";
else
ctl.fname = "tm6000-xc3028.fw";
}

printk(KERN_INFO "Setting firmware parameters for xc2028\n");

tm6000_i2c_call_clients(dev, TUNER_SET_CONFIG, &xc2028_cfg);
Expand Down

0 comments on commit 7d5efb0

Please sign in to comment.