mac80211: fix RTS threshold not being set for mac80211 devices
[openwrt.git] / target / linux / ixp4xx / patches-2.6.30 / 205-npe_driver_separate_phy_functions.patch
index a7ce893..53fa05e 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/arm/ixp4xx_eth.c
 +++ b/drivers/net/arm/ixp4xx_eth.c
 --- a/drivers/net/arm/ixp4xx_eth.c
 +++ b/drivers/net/arm/ixp4xx_eth.c
-@@ -396,6 +396,53 @@ static void ixp4xx_adjust_link(struct ne
+@@ -396,6 +396,50 @@ static void ixp4xx_adjust_link(struct ne
               dev->name, port->speed, port->duplex ? "full" : "half");
  }
  
               dev->name, port->speed, port->duplex ? "full" : "half");
  }
  
@@ -24,9 +24,6 @@
 +
 +      port->phydev->irq = PHY_POLL;
 +
 +
 +      port->phydev->irq = PHY_POLL;
 +
-+      printk(KERN_INFO "%s: MII PHY %i on %s\n", dev->name, plat->phy,
-+             npe_name(port->npe));
-+
 +      return 0;
 +}
 +
 +      return 0;
 +}
 +
@@ -54,7 +51,7 @@
  
  static inline void debug_pkt(struct net_device *dev, const char *func,
                             u8 *data, int len)
  
  static inline void debug_pkt(struct net_device *dev, const char *func,
                             u8 *data, int len)
-@@ -1003,8 +1050,7 @@ static int eth_open(struct net_device *d
+@@ -1003,8 +1047,7 @@ static int eth_open(struct net_device *d
                return err;
        }
  
                return err;
        }
  
@@ -64,7 +61,7 @@
  
        for (i = 0; i < ETH_ALEN; i++)
                __raw_writel(dev->dev_addr[i], &port->regs->hw_addr[i]);
  
        for (i = 0; i < ETH_ALEN; i++)
                __raw_writel(dev->dev_addr[i], &port->regs->hw_addr[i]);
-@@ -1125,7 +1171,7 @@ static int eth_close(struct net_device *
+@@ -1125,7 +1168,7 @@ static int eth_close(struct net_device *
                printk(KERN_CRIT "%s: unable to disable loopback\n",
                       dev->name);
  
                printk(KERN_CRIT "%s: unable to disable loopback\n",
                       dev->name);
  
@@ -73,7 +70,7 @@
  
        if (!ports_open)
                qmgr_disable_irq(TXDONE_QUEUE);
  
        if (!ports_open)
                qmgr_disable_irq(TXDONE_QUEUE);
-@@ -1149,7 +1195,6 @@ static int __devinit eth_init_one(struct
+@@ -1151,7 +1194,6 @@ static int __devinit eth_init_one(struct
        struct net_device *dev;
        struct eth_plat_info *plat = pdev->dev.platform_data;
        u32 regs_phys;
        struct net_device *dev;
        struct eth_plat_info *plat = pdev->dev.platform_data;
        u32 regs_phys;
        int err;
  
        if (!(dev = alloc_etherdev(sizeof(struct port))))
        int err;
  
        if (!(dev = alloc_etherdev(sizeof(struct port))))
-@@ -1212,22 +1257,9 @@ static int __devinit eth_init_one(struct
+@@ -1209,18 +1251,10 @@ static int __devinit eth_init_one(struct
        __raw_writel(DEFAULT_CORE_CNTRL, &port->regs->core_control);
        udelay(50);
  
 -      snprintf(phy_id, BUS_ID_SIZE, PHY_ID_FMT, "0", plat->phy);
 -      port->phydev = phy_connect(dev, phy_id, &ixp4xx_adjust_link, 0,
 -                                 PHY_INTERFACE_MODE_MII);
        __raw_writel(DEFAULT_CORE_CNTRL, &port->regs->core_control);
        udelay(50);
  
 -      snprintf(phy_id, BUS_ID_SIZE, PHY_ID_FMT, "0", plat->phy);
 -      port->phydev = phy_connect(dev, phy_id, &ixp4xx_adjust_link, 0,
 -                                 PHY_INTERFACE_MODE_MII);
--      if (IS_ERR(port->phydev)) {
--              printk(KERN_ERR "%s: Could not attach to PHY\n", dev->name);
--              return PTR_ERR(port->phydev);
--      }
--
+-      if ((err = IS_ERR(port->phydev)))
++      err = ixp4xx_phy_connect(dev);
++      if (err)
+               goto err_free_mem;
 -      /* mask with MAC supported features */
 -      port->phydev->supported &= PHY_BASIC_FEATURES;
 -      port->phydev->advertising = port->phydev->supported;
 -
 -      port->phydev->irq = PHY_POLL;
 -
 -      /* mask with MAC supported features */
 -      port->phydev->supported &= PHY_BASIC_FEATURES;
 -      port->phydev->advertising = port->phydev->supported;
 -
 -      port->phydev->irq = PHY_POLL;
 -
--      printk(KERN_INFO "%s: MII PHY %i on %s\n", dev->name, plat->phy,
--             npe_name(port->npe));
-+      err = ixp4xx_phy_connect(dev);
-+      if (err)
-+              goto err_unreg;
+       if ((err = register_netdev(dev)))
+               goto err_phy_dis;
  
  
+@@ -1230,7 +1264,7 @@ static int __devinit eth_init_one(struct
        return 0;
  
        return 0;
  
-@@ -1245,7 +1277,7 @@ static int __devexit eth_remove_one(stru
-       struct net_device *dev = platform_get_drvdata(pdev);
+ err_phy_dis:
+-      phy_disconnect(port->phydev);
++      ixp4xx_phy_disconnect(dev);
+ err_free_mem:
+       npe_port_tab[NPE_ID(port->id)] = NULL;
+       platform_set_drvdata(pdev, NULL);
+@@ -1248,7 +1282,7 @@ static int __devexit eth_remove_one(stru
        struct port *port = netdev_priv(dev);
  
        struct port *port = netdev_priv(dev);
  
+       unregister_netdev(dev);
 -      phy_disconnect(port->phydev);
 +      ixp4xx_phy_disconnect(dev);
 -      phy_disconnect(port->phydev);
 +      ixp4xx_phy_disconnect(dev);
-       unregister_netdev(dev);
        npe_port_tab[NPE_ID(port->id)] = NULL;
        platform_set_drvdata(pdev, NULL);
        npe_port_tab[NPE_ID(port->id)] = NULL;
        platform_set_drvdata(pdev, NULL);
+       npe_release(port->npe);
This page took 0.027738 seconds and 4 git commands to generate.