• Jon Hunter's avatar
    gpio/omap: ensure gpio context is initialised · 352a2d5b
    Jon Hunter authored
    Commit a2797bea (gpio/omap: force restore if context loss is not
    detectable) broke gpio support for OMAP when booting with device-tree
    because a restore of the gpio context being performed without ever
    initialising the gpio context. In other words, the context restored was
    bad.
    
    This problem could also occur in the non device-tree case, however, it
    is much less likely because when booting without device-tree we can
    detect context loss via a platform specific API and so context restore
    is performed less often.
    
    Nevertheless we should ensure that the gpio context is initialised
    on the first pm-runtime resume for gpio banks that could lose their
    state regardless of whether we are booting with device-tree or not.
    
    The context loss count was being initialised on the first pm-runtime
    suspend following a resume, by populating the get_count_loss_count()
    function pointer after the first pm-runtime resume. To make the code
    more readable and logical, initialise the context loss count on the
    first pm-runtime resume if the context is not yet valid.
    Reported-by: default avatarTony Lindgren <tony@atomide.com>
    Signed-off-by: default avatarJon Hunter <jon-hunter@ti.com>
    Acked-by: Santosh Shilimkar<santosh.shilimkar@ti.com>
    Reviewed-by: default avatarKevin Hilman <khilman@linaro.org>
    Tested-by: default avatarTony Lindgren <tony@atomide.com>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    352a2d5b
gpio-omap.c 41 KB