Module Name: src
Committed By: macallan
Date: Sun Jul 12 06:38:57 UTC 2020
Modified Files:
src/sys/dev/i2c: dbcool.c
Log Message:
get sensor names from device properties if possible
To generate a diff of this commit:
cvs rdiff -u -r1.54 -r1.55 src/sys/dev/i2c/dbcool.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/i2c/dbcool.c
diff -u src/sys/dev/i2c/dbcool.c:1.54 src/sys/dev/i2c/dbcool.c:1.55
--- src/sys/dev/i2c/dbcool.c:1.54 Wed Feb 6 08:37:12 2019
+++ src/sys/dev/i2c/dbcool.c Sun Jul 12 06:38:56 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: dbcool.c,v 1.54 2019/02/06 08:37:12 martin Exp $ */
+/* $NetBSD: dbcool.c,v 1.55 2020/07/12 06:38:56 macallan Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -50,7 +50,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dbcool.c,v 1.54 2019/02/06 08:37:12 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dbcool.c,v 1.55 2020/07/12 06:38:56 macallan Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -775,6 +775,7 @@ dbcool_attach(device_t parent, device_t
sc->sc_dc.dc_readreg = dbcool_readreg;
sc->sc_dc.dc_writereg = dbcool_writereg;
sc->sc_dev = self;
+ sc->sc_prop = args->ia_prop;
if (dbcool_chip_ident(&sc->sc_dc) < 0 || sc->sc_dc.dc_chip == NULL)
panic("could not identify chip at addr %d", args->ia_addr);
@@ -1689,10 +1690,18 @@ dbcool_attach_sensor(struct dbcool_softc
{
int name_index;
int error = 0;
+ char name[8];
+ const char *desc;
name_index = sc->sc_dc.dc_chip->table[idx].name_index;
- strlcpy(sc->sc_sensor[idx].desc, dbc_sensor_names[name_index],
- sizeof(sc->sc_sensor[idx].desc));
+ snprintf(name, 7, "s%02x", sc->sc_dc.dc_chip->table[idx].reg.val_reg);
+ if (prop_dictionary_get_cstring_nocopy(sc->sc_prop, name, &desc)) {
+ strlcpy(sc->sc_sensor[idx].desc, desc,
+ sizeof(sc->sc_sensor[idx].desc));
+ } else {
+ strlcpy(sc->sc_sensor[idx].desc, dbc_sensor_names[name_index],
+ sizeof(sc->sc_sensor[idx].desc));
+ }
sc->sc_regs[idx] = &sc->sc_dc.dc_chip->table[idx].reg;
sc->sc_nom_volt[idx] = sc->sc_dc.dc_chip->table[idx].nom_volt_index;
@@ -1721,9 +1730,12 @@ dbcool_attach_temp_control(struct dbcool
/* create sysctl node for the sensor if not one already there */
if (sc->sc_sysctl_num[j] == -1) {
+ int name_index = sc->sc_dc.dc_chip->table[idx].name_index;
+
ret = sysctl_createv(&sc->sc_sysctl_log, 0, NULL, &me2,
CTLFLAG_READWRITE,
- CTLTYPE_NODE, sc->sc_sensor[j].desc, NULL,
+ CTLTYPE_NODE, dbc_sensor_names[name_index],
+ sc->sc_sensor[j].desc,
NULL, 0, NULL, 0,
CTL_HW, sc->sc_root_sysctl_num, CTL_CREATE,
CTL_EOL);