linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: Hans de Goede <hdegoede@redhat.com>
Cc: Sebastian Reichel <sre@kernel.org>, Takashi Iwai <tiwai@suse.de>,
	linux-pm@vger.kernel.org, Liam Breck <kernel@networkimprov.net>
Subject: Re: [PATCH v2 4/7] power: supply: bq24190_charger: Never reset the charger chip
Date: Wed, 22 Mar 2017 08:51:25 -0700	[thread overview]
Message-ID: <20170322155124.GY8575@atomide.com> (raw)
In-Reply-To: <2ab0b7d5-61b0-2a1f-7c45-07d7f3f180b6@redhat.com>

* Hans de Goede <hdegoede@redhat.com> [170322 08:47]:
> Hi,
> 
> On 22-03-17 16:43, Tony Lindgren wrote:
> > * Hans de Goede <hdegoede@redhat.com> [170322 07:57]:
> > > Resetting the charger should never be necessary it should always have
> > > sane values programmed. If it is running with invalid values while we
> > > are not running (system turned off or suspended) there is a big problem
> > > as that may lead to overcharging the battery.
> > 
> > And some systems may only configure it in the bootloader with no
> > configuration passed to the kernel at all.
> 
> Right.
> 
> > > The reset in suspend() is meant to put the charger back into default
> > > mode, but this is not necessary and not a good idea. If the charger has
> > > been programmed with a higher max charge_current / charge_voltage then
> > > putting it back in default-mode will reset those to the safe power-on
> > > defaults, leading to slower charging, or charging to a lower voltage
> > > (and thus not using the full capacity) while suspended which is
> > > undesirable. Reprogramming the max charge_current / charge_voltage
> > > after the reset will not help here as that will put the charger back
> > > in host mode and start the i2c watchdog if the host then does not do
> > > anything for 40s (iow if we're suspended for more then 40s) the watchdog
> > > expires resetting the device to default-mode, including resetting all
> > > the registers to there safe power-on defaults. So the only way to keep
> > > using custom charge settings while suspending is to keep the charger in
> > > its normal running state with the i2c watchdog disabled. This is fine
> > > as the charger will still automatically switch from constant current
> > > to constant voltage and stop charging when the battery is full.
> > > 
> > > Besides never being necessary resetting the charger also causes problems
> > > on systems where the charge voltage limit is set higher then the reset
> > > value, if this is the case and the charger is reset while charging and
> > > the battery voltage is between the 2 voltages, then about half the time
> > > the charger gets confused and claims to be charging (REG08 contains 0x64)
> > > but in reality the charger has decoupled itself from VBUS (Q1 off) and
> > > is drawing 0A from VBUS, leaving the system running from the battery.
> > 
> > We do have cases where Linux kernel is the bootloader though using
> > kexec. And in those cases we may need to reset, so I wonder if the
> > reset should just be optional based on a proper device tree
> > (or platform_data) configuration?
> 
> As described above during my testing I've found that the chip does not
> respond well to reset under certain conditions, so I think that if
> we have settings to apply we should just overwrite the settings with
> our settings, what does doing a reset before overwriting the registers
> buy us? We still need to do the overwrite anyways.

OK with me if that works and reset is buggy.

Regards,

Tony

  reply	other threads:[~2017-03-22 15:51 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-22 14:55 [PATCH 0/7] power: supply: bq24190_charger: Various fixes + extcon support Hans de Goede
2017-03-22 14:55 ` [PATCH v2 1/7] power: supply: bq24190_charger: Use i2c-core irq-mapping code Hans de Goede
2017-03-22 15:37   ` Tony Lindgren
2017-03-23 11:11   ` Sebastian Reichel
2017-03-24 23:44   ` Liam Breck
2017-03-22 14:55 ` [PATCH v2 2/7] power: supply: bq24190_charger: Add support for bq24192i Hans de Goede
2017-03-23 11:12   ` Sebastian Reichel
2017-03-24 23:34   ` Liam Breck
2017-03-22 14:55 ` [PATCH v2 3/7] power: supply: bq24190_charger: Use extcon to determine ilimit, 5v boost Hans de Goede
2017-03-22 15:50   ` Tony Lindgren
2017-03-22 15:57     ` Hans de Goede
2017-03-22 18:50   ` Liam Breck
2017-03-23  8:31     ` Hans de Goede
2017-03-22 14:55 ` [PATCH v2 4/7] power: supply: bq24190_charger: Never reset the charger chip Hans de Goede
2017-03-22 15:43   ` Tony Lindgren
2017-03-22 15:45     ` Hans de Goede
2017-03-22 15:51       ` Tony Lindgren [this message]
2017-03-23  7:16       ` Liam Breck
2017-03-23  8:44         ` Hans de Goede
2017-03-23 11:36           ` Liam Breck
2017-03-23 11:44             ` Hans de Goede
2017-03-23 11:47               ` Liam Breck
2017-03-23 11:48                 ` Hans de Goede
2017-03-23 20:33               ` Liam Breck
2017-03-23 22:01                 ` Hans de Goede
2017-03-24 23:49                   ` Liam Breck
2017-03-22 18:41   ` Liam Breck
2017-03-23  8:16     ` Hans de Goede
2017-03-23 10:59     ` Sebastian Reichel
2017-03-23 11:20   ` Sebastian Reichel
2017-03-22 14:55 ` [PATCH v2 5/7] power: supply: bq24190_charger: Don't spam the logs on charger plug / unplug Hans de Goede
2017-03-22 15:44   ` Tony Lindgren
2017-03-23 11:17   ` Sebastian Reichel
2017-03-23 13:34   ` Liam Breck
2017-03-23 21:31   ` Liam Breck
2017-03-23 22:02     ` Hans de Goede
2017-03-23 22:24       ` Liam Breck
2017-03-24  9:25         ` Sebastian Reichel
2017-03-24 23:31           ` Liam Breck
2017-03-24 10:29   ` [PATCH] power: bq24190_charger: Limit over/under voltage fault logging Liam Breck
2017-03-25 11:17     ` Hans de Goede
2017-03-25 11:24   ` [PATCH v2] " Liam Breck
2017-03-26  8:44     ` Hans de Goede
2017-03-26 10:56       ` Liam Breck
2017-03-26 11:04         ` Hans de Goede
2017-03-29 16:33           ` Tony Lindgren
2017-03-22 14:55 ` [PATCH v2 6/7] power: supply: bq24190_charger: Cleanup error-exit labels in probe() Hans de Goede
2017-03-22 15:45   ` Tony Lindgren
2017-03-22 19:09   ` Liam Breck
2017-03-23  8:37     ` Hans de Goede
2017-03-24 23:58       ` Liam Breck
2017-03-23 11:21   ` Sebastian Reichel
2017-03-23 11:46     ` Hans de Goede
2017-03-22 14:55 ` [PATCH v2 7/7] power: supply: bq24190_charger: Remove battery power_supply device Hans de Goede
2017-03-25  0:19   ` Liam Breck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170322155124.GY8575@atomide.com \
    --to=tony@atomide.com \
    --cc=hdegoede@redhat.com \
    --cc=kernel@networkimprov.net \
    --cc=linux-pm@vger.kernel.org \
    --cc=sre@kernel.org \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).