summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/chelsio
diff options
context:
space:
mode:
authorLukas Wunner <lukas@wunner.de>2018-05-09 14:43:43 +0200
committerMarc Kleine-Budde <mkl@pengutronix.de>2018-05-10 18:25:30 +0200
commit32bee8f48fa048a3198109de50e51c092507ff52 (patch)
tree30093cd3843728a93f710d05ae663f8bf7bbea2d /drivers/net/ethernet/chelsio
parent5cec9425b41dcf834c3d48776900d6acb7e96f38 (diff)
downloadlinux-32bee8f48fa048a3198109de50e51c092507ff52.tar.bz2
can: hi311x: Work around TX complete interrupt erratum
When sending packets as fast as possible using "cangen -g 0 -i -x", the HI-3110 occasionally latches the interrupt pin high on completion of a packet, but doesn't set the TXCPLT bit in the INTF register. The INTF register contains 0x00 as if no interrupt has occurred. Even waiting for a few milliseconds after the interrupt doesn't help. Work around this apparent erratum by instead checking the TXMTY bit in the STATF register ("TX FIFO empty"). We know that we've queued up a packet for transmission if priv->tx_len is nonzero. If the TX FIFO is empty, transmission of that packet must have completed. Note that this is congruent with our handling of received packets, which likewise gleans from the STATF register whether a packet is waiting in the RX FIFO, instead of looking at the INTF register. Cc: Mathias Duckeck <m.duckeck@kunbus.de> Cc: Akshay Bhat <akshay.bhat@timesys.com> Cc: Casey Fitzpatrick <casey.fitzpatrick@timesys.com> Cc: stable@vger.kernel.org # v4.12+ Signed-off-by: Lukas Wunner <lukas@wunner.de> Acked-by: Akshay Bhat <akshay.bhat@timesys.com> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'drivers/net/ethernet/chelsio')
0 files changed, 0 insertions, 0 deletions