mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 06:00:43 +00:00
MMC: make b_max unconditional
Make existing field b_max field in struct mmc unconditional and use it instead of CONFIG_SYS_MMC_MAX_BLK_COUNT in mmc_bread and mmc_bwrite. Initialize b_max to CONFIG_SYS_MMC_MAX_BLK_COUNT in mmc_register if it has not been initialized by the hw driver. Initialize b_max to 0 in all callers to mmc_register. Signed-off-by: John Rigby <john.rigby@linaro.org> Signed-off-by: Andy Fleming <afleming@freescale.com>
This commit is contained in:
parent
28df15e023
commit
8feafcc49c
9 changed files with 16 additions and 8 deletions
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -283,9 +283,7 @@ struct mmc {
|
|||
struct mmc_cmd *cmd, struct mmc_data *data);
|
||||
void (*set_ios)(struct mmc *mmc);
|
||||
int (*init)(struct mmc *mmc);
|
||||
#ifdef CONFIG_MMC_MBLOCK
|
||||
uint b_max;
|
||||
#endif
|
||||
};
|
||||
|
||||
int mmc_register(struct mmc *mmc);
|
||||
|
|
Loading…
Reference in a new issue