aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-bsp/lm_sensors/lmsensors/0002-lm-sensors-fix-sensors-detect-can-t-read-the-cpu-inf.patch
blob: 68f51f5a674a528d6dd081cbb26e70780889e197 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
From 26742544bc9f136093b6be78259f4a891870aa3c Mon Sep 17 00:00:00 2001
From: Dengke Du <dengke.du@windriver.com>
Date: Wed, 21 Sep 2016 03:17:32 -0400
Subject: [PATCH 2/2] 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 <dengke.du@windriver.com>
---
 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 68594cd7..efe2c1af 100755
--- a/prog/detect/sensors-detect
+++ b/prog/detect/sensors-detect
@@ -3088,6 +3088,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 $_;
@@ -3103,7 +3104,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
@@ -3116,12 +3117,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.21.0