Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb96e4f7 authored by René van Dorst's avatar René van Dorst Committed by Greg Kroah-Hartman
Browse files

net: ethernet: mtk_eth_soc: Always call mtk_gmac0_rgmii_adjust() for mt7623



[ Upstream commit 19016d93bfc335f0c158c0d9e3b9d06c4dd53d39 ]

Modify mtk_gmac0_rgmii_adjust() so it can always be called.
mtk_gmac0_rgmii_adjust() sets-up the TRGMII clocks.

Signed-off-by: default avatarRené van Dorst <opensource@vdorst.com>
Signed-off-By: default avatarDavid Woodhouse <dwmw2@infradead.org>
Tested-by: default avatarFrank Wunderlich <frank-w@public-files.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent fd601f38
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -171,11 +171,21 @@ static int mt7621_gmac0_rgmii_adjust(struct mtk_eth *eth,
	return 0;
}

static void mtk_gmac0_rgmii_adjust(struct mtk_eth *eth, int speed)
static void mtk_gmac0_rgmii_adjust(struct mtk_eth *eth,
				   phy_interface_t interface, int speed)
{
	u32 val;
	int ret;

	if (interface == PHY_INTERFACE_MODE_TRGMII) {
		mtk_w32(eth, TRGMII_MODE, INTF_MODE);
		val = 500000000;
		ret = clk_set_rate(eth->clks[MTK_CLK_TRGPLL], val);
		if (ret)
			dev_err(eth->dev, "Failed to set trgmii pll: %d\n", ret);
		return;
	}

	val = (speed == SPEED_1000) ?
		INTF_MODE_RGMII_1000 : INTF_MODE_RGMII_10_100;
	mtk_w32(eth, val, INTF_MODE);
@@ -262,9 +272,8 @@ static void mtk_mac_config(struct phylink_config *config, unsigned int mode,
							      state->interface))
					goto err_phy;
			} else {
				if (state->interface !=
				    PHY_INTERFACE_MODE_TRGMII)
				mtk_gmac0_rgmii_adjust(mac->hw,
						       state->interface,
						       state->speed);

				/* mt7623_pad_clk_setup */