mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
| --- a/drivers/net/stmmac/stmmac_main.c	2022-01-14 11:09:38.965900712 +0300
 | |
| +++ b/drivers/net/stmmac/stmmac_main.c	2022-01-14 11:48:05.613133817 +0300
 | |
| @@ -125,6 +125,10 @@
 | |
|  module_param(debug, int, S_IRUGO | S_IWUSR);
 | |
|  MODULE_PARM_DESC(debug, "Message Level (0: no output, 16: all)");
 | |
|  
 | |
| +static int phymode = -1;
 | |
| +module_param(phymode, int, S_IRUGO | S_IWUSR);
 | |
| +MODULE_PARM_DESC(phymode, "PHY interface mode (0=MII,4=RMII,5=RGMII)");
 | |
| +
 | |
|  static int phyaddr = -1;
 | |
|  module_param(phyaddr, int, S_IRUGO);
 | |
|  MODULE_PARM_DESC(phyaddr, "Physical device address");
 | |
| @@ -347,10 +351,21 @@
 | |
|  	else
 | |
|  		netif_carrier_off(priv->dev);
 | |
|  
 | |
| -	/* Always RGMII mode */
 | |
| -	newval |= 0x20;
 | |
| +        switch (priv->phy_interface) {
 | |
| +        case PHY_INTERFACE_MODE_RGMII:
 | |
| +        case PHY_INTERFACE_MODE_RGMII_ID:
 | |
| +        case PHY_INTERFACE_MODE_RGMII_RXID:
 | |
| +        case PHY_INTERFACE_MODE_RGMII_TXID:
 | |
| +          newval |= 0x20;
 | |
| +          break;
 | |
| +        case PHY_INTERFACE_MODE_RMII:
 | |
| +          newval |= 0x80;
 | |
| +          break;
 | |
| +        default:
 | |
| +          break;
 | |
| +        }
 | |
|  
 | |
| -	/* Shift left for GMAC1 */
 | |
| +        /* Shift left for GMAC1 */
 | |
|  	newval <<= shift;
 | |
|  
 | |
|  	newval |= oldval & ~(mask << shift);
 | |
| @@ -2235,6 +2250,9 @@
 | |
|  
 | |
|  	/* Override with kernel parameters if supplied XXX CRS XXX
 | |
|  	 * this needs to have multiple instances */
 | |
| +	if (phymode >= 0)
 | |
| +		plat_dat->interface = phymode;
 | |
| +
 | |
|  	if ((phyaddr >= 0) && (phyaddr <= 31))
 | |
|  		plat_dat->phy_addr = phyaddr;
 | |
|  
 |