linux/drivers/net/phy
Heiner Kallweit 521ee6fbb7 net: phy: don't clear BMCR in genphy_soft_reset
commit d29f5aa0bc upstream.

So far we effectively clear the BMCR register. Some PHY's can deal
with this (e.g. because they reset BMCR to a default as part of a
soft-reset) whilst on others this causes issues because e.g. the
autoneg bit is cleared. Marvell is an example, see also thread [0].
So let's be a little bit more gentle and leave all bits we're not
interested in as-is. This change is needed for PHY drivers to
properly deal with the original patch.

[0] https://marc.info/?t=155264050700001&r=1&w=2

Fixes: 6e2d85ec05 ("net: phy: Stop with excessive soft reset")
Tested-by: Phil Reid <preid@electromag.com.au>
Tested-by: liweihang <liweihang@hisilicon.com>
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[bwh: Backported to 3.16: open-code phy_set_bits()]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2019-08-13 12:38:54 +01:00
..
amd-xgbe-phy.c amd-xgbe: fix unused variable compilation warning in phylib driver 2014-06-11 00:13:16 -07:00
amd.c phylib: Support registering a bunch of drivers 2012-07-09 00:10:56 -07:00
at803x.c net: phy: at803x: fix coccinelle warnings 2014-06-22 17:16:02 -07:00
bcm7xxx.c net: phy: bcm7xxx: Fix shadow mode 2 disabling 2016-03-08 12:15:39 +00:00
bcm63xx.c phy: bcm63xx: report Broadcom BCM63xx PHYs as internal 2013-05-27 22:42:50 -07:00
bcm87xx.c net/phy/bcm87xx: Add MODULE_LICENSE("GPL") to GPL driver 2012-09-22 15:33:46 -04:00
broadcom.c broadcom: fix PHY_ID_BCM5481 entry in the id table 2015-12-18 16:06:23 +00:00
cicada.c net: phy: cicada: fix checkpath errors 2013-12-18 00:49:01 -05:00
davicom.c net: phy: davicom: fix checkpath errors 2013-12-18 00:49:01 -05:00
dp83640.c net: dp83640: Avoid NULL pointer dereference. 2017-09-15 18:30:15 +01:00
dp83640_reg.h ptp: Added a clock driver for the National Semiconductor PHYTER. 2011-05-23 13:10:23 -07:00
et1011c.c net/phy: fix many "defined but unused" warnings 2010-10-05 00:34:29 -07:00
fixed.c net: phy: Manage fixed PHY address space using IDA 2016-08-22 22:38:24 +01:00
icplus.c net: phy: icplus: fix checkpath error 2013-12-18 00:49:02 -05:00
Kconfig amd-xgbe: Configuration and build support 2014-06-05 15:26:51 -07:00
lxt.c net: phy: lxt: fix checkpath errors 2013-12-18 00:49:02 -05:00
Makefile amd-xgbe: Configuration and build support 2014-06-05 15:26:51 -07:00
marvell.c net: phy: marvell: Limit 88m1101 autoneg errata to 88E1145 as well. 2018-03-03 15:52:01 +00:00
mdio-bitbang.c Revert "drivers/net/phy/mdio-bitbang.c: Call mdiobus_unregister before mdiobus_free" 2012-11-14 22:32:15 -05:00
mdio-gpio.c net: mdio-gpio: warn about missing bus alias id 2014-05-09 15:51:19 -04:00
mdio-moxart.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
mdio-mux-gpio.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
mdio-mux-mmioreg.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
mdio-mux.c net: phy: mdio-mux: Check return value of mdiobus_alloc() 2016-01-25 10:43:49 +00:00
mdio-octeon.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
mdio-sun4i.c mdio-sun4i: Fix a memory leak 2018-03-03 15:52:16 +00:00
mdio_bus.c mdio_bus: Fix use-after-free on device_register fails 2019-05-02 21:41:58 +01:00
micrel.c net: phy: Micrel KSZ8061: link failure after cable connect 2019-05-02 21:42:00 +01:00
national.c phy: Use pr_<level> 2012-06-11 16:58:24 -07:00
phy.c net: phy: handle state correctly in phy_stop_machine 2017-07-18 18:40:23 +01:00
phy_device.c net: phy: don't clear BMCR in genphy_soft_reset 2019-08-13 12:38:54 +01:00
qsemi.c net/phy: fix many "defined but unused" warnings 2010-10-05 00:34:29 -07:00
realtek.c net: phy: realtek: register/unregister multiple drivers properly 2014-06-11 15:17:27 -07:00
smsc.c net: phy: smsc: move smsc_phy_config_init reset part in a soft_reset function 2014-10-15 12:05:27 +02:00
spi_ks8995.c net: Micrel KSZ8864RMN 4-port managed switch support 2014-04-03 16:15:29 -04:00
ste10Xp.c phylib: Support registering a bunch of drivers 2012-07-09 00:10:56 -07:00
vitesse.c net/phy: Remove return value for void function 2014-04-23 15:28:05 -04:00