From 86a37d95c8c33e6b877a486104da122a0a05931c Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Sun, 10 Jul 2011 14:16:45 -0300 Subject: [PATCH] parse_em28xx_drxk.pl: Fix for read16/write16 Signed-off-by: Mauro Carvalho Chehab --- contrib/em28xx/parse_em28xx_drxk.pl | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/contrib/em28xx/parse_em28xx_drxk.pl b/contrib/em28xx/parse_em28xx_drxk.pl index 3d0ec2e..8659cca 100755 --- a/contrib/em28xx/parse_em28xx_drxk.pl +++ b/contrib/em28xx/parse_em28xx_drxk.pl @@ -2171,16 +2171,18 @@ sub parse_drxk_addr($$$$$) } else { $reg = sprintf "0x%08x", $reg; } - my $data = hex(substr($app_data, $j, 2)) | - hex(substr($app_data, $j + 3, 2)) << 16; - - $data |= hex(substr($app_data, $j + 6, 2)) << 24 | - hex(substr($app_data, $j + 9, 2)) << 8 if ($n > 2); + my $data; if ($n == 2) { $bits = 16; + $data = hex(substr($app_data, $j, 2)) | + hex(substr($app_data, $j + 3, 2)) << 8; } else { $bits = 32; + $data = hex(substr($app_data, $j, 2)) | + hex(substr($app_data, $j + 3, 2)) << 16 | + hex(substr($app_data, $j + 6, 2)) << 24 | + hex(substr($app_data, $j + 9, 2)) << 8 if ($n > 2); } if ($flags) { -- 2.7.4