forked from mirrors/linux
		
	net: dsa: start and stop the PHY state machine
dsa_slave_open() should start the PHY library state machine for its PHY interface, and dsa_slave_close() should stop the PHY library state machine accordingly. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									155c6e1ad4
								
							
						
					
					
						commit
						f7f1de51ed
					
				
					 1 changed files with 6 additions and 0 deletions
				
			
		| 
						 | 
					@ -84,6 +84,9 @@ static int dsa_slave_open(struct net_device *dev)
 | 
				
			||||||
			goto clear_allmulti;
 | 
								goto clear_allmulti;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (p->phy)
 | 
				
			||||||
 | 
							phy_start(p->phy);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
clear_allmulti:
 | 
					clear_allmulti:
 | 
				
			||||||
| 
						 | 
					@ -101,6 +104,9 @@ static int dsa_slave_close(struct net_device *dev)
 | 
				
			||||||
	struct dsa_slave_priv *p = netdev_priv(dev);
 | 
						struct dsa_slave_priv *p = netdev_priv(dev);
 | 
				
			||||||
	struct net_device *master = p->parent->dst->master_netdev;
 | 
						struct net_device *master = p->parent->dst->master_netdev;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (p->phy)
 | 
				
			||||||
 | 
							phy_stop(p->phy);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dev_mc_unsync(master, dev);
 | 
						dev_mc_unsync(master, dev);
 | 
				
			||||||
	dev_uc_unsync(master, dev);
 | 
						dev_uc_unsync(master, dev);
 | 
				
			||||||
	if (dev->flags & IFF_ALLMULTI)
 | 
						if (dev->flags & IFF_ALLMULTI)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue