[PATCH] i2c: exynos5: Properly use the "noirq" variants of suspend/resume
khilman at linaro.org
Fri Jun 20 14:48:01 PDT 2014
Doug Anderson <dianders at chromium.org> writes:
> On Thu, Jun 19, 2014 at 11:43 AM, Kevin Hilman <khilman at linaro.org> wrote:
>> Doug Anderson <dianders at chromium.org> writes:
>>> 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.
>> I suspect usage of the noirq variants pre-dates the existence of the
>> late/early callbacks in the PM core, but based on the description above,
>> I suspect what you actually want is the late/early callbacks.
> I think it actually really needs noirq. ;)
Yes, it appears it does. Objection withdrawn.
I just wanted to be sure because since the introduction of late/early,
the need for noirq should be pretty rare, but there certainly are needs.
In this case though, the need for it has more to do with the
lack of a way for us to describe non parent-child device dependencies
than whether or not IRQs are enabled or not.
More information about the linux-arm-kernel