aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-4.4/070-v4.8-0004-net-ethernet-bgmac-use-phydev-from-struct-net_device.patch
diff options
context:
space:
mode:
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.patch105
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];