diff options
author | John Efstathiades | 2021-08-24 19:56:10 +0100 |
---|---|---|
committer | David S. Miller | 2021-08-25 10:55:43 +0100 |
commit | e1210fe63bf8b080edd0805240e90b81b6b069c1 (patch) | |
tree | d5924ebbd4fe772919dfc1a5bb51f9ffb353ef88 /MAINTAINERS | |
parent | b1f6696daafebea243ed59ed18a8b10cfd33b474 (diff) |
lan78xx: Fix partial packet errors on suspend/resume
The MAC can get out of step with the internal packet FIFOs if the
system goes to sleep when the link is active, especially at high
data rates. This can result in partial frames in the packet FIFOs
that in result in malformed frames being delivered to the host.
This occurs because the driver does not enable/disable the internal
packet FIFOs in step with the corresponding MAC data path. The
following changes fix this problem.
Update code that enables/disables the MAC receiver and transmitter
to the more general Rx and Tx data path, where the data path in each
direction consists of both the MAC function (Tx or Rx) and the
corresponding packet FIFO.
In the receive path the packet FIFO must be enabled before the MAC
receiver but disabled after the MAC receiver.
In the transmit path the opposite is true: the packet FIFO must be
enabled after the MAC transmitter but disabled before the MAC
transmitter.
The packet FIFOs can be flushed safely once the corresponding data
path is stopped.
Signed-off-by: John Efstathiades <john.efstathiades@pebblebay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'MAINTAINERS')
0 files changed, 0 insertions, 0 deletions