On 05/13/15 03:37, David Higgs wrote:
On May 11, 2015, at 9:02 PM, David Higgs <[email protected]> wrote:

On May 11, 2015, at 8:21 PM, David Higgs <[email protected] 
<mailto:[email protected]>> wrote:

On Mon, May 11, 2015 at 8:07 PM, Alexander Hall <[email protected] 
<mailto:[email protected]>>wrote:
Upgrading to the latest snapshot, I noticed my upd sensors had been
disturbingly crippled.

  uhidev0 at uhub4 port 1 configuration 1 interface 0 "EATON Eaton 3S" rev 
2.00/1.00 addr 2
  uhidev0: iclass 3/0, 32 report ids
  upd0 at uhidev0

Diff below is what happens from upd.c r1.13 to r1.14.

-hw.sensors.upd0.indicator0=On (ACPresent), OK
-hw.sensors.upd0.indicator1=On (Charging), OK
-hw.sensors.upd0.indicator2=Off (Discharging), OK
-hw.sensors.upd0.indicator3=Off (ShutdownImminent), OK
-hw.sensors.upd0.percent0=100.00% (FullChargeCapacity), OK
-hw.sensors.upd0.percent1=100.00% (RemainingCapacity), OK
+hw.sensors.upd0.indicator0=Off (ShutdownImminent), OK
+hw.sensors.upd0.indicator1=On (ACPresent), OK

Is this an expected fallout? Can I provide more info to assist? Full
dmesg (latest snap + vanilla current kernel w/ upd.c r1.13) follows.

It seems your device doesn't have a BatteryPresent report, or it is somehow getting 
mangled.  Can you run lsusb -v on your device and check if "Battery Present" is 
shown?

If it is not, we'll have to make sensor dependencies less strict.  I'll start 
thinking about how to do this.

Alternatively, you could try the following diff, which flattens the sensor 
dependency tree when a parent sensor isn’t available.

Below is a diff which has the correct number of parentheses and actually 
compiles.  Sorry for the noise.

I don't mind noise that fixes stuff. Thanks! :-)

$ alexander@bunke:~>sysctl hw.sensors
hw.sensors.km0.temp0=41.62 degC
hw.sensors.upd0.indicator0=On (Charging), OK
hw.sensors.upd0.indicator1=Off (Discharging), OK
hw.sensors.upd0.indicator2=Off (ShutdownImminent), OK
hw.sensors.upd0.indicator3=On (ACPresent), OK
hw.sensors.upd0.percent0=100.00% (RemainingCapacity), OK
hw.sensors.upd0.percent1=100.00% (FullChargeCapacity), OK

...aaand we're back in business!

OK by me. Not my field, so anyone else care to eyeball and commit?

Martin?

/Alexander


--david

--- a/upd.c
+++ b/upd.c
@@ -225,8 +225,12 @@ upd_attach_sensor_tree(struct upd_softc

        for (i = 0; i < nentries; i++) {
                entry = entries + i;
-               if (!upd_lookup_usage_entry(desc, size, entry, &item))
+               if (!upd_lookup_usage_entry(desc, size, entry, &item)) {
+                       /* dependency missing, add children to parent */
+                       upd_attach_sensor_tree(sc, desc, size,
+                           entry->nchildren, entry->children, queue);
                        continue;
+               }

                DPRINTF(("%s: found %s on repid=%d\n", DEVNAME(sc),
                    entry->usage_name, item.report_ID));




Reply via email to