Re: [PATCH 2.6.23-rc2] hwmon: HP Mobile Data Protection System 3DACPI driver (resend)

From: Yan Burman
Date: Wed Aug 29 2007 - 12:12:31 EST


Henrique de Moraes Holschuh wrote:
On Sat, 25 Aug 2007, Yan Burman wrote:
Aha, /sys. Could we simply power off the device when its input device
is not opened?
No, we can't since the sys interface provides the position info and some applications (hdaps apps for example) use this interface.

Power it off when not used for some time. Power on when opened. -EBUSY
while powering on and before it stablizes, if you don't want to get anything
userland stuck in D state. This much work might not make sense if your
accelerometer doesn't waste resources when enabled.

Heck, try to get rid of that position sysfs crap if you can! It was a bad
design idea for hdaps to come up with, there is no reason to let it leak to
other drivers.

Input devices are the way to go for this, a joystick-emulation input device
(for games and toys), plus a input device that outputs accelerometer data in
micro (or mili?) gravities (generic stuff that works with all accelerometers
should use this one) and a raw accelerometer data input device (for higly
specific signal processing apps) when possible.

I don't mind doing it this way, it's just that from what I saw all current applications use the sys interface, so I figured that people
would like to be able to use those.
HDAPS (the one that matters, which ships in tp_smapi) lacks the g-normalized
device, though, but it would be a proper generic accelerometer interface.
The in-tree hdaps driver is basically ignored. So some other accelerometer
This is not the impression that I got - I got quite a few responses from people that were using my driver with the hdaps applications that use sys.
I just saw gentoo have a package for it and they are using the sys version for the most important feature of this device: HD protection. I got hdapsd to work a while
back, so if in-tree hdaps did not change the interface, it should still work with mdps as well.
Debian/Ubuntu also have some stuff for hdaps in their repositories. So it seems to me that people are using the sys interface.
driver gets the dibs on how to implement those interfaces in a proper
generic way. Want to be the one? Please? We in hdaps-devel can certainly
help with ideas and fix out-of-tree hdaps to also implement the interface.

I agree that the sys interface is probably not the best choice, but the accelerometer data should provide not only position, but also generate an event when it detects
that it's falling. From what I understood hdaps does not have that info, but mdps and ams do. I am open to suggestions regarding the proper interface assuming it exposes the free-fall events as well,
since if you can get an interrupt from the device it's a hell lot better than polling it and doing some heuristics to detect that it's falling. This is especially true for mdps, since each read is rather expensive
CPU-wise. I will think about the interface more when I get some more free time.

-
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/