V4L/DVB (12752): get_dvb_firmware: add af9015 firmware
authorAntti Palosaari <crope@iki.fi>
Sat, 12 Sep 2009 12:43:25 +0000 (09:43 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 19 Sep 2009 02:47:50 +0000 (23:47 -0300)
Add af9015 firmware to get_dvb_firmware script.
Firmware version is 4.95.0.0.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

Documentation/dvb/get_dvb_firmware

index 3d1b0ab..14b7b5a 100644 (file)
@@ -25,7 +25,8 @@ use IO::Handle;
                "tda10046lifeview", "av7110", "dec2000t", "dec2540t",
                "dec3000s", "vp7041", "dibusb", "nxt2002", "nxt2004",
                "or51211", "or51132_qam", "or51132_vsb", "bluebird",
-               "opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718" );
+               "opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718",
+               "af9015");
 
 # Check args
 syntax() if (scalar(@ARGV) != 1);
@@ -514,6 +515,40 @@ sub bluebird {
        $outfile;
 }
 
+sub af9015 {
+       my $sourcefile = "download.ashx?file=57";
+       my $url = "http://www.ite.com.tw/EN/Services/$sourcefile";
+       my $hash = "ff5b096ed47c080870eacdab2de33ad6";
+       my $outfile = "dvb-usb-af9015.fw";
+       my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
+       my $fwoffset = 0x22708;
+       my $fwlength = 18225;
+       my ($chunklength, $buf, $rcount);
+
+       checkstandard();
+
+       wgetfile($sourcefile, $url);
+       unzip($sourcefile, $tmpdir);
+       verify("$tmpdir/Driver/Files/AF15BDA.sys", $hash);
+
+       open INFILE, '<', "$tmpdir/Driver/Files/AF15BDA.sys";
+       open OUTFILE, '>', $outfile;
+
+       sysseek(INFILE, $fwoffset, SEEK_SET);
+       while($fwlength > 0) {
+               $chunklength = 55;
+               $chunklength = $fwlength if ($chunklength > $fwlength);
+               $rcount = sysread(INFILE, $buf, $chunklength);
+               die "Ran out of data\n" if ($rcount != $chunklength);
+               syswrite(OUTFILE, $buf);
+               sysread(INFILE, $buf, 8);
+               $fwlength -= $rcount + 8;
+       }
+
+       close OUTFILE;
+       close INFILE;
+}
+
 # ---------------------------------------------------------------
 # Utilities