Re: [PATCH V6 1/2] introduce ALS sysfs class

From: Pavel Machek
Date: Thu Sep 03 2009 - 04:46:14 EST


On Thu 2009-09-03 10:35:39, Zhang Rui wrote:
> On Thu, 2009-09-03 at 08:16 +0800, Rafael J. Wysocki wrote:
> > On Wednesday 02 September 2009, Pavel Machek wrote:
> > > On Wed 2009-09-02 23:46:11, Rafael J. Wysocki wrote:
> > > > On Wednesday 02 September 2009, Pavel Machek wrote:
> > > > > On Wed 2009-09-02 23:12:58, Rafael J. Wysocki wrote:
> > > > > > On Tuesday 01 September 2009, Pavel Machek wrote:
> > > > > > >
> > > > > > > > > > IMO, 0 and -1 are not errors. they just suggest that the Ambient Light
> > > > > > > > > > illuminance is beyond the device support range, while the device is
> > > > > > > > > > still working normally.
> > > > > > > > > > what about exporting these values (0 and -1) to user space directly?
> > > > > > > > >
> > > > > > > > > Returning 0 for "below" range and 99999999 for "above" range would be
> > > > > > > > > nice, yes.
> > > > > > > >
> > > > > > > > Why not 0 and "all ones" or 0 and -1.
> > > > > > > >
> > > > > > > > Is there anything wrong with -1 in particular?
> > > > > > >
> > > > > > > Normal people expect -1 to be less than 123, and output is in ascii. If
> > > > > > > you make it ((unsigned) ~0) I guess that becomes acceptable.
> > > > > >
> > > > > > Well, "-1" is a perfectly valid alphanumerical representation of an int.
> > > > > > I don't really see the problem with the "-", unless we're talking about some
> > > > > > broken user space, that is.
> > > > >
> > > > > No. But if you see illumination value of -1 lumen, do you really
> > > > > expect a *lot* of light?
> > > >
> > > > Not really. I'd rather intrepret it as "the number is not to be trusted",
> > > > which is what it means.
> > > >
> > > > The problem with "all ones" is that it depends on the size of the underlying
> > > > data type, which is not nice. Also, if you want that to be a "big number",
> > > > there's no clear rule to tell what the number should actually be.
> > > >
> > > > Anyway, this really is a matter of definition. If we document the attribute
> > > > to read as "-1" in specific circumstances, the user space will have to take
> > > > that into account.
> > >
> > > Well, I'd prefer to specify -1 as "underflow" and 1000000000 as
> > > "overflow". Any numbers should work, but ... lets make the interface
> > > logical if we can.
> >
> > The interface is already defined, isn't it? And we're now considering whether
> > or not to pass the values defined by the interface directly to the user space,
> > which I think is the right thing to do, because we have no reason _whatsoever_
> > to change them to anything else.
> >
> I agree.
> For environment illuminance, "-1" is surely an invalid value.
> IMO, users would rather look for what it actually means than interpret
> it to a value lower than 0.

Yes, you'd have to look that up. With 1000000000 for overflow, you
would not have to do any lookups...

(Plus, if you use -1 for overflow... you need 0 for underflow, but 0
lumen is pretty valid value. Actually I'm thinking if this should
maybe not on the log scale or something).
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/