diff options
author | Pierre Ossman <drzeus@drzeus.cx> | 2008-07-05 19:10:27 -0400 |
---|---|---|
committer | Pierre Ossman <drzeus@drzeus.cx> | 2008-07-15 08:14:49 -0400 |
commit | 23af60398af2f5033e2f53665538a09f498dbc03 (patch) | |
tree | fc244139d7d6bb1a82b80cc60fae86970e60c8c5 /drivers/mmc/host | |
parent | 97067d5581ec831a75a45a52e417bee0f7943dbf (diff) |
mmc: remove multiwrite capability
Relax requirements on host controllers and only require that they do not
report a transfer count than is larger than the actual one (i.e. a lower
value is okay). This is how many other parts of the kernel behaves so
upper layers should already be prepared to handle that scenario. This
gives us a performance boost on MMC cards.
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Diffstat (limited to 'drivers/mmc/host')
-rw-r--r-- | drivers/mmc/host/at91_mci.c | 2 | ||||
-rw-r--r-- | drivers/mmc/host/atmel-mci.c | 2 | ||||
-rw-r--r-- | drivers/mmc/host/mmc_spi.c | 5 | ||||
-rw-r--r-- | drivers/mmc/host/mmci.c | 1 | ||||
-rw-r--r-- | drivers/mmc/host/omap.c | 2 | ||||
-rw-r--r-- | drivers/mmc/host/tifm_sd.c | 2 | ||||
-rw-r--r-- | drivers/mmc/host/wbsd.c | 2 |
7 files changed, 6 insertions, 10 deletions
diff --git a/drivers/mmc/host/at91_mci.c b/drivers/mmc/host/at91_mci.c index 16df235fcc2e..f15e2064305c 100644 --- a/drivers/mmc/host/at91_mci.c +++ b/drivers/mmc/host/at91_mci.c | |||
@@ -995,7 +995,7 @@ static int __init at91_mci_probe(struct platform_device *pdev) | |||
995 | mmc->f_min = 375000; | 995 | mmc->f_min = 375000; |
996 | mmc->f_max = 25000000; | 996 | mmc->f_max = 25000000; |
997 | mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34; | 997 | mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34; |
998 | mmc->caps = MMC_CAP_MULTIWRITE | MMC_CAP_SDIO_IRQ; | 998 | mmc->caps = MMC_CAP_SDIO_IRQ; |
999 | 999 | ||
1000 | mmc->max_blk_size = 4095; | 1000 | mmc->max_blk_size = 4095; |
1001 | mmc->max_blk_count = mmc->max_req_size; | 1001 | mmc->max_blk_count = mmc->max_req_size; |
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c index 25d5324ab7e2..cce873c5a149 100644 --- a/drivers/mmc/host/atmel-mci.c +++ b/drivers/mmc/host/atmel-mci.c | |||
@@ -849,7 +849,7 @@ static int __init atmci_probe(struct platform_device *pdev) | |||
849 | mmc->f_min = (host->bus_hz + 511) / 512; | 849 | mmc->f_min = (host->bus_hz + 511) / 512; |
850 | mmc->f_max = host->bus_hz / 2; | 850 | mmc->f_max = host->bus_hz / 2; |
851 | mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34; | 851 | mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34; |
852 | mmc->caps |= MMC_CAP_4_BIT_DATA | MMC_CAP_MULTIWRITE; | 852 | mmc->caps |= MMC_CAP_4_BIT_DATA; |
853 | 853 | ||
854 | mmc->max_hw_segs = 64; | 854 | mmc->max_hw_segs = 64; |
855 | mmc->max_phys_segs = 64; | 855 | mmc->max_phys_segs = 64; |
diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c index 4e82f64a96bc..41cc63360e43 100644 --- a/drivers/mmc/host/mmc_spi.c +++ b/drivers/mmc/host/mmc_spi.c | |||
@@ -1252,10 +1252,7 @@ static int mmc_spi_probe(struct spi_device *spi) | |||
1252 | mmc->ops = &mmc_spi_ops; | 1252 | mmc->ops = &mmc_spi_ops; |
1253 | mmc->max_blk_size = MMC_SPI_BLOCKSIZE; | 1253 | mmc->max_blk_size = MMC_SPI_BLOCKSIZE; |
1254 | 1254 | ||
1255 | /* As long as we keep track of the number of successfully | 1255 | mmc->caps = MMC_CAP_SPI; |
1256 | * transmitted blocks, we're good for multiwrite. | ||
1257 | */ | ||
1258 | mmc->caps = MMC_CAP_SPI | MMC_CAP_MULTIWRITE; | ||
1259 | 1256 | ||
1260 | /* SPI doesn't need the lowspeed device identification thing for | 1257 | /* SPI doesn't need the lowspeed device identification thing for |
1261 | * MMC or SD cards, since it never comes up in open drain mode. | 1258 | * MMC or SD cards, since it never comes up in open drain mode. |
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index da5fecad74d9..696cf3647ceb 100644 --- a/drivers/mmc/host/mmci.c +++ b/drivers/mmc/host/mmci.c | |||
@@ -535,7 +535,6 @@ static int mmci_probe(struct amba_device *dev, void *id) | |||
535 | mmc->f_min = (host->mclk + 511) / 512; | 535 | mmc->f_min = (host->mclk + 511) / 512; |
536 | mmc->f_max = min(host->mclk, fmax); | 536 | mmc->f_max = min(host->mclk, fmax); |
537 | mmc->ocr_avail = plat->ocr_mask; | 537 | mmc->ocr_avail = plat->ocr_mask; |
538 | mmc->caps = MMC_CAP_MULTIWRITE; | ||
539 | 538 | ||
540 | /* | 539 | /* |
541 | * We can do SGIO | 540 | * We can do SGIO |
diff --git a/drivers/mmc/host/omap.c b/drivers/mmc/host/omap.c index 549517c35675..dbc26eb6a89e 100644 --- a/drivers/mmc/host/omap.c +++ b/drivers/mmc/host/omap.c | |||
@@ -1317,7 +1317,7 @@ static int __init mmc_omap_new_slot(struct mmc_omap_host *host, int id) | |||
1317 | 1317 | ||
1318 | host->slots[id] = slot; | 1318 | host->slots[id] = slot; |
1319 | 1319 | ||
1320 | mmc->caps = MMC_CAP_MULTIWRITE; | 1320 | mmc->caps = 0; |
1321 | if (host->pdata->conf.wire4) | 1321 | if (host->pdata->conf.wire4) |
1322 | mmc->caps |= MMC_CAP_4_BIT_DATA; | 1322 | mmc->caps |= MMC_CAP_4_BIT_DATA; |
1323 | 1323 | ||
diff --git a/drivers/mmc/host/tifm_sd.c b/drivers/mmc/host/tifm_sd.c index 1c14a186f000..13844843e8de 100644 --- a/drivers/mmc/host/tifm_sd.c +++ b/drivers/mmc/host/tifm_sd.c | |||
@@ -973,7 +973,7 @@ static int tifm_sd_probe(struct tifm_dev *sock) | |||
973 | 973 | ||
974 | mmc->ops = &tifm_sd_ops; | 974 | mmc->ops = &tifm_sd_ops; |
975 | mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34; | 975 | mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34; |
976 | mmc->caps = MMC_CAP_4_BIT_DATA | MMC_CAP_MULTIWRITE; | 976 | mmc->caps = MMC_CAP_4_BIT_DATA; |
977 | mmc->f_min = 20000000 / 60; | 977 | mmc->f_min = 20000000 / 60; |
978 | mmc->f_max = 24000000; | 978 | mmc->f_max = 24000000; |
979 | 979 | ||
diff --git a/drivers/mmc/host/wbsd.c b/drivers/mmc/host/wbsd.c index f7dcd8ec0d7f..adda37952032 100644 --- a/drivers/mmc/host/wbsd.c +++ b/drivers/mmc/host/wbsd.c | |||
@@ -1219,7 +1219,7 @@ static int __devinit wbsd_alloc_mmc(struct device *dev) | |||
1219 | mmc->f_min = 375000; | 1219 | mmc->f_min = 375000; |
1220 | mmc->f_max = 24000000; | 1220 | mmc->f_max = 24000000; |
1221 | mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34; | 1221 | mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34; |
1222 | mmc->caps = MMC_CAP_4_BIT_DATA | MMC_CAP_MULTIWRITE; | 1222 | mmc->caps = MMC_CAP_4_BIT_DATA; |
1223 | 1223 | ||
1224 | spin_lock_init(&host->lock); | 1224 | spin_lock_init(&host->lock); |
1225 | 1225 | ||