net: mvpp2x: fix traffic stuck after PHY start error
authorStefan Chulski <stefanc@marvell.com>
Thu, 15 Aug 2019 22:08:41 +0000 (18:08 -0400)
committerJoe Hershberger <joe.hershberger@ni.com>
Mon, 9 Dec 2019 15:47:42 +0000 (09:47 -0600)
commit13b725fd24bd7d6acdd7cb7c3c4238d0b305985e
treebc42b0f1a9ab38c9b364ff8f3d8aa35b45ee9b9a
parent5efb69298be40b1f277157b41e38442ab50eb4f2
net: mvpp2x: fix traffic stuck after PHY start error

Issue:
- Network stuck if autonegotion fails.

Issue root cause:

- When autonegotiation fails during port open procedure, the packet
  processor configuration does not finish and open procedure exits
  with error.
- However, this doesn't prevent u-boot network framework from
  calling send and receive procedures.
- Using transmit and receive functions of misconfigured packet
  processor will cause traffic to get stuck.

Fix:

- Continue packet processor configuration even if autonegotiation
  fails.  Only error message is triggered in this case.
- Exit transmit and receive functions if there is no PHY link
  indication.
- U-boot network framework now calls open procedure again during next
  transmit initiation.

Signed-off-by: Stefan Chulski <stefanc@marvell.com>
Reviewed-by: Igal Liberman <igall@marvell.com>
Tested-by: Igal Liberman <igall@marvell.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
drivers/net/mvpp2.c