aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/sdhci.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/sdhci.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/sdhci.c')
-rw-r--r--drivers/mmc/sdhci.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
index 155aafe69bf4..99f1db92295b 100644
--- a/drivers/mmc/sdhci.c
+++ b/drivers/mmc/sdhci.c
@@ -1333,15 +1333,15 @@ static int __devinit sdhci_probe_slot(struct pci_dev *pdev, int slot)
1333 1333
1334 /* 1334 /*
1335 * Maximum number of sectors in one transfer. Limited by DMA boundary 1335 * Maximum number of sectors in one transfer. Limited by DMA boundary
1336 * size (512KiB), which means (512 KiB/512=) 1024 entries. 1336 * size (512KiB).
1337 */ 1337 */
1338 mmc->max_sectors = 1024; 1338 mmc->max_req_size = 524288;
1339 1339
1340 /* 1340 /*
1341 * Maximum segment size. Could be one segment with the maximum number 1341 * Maximum segment size. Could be one segment with the maximum number
1342 * of sectors. 1342 * of bytes.
1343 */ 1343 */
1344 mmc->max_seg_size = mmc->max_sectors * 512; 1344 mmc->max_seg_size = mmc->max_req_size;
1345 1345
1346 /* 1346 /*
1347 * Maximum block size. This varies from controller to controller and 1347 * Maximum block size. This varies from controller to controller and
@@ -1357,6 +1357,11 @@ static int __devinit sdhci_probe_slot(struct pci_dev *pdev, int slot)
1357 mmc->max_blk_size = 512 << mmc->max_blk_size; 1357 mmc->max_blk_size = 512 << mmc->max_blk_size;
1358 1358
1359 /* 1359 /*
1360 * Maximum block count.
1361 */
1362 mmc->max_blk_count = 65535;
1363
1364 /*
1360 * Init tasklets. 1365 * Init tasklets.
1361 */ 1366 */
1362 tasklet_init(&host->card_tasklet, 1367 tasklet_init(&host->card_tasklet,