linux/drivers/net/phy
Marek Vasut 8b95599c55 net: phy: micrel: Discern KSZ8051 and KSZ8795 PHYs
The KSZ8051 PHY and the KSZ8794/KSZ8795/KSZ8765 switch share exactly the
same PHY ID. Since KSZ8051 is higher in the ksphy_driver[] list of PHYs
in the micrel PHY driver, it is used even with the KSZ87xx switch. This
is wrong, since the KSZ8051 configures registers of the PHY which are
not present on the simplified KSZ87xx switch PHYs and misconfigures
other registers of the KSZ87xx switch PHYs.

Fortunatelly, it is possible to tell apart the KSZ8051 PHY from the
KSZ87xx switch by checking the Basic Status register Bit 0, which is
read-only and indicates presence of the Extended Capability Registers.
The KSZ8051 PHY has those registers while the KSZ87xx switch does not.

This patch implements simple check for the presence of this bit for
both the KSZ8051 PHY and KSZ87xx switch, to let both use the correct
PHY driver instance.

Fixes: 9d162ed69f ("net: phy: micrel: add support for KSZ8795")
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: David S. Miller <davem@davemloft.net>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: George McCollister <george.mccollister@gmail.com>
Cc: Heiner Kallweit <hkallweit1@gmail.com>
Cc: Sean Nyekjaer <sean.nyekjaer@prevas.dk>
Cc: Tristram Ha <Tristram.Ha@microchip.com>
Cc: Woojung Huh <woojung.huh@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-10-17 16:31:51 -07:00
..
adin.c net: phy: adin: implement Energy Detect Powerdown mode via phy-tunable 2019-09-16 22:02:45 +02:00
amd.c net: phy: switch drivers to use dynamic feature detection 2019-04-15 17:19:54 -07:00
aquantia_hwmon.c
aquantia_main.c net: phy: aquantia: add USXGMII support and warn if XGMII mode is set 2019-05-24 13:39:34 -07:00
aquantia.h
at803x.c net: phy: at803x: use operating parameters from PHY-specific status 2019-10-04 18:11:08 -07:00
ax88796b.c net: phy: rename Asix Electronics PHY driver 2019-06-09 13:24:17 -07:00
bcm7xxx.c net: phy: switch drivers to use dynamic feature detection 2019-04-15 17:19:54 -07:00
bcm63xx.c net: phy: switch drivers to use dynamic feature detection 2019-04-15 17:19:54 -07:00
bcm87xx.c net: phy: bcm87xx: improve bcm87xx_config_init and feature detection 2019-05-26 21:56:41 -07:00
bcm-cygnus.c net: phy: switch drivers to use dynamic feature detection 2019-04-15 17:19:54 -07:00
bcm-phy-lib.c
bcm-phy-lib.h
broadcom.c net: phy: broadcom: Add genphy_suspend and genphy_resume for BCM5464 2019-06-09 20:05:19 -07:00
cicada.c net: phy: switch drivers to use dynamic feature detection 2019-04-15 17:19:54 -07:00
cortina.c
davicom.c net: phy: switch drivers to use dynamic feature detection 2019-04-15 17:19:54 -07:00
dp83tc811.c net: phy: remove calls to genphy_config_init 2019-08-17 12:34:50 -07:00
dp83640_reg.h
dp83640.c net: phy: switch drivers to use dynamic feature detection 2019-04-15 17:19:54 -07:00
dp83822.c net: phy: remove calls to genphy_config_init 2019-08-17 12:34:50 -07:00
dp83848.c net: phy: remove calls to genphy_config_init 2019-08-17 12:34:50 -07:00
dp83867.c net: phy: dp83867: Add SGMII mode type switching 2019-09-11 23:37:35 +01:00
et1011c.c net: phy: switch drivers to use dynamic feature detection 2019-04-15 17:19:54 -07:00
fixed_phy.c net: phy: fixed_phy: print gpio error only if gpio node is present 2019-07-30 09:54:45 -07:00
icplus.c net: phy: switch drivers to use dynamic feature detection 2019-04-15 17:19:54 -07:00
intel-xway.c net: phy: switch drivers to use dynamic feature detection 2019-04-15 17:19:54 -07:00
Kconfig drivers: net: Fix Kconfig indentation 2019-09-26 08:56:17 +02:00
lxt.c net: phy: lxt: Add suspend/resume support to LXT971 and LXT973. 2019-05-23 09:19:21 -07:00
Makefile net: phy: adin: add support for Analog Devices PHYs 2019-08-16 11:56:25 -07:00
marvell10g.c net: phy: marvell10g: report if the PHY fails to boot firmware 2019-05-29 14:25:10 -07:00
marvell.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-05-02 22:14:21 -04:00
mdio_bus.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2019-09-18 12:34:53 -07:00
mdio_device.c net: phy: allow for reset line to be tied to a sleepy GPIO controller 2019-10-04 18:07:45 -07:00
mdio-aspeed.c net: phy: Add mdio-aspeed 2019-08-02 17:56:28 -07:00
mdio-bcm-iproc.c phy: mdio-bcm-iproc: use devm_platform_ioremap_resource() to simplify code 2019-08-28 14:51:00 -07:00
mdio-bcm-unimac.c net: phy: mdio-bcm-unimac: remove redundant !timeout check 2019-03-27 14:27:30 -07:00
mdio-bitbang.c
mdio-boardinfo.c
mdio-boardinfo.h
mdio-cavium.c
mdio-cavium.h net: mdio-octeon: Fix Kconfig warnings and build errors 2019-08-06 14:11:08 -07:00
mdio-gpio.c
mdio-hisi-femac.c phy: mdio-hisi-femac: use devm_platform_ioremap_resource() to simplify code 2019-08-28 14:51:00 -07:00
mdio-i2c.c
mdio-i2c.h
mdio-moxart.c phy: mdio-moxart: use devm_platform_ioremap_resource() to simplify code 2019-08-28 14:51:00 -07:00
mdio-mscc-miim.c
mdio-mux-bcm-iproc.c
mdio-mux-gpio.c
mdio-mux-meson-g12a.c phy: mdio-mux-meson-g12a: use devm_platform_ioremap_resource() to simplify code 2019-08-28 14:51:00 -07:00
mdio-mux-mmioreg.c
mdio-mux-multiplexer.c
mdio-mux.c
mdio-octeon.c
mdio-sun4i.c phy: mdio-sun4i: use devm_platform_ioremap_resource() to simplify code 2019-08-28 14:51:00 -07:00
mdio-thunder.c
mdio-xgene.c net: phy: xgene: use devm_platform_ioremap_resource() to simplify code 2019-08-01 13:10:34 -04:00
mdio-xgene.h
meson-gxl.c net: phy: remove calls to genphy_config_init 2019-08-17 12:34:50 -07:00
micrel.c net: phy: micrel: Discern KSZ8051 and KSZ8795 PHYs 2019-10-17 16:31:51 -07:00
microchip_t1.c net: phy: remove calls to genphy_config_init 2019-08-17 12:34:50 -07:00
microchip.c net: phy: remove calls to genphy_config_init 2019-08-17 12:34:50 -07:00
mscc.c net: phy: remove calls to genphy_config_init 2019-08-17 12:34:50 -07:00
national.c net/phy: fix DP83865 10 Mbps HDX loopback disable function 2019-09-21 18:21:52 -07:00
nxp-tja11xx.c net: phy: tja11xx: Switch to HWMON_CHANNEL_INFO() 2019-05-29 22:02:18 -07:00
phy_device.c net: phy: Fix "link partner" information disappear issue 2019-10-16 13:17:01 -07:00
phy_led_triggers.c net: phy: phy_led_triggers: Fix a possible null-pointer dereference in phy_led_trigger_change_speed() 2019-07-31 18:56:11 -04:00
phy-c45.c net: phy: Fix "link partner" information disappear issue 2019-10-16 13:17:01 -07:00
phy-core.c net: phy: extract pause mode 2019-10-04 18:11:08 -07:00
phy.c net: phy: Fix "link partner" information disappear issue 2019-10-16 13:17:01 -07:00
phylink.c phylink: fix kernel-doc warnings 2019-10-09 17:44:41 -07:00
qsemi.c net: phy: switch drivers to use dynamic feature detection 2019-04-15 17:19:54 -07:00
realtek.c net: phy: realtek: support NBase-T MMD EEE registers on RTL8125 2019-08-19 13:04:45 -07:00
rockchip.c net: phy: switch drivers to use dynamic feature detection 2019-04-15 17:19:54 -07:00
sfp-bus.c net: sfp: remove sfp-bus use of netdevs 2019-05-31 12:37:46 -07:00
sfp.c net: phy: sfp: Add labels to hwmon sensors 2019-08-24 17:01:36 -07:00
sfp.h
smsc.c net: phy: switch drivers to use dynamic feature detection 2019-04-15 17:19:54 -07:00
spi_ks8995.c spi: Micrel eth switch: declare missing of table 2019-04-23 10:44:44 -07:00
ste10Xp.c net: phy: switch drivers to use dynamic feature detection 2019-04-15 17:19:54 -07:00
swphy.c net: phy: swphy: emulate register MII_ESTATUS 2019-08-15 11:43:48 -07:00
swphy.h
teranetics.c
uPD60620.c net: phy: switch drivers to use dynamic feature detection 2019-04-15 17:19:54 -07:00
vitesse.c net: phy: remove calls to genphy_config_init 2019-08-17 12:34:50 -07:00
xilinx_gmii2rgmii.c net: phy: gmii2rgmii: Dont use priv field in phy device 2019-09-05 12:32:06 +02:00