From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932549AbbFCOLG (ORCPT ); Wed, 3 Jun 2015 10:11:06 -0400 Received: from filter1.ibarracuda.nl ([83.247.7.10]:56143 "EHLO filter1.ibarracuda.nl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755548AbbFCOLB (ORCPT ); Wed, 3 Jun 2015 10:11:01 -0400 X-ASG-Debug-ID: 1433340658-0759e74154f2b80002-xx1T2L X-Barracuda-Envelope-From: Frans.Klaver@xsens.com X-Barracuda-AUTH-User: xsenscom X-Barracuda-Apparent-Source-IP: 87.249.116.215 Date: Wed, 3 Jun 2015 16:10:35 +0200 From: Frans Klaver To: Sebastian Reichel CC: Dmitry Eremin-Solenikov , David Woodhouse , , Subject: Re: [PATCH] sbs-battery: add option to always register battery Message-ID: <20150603141035.GO9880@ci00147.xsens-tech.local> X-ASG-Orig-Subj: Re: [PATCH] sbs-battery: add option to always register battery References: <1433250883-32245-1-git-send-email-frans.klaver@xsens.com> <20150603135750.GB18181@earth> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline In-Reply-To: <20150603135750.GB18181@earth> User-Agent: Mutt/1.5.23 (2014-03-12) X-Originating-IP: [172.16.11.49] X-Barracuda-Connect: rev-215.116.249.87.virtu.nl[87.249.116.215] X-Barracuda-Start-Time: 1433340658 X-Barracuda-Encrypted: AES128-SHA X-Barracuda-URL: https://filter1.ibarracuda.nl:443/cgi-mod/mark.cgi X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=5.0 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.19529 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jun 03, 2015 at 03:57:51PM +0200, Sebastian Reichel wrote: > 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 > > --- > > 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 still interested in learning how we could improve the HW design in your opinion. Would you say we should be using a non-removable battery? > 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"); That makes sense. We can work with that. Thanks, Frans