[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-id: <02e701cf9066$7332b280$59981780$@samsung.com>
Date: Wed, 25 Jun 2014 20:13:10 +0900
From: Kukjin Kim <kgene.kim@...sung.com>
To: 'Doug Anderson' <dianders@...omium.org>,
'Wolfram Sang' <wsa@...-dreams.de>
Cc: 'Tomasz Figa' <tomasz.figa@...il.com>,
javier.martinez@...labora.co.uk, ch.naveen@...sung.com,
jg1.han@...sung.com, jdelvare@...e.de, sjg@...gle.com,
paul.gortmaker@...driver.com, standby24x7@...il.com,
sachin.kamat@...aro.org, linux-i2c@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
linux-samsung-soc@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: RE: [PATCH v2] i2c: exynos5: Properly use the "noirq" variants of
suspend/resume
Doug Anderson wrote:
>
> The original code for the exynos i2c controller registered for the
> "noirq" variants. However during review feedback it was moved to
> SIMPLE_DEV_PM_OPS without anyone noticing that it meant we were no
> longer actually "noirq" (despite functions named
> exynos5_i2c_suspend_noirq and exynos5_i2c_resume_noirq).
>
> i2c controllers that might have wakeup sources on them seem to need to
> resume at noirq time so that the individual drivers can actually read
> the i2c bus to handle their wakeup.
>
> NOTE: I took the original review feedback from Wolfram and added
> poweroff, thaw, freeze, restore.
>
Yeah I'm not sure except .suspend_noirq and .resume_noirq but I'm fine if
Wolfram suggested ;-)
> This patch has only been compile-tested since I don't have all the
> patches needed to make my machine using this i2c driver actually
> suspend/resume.
>
> Signed-off-by: Doug Anderson <dianders@...omium.org>
> ---
> Changes in v2:
> - Added missing CONFIG_PM_SLEEP
>
> drivers/i2c/busses/i2c-exynos5.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-exynos5.c b/drivers/i2c/busses/i2c-
> exynos5.c
> index 63d2292..348b1cd 100644
> --- a/drivers/i2c/busses/i2c-exynos5.c
> +++ b/drivers/i2c/busses/i2c-exynos5.c
> @@ -789,8 +789,16 @@ static int exynos5_i2c_resume_noirq(struct device *dev)
> }
> #endif
>
> -static SIMPLE_DEV_PM_OPS(exynos5_i2c_dev_pm_ops, exynos5_i2c_suspend_noirq,
> - exynos5_i2c_resume_noirq);
> +const struct dev_pm_ops exynos5_i2c_dev_pm_ops = {
Maybe static const struct...?
> +#ifdef CONFIG_PM_SLEEP
> + .suspend_noirq = exynos5_i2c_suspend_noirq,
> + .resume_noirq = exynos5_i2c_resume_noirq,
> + .freeze_noirq = exynos5_i2c_suspend_noirq,
> + .thaw_noirq = exynos5_i2c_resume_noirq,
> + .poweroff_noirq = exynos5_i2c_suspend_noirq,
> + .restore_noirq = exynos5_i2c_resume_noirq,
> +#endif
> +};
>
> static struct platform_driver exynos5_i2c_driver = {
> .probe = exynos5_i2c_probe,
> --
> 2.0.0.526.g5318336
Others look good to me,
Acked-by: Kukjin Kim <kgene.kim@...sung.com>
Thanks,
Kukjin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists