Re: [PATCH] PM / devfreq: exynos-bus: Suspend all devices on system shutdown
From: Marek Szyprowski
Date: Thu Mar 21 2019 - 05:29:26 EST
Hi Chanwoo,
On 2019-03-21 10:19, Chanwoo Choi wrote:
> On 19. 3. 21. ìí 6:01, Marek Szyprowski wrote:
>> Force all Exynos buses to safe operation points before doing the system
>> reboot operation. There are board on which some aggressive power saving
>> operation points are behind the capabilities of the bootloader to properly
>> reset the hardware and boot the board. This way one can avoid board crash
>> early after reboot.
>>
>> This fixes reboot issue on OdroidU3 board both with eMMC and SD boot.
>>
>> Reported-by: Markus Reichl <m.reichl@xxxxxxxxxxxxx>
>> Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
>> ---
>> This is an alternative to https://patchwork.kernel.org/patch/10781433/
>> limited only to Exynos-bus driver.
>> ---
>> drivers/devfreq/exynos-bus.c | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c
>> index c25658b26598..486cc5b422f1 100644
>> --- a/drivers/devfreq/exynos-bus.c
>> +++ b/drivers/devfreq/exynos-bus.c
>> @@ -514,6 +514,13 @@ static int exynos_bus_probe(struct platform_device *pdev)
>> return ret;
>> }
>>
>> +static void exynos_bus_shutdown(struct platform_device *pdev)
>> +{
>> + struct exynos_bus *bus = dev_get_drvdata(&pdev->dev);
>> +
>> + devfreq_suspend_device(bus->devfreq);
>> +}
>> +
>> #ifdef CONFIG_PM_SLEEP
>> static int exynos_bus_resume(struct device *dev)
>> {
>> @@ -556,6 +563,7 @@ MODULE_DEVICE_TABLE(of, exynos_bus_of_match);
>>
>> static struct platform_driver exynos_bus_platdrv = {
>> .probe = exynos_bus_probe,
>> + .shutdown = exynos_bus_shutdown,
>> .driver = {
>> .name = "exynos-bus",
>> .pm = &exynos_bus_pm,
>>
> Actually, I already agreed the previous patch.
> Also, it looks good to me.
Yes, I know, but MyungJoo had some objections, that's why I prepared
alternative version.
> Acked-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
>
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland