]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit - include/trace/events/fsi_master_gpio.h
fsi/fsi-master-gpio: Implement CRC error recovery
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 15 May 2018 06:14:43 +0000 (16:14 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 12 Jun 2018 04:05:16 +0000 (14:05 +1000)
commit4e56828a5db19e2de8f8dc464c6df2e7e9ff4e13
treeacc4c44cb01969f50279d7367cf57870cfefad6f
parent0e82e5c1fad79ffe9d316296c7a4c1de539d0c48
fsi/fsi-master-gpio: Implement CRC error recovery

The FSI protocol defines two modes of recovery from CRC errors,
this implements both:

 - If the device returns an ECRC (it detected a CRC error in the
   command), then we simply issue the command again.

 - If the master detects a CRC error in the response, we send
   an E_POLL command which requests a resend of the response
   without actually re-executing the command (which could otherwise
   have unwanted side effects such as dequeuing a FIFO twice).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reviewed-by: Christopher Bostic <cbostic@linux.vnet.ibm.com>
Tested-by: Joel Stanley <joel@jms.id.au>
---

Note: This was actually tested by removing some of my fixes, thus
causing us to hit occasional CRC errors during high LPC activity.
drivers/fsi/fsi-master-gpio.c
include/trace/events/fsi_master_gpio.h