ath79: ag71xx: Remove ar7240_set_addr and ag71xx_ar7240_start
authorChuanhong Guo <gch981213@gmail.com>
Tue, 17 Jul 2018 09:09:13 +0000 (17:09 +0800)
committerJohn Crispin <john@phrozen.org>
Mon, 30 Jul 2018 08:43:33 +0000 (10:43 +0200)
The builtin switch has it's initial valid mac address(00:00:01:00:00:00).
Since the builtin switch is an independent device, setting mac address of gmac1 to builtin switch isn't a good idea and this makes it impossilbe to split builtin switch apart as an independent platform device.
Remove these functions and apply default VLAN during initialization as a preparation for further driver splitting.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h
target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c
target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c

index b0780a1ba9adef93cdc2e13bef624469d0c90c52..d154bbec9e7a44523e5943e0a5fd63018fb07ae9 100644 (file)
@@ -440,7 +440,6 @@ static inline void ag71xx_debugfs_update_napi_stats(struct ag71xx *ag,
 
 int ag71xx_ar7240_init(struct ag71xx *ag, struct device_node *np);
 void ag71xx_ar7240_cleanup(struct ag71xx *ag);
-void ag71xx_ar7240_start(struct ag71xx *ag);
 
 int ag71xx_mdio_init(struct ag71xx *ag);
 void ag71xx_mdio_cleanup(struct ag71xx *ag);
index 52c0f964cf290c4d52859dd7cb6b48f8c1c86780..741f48e9cfa70786cf23ff351f55a72c36698834 100644 (file)
@@ -753,20 +753,6 @@ static void ar7240sw_setup_port(struct ar7240sw *as, unsigned port, u8 portmask)
        }
 }
 
-static int ar7240_set_addr(struct ar7240sw *as, u8 *addr)
-{
-       struct mii_bus *mii = as->mii_bus;
-       u32 t;
-
-       t = (addr[4] << 8) | addr[5];
-       ar7240sw_reg_write(mii, AR7240_REG_MAC_ADDR0, t);
-
-       t = (addr[0] << 24) | (addr[1] << 16) | (addr[2] << 8) | addr[3];
-       ar7240sw_reg_write(mii, AR7240_REG_MAC_ADDR1, t);
-
-       return 0;
-}
-
 static int
 ar7240_set_vid(struct switch_dev *dev, const struct switch_attr *attr,
                struct switch_val *val)
@@ -1298,19 +1284,6 @@ err_free:
        return NULL;
 }
 
-void ag71xx_ar7240_start(struct ag71xx *ag)
-{
-       struct ar7240sw *as = ag->phy_priv;
-
-       if (!as)
-               return;
-
-       ar7240sw_reset(as);
-
-       ar7240_set_addr(as, ag->dev->dev_addr);
-       ar7240_hw_apply(&as->swdev);
-}
-
 int ag71xx_ar7240_init(struct ag71xx *ag, struct device_node *np)
 {
        struct ar7240sw *as;
@@ -1321,6 +1294,7 @@ int ag71xx_ar7240_init(struct ag71xx *ag, struct device_node *np)
 
        ag->phy_priv = as;
        ar7240sw_reset(as);
+       ar7240_hw_apply(&as->swdev);
 
        rwlock_init(&as->stats_lock);
 
index acc0f089d033be8b7b06cb709800142101bcf6c5..72cfd6cf1516ec3ad6df0c26ca387d164d4efc7d 100644 (file)
@@ -735,7 +735,6 @@ static int ag71xx_open(struct net_device *dev)
        if (ret)
                goto err;
 
-       ag71xx_ar7240_start(ag);
        phy_start(ag->phy_dev);
 
        return 0;