[lkml]   [2022]   [Dec]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH v3] i2c: designware: Fix unbalanced suspended flag
    On Mon, Dec 19, 2022 at 11:20:19AM +0000, Richard Fitzgerald wrote:
    > Ensure that i2c_mark_adapter_suspended() is always balanced by a call to
    > i2c_mark_adapter_resumed().
    > dw_i2c_plat_resume() must always be called, so that
    > i2c_mark_adapter_resumed() is called. This is not compatible with
    > DPM_FLAG_MAY_SKIP_RESUME, so remove the flag.
    > Since the controller is always resumed on system resume the
    > dw_i2c_plat_complete() callback is redundant and has been removed.

    > The unbalanced suspended flag was introduced by
    > commit c57813b8b288 ("i2c: designware: Lock the adapter while setting the
    > suspended flag")

    Seems like indentation got broken - the commit and hash can be on previous
    line, but it's minor thingy here.

    > Before that commit, the system and runtime PM used the same functions. The
    > DPM_FLAG_MAY_SKIP_RESUME was used to skip the system resume if the driver
    > had been in runtime-suspend. If system resume was skipped, the suspended
    > flag would be cleared by the next runtime resume. The check of the
    > suspended flag was _after_ the call to pm_runtime_get_sync() in
    > i2c_dw_xfer(). So either a system resume or a runtime resume would clear
    > the flag before it was checked.
    > Having introduced the unbalanced suspended flag with that commit, a further
    > commit 80704a84a9f8 ("i2c: designware: Use the
    > i2c_mark_adapter_suspended/resumed() helpers")
    > changed from using a local suspended flag to using the
    > i2c_mark_adapter_suspended/resumed() functions. These use a flag that is
    > checked by I2C core code before issuing the transfer to the bus driver, so
    > there was no opportunity for the bus driver to runtime resume itself before
    > the flag check.

    > Signed-off-by: Richard Fitzgerald <>
    > Fixes: c57813b8b288 ("i2c: designware: Lock the adapter while setting the suspended flag")

    Usually we put other tags, that submitter brought themselves, before SoB.
    But again, it's minor thingy.

    With Best Regards,
    Andy Shevchenko

     \ /
      Last update: 2022-12-19 13:49    [W:6.306 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site