From mboxrd@z Thu Jan 1 00:00:00 1970 From: lee.jones@linaro.org (Lee Jones) Date: Wed, 8 Jun 2016 16:42:06 +0100 Subject: [PATCH] mfd: axp20x: Add a 500ms delay at the end of axp20x_power_off In-Reply-To: <1465134648-27113-1-git-send-email-hdegoede@redhat.com> References: <1465134648-27113-1-git-send-email-hdegoede@redhat.com> Message-ID: <20160608154206.GA14888@dell> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Sun, 05 Jun 2016, Hans de Goede wrote: > The kernel expects the power_off function to not return, and if it does > it panics. At a slight delay after the i2c write which turns off power > through the pmic, to give capacitors etc. some time to drain. > > Without this the kernel lives on long enough after the poweroff to > print the following on the serial console on my Mele A1000G quad: > > [ 248.583588] reboot: Power down > [ 248.600490] Kernel pa > > With the delay the start of printing "Kernel panic" is gone. > > Signed-off-by: Hans de Goede > --- > drivers/mfd/axp20x.c | 4 ++++ > 1 file changed, 4 insertions(+) Applied, thanks. > diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c > index 6364dab..fd80b09 100644 > --- a/drivers/mfd/axp20x.c > +++ b/drivers/mfd/axp20x.c > @@ -17,6 +17,7 @@ > */ > > #include > +#include > #include > #include > #include > @@ -677,6 +678,9 @@ static void axp20x_power_off(void) > > regmap_write(axp20x_pm_power_off->regmap, AXP20X_OFF_CTRL, > AXP20X_OFF); > + > + /* Give capacitors etc. time to drain to avoid kernel panic msg. */ > + msleep(500); > } > > int axp20x_match_device(struct axp20x_dev *axp20x) -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org ? Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog