Re: [PATCH v2] Add ISA ACPI sensor driver name support
Hoan Tran <[email protected]> Wed, 12 Aug 2020 22:13:33 +0000
| Newsgroups | org.kernel.vger.lm-sensors |
|---|---|
| Message-ID | <[email protected]> |
Hi, On 8/11/20 2:38 AM, Ondřej Lysoněk wrote: > Hi, > > Thanks for the patch! > > Hoan Tran <[email protected]> writes: > >> From: Hoan Tran <[email protected]> >> >> ACPI hwmon sensor driver name has a different format such as >> APMC0D29:00 >> APMC0D29:01 > > Do you know where the number 00/01 comes from? I'm trying to determine > if it's guaranteed to be stable across reboots. I think it's based on the ACPI node order inside DSDT. > >> 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 >> >> Signed-off-by: Hoan Tran <[email protected]> >> --- >> v2: >> Filter A-Z for the name >> >> lib/sysfs.c | 6 +++--- >> 1 file changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/lib/sysfs.c b/lib/sysfs.c >> index e63688b7..e9db55d4 100644 >> --- a/lib/sysfs.c >> +++ b/lib/sysfs.c >> @@ -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_]%*[.:]%d", &entry->chip.addr) != 1) > > Nit: I think this should be "%*[a-zA-Z0-9_]%*1[.:]%d", so that only a > single '.' or ':' character is matched. Yes, it's true. I can fix it. Regards Hoan > > Ondřej > >> 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 >> -- >> 2.24.2 >