linux_dsm_epyc7002/drivers/net/ethernet/amd
Lendacky, Thomas 5ab3121bee amd-xgbe: Fix mdio access for non-zero ports and clause 45 PHYs
The XGBE hardware has support for performing MDIO operations using an
MDIO command request. The driver mistakenly uses the mdio port address
as the MDIO command request device address instead of the MDIO command
request port address. Additionally, the driver does not properly check
for and create a clause 45 MDIO command.

Check the supplied MDIO register to determine if the request is a clause
45 operation (MII_ADDR_C45). For a clause 45 operation, extract the device
address and register number from the supplied MDIO register and use them
to set the MDIO command request device address and register number fields.
For a clause 22 operation, the MDIO request device address is set to zero
and the MDIO command request register number is set to the supplied MDIO
register. In either case, the supplied MDIO port address is used as the
MDIO command request port address.

Fixes: 732f2ab7af ("amd-xgbe: Add support for MDIO attached PHYs")
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Tested-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-01-17 22:06:54 -08:00
..
xgbe amd-xgbe: Fix mdio access for non-zero ports and clause 45 PHYs 2019-01-17 22:06:54 -08:00
7990.c ethernet: amd: use IS_ENABLED() instead of checking for built-in or module 2016-09-12 20:27:58 -07:00
7990.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
a2065.c drivers/net: amd: Convert timers to use timer_setup() 2017-10-28 19:09:49 +09:00
a2065.h
am79c961a.c net: amd: fix return type of ndo_start_xmit function 2018-09-19 21:17:58 -07:00
am79c961a.h drivers/net: amd: Convert timers to use timer_setup() 2017-10-28 19:09:49 +09:00
amd8111e.c net: amd8111e: remove redundant duplicated if statement 2018-04-25 14:11:27 -04:00
amd8111e.h scripts/spelling.txt: add regsiter -> register spelling mistake 2017-05-08 17:15:13 -07:00
ariadne.c net: amd: constify zorro_device_id 2017-08-22 14:35:36 -07:00
ariadne.h
atarilance.c net: amd: fix return type of ndo_start_xmit function 2018-09-19 21:17:58 -07:00
au1000_eth.c net: ethernet: don't set phylib state CHANGELINK in drivers 2018-12-18 22:07:20 -08:00
au1000_eth.h net: ethernet: amd: au1000_eth: use phydev from struct net_device 2016-07-15 16:41:35 -07:00
declance.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-10-03 21:00:17 -07:00
hplance.c net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
hplance.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kconfig net: prevent ISA drivers from building on PPC32 2018-07-22 11:12:29 -07:00
lance.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mvme147.c net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
ni65.c net: amd: remove redundant continue 2018-09-21 09:00:17 -07:00
ni65.h
nmclan_cs.c net: nmlan_cs: Use net_device_stats from struct net_device 2017-04-07 07:03:33 -07:00
pcnet32.c net: amd: pcnet32: Replace GFP_ATOMIC with GFP_KERNEL in pcnet32_alloc_ring() 2018-07-27 13:45:14 -07:00
sun3lance.c net: amd: fix return type of ndo_start_xmit function 2018-09-19 21:17:58 -07:00
sunlance.c net: Use of_node_name_eq for node name comparisons 2018-12-05 20:51:05 -08:00