On Tue 2019-09-17 14:35:00, Tony Lindgren wrote: > We can get the low voltage interrupt trigger sometimes way too early, > maybe because of CPU load spikes. This causes orderly_poweroff() be > called too easily. > > Let's check the voltage before orderly_poweroff in case it was not > yet a permanent condition. We will be getting more interrupts anyways > if the condition persists. > > Let's also show the measured voltages for low battery and battery > empty warnings since we have them. Well, this is decision that will shorten battery lifetime. There's very little capacity left when battery is down to 3.3V... What kind of "way too early" do you see? > @@ -562,12 +562,15 @@ static irqreturn_t cpcap_battery_irq_thread(int irq, void *data) > switch (d->action) { > case CPCAP_BATTERY_IRQ_ACTION_BATTERY_LOW: > if (latest->current_ua >= 0) > - dev_warn(ddata->dev, "Battery low at 3.3V!\n"); > + dev_warn(ddata->dev, "Battery low at %i!\n", > + latest->voltage); > break; I'd still leave unit ("uV"?) there. Or do /1000, as and display mV, as our > - "Battery empty at 3.1V, powering off\n"); > + "Battery empty at %i, powering off\n", > + latest->voltage); > orderly_poweroff(true); Same here. Plus I see bigger problem: shutdown from mainline seems to leave something powered in the phone (I believe I seen USB charge pump, for example), so the battery will be completely empty next time I attempt to use the phone. (I learned to reboot into stock android and shutdown there). Phone should last days when powered off, but it seems to only last hours. Unfortunately I don't know how to debug that :-(. Best regards, Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html