Patch "net: dsa: bcm_sf2: Do not override speed settings" has been added to the 4.1-stable tree
This is a note to let you know that I've just added the patch titled
net: dsa: bcm_sf2: Do not override speed settings
to the 4.1-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
net-dsa-bcm_sf2-do-not-override-speed-settings.patch
and it can be found in the queue-4.1 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Wed Sep 30 05:18:31 CEST 2015
From: Florian Fainelli <[email protected]>
Date: Mon, 20 Jul 2015 17:49:55 -0700
Subject: net: dsa: bcm_sf2: Do not override speed settings
From: Florian Fainelli <[email protected]>
[ Upstream d2eac98f7d1b950b762a7eca05a9ce0ea1d878d2 in net-next tree,
will be pushed to Linus very soon. ]
The SF2 driver currently overrides speed settings for its port configured using a fixed PHY, this is both unnecessary and incorrect, because we keep feedback to the hardware parameters that we read from the PHY device, which in the case of a fixed PHY cannot possibly change speed.
This is a required change to allow the fixed PHY code to allow registering a PHY with a link configured as DOWN by default and avoid some sort of circular dependency where we require the link_update callback to run to program the hardware, and we then utilize the fixed PHY parameters to program the hardware with the same settings.
--- drivers/net/dsa/bcm_sf2.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-)
drivers/net/dsa/bcm_sf2.c +1 -17
@@ -893,15 +893,11 @@ static void bcm_sf2_sw_fixed_link_update struct fixed_phy_status *status) {struct bcm_sf2_priv *priv =ds_to_priv (ds); -u32 duplex, pause, speed; +u32 duplex, pause;u32 reg; duplex =core_readl (priv,CORE_DUPSTS ); pause =core_readl (priv,CORE_PAUSESTS ); - speed =core_readl (priv,CORE_SPDSTS ); - - speed >>= (port *SPDSTS_SHIFT ); - speed &=SPDSTS_MASK ; status->link =0 ;
@@ -929,18 +925,6 @@ static void bcm_sf2_sw_fixed_link_update reg &= ~LINK_STS ;core_writel (priv, reg,CORE_STS_OVERRIDE_GMIIP_PORT (port)); -switch (speed) { -case SPDSTS_10 : - status->speed =SPEED_10 ; -break ; -case SPDSTS_100 : - status->speed =SPEED_100 ; -break ; -case SPDSTS_1000 : - status->speed =SPEED_1000 ; -break ; - } -if ((pause & (1 << port)) && (pause & (1 << (port +PAUSESTS_TX_PAUSE_SHIFT )))) { status->asym_pause =1 ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.1/net-dsa-bcm_sf2-do-not-override-speed-settings.patch queue-4.1/net-phy-fixed_phy-handle-link-down-case.patch queue-4.1/net-dsa-bcm_sf2-fix-ageing-conditions-and-operation.patch queue-4.1/of_mdio-add-new-dt-property-managed-to-specify-the-phy-management-type.patch queue-4.1/net-dsa-bcm_sf2-fix-64-bits-register-writes.patch