On 02/06/15(Tue) 22:36, David Higgs wrote:
> Here are some new sensors for upd(4) devices.  All exist on my device except 
> AtRateTimeToEmpty, which still seemed a logical addition given that 
> AtRateTimeToFull is already present.
> - AtRateTimeToEmpty
> - RunTimeToEmpty
> - NeedReplacement
> - Overload

Nice.

> If anyone had an AtRate sensor, it was probably producing meaningless output. 
>  The relevant spec [0] indicates that these are in minutes, and my device 
> appears to be using seconds; the (previously unscaled) sensor value expects 
> nanoseconds!
> [0] http://www.usb.org/developers/hidpage/pdcv10.pdf
> 
> And lastly, the NeedReplacement report has nothing to do with the System 
> Management Bus (SMB), so rename the constant.  Nothing else in the tree 
> appears to use it, so hopefully this is safe.
> 
> Feedback and lsusb -v output is welcome, as usual.

Have you got any feedback from upd(4) users?

> --- a/upd.c
> +++ b/upd.c
> @@ -66,7 +66,13 @@ static struct upd_usage_entry upd_usage_
>       { HUP_BATTERY,  HUB_DISCHARGING,
>           SENSOR_INDICATOR,    "Discharging" },
>       { HUP_BATTERY,  HUB_ATRATE_TIMETOFULL,
> -         SENSOR_TIMEDELTA,    "AtRateTimeToFull" }
> +         SENSOR_TIMEDELTA,    "AtRateTimeToFull" },
> +     { HUP_BATTERY,  HUB_ATRATE_TIMETOEMPTY,
> +         SENSOR_TIMEDELTA,    "AtRateTimeToEmpty" },
> +     { HUP_BATTERY,  HUB_RUNTIMETO_EMPTY,
> +         SENSOR_TIMEDELTA,    "RunTimeToEmpty" },
> +     { HUP_BATTERY,  HUB_NEED_REPLACEMENT,
> +         SENSOR_INDICATOR,    "NeedReplacement" },
>  };
>  static struct upd_usage_entry upd_usage_roots[] = {
>       { HUP_BATTERY,  HUB_BATTERY_PRESENT,
> @@ -75,7 +81,9 @@ static struct upd_usage_entry upd_usage_
>       { HUP_POWER,    HUP_SHUTDOWN_IMMINENT,
>           SENSOR_INDICATOR,    "ShutdownImminent" },
>       { HUP_BATTERY,  HUB_AC_PRESENT,
> -         SENSOR_INDICATOR,    "ACPresent" }
> +         SENSOR_INDICATOR,    "ACPresent" },
> +     { HUP_POWER,    HUP_OVERLOAD,
> +         SENSOR_INDICATOR,    "Overload" },
>  };
>  #define UPD_MAX_SENSORS      (nitems(upd_usage_batdep) + 
> nitems(upd_usage_roots))
>  
> @@ -410,6 +418,12 @@ upd_sensor_update(struct upd_softc *sc,
>       case HUB_FULLCHARGE_CAPACITY:
>               adjust = 1000; /* scale adjust */
>               break;
> +     case HUB_ATRATE_TIMETOFULL:
> +     case HUB_ATRATE_TIMETOEMPTY:
> +     case HUB_RUNTIMETO_EMPTY:
> +             /* spec says minutes, not seconds */
> +             adjust = 1000000000LL;
> +             break;
>       default:
>               adjust = 1; /* no scale adjust */
>               break;
> --- a/usbhid.h
> +++ b/usbhid.h
> @@ -213,7 +213,7 @@ struct usb_hid_descriptor {
>  #define HUB_CONDITIONING_FLAG        0x0048
>  #define HUB_ATRATE_OK                0x0049
>  #define HUB_SMB_ERROR_CODE   0x004a
> -#define HUB_SMB_NEED_REPLACE 0x004b
> +#define HUB_NEED_REPLACEMENT 0x004b
>  #define HUB_ATRATE_TIMETOFULL        0x0060
>  #define HUB_ATRATE_TIMETOEMPTY       0x0061
>  #define HUB_AVERAGE_CURRENT  0x0062
> 
> 

Reply via email to