Skip to contentSkip to conversation

Add ISA ACPI sensor driver name support

PATCH Applied Hoan Tran 2 participants 2 messages Aug 13, 2020 – Aug 20, 2020 Library code

lore
Share & tools
lore

Hoan Tran

author
#0 lore raw

PATCH v3 1/1 Add ISA ACPI sensor driver name support

From: Hoan Tran <[email protected]>

ACPI hwmon sensor driver name has a different format such as

	APMC0D29:00
	APMC0D29:01

compared with DTB. This patch supports this format and gives the correct device address as below

apm_xgene-isa-0000 => APMC0D29:00

Adapter: ISA adapter
SoC Temperature:  +35.0°C
CPU power:        11.00 W
IO power:         20.00 W

apm_xgene-isa-0001 => APMC0D29:01

Adapter: ISA adapter
SoC Temperature:  +33.0°C
CPU power:        13.00 W
IO power:         23.83 W

---
v3:
Filter for single '.' or ':'
v2:
Filter A-Z for the name

 lib/sysfs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
lib/sysfs.c +3 -3
index e63688b7..9516cec4 100644
@@ -663,7 +663,7 @@ static int classify_device(const char *dev_name,
 	if ((!subsys || !strcmp(subsys, "platform") ||
 			!strcmp(subsys, "of_platform"))) {
 		/* must be new ISA (platform driver) */
-		if (sscanf(dev_name, "%*[a-z0-9_].%d", &entry->chip.addr) != 1)
+		if (sscanf(dev_name, "%*[a-zA-Z0-9_]%*1[.:]%d", &entry->chip.addr) != 1)
 			entry->chip.addr = 0;
 		entry->chip.bus.type = SENSORS_BUS_TYPE_ISA;
 		entry->chip.bus.nr = 0;
@@ -938,7 +938,7 @@ int sensors_read_sysfs_attr(const sensors_chip_name *name,
 		if (res = EOF) {
 			if (errno = EIO)
 				return -SENSORS_ERR_IO;
-			else 
+			else
 				return -SENSORS_ERR_ACCESS_R;
 		}
 		*value /= get_type_scaling(subfeature->type);
@@ -972,7 +972,7 @@ int sensors_write_sysfs_attr(const sensors_chip_name *name,
 		if (res = EOF) {
 			if (errno = EIO)
 				return -SENSORS_ERR_IO;
-			else 
+			else
 				return -SENSORS_ERR_ACCESS_W;
 		}
 	} else
Signature · 1 line
2.24.2
#1 lore raw
Quoted 63 lines · Hoan Tran

From: Hoan Tran <[email protected]>

ACPI hwmon sensor driver name has a different format such as

	APMC0D29:00
	APMC0D29:01

compared with DTB. This patch supports this format and gives the correct device address as below

apm_xgene-isa-0000 => APMC0D29:00

Adapter: ISA adapter
SoC Temperature:  +35.0°C
CPU power:        11.00 W
IO power:         20.00 W

apm_xgene-isa-0001 => APMC0D29:01

Adapter: ISA adapter
SoC Temperature:  +33.0°C
CPU power:        13.00 W
IO power:         23.83 W

---
v3:
Filter for single '.' or ':'
v2:
Filter A-Z for the name

 lib/sysfs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
lib/sysfs.c +3 -3
index e63688b7..9516cec4 100644
@@ -663,7 +663,7 @@ static int classify_device(const char *dev_name,
 	if ((!subsys || !strcmp(subsys, "platform") ||
 			!strcmp(subsys, "of_platform"))) {
 		/* must be new ISA (platform driver) */
-		if (sscanf(dev_name, "%*[a-z0-9_].%d", &entry->chip.addr) != 1)
+		if (sscanf(dev_name, "%*[a-zA-Z0-9_]%*1[.:]%d", &entry->chip.addr) != 1)
 			entry->chip.addr = 0;
 		entry->chip.bus.type = SENSORS_BUS_TYPE_ISA;
 		entry->chip.bus.nr = 0;
@@ -938,7 +938,7 @@ int sensors_read_sysfs_attr(const sensors_chip_name *name,
 		if (res == EOF) {
 			if (errno == EIO)
 				return -SENSORS_ERR_IO;
-			else 
+			else
 				return -SENSORS_ERR_ACCESS_R;
 		}
 		*value /= get_type_scaling(subfeature->type);
@@ -972,7 +972,7 @@ int sensors_write_sysfs_attr(const sensors_chip_name *name,
 		if (res == EOF) {
 			if (errno == EIO)
 				return -SENSORS_ERR_IO;
-			else 
+			else
 				return -SENSORS_ERR_ACCESS_W;
 		}
 	} else
Signature · 1 line
2.24.2

Applied. Thanks a lot!

Ondřej