Author: gonzo
Date: Mon Jan 21 23:24:16 2013
New Revision: 245755
URL: http://svnweb.freebsd.org/changeset/base/245755

Log:
  Fix highest voltage detection
  
  Submitted by: Daisuke Aoyama <aoyama at peach.ne.jp>
  Approved by:  imp@

Modified:
  head/sys/dev/mmc/mmc.c
  head/sys/dev/mmc/mmcreg.h

Modified: head/sys/dev/mmc/mmc.c
==============================================================================
--- head/sys/dev/mmc/mmc.c      Mon Jan 21 23:12:50 2013        (r245754)
+++ head/sys/dev/mmc/mmc.c      Mon Jan 21 23:24:16 2013        (r245755)
@@ -353,7 +353,8 @@ mmc_highest_voltage(uint32_t ocr)
 {
        int i;
 
-       for (i = 30; i >= 0; i--)
+       for (i = MMC_OCR_MAX_VOLTAGE_SHIFT;
+           i >= MMC_OCR_MIN_VOLTAGE_SHIFT; i--)
                if (ocr & (1 << i))
                        return (i);
        return (-1);

Modified: head/sys/dev/mmc/mmcreg.h
==============================================================================
--- head/sys/dev/mmc/mmcreg.h   Mon Jan 21 23:12:50 2013        (r245754)
+++ head/sys/dev/mmc/mmcreg.h   Mon Jan 21 23:24:16 2013        (r245755)
@@ -353,6 +353,7 @@ struct mmc_request {
 #define        MMC_OCR_VOLTAGE 0x3fffffffU     /* Vdd Voltage mask */
 #define        MMC_OCR_LOW_VOLTAGE (1u << 7)   /* Low Voltage Range -- tbd */
 #define        MMC_OCR_200_210 (1U << 8)       /* Vdd voltage 2.00 ~ 2.10 */
+#define        MMC_OCR_MIN_VOLTAGE_SHIFT       8
 #define        MMC_OCR_210_220 (1U << 9)       /* Vdd voltage 2.10 ~ 2.20 */
 #define        MMC_OCR_220_230 (1U << 10)      /* Vdd voltage 2.20 ~ 2.30 */
 #define        MMC_OCR_230_240 (1U << 11)      /* Vdd voltage 2.30 ~ 2.40 */
@@ -368,6 +369,7 @@ struct mmc_request {
 #define        MMC_OCR_330_340 (1U << 21)      /* Vdd voltage 3.30 ~ 3.40 */
 #define        MMC_OCR_340_350 (1U << 22)      /* Vdd voltage 3.40 ~ 3.50 */
 #define        MMC_OCR_350_360 (1U << 23)      /* Vdd voltage 3.50 ~ 3.60 */
+#define        MMC_OCR_MAX_VOLTAGE_SHIFT       23
 #define        MMC_OCR_CCS     (1u << 30)      /* Card Capacity status (SD vs 
SDHC) */
 #define        MMC_OCR_CARD_BUSY (1U << 31)    /* Card Power up status */
 
_______________________________________________
[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