• Tony Lindgren's avatar
    gpio: twl4030: Fix regression for twl gpio output · 0b2aa8be
    Tony Lindgren authored
    Commit c111feab (gpio: twl4030: Cache the direction and output
    states in private data) improved things in general, but caused a
    regression for setting the GPIO output direction.
    
    The change reorganized twl_direction_out() and twl_set() and swapped
    the function names around in the process. While doing that, a bug got
    introduced that's not obvious while reading the patch as it appears
    as no change to the code.
    
    The bug is we now call function twl4030_set_gpio_dataout() twice in
    both twl_direction_out() and twl_set(). Instead, we should first
    call twl_direction_out() in twl_direction_out() followed by
    twl4030_set_gpio_dataout() in twl_set().
    
    This regression probably has gone unnoticed for a long time as the
    bootloader may have set the GPIO direction properly in many cases.
    This fixes at least the LCD panel not turning on omap3 LDP for
    example.
    
    Cc: linux-gpio@vger.kernel.org
    Cc: stable@vger.kernel.org #v3.9+
    Reviewed-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
    Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    0b2aa8be
gpio-twl4030.c 14.8 KB