diff options
Diffstat (limited to 'drivers/mmc')
| -rw-r--r-- | drivers/mmc/arm_pl180_mmci.c | 2 | ||||
| -rw-r--r-- | drivers/mmc/bfin_sdh.c | 2 | ||||
| -rw-r--r-- | drivers/mmc/davinci_mmc.c | 3 | ||||
| -rw-r--r-- | drivers/mmc/gen_atmel_mci.c | 2 | ||||
| -rw-r--r-- | drivers/mmc/mmc.c | 8 | ||||
| -rw-r--r-- | drivers/mmc/mxcmmc.c | 2 | ||||
| -rw-r--r-- | drivers/mmc/omap_hsmmc.c | 2 | ||||
| -rw-r--r-- | drivers/mmc/s5p_mmc.c | 1 | 
8 files changed, 16 insertions, 6 deletions
| diff --git a/drivers/mmc/arm_pl180_mmci.c b/drivers/mmc/arm_pl180_mmci.c index 245f48294..ed296ee02 100644 --- a/drivers/mmc/arm_pl180_mmci.c +++ b/drivers/mmc/arm_pl180_mmci.c @@ -434,6 +434,8 @@ int arm_pl180_mmci_init(void)  		return -1;  	} +	dev->b_max = 0; +  	mmc_register(dev);  	debug("registered mmc interface number is:%d\n", dev->block_dev.dev); diff --git a/drivers/mmc/bfin_sdh.c b/drivers/mmc/bfin_sdh.c index 31b645937..bc9057fa9 100644 --- a/drivers/mmc/bfin_sdh.c +++ b/drivers/mmc/bfin_sdh.c @@ -257,6 +257,8 @@ int bfin_mmc_init(bd_t *bis)  	mmc->f_min = mmc->f_max >> 9;  	mmc->block_dev.part_type = PART_TYPE_DOS; +	mmc->b_max = 0; +  	mmc_register(mmc);  	return 0; diff --git a/drivers/mmc/davinci_mmc.c b/drivers/mmc/davinci_mmc.c index d5d19ebee..5d918e6ff 100644 --- a/drivers/mmc/davinci_mmc.c +++ b/drivers/mmc/davinci_mmc.c @@ -394,9 +394,8 @@ int davinci_mmc_init(bd_t *bis, struct davinci_mmc *host)  	mmc->voltages = host->voltages;  	mmc->host_caps = host->host_caps; -#ifdef CONFIG_MMC_MBLOCK  	mmc->b_max = DAVINCI_MAX_BLOCKS; -#endif +  	mmc_register(mmc);  	return 0; diff --git a/drivers/mmc/gen_atmel_mci.c b/drivers/mmc/gen_atmel_mci.c index 2984d645c..6577925b8 100644 --- a/drivers/mmc/gen_atmel_mci.c +++ b/drivers/mmc/gen_atmel_mci.c @@ -348,6 +348,8 @@ int atmel_mci_init(void *regs)  	mmc->f_min = get_mci_clk_rate() / (2*256);  	mmc->f_max = get_mci_clk_rate() / (2*1); +	mmc->b_max = 0; +  	mmc_register(mmc);  	return 0; diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index f27b7c79e..f6d31f584 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -243,8 +243,7 @@ mmc_bwrite(int dev_num, ulong start, lbaint_t blkcnt, const void*src)  		return 0;  	do { -		cur = (blocks_todo > CONFIG_SYS_MMC_MAX_BLK_COUNT) ? -		       CONFIG_SYS_MMC_MAX_BLK_COUNT : blocks_todo; +		cur = (blocks_todo > mmc->b_max) ?  mmc->b_max : blocks_todo;  		if(mmc_write_blocks(mmc, start, cur, src) != cur)  			return 0;  		blocks_todo -= cur; @@ -320,8 +319,7 @@ static ulong mmc_bread(int dev_num, ulong start, lbaint_t blkcnt, void *dst)  		return 0;  	do { -		cur = (blocks_todo > CONFIG_SYS_MMC_MAX_BLK_COUNT) ? -		       CONFIG_SYS_MMC_MAX_BLK_COUNT : blocks_todo; +		cur = (blocks_todo > mmc->b_max) ?  mmc->b_max : blocks_todo;  		if(mmc_read_blocks(mmc, dst, start, cur) != cur)  			return 0;  		blocks_todo -= cur; @@ -1029,6 +1027,8 @@ int mmc_register(struct mmc *mmc)  	mmc->block_dev.removable = 1;  	mmc->block_dev.block_read = mmc_bread;  	mmc->block_dev.block_write = mmc_bwrite; +	if (!mmc->b_max) +		mmc->b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT;  	INIT_LIST_HEAD (&mmc->link); diff --git a/drivers/mmc/mxcmmc.c b/drivers/mmc/mxcmmc.c index 59639539f..ab1fc82fb 100644 --- a/drivers/mmc/mxcmmc.c +++ b/drivers/mmc/mxcmmc.c @@ -511,6 +511,8 @@ static int mxcmci_initialize(bd_t *bis)  	mmc->f_min = imx_get_perclk2() >> 7;  	mmc->f_max = imx_get_perclk2() >> 1; +	mmc->b_max = 0; +  	mmc_register(mmc);  	return 0; diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c index 6f2280abf..dcbde8935 100644 --- a/drivers/mmc/omap_hsmmc.c +++ b/drivers/mmc/omap_hsmmc.c @@ -465,6 +465,8 @@ int omap_mmc_init(int dev_index)  	mmc->f_min = 400000;  	mmc->f_max = 52000000; +	mmc->b_max = 0; +  	mmc_register(mmc);  	return 0; diff --git a/drivers/mmc/s5p_mmc.c b/drivers/mmc/s5p_mmc.c index 032380071..668c28bde 100644 --- a/drivers/mmc/s5p_mmc.c +++ b/drivers/mmc/s5p_mmc.c @@ -466,6 +466,7 @@ static int s5p_mmc_initialize(int dev_index, int bus_width)  	mmc_host[dev_index].clock = 0;  	mmc_host[dev_index].reg = s5p_get_base_mmc(dev_index); +	mmc->m_bmax = 0;  	mmc_register(mmc);  	return 0; |