• Neil Armstrong's avatar
    spi: omap2-mcspi: disable other channels CHCONF_FORCE in prepare_message · 468a3208
    Neil Armstrong authored
    Since the "Switch driver to use transfer_one" change, the cs_change
    behavior has changed and a channel chip select can still be
    asserted when changing channel from a previous last transfer in a
    message having the cs_change attribute.
    
    Since there is no sense having multiple chip select being asserted at the
    same time, disable all the remaining forced chip selects in a the
    prepare_message called right before a spi_transfer_one_message call.
    It ignores the current channel configuration in order to keep the
    possibility to leave the chip select asserted between messages.
    
    It fixes this bug on a DM8168 SoC ES2.1 Soc and an OMAP4 ES2.1 SoC.
    It was hanging all the other channels transfers when a CHCONF_FORCE
    is present on the wrong channel.
    
    Fixes: b28cb941 ("spi: omap2-mcspi: Switch driver to use transfer_one")
    Signed-off-by: default avatarNeil Armstrong <narmstrong@baylibre.com>
    Reviewed-by: default avatarMichael Welling <mwelling@ieee.org>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    468a3208
spi-omap2-mcspi.c 39 KB