diff options
| author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2026-06-10 18:19:48 +0300 |
|---|---|---|
| committer | Vinod Koul <vkoul@kernel.org> | 2026-06-11 12:39:47 +0530 |
| commit | f64ef1995dd6f902da0bd3bc60c72c825098b652 (patch) | |
| tree | a768c10844f8c25945922084782b280120dfd1a8 /drivers | |
| parent | c6c1d7dfd59b181b96b0909b63e140b0aa61ac59 (diff) | |
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 <vladimir.oltean@nxp.com>
Link: https://patch.msgid.link/20260610151952.2141019-13-vladimir.oltean@nxp.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/phy/freescale/phy-fsl-lynx-core.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/phy/freescale/phy-fsl-lynx-core.h b/drivers/phy/freescale/phy-fsl-lynx-core.h index d82e529fa65a..3d9508dfb2c1 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) \ |
