Refreshed all patches. Removed upstreamed parts. Compile-tested: cns3xxx, imx6, mvebu, layerscape Run-tested: cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
		
			
				
	
	
		
			28 lines
		
	
	
		
			752 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			752 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/include/linux/phy.h
 | |
| +++ b/include/linux/phy.h
 | |
| @@ -495,6 +495,12 @@ struct phy_driver {
 | |
|  	/* Determines the negotiated speed and duplex */
 | |
|  	int (*read_status)(struct phy_device *phydev);
 | |
|  
 | |
| +	/* 
 | |
| +	 * Update the value in phydev->link to reflect the 
 | |
| +	 * current link value
 | |
| +	 */
 | |
| +	int (*update_link)(struct phy_device *phydev);
 | |
| +
 | |
|  	/* Clears any pending interrupts */
 | |
|  	int (*ack_interrupt)(struct phy_device *phydev);
 | |
|  
 | |
| --- a/drivers/net/phy/phy_device.c
 | |
| +++ b/drivers/net/phy/phy_device.c
 | |
| @@ -1312,6 +1312,9 @@ int genphy_update_link(struct phy_device
 | |
|  {
 | |
|  	int status;
 | |
|  
 | |
| +	if (phydev->drv && phydev->drv->update_link)
 | |
| +		return phydev->drv->update_link(phydev);
 | |
| +
 | |
|  	/* Do a fake read */
 | |
|  	status = phy_read(phydev, MII_BMSR);
 | |
|  	if (status < 0)
 |