Browse Source

fix MII register ioremap on when high cpmac is available, patch from Wipster

SVN-Revision: 25730
Florian Fainelli 15 years ago
parent
commit
f198979add
1 changed files with 13 additions and 11 deletions
  1. 13 11
      target/linux/ar7/patches-2.6.37/972-cpmac_fixup.patch

+ 13 - 11
target/linux/ar7/patches-2.6.37/972-cpmac_fixup.patch

@@ -190,7 +190,7 @@
  
  	cpmac_mii->reset(cpmac_mii);
  
-@@ -1269,10 +1256,20 @@ int __devinit cpmac_init(void)
+@@ -1269,10 +1256,22 @@ int __devinit cpmac_init(void)
  			msleep(10);
  	}
  
@@ -199,17 +199,19 @@
  	if (mask & (mask - 1)) {
 -		external_switch = 1;
 -		mask = 0;
-+		if (ar7_is_titan()) {
-+			ar7_device_disable(AR7_RESET_BIT_EPHY);
-+			ar7_device_disable(TITAN_RESET_BIT_EPHY1);
-+		} else
-+			ar7_device_disable(AR7_RESET_BIT_EPHY);
++		if (!ar7_has_high_cpmac()) {
++			if (ar7_is_titan()) {
++				ar7_device_disable(AR7_RESET_BIT_EPHY);
++				ar7_device_disable(TITAN_RESET_BIT_EPHY1);
++			} else
++				ar7_device_disable(AR7_RESET_BIT_EPHY);
 +
-+		//Titan remap might be different
-+		mii_reg = ioremap(AR7_REGS_MII, 4);
-+		if (mii_reg) {
-+			writel(readl(mii_reg) | 1, mii_reg);
-+			iounmap(mii_reg);
++			//Titan remap might be different
++			mii_reg = ioremap(AR7_REGS_MII, 4);
++			if (mii_reg) {
++				writel(readl(mii_reg) | 1, mii_reg);
++				iounmap(mii_reg);
++			}
 +		}
  	}