David Howells <[email protected]> wrote:
> Here are four logs from doing:
>
> scandvb -a1 ./e.1
>
> where the contents of file e.1 are:
>
> S 11919000 V 27500000 3/4
>
> which is probing a region on the Eutelsat-9A satellite broadcast.
Here's a script for turning the logs from:
I2C cx23885[0]: RD 60 1
I2C m88ds3103: WR 60 2 [0003]
I2C cx23885[0]: WR 68 2 [0311]
I2C cx23885[0]: WR 60 2 [0003]
I2C m88ds3103: WR 60 1 [00]
into something that looks like:
demod_read(23)
demod_write(23, [1f])
TUNER_read(00)
TUNER_write(00, [03])
TUNER_read(00)
and checks for and hides the tuner gate opening commands to the ds3103.
David
---
#!/usr/bin/perl -w
use strict;
my $last_adap = 0;
my $last_dev = 0;
my $last_reg = 0;
my $tuner_gate = 0;
while (<>) {
chomp;
if (/^I2C ([^:]*): RD ([0-9A-Fa-f]{2}) ([0-9]{1,2})/) {
my $adap = $1;
my $dev = $2;
my $n = $3;
die if ($dev ne "6b" && $dev ne $last_dev);
if ($dev eq "68") {
# Demodulator register
die if ($tuner_gate);
print "demod_read(", $last_reg, ")\n";
} elsif ($dev eq "60") {
# Tuner register
# Ignore stuff on the internal tuner->demod bus in Antti's driver
next if ($adap eq "m88ds3103");
die if (!$tuner_gate);
$tuner_gate = 0;
print "TUNER_read(", $last_reg, ")\n";
} else {
print "RD ", $adap, " ", $dev, " ", $n, "\n";
}
} elsif (/^I2C ([^:]*): WR ([0-9A-Fa-f]{2}) ([0-9]{1,2})
[[]([0-9A-Fa-f]{2,})[]]/) {
my $adap = $1;
my $dev = $2;
my $n = $3;
my $data = $4;
$last_adap = $adap;
$last_dev = $dev;
die if (int($n) <= 0);
die if (length($data) != int($n) * 2);
if ($dev eq "68") {
# Demodulator register
die if ($tuner_gate);
my $reg = substr($data, 0, 2);
if ($n == 2 && $data eq "0311") {
$tuner_gate = 1;
} elsif ($n > 1) {
print "demod_write(", $reg, ", [", substr($data, 2), "])\n";
$last_dev = 0;
} else {
$last_reg = $reg;
}
} elsif ($dev eq "60") {
# Tuner register
# Ignore stuff on the internal tuner->demod bus in Antti's driver
next if ($adap eq "m88ds3103");
die if (!$tuner_gate);
my $reg = substr($data, 0, 2);
if ($n > 1) {
print "TUNER_write(", $reg, ", [", substr($data, 2), "])\n";
$last_dev = 0;
$tuner_gate = 0;
} else {
$last_reg = $reg;
}
} else {
print "WR ", $1, " ", $2, " ", $3, " ", $4, "\n";
}
} else {
print;
print "\n";
}
}
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html