Messages in this thread | | | Date | Wed, 3 Jun 2015 15:57:51 +0200 | From | Sebastian Reichel <> | Subject | Re: [PATCH] sbs-battery: add option to always register battery |
| |
Hi Frans,
On Tue, Jun 02, 2015 at 03:14:43PM +0200, Frans Klaver wrote: > Commit a22b41a31e53 ("sbs-battery: Probe should try talking to the > device") introduced a step in probing the SBS battery, that tries to > talk to the device before actually registering it, saying: > > this driver doesn't actually try talking to the device at probe > time, so if it's incorrectly configured in the device tree or > platform data (or if the battery has been removed from the system), > then probe will succeed and every access will sit there and time > out. The end result is a possibly laggy system that thinks it has a > battery but can never read status, which isn't very useful. > > Which is of course reasonable. However, it is also very well possible > for a device to boot up on wall-power and be connected to a battery > later on. The current advice in this situation is to probe the device > from userspace if you expect the battery to come on at some point in the > future. The downside of this approach is that userspace needs to be > aware of the backend of its powersupply, which is inconvenient and going > against the point of hardware abstraction. > > In some of these cases you do want to register a battery, even if none > are attached at the moment. To facilitate this, add a configuration > option to try to talk to the device, defaulting to y, thus keeping the > current behavior. If unset, the battery will always be registered > without checking the sanity of the connection. > > Signed-off-by: Frans Klaver <frans.klaver@xsens.com> > --- > If there's a better place to arrange for this all to happen, or to make this > more common across power supplies, I'm perfectly happy to do that work instead. > For now this seems like the logical step to take, especially since using device > tree was (sensibly) shot down last september [0].
While I still think, that the HW design is bad, I'm basically fine with this change based upon your comments. I think it's better to make this into a module parameter, though, since that moves the decision about this feature from compilation time to module load time. This will make it possible to use a generic kernel on your device. Maybe something like this could be used:
module_param(force_load, bool, 0444); MODULE_PARM_DESC(force_load, "Attempts to load the driver even if the " "battery is not connected");
-- Sebastian [unhandled content-type:application/pgp-signature] | |