diff options
author | Daniel Mack <daniel@zonque.org> | 2021-03-24 14:05:36 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-03-25 16:49:40 -0700 |
commit | de9c7854e6e1589f639c6352112956d08243b659 (patch) | |
tree | 10a55d219430fbc6e19977dc546a1349f672d5e3 /drivers/net/ethernet/xilinx/xilinx_axienet.h | |
parent | net: dsa: only unset VLAN filtering when last port leaves last VLAN-aware bridge (diff) | |
download | wireguard-linux-de9c7854e6e1589f639c6352112956d08243b659.tar.xz wireguard-linux-de9c7854e6e1589f639c6352112956d08243b659.zip |
net: axienet: allow setups without MDIO
In setups with fixed-link settings there is no mdio node in DTS.
axienet_probe() already handles that gracefully but lp->mii_bus is
then NULL.
Fix code that tries to blindly grab the MDIO lock by introducing two helper
functions that make the locking conditional.
Signed-off-by: Daniel Mack <daniel@zonque.org>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/xilinx/xilinx_axienet.h')
-rw-r--r-- | drivers/net/ethernet/xilinx/xilinx_axienet.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet.h b/drivers/net/ethernet/xilinx/xilinx_axienet.h index 1e966a39967e..aca7f82f6791 100644 --- a/drivers/net/ethernet/xilinx/xilinx_axienet.h +++ b/drivers/net/ethernet/xilinx/xilinx_axienet.h @@ -504,6 +504,18 @@ static inline u32 axinet_ior_read_mcr(struct axienet_local *lp) return axienet_ior(lp, XAE_MDIO_MCR_OFFSET); } +static inline void axienet_lock_mii(struct axienet_local *lp) +{ + if (lp->mii_bus) + mutex_lock(&lp->mii_bus->mdio_lock); +} + +static inline void axienet_unlock_mii(struct axienet_local *lp) +{ + if (lp->mii_bus) + mutex_unlock(&lp->mii_bus->mdio_lock); +} + /** * axienet_iow - Memory mapped Axi Ethernet register write * @lp: Pointer to axienet local structure |