• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7800-V1.0.2.28/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/

Lines Matching refs:ag

18 	struct ag71xx *ag = netdev_priv(dev);
19 struct phy_device *phydev = ag->phy_dev;
23 spin_lock_irqsave(&ag->lock, flags);
26 if (ag->duplex != phydev->duplex
27 || ag->speed != phydev->speed) {
32 if (phydev->link != ag->link)
35 ag->link = phydev->link;
36 ag->duplex = phydev->duplex;
37 ag->speed = phydev->speed;
40 ag71xx_link_adjust(ag);
42 spin_unlock_irqrestore(&ag->lock, flags);
45 void ag71xx_phy_start(struct ag71xx *ag)
47 struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
49 if (ag->phy_dev) {
50 phy_start(ag->phy_dev);
52 ag71xx_ar7240_start(ag);
54 ag->link = 1;
55 ag71xx_link_adjust(ag);
59 void ag71xx_phy_stop(struct ag71xx *ag)
61 struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
64 if (ag->phy_dev)
65 phy_stop(ag->phy_dev);
67 ag71xx_ar7240_stop(ag);
69 spin_lock_irqsave(&ag->lock, flags);
70 if (ag->link) {
71 ag->link = 0;
72 ag71xx_link_adjust(ag);
74 spin_unlock_irqrestore(&ag->lock, flags);
77 static int ag71xx_phy_connect_fixed(struct ag71xx *ag)
79 struct net_device *dev = ag->dev;
80 struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
97 ag->duplex = pdata->duplex;
98 ag->speed = pdata->speed;
103 static int ag71xx_phy_connect_multi(struct ag71xx *ag)
105 struct net_device *dev = ag->dev;
106 struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
115 if (ag->mii_bus->phy_map[phy_addr] == NULL)
120 dev_name(&ag->mii_bus->phy_map[phy_addr]->dev),
121 ag->mii_bus->phy_map[phy_addr]->phy_id);
124 phydev = ag->mii_bus->phy_map[phy_addr];
133 ag->phy_dev = phy_connect(dev, dev_name(&phydev->dev),
137 if (IS_ERR(ag->phy_dev)) {
140 return PTR_ERR(ag->phy_dev);
154 ag->link = 0;
155 ag->speed = 0;
156 ag->duplex = -1;
196 int __devinit ag71xx_phy_connect(struct ag71xx *ag)
198 struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
202 return ag71xx_phy_connect_fixed(ag);
204 ag->mii_bus = dev_to_mii_bus(pdata->mii_bus_dev);
205 if (ag->mii_bus == NULL) {
206 netdev_err(ag->dev, "unable to find MII bus on device '%s'\n",
212 if (ag->mii_bus->reset) {
213 mutex_lock(&ag->mii_bus->mdio_lock);
214 ag->mii_bus->reset(ag->mii_bus);
215 mutex_unlock(&ag->mii_bus->mdio_lock);
219 return ag71xx_ar7240_init(ag);
222 return ag71xx_phy_connect_multi(ag);
224 return ag71xx_phy_connect_fixed(ag);
227 void ag71xx_phy_disconnect(struct ag71xx *ag)
229 struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
232 ag71xx_ar7240_cleanup(ag);
233 else if (ag->phy_dev)
234 phy_disconnect(ag->phy_dev);