Author: imp
Date: Tue Aug 28 14:19:10 2012
New Revision: 239780
URL: http://svn.freebsd.org/changeset/base/239780

Log:
  Clip the upper end to 31MHz for slow clock speeds.  On faster
  machines, we wind up with a 66MHz clock, which is too fast.

Modified:
  head/sys/arm/at91/at91_mci.c

Modified: head/sys/arm/at91/at91_mci.c
==============================================================================
--- head/sys/arm/at91/at91_mci.c        Tue Aug 28 13:35:37 2012        
(r239779)
+++ head/sys/arm/at91/at91_mci.c        Tue Aug 28 14:19:10 2012        
(r239780)
@@ -557,10 +557,10 @@ at91_mci_update_ios(device_t brdev, devi
         * Calculate our closest available clock speed that doesn't exceed the
         * requested speed.
         *
-        * If the master clock is greater than 50MHz and the requested bus
-        * speed is 25mhz and the use_30mhz flag is on, set clkdiv to zero to
-        * get a master_clock / 2 (25-30MHz) MMC/SD clock rather than settle for
-        * the next lower click (12-15MHz). See comments near the top of the
+        * If the master clock is 50MHz-62MHz and the requested bus speed is
+        * 25mhz and the use_30mhz flag is on, set clkdiv to zero to get a
+        * master_clock / 2 (25-31MHz) MMC/SD clock rather than settle for the
+        * next lower click (12.5-15.5MHz). See comments near the top of the
         * file for more info.
         *
         * Whatever we come up with, store it back into ios->clock so that the
@@ -572,7 +572,8 @@ at91_mci_update_ios(device_t brdev, devi
        } else {
                WR4(sc, MCI_CR, MCI_CR_MCIEN|MCI_CR_PWSEN);
                if (sc->use_30mhz && ios->clock == 25000000 &&
-                   at91_master_clock > 50000000)
+                   at91_master_clock > 50000000 &&
+                   at91_master_clock < 62000000)
                        clkdiv = 0;
                else if ((at91_master_clock % (ios->clock * 2)) == 0)
                        clkdiv = ((at91_master_clock / ios->clock) / 2) - 1;
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to