From f64ef1995dd6f902da0bd3bc60c72c825098b652 Mon Sep 17 00:00:00 2001 From: Vladimir Oltean Date: Wed, 10 Jun 2026 18:19:48 +0300 Subject: [PATCH] phy: lynx-28g: optimize read-modify-write operation It is unnecessary to rewrite a register if the masked field already contains the desired value upon reading. The hardware behaviour does not depend upon register writes with identical values. Signed-off-by: Vladimir Oltean Link: https://patch.msgid.link/20260610151952.2141019-13-vladimir.oltean@nxp.com Signed-off-by: Vinod Koul --- drivers/phy/freescale/phy-fsl-lynx-core.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/phy/freescale/phy-fsl-lynx-core.h b/drivers/phy/freescale/phy-fsl-lynx-core.h index d82e529fa65a6..3d9508dfb2c1c 100644 --- a/drivers/phy/freescale/phy-fsl-lynx-core.h +++ b/drivers/phy/freescale/phy-fsl-lynx-core.h @@ -93,7 +93,8 @@ static inline void lynx_rmw(struct lynx_priv *priv, unsigned long off, u32 val, orig = lynx_read(priv, off); tmp = orig & ~mask; tmp |= val; - lynx_write(priv, off, tmp); + if (orig != tmp) + lynx_write(priv, off, tmp); } #define lynx_lane_rmw(lane, reg, val, mask) \ -- 2.47.3