Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+21 −2
Original line number Diff line number Diff line
@@ -21,8 +21,9 @@
use File::Temp qw/ tempdir /;
use IO::Handle;

@components = ( "sp8870", "sp887x", "tda10045", "tda10046", "av7110", "dec2000t",
		"dec2540t", "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004",
@components = ( "sp8870", "sp887x", "tda10045", "tda10046",
		"tda10046lifeview", "av7110", "dec2000t", "dec2540t",
		"dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004",
		"or51211", "or51132_qam", "or51132_vsb", "bluebird");

# Check args
@@ -126,6 +127,24 @@ sub tda10046 {
    $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 {
    my $sourcefile = "dvb-ttpci-01.fw-261d";
    my $url = "http://www.linuxtv.org/downloads/firmware/$sourcefile";
+1 −0
Original line number Diff line number Diff line
@@ -84,3 +84,4 @@
 83 -> Terratec Cinergy 250 PCI TV              [153b:1160]
 84 -> LifeView FlyDVB Trio                     [5168:0319]
 85 -> AverTV DVB-T 777                         [1461:2c05]
 86 -> LifeView FlyDVB-T                        [5168:0301]
+28 −0
Original line number Diff line number Diff line
@@ -2637,6 +2637,27 @@ struct saa7134_board saa7134_boards[] = {
			.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);
@@ -3113,6 +3134,12 @@ struct pci_device_id saa7134_pci_tbl[] = {
		.subvendor    = 0x1461,
		.subdevice    = 0x2c05,
		.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 --- */
		.vendor       = PCI_VENDOR_ID_PHILIPS,
@@ -3213,6 +3240,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
	case SAA7134_BOARD_GOTVIEW_7135:
	case SAA7134_BOARD_KWORLD_TERMINATOR:
	case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS:
	case SAA7134_BOARD_FLYDVBT_LR301:
		dev->has_remote = SAA7134_REMOTE_GPIO;
		break;
	case SAA7134_BOARD_MD5044:
+4 −0
Original line number Diff line number Diff line
@@ -924,6 +924,10 @@ static int dvb_init(struct saa7134_dev *dev)
		dev->dvb.frontend = tda10046_attach(&philips_tiger_config,
						    &dev->i2c_adap);
		break;
	case SAA7134_BOARD_FLYDVBT_LR301:
		dev->dvb.frontend = tda10046_attach(&tda827x_lifeview_config,
						    &dev->i2c_adap);
		break;
#endif
#ifdef HAVE_NXT200X
	case SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180:
+5 −0
Original line number Diff line number Diff line
@@ -230,6 +230,11 @@ int saa7134_input_init1(struct saa7134_dev *dev)
		mask_keycode = 0x003F00;
		mask_keyup   = 0x040000;
		break;
	case SAA7134_BOARD_FLYDVBT_LR301:
		ir_codes     = ir_codes_flydvb;
		mask_keycode = 0x0001F00;
		mask_keydown = 0x0040000;
		break;
	}
	if (NULL == ir_codes) {
		printk("%s: Oops: IR config error [card=%d]\n",
Loading