aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/tifm_sd.c
diff options
context:
space:
mode:
authorPierre Ossman <drzeus@drzeus.cx>2006-11-21 11:55:45 -0500
committerPierre Ossman <drzeus@drzeus.cx>2007-02-04 14:54:10 -0500
commit55db890a838c7b37256241b1fc53d6344aa79cc0 (patch)
tree02d5868f69a15eea69aaf517b67bc9cbdffe2ff8 /drivers/mmc/tifm_sd.c
parentfe4a3c7a20f14d86022a8132adbf6ddb98e7197c (diff)
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.c9
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)
885 mmc->f_max = 24000000; 885 mmc->f_max = 24000000;
886 mmc->max_hw_segs = 1; 886 mmc->max_hw_segs = 1;
887 mmc->max_phys_segs = 1; 887 mmc->max_phys_segs = 1;
888 mmc->max_sectors = 127; 888 // limited by DMA counter - it's safer to stick with
889 //2k maximum hw block length 889 // block counter has 11 bits though
890 mmc->max_seg_size = mmc->max_sectors << 11; 890 mmc->max_blk_count = 256;
891 // 2k maximum hw block length
891 mmc->max_blk_size = 2048; 892 mmc->max_blk_size = 2048;
893 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
894 mmc->max_seg_size = mmc->max_req_size;
892 sock->signal_irq = tifm_sd_signal_irq; 895 sock->signal_irq = tifm_sd_signal_irq;
893 rc = tifm_sd_initialize_host(host); 896 rc = tifm_sd_initialize_host(host);
894 897