Commit 3d8466ec authored by Giampiero Giancipoli's avatar Giampiero Giancipoli Committed by Mauro Carvalho Chehab

V4L/DVB (3302): Added support for the LifeView FlyDVB-T LR301 card

Additionally to the card support, this changeset adds the option
tda10046lifeview to get_dvb_firmware to download tda10046 firmware
from LifeView's site.
Signed-off-by: default avatarGiampiero Giancipoli <gianci@libero.it>
Signed-off-by: default avatarHartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent d97a11e0
...@@ -21,8 +21,9 @@ ...@@ -21,8 +21,9 @@
use File::Temp qw/ tempdir /; use File::Temp qw/ tempdir /;
use IO::Handle; use IO::Handle;
@components = ( "sp8870", "sp887x", "tda10045", "tda10046", "av7110", "dec2000t", @components = ( "sp8870", "sp887x", "tda10045", "tda10046",
"dec2540t", "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004", "tda10046lifeview", "av7110", "dec2000t", "dec2540t",
"dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004",
"or51211", "or51132_qam", "or51132_vsb", "bluebird"); "or51211", "or51132_qam", "or51132_vsb", "bluebird");
# Check args # Check args
...@@ -126,6 +127,24 @@ sub tda10046 { ...@@ -126,6 +127,24 @@ sub tda10046 {
$outfile; $outfile;
} }
sub tda10046lifeview {
my $sourcefile = "Drv_2.11.02.zip";
my $url = "http://www.lifeview.com.tw/drivers/pci_card/FlyDVB-T/$sourcefile";
my $hash = "1ea24dee4eea8fe971686981f34fd2e0";
my $outfile = "dvb-fe-tda10046.fw";
my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
checkstandard();
wgetfile($sourcefile, $url);
unzip($sourcefile, $tmpdir);
extract("$tmpdir/LVHybrid.sys", 0x8b088, 24602, "$tmpdir/fwtmp");
verify("$tmpdir/fwtmp", $hash);
copy("$tmpdir/fwtmp", $outfile);
$outfile;
}
sub av7110 { sub av7110 {
my $sourcefile = "dvb-ttpci-01.fw-261d"; my $sourcefile = "dvb-ttpci-01.fw-261d";
my $url = "http://www.linuxtv.org/downloads/firmware/$sourcefile"; my $url = "http://www.linuxtv.org/downloads/firmware/$sourcefile";
......
...@@ -84,3 +84,4 @@ ...@@ -84,3 +84,4 @@
83 -> Terratec Cinergy 250 PCI TV [153b:1160] 83 -> Terratec Cinergy 250 PCI TV [153b:1160]
84 -> LifeView FlyDVB Trio [5168:0319] 84 -> LifeView FlyDVB Trio [5168:0319]
85 -> AverTV DVB-T 777 [1461:2c05] 85 -> AverTV DVB-T 777 [1461:2c05]
86 -> LifeView FlyDVB-T [5168:0301]
...@@ -2637,6 +2637,27 @@ struct saa7134_board saa7134_boards[] = { ...@@ -2637,6 +2637,27 @@ struct saa7134_board saa7134_boards[] = {
.amux = LINE1, .amux = LINE1,
}}, }},
}, },
[SAA7134_BOARD_FLYDVBT_LR301] = {
/* LifeView FlyDVB-T */
/* Giampiero Giancipoli <gianci@libero.it> */
.name = "LifeView FlyDVB-T",
.audio_clock = 0x00200000,
.tuner_type = TUNER_ABSENT,
.radio_type = UNSET,
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
.mpeg = SAA7134_MPEG_DVB,
.inputs = {{
.name = name_comp1, /* Composite input */
.vmux = 3,
.amux = LINE2,
},{
.name = name_svideo, /* S-Video signal on S-Video input */
.vmux = 8,
.amux = LINE2,
}},
},
}; };
const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
...@@ -3113,6 +3134,12 @@ struct pci_device_id saa7134_pci_tbl[] = { ...@@ -3113,6 +3134,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
.subvendor = 0x1461, .subvendor = 0x1461,
.subdevice = 0x2c05, .subdevice = 0x2c05,
.driver_data = SAA7134_BOARD_AVERMEDIA_777, .driver_data = SAA7134_BOARD_AVERMEDIA_777,
},{
.vendor = PCI_VENDOR_ID_PHILIPS,
.device = PCI_DEVICE_ID_PHILIPS_SAA7134,
.subvendor = 0x5168,
.subdevice = 0x0301,
.driver_data = SAA7134_BOARD_FLYDVBT_LR301,
},{ },{
/* --- boards without eeprom + subsystem ID --- */ /* --- boards without eeprom + subsystem ID --- */
.vendor = PCI_VENDOR_ID_PHILIPS, .vendor = PCI_VENDOR_ID_PHILIPS,
...@@ -3213,6 +3240,7 @@ int saa7134_board_init1(struct saa7134_dev *dev) ...@@ -3213,6 +3240,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
case SAA7134_BOARD_GOTVIEW_7135: case SAA7134_BOARD_GOTVIEW_7135:
case SAA7134_BOARD_KWORLD_TERMINATOR: case SAA7134_BOARD_KWORLD_TERMINATOR:
case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS: case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS:
case SAA7134_BOARD_FLYDVBT_LR301:
dev->has_remote = SAA7134_REMOTE_GPIO; dev->has_remote = SAA7134_REMOTE_GPIO;
break; break;
case SAA7134_BOARD_MD5044: case SAA7134_BOARD_MD5044:
......
...@@ -924,6 +924,10 @@ static int dvb_init(struct saa7134_dev *dev) ...@@ -924,6 +924,10 @@ static int dvb_init(struct saa7134_dev *dev)
dev->dvb.frontend = tda10046_attach(&philips_tiger_config, dev->dvb.frontend = tda10046_attach(&philips_tiger_config,
&dev->i2c_adap); &dev->i2c_adap);
break; break;
case SAA7134_BOARD_FLYDVBT_LR301:
dev->dvb.frontend = tda10046_attach(&tda827x_lifeview_config,
&dev->i2c_adap);
break;
#endif #endif
#ifdef HAVE_NXT200X #ifdef HAVE_NXT200X
case SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180: case SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180:
......
...@@ -230,6 +230,11 @@ int saa7134_input_init1(struct saa7134_dev *dev) ...@@ -230,6 +230,11 @@ int saa7134_input_init1(struct saa7134_dev *dev)
mask_keycode = 0x003F00; mask_keycode = 0x003F00;
mask_keyup = 0x040000; mask_keyup = 0x040000;
break; break;
case SAA7134_BOARD_FLYDVBT_LR301:
ir_codes = ir_codes_flydvb;
mask_keycode = 0x0001F00;
mask_keydown = 0x0040000;
break;
} }
if (NULL == ir_codes) { if (NULL == ir_codes) {
printk("%s: Oops: IR config error [card=%d]\n", printk("%s: Oops: IR config error [card=%d]\n",
......
...@@ -212,6 +212,7 @@ struct saa7134_format { ...@@ -212,6 +212,7 @@ struct saa7134_format {
#define SAA7134_BOARD_CINERGY250PCI 83 #define SAA7134_BOARD_CINERGY250PCI 83
#define SAA7134_BOARD_FLYDVB_TRIO 84 #define SAA7134_BOARD_FLYDVB_TRIO 84
#define SAA7134_BOARD_AVERMEDIA_777 85 #define SAA7134_BOARD_AVERMEDIA_777 85
#define SAA7134_BOARD_FLYDVBT_LR301 86
#define SAA7134_MAXBOARDS 8 #define SAA7134_MAXBOARDS 8
#define SAA7134_INPUT_MAX 8 #define SAA7134_INPUT_MAX 8
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment