diff options
author | Pierre Ossman <drzeus@drzeus.cx> | 2006-11-21 17:55:45 +0100 |
---|---|---|
committer | Pierre Ossman <drzeus@drzeus.cx> | 2007-02-04 20:54:10 +0100 |
commit | 55db890a838c7b37256241b1fc53d6344aa79cc0 (patch) | |
tree | 02d5868f69a15eea69aaf517b67bc9cbdffe2ff8 /drivers/mmc/tifm_sd.c | |
parent | fe4a3c7a20f14d86022a8132adbf6ddb98e7197c (diff) | |
download | linux-55db890a838c7b37256241b1fc53d6344aa79cc0.tar.gz linux-55db890a838c7b37256241b1fc53d6344aa79cc0.tar.bz2 linux-55db890a838c7b37256241b1fc53d6344aa79cc0.zip |
mmc: Allow host drivers to specify max block count
Many controllers have an upper limit on the number of blocks that can be
transferred in one request. Allow the host drivers to specify this and make
sure we avoid hitting this limit.
Also change the max_sectors field to avoid confusion. This makes it map
less directly to the block layer limits, but as they didn't apply directly
on MMC cards anyway, this isn't a great loss.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Diffstat (limited to 'drivers/mmc/tifm_sd.c')
-rw-r--r-- | drivers/mmc/tifm_sd.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/mmc/tifm_sd.c b/drivers/mmc/tifm_sd.c index bdfad15371b8..7e607b75f4bc 100644 --- a/drivers/mmc/tifm_sd.c +++ b/drivers/mmc/tifm_sd.c @@ -885,10 +885,13 @@ static int tifm_sd_probe(struct tifm_dev *sock) mmc->f_max = 24000000; mmc->max_hw_segs = 1; mmc->max_phys_segs = 1; - mmc->max_sectors = 127; - //2k maximum hw block length - mmc->max_seg_size = mmc->max_sectors << 11; + // limited by DMA counter - it's safer to stick with + // block counter has 11 bits though + mmc->max_blk_count = 256; + // 2k maximum hw block length mmc->max_blk_size = 2048; + mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count; + mmc->max_seg_size = mmc->max_req_size; sock->signal_irq = tifm_sd_signal_irq; rc = tifm_sd_initialize_host(host); |