net: memac_phy: add a timeout to MDIO operations
authorIoana Ciornei <ioana.ciornei@nxp.com>
Wed, 9 Dec 2020 11:31:58 +0000 (13:31 +0200)
committerPriyanka Jain <priyanka.jain@nxp.com>
Mon, 8 Feb 2021 08:31:14 +0000 (14:01 +0530)
commit64a0fb4cc35ced6ac83e4177889501782b51891d
treeb4e4207b9f2b7373a35a8b52ba88f748620b54ff
parent46fdf763b8b316d1eec25977e6e7b8051e89e3fd
net: memac_phy: add a timeout to MDIO operations

We have encountered circumstances when a board design does not include
pull-up resistors on the external MDIO buses which are not used. This
leads to the MDIO data line not being pulled-up, thus the MDIO controller
will always see the line as busy.

Without a timeout in the MDIO bus driver, the execution is stuck in an
infinite loop when any access is initiated on that external bus.

Add a timeout in the driver so that we are protected in this
circumstance. This is similar to what is being done in the Linux
xgmac_mdio driver.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Reviewed-by: Madalin Bucur <madalin.bucur@oss.nxp.com>
[Rebased]
Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
drivers/net/fm/memac_phy.c