diff options
Diffstat (limited to 'target/linux/generic/patches-4.4/070-v4.8-0004-net-ethernet-bgmac-use-phydev-from-struct-net_device.patch')
-rw-r--r-- | target/linux/generic/patches-4.4/070-v4.8-0004-net-ethernet-bgmac-use-phydev-from-struct-net_device.patch | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/target/linux/generic/patches-4.4/070-v4.8-0004-net-ethernet-bgmac-use-phydev-from-struct-net_device.patch b/target/linux/generic/patches-4.4/070-v4.8-0004-net-ethernet-bgmac-use-phydev-from-struct-net_device.patch new file mode 100644 index 0000000000..8c97b09970 --- /dev/null +++ b/target/linux/generic/patches-4.4/070-v4.8-0004-net-ethernet-bgmac-use-phydev-from-struct-net_device.patch @@ -0,0 +1,105 @@ +From b21fcb259313bcf7d4f73ecd5e44948995c8957c Mon Sep 17 00:00:00 2001 +From: Philippe Reynes <tremyfr@gmail.com> +Date: Sun, 19 Jun 2016 22:37:05 +0200 +Subject: [PATCH 1/2] net: ethernet: bgmac: use phydev from struct net_device + +The private structure contain a pointer to phydev, but the structure +net_device already contain such pointer. So we can remove the pointer +phydev in the private structure, and update the driver to use the +one contained in struct net_device. + +Signed-off-by: Philippe Reynes <tremyfr@gmail.com> +Signed-off-by: David S. Miller <davem@davemloft.net> +--- + drivers/net/ethernet/broadcom/bgmac.c | 17 ++++++----------- + drivers/net/ethernet/broadcom/bgmac.h | 1 - + 2 files changed, 6 insertions(+), 12 deletions(-) + +--- a/drivers/net/ethernet/broadcom/bgmac.c ++++ b/drivers/net/ethernet/broadcom/bgmac.c +@@ -1323,7 +1323,7 @@ static int bgmac_open(struct net_device + } + napi_enable(&bgmac->napi); + +- phy_start(bgmac->phy_dev); ++ phy_start(net_dev->phydev); + + netif_carrier_on(net_dev); + return 0; +@@ -1335,7 +1335,7 @@ static int bgmac_stop(struct net_device + + netif_carrier_off(net_dev); + +- phy_stop(bgmac->phy_dev); ++ phy_stop(net_dev->phydev); + + napi_disable(&bgmac->napi); + bgmac_chip_intrs_off(bgmac); +@@ -1373,12 +1373,10 @@ static int bgmac_set_mac_address(struct + + static int bgmac_ioctl(struct net_device *net_dev, struct ifreq *ifr, int cmd) + { +- struct bgmac *bgmac = netdev_priv(net_dev); +- + if (!netif_running(net_dev)) + return -EINVAL; + +- return phy_mii_ioctl(bgmac->phy_dev, ifr, cmd); ++ return phy_mii_ioctl(net_dev->phydev, ifr, cmd); + } + + static const struct net_device_ops bgmac_netdev_ops = { +@@ -1521,7 +1519,7 @@ static int bgmac_get_settings(struct net + { + struct bgmac *bgmac = netdev_priv(net_dev); + +- return phy_ethtool_gset(bgmac->phy_dev, cmd); ++ return phy_ethtool_gset(net_dev->phydev, cmd); + } + + static int bgmac_set_settings(struct net_device *net_dev, +@@ -1529,7 +1527,7 @@ static int bgmac_set_settings(struct net + { + struct bgmac *bgmac = netdev_priv(net_dev); + +- return phy_ethtool_sset(bgmac->phy_dev, cmd); ++ return phy_ethtool_sset(net_dev->phydev, cmd); + } + + static void bgmac_get_drvinfo(struct net_device *net_dev, +@@ -1566,7 +1564,7 @@ static int bgmac_mii_write(struct mii_bu + static void bgmac_adjust_link(struct net_device *net_dev) + { + struct bgmac *bgmac = netdev_priv(net_dev); +- struct phy_device *phy_dev = bgmac->phy_dev; ++ struct phy_device *phy_dev = net_dev->phydev; + bool update = false; + + if (phy_dev->link) { +@@ -1610,8 +1608,6 @@ static int bgmac_fixed_phy_register(stru + return err; + } + +- bgmac->phy_dev = phy_dev; +- + return err; + } + +@@ -1664,7 +1660,6 @@ static int bgmac_mii_register(struct bgm + err = PTR_ERR(phy_dev); + goto err_unregister_bus; + } +- bgmac->phy_dev = phy_dev; + + return err; + +--- a/drivers/net/ethernet/broadcom/bgmac.h ++++ b/drivers/net/ethernet/broadcom/bgmac.h +@@ -441,7 +441,6 @@ struct bgmac { + struct net_device *net_dev; + struct napi_struct napi; + struct mii_bus *mii_bus; +- struct phy_device *phy_dev; + + /* DMA */ + struct bgmac_dma_ring tx_ring[BGMAC_MAX_TX_RINGS]; |