• Trent Piepho's avatar
    spi: spi-mxs: Fix race in setup method · 9c97e342
    Trent Piepho authored
    Despite many warnings in the SPI documentation and code, the spi-mxs
    driver sets shared chip registers in the ->setup method.  This method can
    be called when transfers are in progress on other slaves controlled by the
    master.  Setting registers or any other shared state will corrupt those
    transfers.
    
    So fix mxs_spi_setup() to not call mxs_spi_setup_transfer().
    mxs_spi_setup_transfer() is already called for each transfer when they
    are actually performed in mxs_spi_transfer_one(), so the call in
    mxs_spi_setup() isn't necessary to setup anything.
    Signed-off-by: default avatarTrent Piepho <tpiepho@gmail.com>
    Cc: Marek Vasut <marex@denx.de>
    Cc: Fabio Estevam <fabio.estevam@freescale.com>
    Cc: Shawn Guo <shawn.guo@linaro.org>
    Signed-off-by: default avatarMark Brown <broonie@linaro.org>
    9c97e342
spi-mxs.c 14.2 KB