From dd9b40c54f160a44f1d78e5946d4cd00a8852802 Mon Sep 17 00:00:00 2001 From: Dengke Du Date: Wed, 21 Sep 2016 03:17:32 -0400 Subject: [PATCH] lm-sensors: fix sensors-detect can't read the cpu information on fsl-t4xxx This is because two reasons: 1. The sensors-detect program in lm-sensors depends on the file '/proc/cpuinfo', different arch write different infomation to it. That program supports x86 and x86-64 well, but weak on ppc and arm. 2. The sensors-detect program show the cpu information just design for intel's cpu, when meets other arch, it can't output the correct information. So we need to add the ppc and arm support for this program: 1. add the ppc cpu information field 'cpu' in initialize_cpu_list function. 2. add the correspond case of ppc and arm when print cpu information in print_cpu_info function. Upstream-Status: Pending Signed-off-by: Dengke Du --- prog/detect/sensors-detect | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect index 5f62405..ae4def1 100755 --- a/prog/detect/sensors-detect +++ b/prog/detect/sensors-detect @@ -2833,6 +2833,7 @@ sub kernel_version_at_least # model name and stepping, directly taken from /proc/cpuinfo. use vars qw(@cpu); +# The added field 'cpu' is for support the ppc. sub initialize_cpu_list { local $_; @@ -2848,7 +2849,7 @@ sub initialize_cpu_list }; next; } - if (m/^(vendor_id|cpu family|model|model name|stepping|cpuid level)\s*:\s*(.+)$/) { + if (m/^(vendor_id|cpu family|model|model name|stepping|cpuid level|cpu|revision)\s*:\s*(.+)$/) { my $k = $1; my $v = $2; $v =~ s/\s+/ /g; # Merge multiple spaces @@ -2861,12 +2862,20 @@ sub initialize_cpu_list push @cpu, $entry if scalar keys(%{$entry}); # Last entry } +# The field 'model name' is for ARM. +# The field 'cpu' is for ppc. sub print_cpu_info { my $cpu = $cpu[0]; if ( $cpu->{'model name'} && $cpu->{'cpu family'} && $cpu->{model} && $cpu->{stepping} ) { print "# Processor: $cpu->{'model name'} ($cpu->{'cpu family'}/$cpu->{model}/$cpu->{stepping})\n"; } + elsif ( $cpu->{'model name'} ) { + print "# Processor: $cpu->{'model name'}\n"; + } + elsif ( $cpu->{'cpu'} && $cpu->{'revision'} ) { + print "# Processor: $cpu->{'cpu'} $cpu->{'revision'}\n"; + } else { print "# Processor: There isn't enough cpu info for this arch!!!\n"; } -- 2.8.1