Issues with cros_ec and "spi: rockchip: check return value of dmaengine_prep_slave_sg"

Heiko Stuebner
2016-04-01T23:52:19Z

Hi Shawn,

it looks like commit ea9849113343 ("spi: rockchip: check return value of
dmaengine_prep_slave_sg") negatively affects the cros_ec spi backend.

During boot on the most recent mainline kernel I get:

[ 1.025480] cros-ec-spi spi0.0: Chrome EC device registered
[ 1.641636] input: cros_ec as /devices/platform/ff110000.spi/spi_master/spi0/spi0.0/ff110000.spi:ec@0:keyboard-controller/input/input0
[ 2.340214] cros-ec-spi spi0.0: EC failed to respond in time
[ 2.357735] cros-ec-spi spi0.0: packet too long (249 bytes, expected 4)
[ 2.470353] cros-ec-spi spi0.0: EC failed to respond in time
[ 2.508495] cros-ec-spi spi0.0: packet too long (249 bytes, expected 4)
[ 2.620176] cros-ec-spi spi0.0: EC failed to respond in time
[ 2.637345] cros-ec-spi spi0.0: packet too long (249 bytes, expected 4)
[ 2.750245] cros-ec-spi spi0.0: EC failed to respond in time
[ 2.767519] cros-ec-spi spi0.0: packet too long (249 bytes, expected 4)

The cros-ec works ok after boot without further errors [aka keyboard
and everything working correctly] and I haven't been able to figure out
what goes wrong, but was able to bisect the issue down to the commit
mentioned above.

Reverting the patch silences the cros-ec again. I'll try to look into it
further, but maybe you also have an idea what might go wrong.

Heiko