Skip to content
  • Nicolas Boichat's avatar
    spi: bitbang: Replace spinlock by mutex · c15f6ed3
    Nicolas Boichat authored
    chipselect (in the case of spi-gpio: spi_gpio_chipselect, which
    calls gpiod_set_raw_value_cansleep) can sleep, so we should not
    hold a spinlock while calling it from spi_bitbang_setup.
    
    This issue was introduced by this commit, which converted spi-gpio
    to cansleep variants:
    d9dda5a1
    
     "spi: spi-gpio: Use 'cansleep' variants to access GPIO"
    
    Replacing the lock variable by a mutex fixes the issue: This is
    safe as all instances where the lock is used are called from
    contexts that can sleep.
    
    Finally, update spi-ppc4xx and and spi-s3c24xx to use mutex
    functions, as they directly hold the lock for similar purpose.
    
    Signed-off-by: default avatarNicolas Boichat <drinkcat@chromium.org>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    c15f6ed3