From: Rolf Evers-Fischer <rolf.evers.fisc...@aptiv.com>

Previously, ti_pipe3_calibrate() wrote all bits in the
PCIEPHYRX_ANA_PROGRAMMABILITY register, thus overwriting bits,
which should not be modified.
Fix ti_pipe3_calibrate() so that it only modifies LOSD and
INTERFACE bits.

Signed-off-by: Rolf Evers-Fischer <rolf.evers.fisc...@aptiv.com>
---
 drivers/phy/ti/phy-ti-pipe3.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/phy/ti/phy-ti-pipe3.c b/drivers/phy/ti/phy-ti-pipe3.c
index 68ce4a082b9b..693acc167351 100644
--- a/drivers/phy/ti/phy-ti-pipe3.c
+++ b/drivers/phy/ti/phy-ti-pipe3.c
@@ -303,7 +303,7 @@ static void ti_pipe3_calibrate(struct ti_pipe3 *phy)
 
        val = ti_pipe3_readl(phy->phy_rx, PCIEPHYRX_ANA_PROGRAMMABILITY);
        val &= ~(INTERFACE_MASK | LOSD_MASK | MEM_PLLDIV);
-       val = (0x1 << INTERFACE_SHIFT | 0xA << LOSD_SHIFT);
+       val |= (0x1 << INTERFACE_SHIFT | 0xA << LOSD_SHIFT);
        ti_pipe3_writel(phy->phy_rx, PCIEPHYRX_ANA_PROGRAMMABILITY, val);
 
        val = ti_pipe3_readl(phy->phy_rx, PCIEPHYRX_DIGITAL_MODES);
-- 
2.21.0

Reply via email to