diff options
Diffstat (limited to 'target/linux/at91/patches-5.10/135-net-macb-Correct-usage-of-MACB_CAPS_CLK_HW_CHG-flag.patch')
-rw-r--r-- | target/linux/at91/patches-5.10/135-net-macb-Correct-usage-of-MACB_CAPS_CLK_HW_CHG-flag.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/target/linux/at91/patches-5.10/135-net-macb-Correct-usage-of-MACB_CAPS_CLK_HW_CHG-flag.patch b/target/linux/at91/patches-5.10/135-net-macb-Correct-usage-of-MACB_CAPS_CLK_HW_CHG-flag.patch new file mode 100644 index 0000000000..2ed825de61 --- /dev/null +++ b/target/linux/at91/patches-5.10/135-net-macb-Correct-usage-of-MACB_CAPS_CLK_HW_CHG-flag.patch @@ -0,0 +1,50 @@ +From 982347f757b85ef526afaf243867ddd515475e1b Mon Sep 17 00:00:00 2001 +From: Charles Keepax <ckeepax@opensource.cirrus.com> +Date: Mon, 4 Jan 2021 10:38:02 +0000 +Subject: [PATCH 135/247] net: macb: Correct usage of MACB_CAPS_CLK_HW_CHG flag + +A new flag MACB_CAPS_CLK_HW_CHG was added and all callers of +macb_set_tx_clk were gated on the presence of this flag. + +- if (!clk) ++ if (!bp->tx_clk || !(bp->caps & MACB_CAPS_CLK_HW_CHG)) + +However the flag was not added to anything other than the new +sama7g5_gem, turning that function call into a no op for all other +systems. This breaks the networking on Zynq. + +The commit message adding this states: a new capability so that +macb_set_tx_clock() to not be called for IPs having this +capability + +This strongly implies that present of the flag was intended to skip +the function not absence of the flag. Update the if statement to +this effect, which repairs the existing users. + +Fixes: daafa1d33cc9 ("net: macb: add capability to not set the clock rate") +Suggested-by: Andrew Lunn <andrew@lunn.ch> +Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> +Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com> +Reviewed-by: Andrew Lunn <andrew@lunn.ch> +Link: https://lore.kernel.org/r/20210104103802.13091-1-ckeepax@opensource.cirrus.com +Signed-off-by: Jakub Kicinski <kuba@kernel.org> +--- + drivers/net/ethernet/cadence/macb_main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c +index 4ce302e03735..d5bd640d3fa4 100644 +--- a/drivers/net/ethernet/cadence/macb_main.c ++++ b/drivers/net/ethernet/cadence/macb_main.c +@@ -464,7 +464,7 @@ static void macb_set_tx_clk(struct macb *bp, int speed) + { + long ferr, rate, rate_rounded; + +- if (!bp->tx_clk || !(bp->caps & MACB_CAPS_CLK_HW_CHG)) ++ if (!bp->tx_clk || (bp->caps & MACB_CAPS_CLK_HW_CHG)) + return; + + switch (speed) { +-- +2.32.0 + |