[ltp] Re: [PATCH v2] Re: Battery class driver.

Greg KH linux-thinkpad@linux-thinkpad.org
Wed, 1 Nov 2006 11:31:34 -0800


On Tue, Oct 31, 2006 at 03:28:27PM +0200, Shem Multinymous wrote:
> Hi Greg,
> 
> On 10/31/06, Greg KH <greg@kroah.com> wrote:
> >> On 10/28/06, David Zeuthen <davidz@redhat.com> wrote:
> >> >What about just prepending the unit to the 'threshold' file? Then user
> >> >space can expect the contents of said file to be of the form "%d %s". I
> >> >don't think that violates the "only one value per file" sysfs mantra.
> >>
> >> The tp_smapi battery driver did just this  ("16495 mW"). But I dropped
> >> it in a recent version when Pavel pointed out the rest of sysfs, hwmon
> >> included, uses undecorated integers.
> >> Consistency aside, it seems reasonable and convenient. You have to
> >> decree that writes to the attributes (where relevant) don't include
> >> the units, of course, so no one will expect the kernel to parse that.
> >>
> >> There's an issue here if a drunk driver decides to specify (say)
> >> capacity_remaining in mWh and capacity_last_full in mAa, which will
> >> confuse anyone comparing those attributest. So don't do that.
> >>
> >> Jean, what's your opinion on letting hwmon-ish attributes specify
> >> units as "%d %s" where these are hardware-dependent?
> >
> >No, the sysfs files should just always keep the same units as
> >documented.  It's easier all around that way.
> 
> It sure is easier, but we're discussinng the case where units change
> in runtime; what do we document then? Plug in a different battery and
> you get reports in mA and mAh  insted of mW and mWh.

Then you should just get different sysfs files then.  One that describes
power and one that describes current.

> The suggestions so far were:
> 1. Append units string to the content of such attribute:
>   /sys/.../capacity_remaining reads "16495 mW".
> 2. Add a seprate *_units attribute saying what are units for other 
> attribute:
>   /sys/.../capacity_units gives the units for
>   /sys/.../capacity_{remaining,last_full,design,min,...}.
> 3. Append the units to the attribute names:
>   capacity_{remaining,last_full,design_min,...}:mV.

No, again, one for power and one for current.  Two different files
depending on the type of battery present.  That way there is no need to
worry about unit issues.

thanks,

greg k-h