Hi, On Tue, Jul 17, 2012 at 11:43:26AM -0400, Chris Ball wrote: > > > > Chris, please let me know how you want to deal with this and I'll be > > glad to do whatever I can to fix this. Sorry for the trouble. > > No worries, I can rebase it in. Mind sending a patch on top of current > mmc-next for me to squash on top of the previous one? Is the following patch OK? This is based on top of current mmc-next with the previous one in tree. Not sure if this is what you want though. diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c index 312b78d..ec03d15 100644 --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c @@ -557,22 +557,22 @@ static int sd_set_current_limit(struct mmc_card *card, u8 *status) else if (card->host->caps & MMC_CAP_MAX_CURRENT_200_180) current_limit = SD_SET_CURRENT_LIMIT_200; } else if (voltage & (MMC_VDD_29_30 | MMC_VDD_30_31)) { - if (card->host->caps & MMC_CAP_MAX_CURRENT_800_300) + if (card->host->caps2 & MMC_CAP2_MAX_CURRENT_800_300) current_limit = SD_SET_CURRENT_LIMIT_800; - else if (card->host->caps & MMC_CAP_MAX_CURRENT_600_300) + else if (card->host->caps2 & MMC_CAP2_MAX_CURRENT_600_300) current_limit = SD_SET_CURRENT_LIMIT_600; - else if (card->host->caps & MMC_CAP_MAX_CURRENT_400_300) + else if (card->host->caps2 & MMC_CAP2_MAX_CURRENT_400_300) current_limit = SD_SET_CURRENT_LIMIT_400; - else if (card->host->caps & MMC_CAP_MAX_CURRENT_200_300) + else if (card->host->caps2 & MMC_CAP2_MAX_CURRENT_200_300) current_limit = SD_SET_CURRENT_LIMIT_200; } else if (voltage & (MMC_VDD_32_33 | MMC_VDD_33_34)) { - if (card->host->caps & MMC_CAP_MAX_CURRENT_800_330) + if (card->host->caps2 & MMC_CAP2_MAX_CURRENT_800_330) current_limit = SD_SET_CURRENT_LIMIT_800; - else if (card->host->caps & MMC_CAP_MAX_CURRENT_600_330) + else if (card->host->caps2 & MMC_CAP2_MAX_CURRENT_600_330) current_limit = SD_SET_CURRENT_LIMIT_600; - else if (card->host->caps & MMC_CAP_MAX_CURRENT_400_330) + else if (card->host->caps2 & MMC_CAP2_MAX_CURRENT_400_330) current_limit = SD_SET_CURRENT_LIMIT_400; - else if (card->host->caps & MMC_CAP_MAX_CURRENT_200_330) + else if (card->host->caps2 & MMC_CAP2_MAX_CURRENT_200_330) current_limit = SD_SET_CURRENT_LIMIT_200; } diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 455a093..29d4357 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -2920,13 +2920,13 @@ int sdhci_add_host(struct sdhci_host *host) /* Maximum current capabilities of the host at 3.3V */ if (max_current_330 >= 800) - mmc->caps |= MMC_CAP_MAX_CURRENT_800_330; + mmc->caps2 |= MMC_CAP2_MAX_CURRENT_800_330; else if (max_current_330 >= 600) - mmc->caps |= MMC_CAP_MAX_CURRENT_600_330; + mmc->caps2 |= MMC_CAP2_MAX_CURRENT_600_330; else if (max_current_330 >= 400) - mmc->caps |= MMC_CAP_MAX_CURRENT_400_330; + mmc->caps2 |= MMC_CAP2_MAX_CURRENT_400_330; else if (max_current_330 >= 200) - mmc->caps |= MMC_CAP_MAX_CURRENT_200_330; + mmc->caps2 |= MMC_CAP2_MAX_CURRENT_200_330; } if (caps[0] & SDHCI_CAN_VDD_300) { int max_current_300; @@ -2943,13 +2943,13 @@ int sdhci_add_host(struct sdhci_host *host) /* Maximum current capabilities of the host at 3.0V */ if (max_current_300 >= 800) - mmc->caps |= MMC_CAP_MAX_CURRENT_800_300; + mmc->caps2 |= MMC_CAP2_MAX_CURRENT_800_300; else if (max_current_300 >= 600) - mmc->caps |= MMC_CAP_MAX_CURRENT_600_300; + mmc->caps2 |= MMC_CAP2_MAX_CURRENT_600_300; else if (max_current_300 >= 400) - mmc->caps |= MMC_CAP_MAX_CURRENT_400_300; + mmc->caps2 |= MMC_CAP2_MAX_CURRENT_400_300; else if (max_current_300 >= 200) - mmc->caps |= MMC_CAP_MAX_CURRENT_200_300; + mmc->caps2 |= MMC_CAP2_MAX_CURRENT_200_300; } if (caps[0] & SDHCI_CAN_VDD_180) { int max_current_180; diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 79d8921..4a40312 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -261,14 +261,14 @@ struct mmc_host { #define MMC_CAP2_HC_ERASE_SZ (1 << 9) /* High-capacity erase size */ #define MMC_CAP2_CD_ACTIVE_HIGH (1 << 10) /* Card-detect signal active high */ #define MMC_CAP2_RO_ACTIVE_HIGH (1 << 11) /* Write-protect signal active high */ -#define MMC_CAP_MAX_CURRENT_200_300 (1 << 12) /* Host max current limit is 200mA at 3.0V */ -#define MMC_CAP_MAX_CURRENT_400_300 (1 << 13) /* Host max current limit is 400mA at 3.0V */ -#define MMC_CAP_MAX_CURRENT_600_300 (1 << 14) /* Host max current limit is 600mA at 3.0V */ -#define MMC_CAP_MAX_CURRENT_800_300 (1 << 15) /* Host max current limit is 800mA at 3.0V */ -#define MMC_CAP_MAX_CURRENT_200_330 (1 << 16) /* Host max current limit is 200mA at 3.3V */ -#define MMC_CAP_MAX_CURRENT_400_330 (1 << 17) /* Host max current limit is 400mA at 3.3V */ -#define MMC_CAP_MAX_CURRENT_600_330 (1 << 18) /* Host max current limit is 600mA at 3.3V */ -#define MMC_CAP_MAX_CURRENT_800_330 (1 << 19) /* Host max current limit is 800mA at 3.3V */ +#define MMC_CAP2_MAX_CURRENT_200_300 (1 << 12) /* Host max current limit is 200mA at 3.0V */ +#define MMC_CAP2_MAX_CURRENT_400_300 (1 << 13) /* Host max current limit is 400mA at 3.0V */ +#define MMC_CAP2_MAX_CURRENT_600_300 (1 << 14) /* Host max current limit is 600mA at 3.0V */ +#define MMC_CAP2_MAX_CURRENT_800_300 (1 << 15) /* Host max current limit is 800mA at 3.0V */ +#define MMC_CAP2_MAX_CURRENT_200_330 (1 << 16) /* Host max current limit is 200mA at 3.3V */ +#define MMC_CAP2_MAX_CURRENT_400_330 (1 << 17) /* Host max current limit is 400mA at 3.3V */ +#define MMC_CAP2_MAX_CURRENT_600_330 (1 << 18) /* Host max current limit is 600mA at 3.3V */ +#define MMC_CAP2_MAX_CURRENT_800_330 (1 << 19) /* Host max current limit is 800mA at 3.3V */ #define MMC_CAP2_PACKED_RD (1 << 20) /* Allow packed read */ #define MMC_CAP2_PACKED_WR (1 << 21) /* Allow packed write */ #define MMC_CAP2_PACKED_CMD (MMC_CAP2_PACKED_RD | \ Thanks, Aaron -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html