On Mon, 09 Nov 2015, Nicolas Boichat wrote: > cros_ec_cmd_xfer_spi and cros_ec_pkt_xfer_spi generally work like > this: > - Pull CS down (active), wait a bit, then send a command > - Wait for response (multiple requests) > - Wait a while, pull CS up (inactive) > > These operations, individually, lock the SPI bus, but there is > nothing preventing the SPI framework from interleaving messages > intended for other devices as the bus is unlocked in between. > > This is a problem as the EC expects CS to be held low for the > whole duration. > > Solution: Lock the SPI bus during the whole transaction, to make > sure that no other messages can be interleaved. > > Signed-off-by: Nicolas Boichat <drinkcat@xxxxxxxxxxxx> > --- > > v2: Move bus_unlock earlier in the functions. > > Applies on top on linux-next/master (20151109) > > drivers/mfd/cros_ec_spi.c | 41 +++++++++++++++++++++++++++++------------ > 1 file changed, 29 insertions(+), 12 deletions(-) Code changes look okay, but I think you can drop the comments. -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html