phy: lynx-28g: lock PHY while performing CDR lock workaround
authorVladimir Oltean <vladimir.oltean@nxp.com>
Wed, 4 Oct 2023 11:17:07 +0000 (14:17 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 6 Oct 2023 09:59:52 +0000 (10:59 +0100)
commit0ac87fe54a171d18c5fb5345e3ee8d14e1b06f4b
treecee5eaa26675ef756598de79f66f09b8e5e5112b
parentf200bab3756fe81493a1b280180dafa1d9ccdcf7
phy: lynx-28g: lock PHY while performing CDR lock workaround

lynx_28g_cdr_lock_check() runs once per second in a workqueue to reset
the lane receiver if the CDR has not locked onto bit transitions in the
RX stream. But the PHY consumer may do stuff with the PHY simultaneously,
and that isn't okay. Block concurrent generic PHY calls by holding the
PHY mutex from this workqueue.

Fixes: 8f73b37cf3fb ("phy: add support for the Layerscape SerDes 28G")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/phy/freescale/phy-fsl-lynx-28g.c