diff options
| -rw-r--r-- | drivers/mmc/mmc.c | 6 | ||||
| -rw-r--r-- | drivers/mmc/s5p_mmc.c | 2 | ||||
| -rw-r--r-- | include/mmc.h | 1 | 
3 files changed, 7 insertions, 2 deletions
| diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 4e4e0fb0f..cbd75673b 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -531,6 +531,10 @@ int mmc_send_op_cond(struct mmc *mmc)  				(mmc->voltages &  				(cmd.response[0] & OCR_VOLTAGE_MASK)) |  				(cmd.response[0] & OCR_ACCESS_MODE)); + +		if (mmc->host_caps & MMC_MODE_HC) +			cmd.cmdarg |= OCR_HCS; +  		cmd.flags = 0;  		err = mmc_send_cmd(mmc, &cmd, NULL); @@ -1010,7 +1014,7 @@ int mmc_startup(struct mmc *mmc)  			capacity = ext_csd[212] << 0 | ext_csd[213] << 8 |  				   ext_csd[214] << 16 | ext_csd[215] << 24;  			capacity *= 512; -			if (capacity > 2 * 1024 * 1024 * 1024) +			if ((capacity >> 20) > 2 * 1024)  				mmc->capacity = capacity;  		} diff --git a/drivers/mmc/s5p_mmc.c b/drivers/mmc/s5p_mmc.c index 280738fbf..f1368132a 100644 --- a/drivers/mmc/s5p_mmc.c +++ b/drivers/mmc/s5p_mmc.c @@ -462,7 +462,7 @@ static int s5p_mmc_initialize(int dev_index, int bus_width)  		mmc->host_caps = MMC_MODE_8BIT;  	else  		mmc->host_caps = MMC_MODE_4BIT; -	mmc->host_caps |= MMC_MODE_HS_52MHz | MMC_MODE_HS; +	mmc->host_caps |= MMC_MODE_HS_52MHz | MMC_MODE_HS | MMC_MODE_HC;  	mmc->f_min = 400000;  	mmc->f_max = 52000000; diff --git a/include/mmc.h b/include/mmc.h index 1c8a36071..53aff9b4b 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -45,6 +45,7 @@  #define MMC_MODE_4BIT		0x100  #define MMC_MODE_8BIT		0x200  #define MMC_MODE_SPI		0x400 +#define MMC_MODE_HC		0x800  #define SD_DATA_4BIT	0x00040000 |