]> git.baikalelectronics.ru Git - kernel.git/commit
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Oct 2023 21:08:52 +0000 (23:08 +0200)
commite173d9a2e5484b9b4a3370ac632d46962a4ee5db
tree31f3177828096fd4f4b03dbe8c78dd3a1286ac19
parente52c81a9e37075fdc22c685349103710784fa8ce
phy: lynx-28g: lock PHY while performing CDR lock workaround

[ Upstream commit 0ac87fe54a171d18c5fb5345e3ee8d14e1b06f4b ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/phy/freescale/phy-fsl-lynx-28g.c