• Robert Jarzmik's avatar
    gpio: pxa: fix legacy non pinctrl aware builds · 378219c7
    Robert Jarzmik authored
    commit c4e5ffb6 upstream.
    
    In legacy pxa builds, ie. non device-tree and platform-data only builds,
    pinctrl is not yet available. As a consequence, the pinctrl gpio
    direction change function is a stub, returning always success.
    
    In the current state, the gpio driver direction function believes the
    pinctrl direction change was successful, and exits without actually
    changing the gpio direction.
    
    This patch changes the logic :
     - if the pinctrl direction function fails, gpio direction will report
       that failure
     - if the pinctrl direction function succeeds, gpio direction is changed
       by the gpio driver anyway.
       This is sub optimal in the pinctrl aware case, as the gpio direction
       will be changed twice: once by pinctrl function and another time by
       the gpio direction function.
    
    Yet it should be acceptable in this form, as this is functional for all
    pxa platforms (device-tree and platform-data), and moreover changing a
    gpio direction is very very seldom, usually in machine initialization,
    seldom in drivers probe, and an exception for ac97 reset bug.
    
    Fixes: a770d946 ("gpio: pxa: add pin control gpio direction and request")
    Reported-by: default avatarGuenter Roeck <guenter@roeck-us.net>
    Tested-by: default avatarGuenter Roeck <guenter@roeck-us.net>
    Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    378219c7
gpio-pxa.c 20.2 KB