Re: [PATCH] mfd: axp20x: Add a 500ms delay at the end of axp20x_power_off

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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 <hdegoede@xxxxxxxxxx>
> ---
>  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 <linux/err.h>
> +#include <linux/delay.h>
>  #include <linux/interrupt.h>
>  #include <linux/kernel.h>
>  #include <linux/module.h>
> @@ -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
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux