fix MII register ioremap on when high cpmac is available, patch from Wipster
authorFlorian Fainelli <florian@openwrt.org>
Sat, 26 Feb 2011 15:18:02 +0000 (15:18 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Sat, 26 Feb 2011 15:18:02 +0000 (15:18 +0000)
SVN-Revision: 25730

target/linux/ar7/patches-2.6.37/972-cpmac_fixup.patch

index 2f566153438d8a6b76d4b4bb487cf46d526458d5..d21ceb93f7fe875f84e59f501f8871cac89328ee 100644 (file)
  
        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);
        }
  
        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);
++                      }
 +              }
        }