diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-12-07 12:38:46 -0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-12-07 12:38:46 -0200 |
commit | abb9ed8173fddff2b5923d6b8ff034ddb48a2ea6 (patch) | |
tree | 382c8328520f75acb1a1985082d358f51c93b0bf /contrib/sn9c201/parse_sn9c201.pl | |
parent | b3464843dd559dfb33a5e1936cba6b854355cce9 (diff) |
Discard fields outside I2C size
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'contrib/sn9c201/parse_sn9c201.pl')
-rwxr-xr-x | contrib/sn9c201/parse_sn9c201.pl | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/contrib/sn9c201/parse_sn9c201.pl b/contrib/sn9c201/parse_sn9c201.pl index b4024334..1ddcee26 100755 --- a/contrib/sn9c201/parse_sn9c201.pl +++ b/contrib/sn9c201/parse_sn9c201.pl @@ -117,18 +117,39 @@ while (<>) { $reg++; } -# my $data = $payload; -# $payload =~ + my $data; + for (my $i = 0; $i < $i2c{"size"}; $i++) { + my $tmp = $payload; + $tmp =~ s/\s+.*//; + $payload =~ s/^([0-9a-f].)//; + $payload =~ s/^\s+//; + $data .= "$tmp "; + } + $data =~ s/\s+$//; + + my $discard; + for (my $i = 0; $i < 5; $i++) { + my $tmp = $payload; + $tmp =~ s/\s+.*//; + $payload =~ s/^([0-9a-f].)//; + $payload =~ s/^\s+//; + $discard .= "$tmp "; + } + $discard =~ s/\s+$//; my $s = sprintf "%s %s %s %s %s size=%d", $i2c{"op"}, $i2c{"speed"}, $i2c{"busy"}, $i2c{"err"}, $i2c{"i2c"}, $i2c{"size"}; $s =~ s/\s+/ /g; if ($reqtype & 0x80) { - printf "Read I2C: $s $i2c_id$payload\n"; + printf "Read I2C: $s $i2c_id$data"; } else { - printf "I2C $s $i2c_id$payload\n"; + printf "I2C $s $i2c_id$data"; } + printf " ($discard)" if ($discard); + printf "Extra: $payload" if ($payload); + print "\n"; + printf("\t%s, Req %3d, wValue: 0x%04x, wIndex 0x%04x, wlen %d: %s\n", type_req($reqtype), $req, $wvalue, $windex, $wlen, $fullpayload); } else { |