aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin K. Petersen <martin.petersen@oracle.com>2010-09-10 01:33:59 -0400
committerChris Ball <cjb@laptop.org>2010-10-23 09:11:11 -0400
commita36274e0184193e393fb82957925c3981a6b0477 (patch)
treee937d3932603f2c574e54a28b5cb1cf07029f9f1
parent7a5ea56abc493fd43fb8d5b2f55d18396ec048f1 (diff)
mmc: Remove distinction between hw and phys segments
We have deprecated the distinction between hardware and physical segments in the block layer. Consolidate the two limits into one in drivers/mmc/. Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Chris Ball <cjb@laptop.org>
-rw-r--r--drivers/mmc/card/queue.c8
-rw-r--r--drivers/mmc/core/host.c3
-rw-r--r--drivers/mmc/host/at91_mci.c3
-rw-r--r--drivers/mmc/host/atmel-mci.c3
-rw-r--r--drivers/mmc/host/au1xmmc.c2
-rw-r--r--drivers/mmc/host/bfin_sdh.c2
-rw-r--r--drivers/mmc/host/davinci_mmc.c8
-rw-r--r--drivers/mmc/host/imxmmc.c3
-rw-r--r--drivers/mmc/host/jz4740_mmc.c3
-rw-r--r--drivers/mmc/host/mmc_spi.c3
-rw-r--r--drivers/mmc/host/mmci.c3
-rw-r--r--drivers/mmc/host/msm_sdcc.c3
-rw-r--r--drivers/mmc/host/mvsdio.c3
-rw-r--r--drivers/mmc/host/mxcmmc.c3
-rw-r--r--drivers/mmc/host/omap.c3
-rw-r--r--drivers/mmc/host/omap_hsmmc.c3
-rw-r--r--drivers/mmc/host/pxamci.c2
-rw-r--r--drivers/mmc/host/s3cmci.c3
-rw-r--r--drivers/mmc/host/sdhci.c7
-rw-r--r--drivers/mmc/host/sh_mmcif.c3
-rw-r--r--drivers/mmc/host/tifm_sd.c3
-rw-r--r--drivers/mmc/host/via-sdmmc.c3
-rw-r--r--drivers/mmc/host/wbsd.c3
-rw-r--r--include/linux/mmc/host.h3
24 files changed, 31 insertions, 52 deletions
diff --git a/drivers/mmc/card/queue.c b/drivers/mmc/card/queue.c
index 9c0b42bfe089..7c3392e50722 100644
--- a/drivers/mmc/card/queue.c
+++ b/drivers/mmc/card/queue.c
@@ -146,7 +146,7 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, spinlock_t *lock
146 } 146 }
147 147
148#ifdef CONFIG_MMC_BLOCK_BOUNCE 148#ifdef CONFIG_MMC_BLOCK_BOUNCE
149 if (host->max_hw_segs == 1) { 149 if (host->max_segs == 1) {
150 unsigned int bouncesz; 150 unsigned int bouncesz;
151 151
152 bouncesz = MMC_QUEUE_BOUNCESZ; 152 bouncesz = MMC_QUEUE_BOUNCESZ;
@@ -196,16 +196,16 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, spinlock_t *lock
196 blk_queue_bounce_limit(mq->queue, limit); 196 blk_queue_bounce_limit(mq->queue, limit);
197 blk_queue_max_hw_sectors(mq->queue, 197 blk_queue_max_hw_sectors(mq->queue,
198 min(host->max_blk_count, host->max_req_size / 512)); 198 min(host->max_blk_count, host->max_req_size / 512));
199 blk_queue_max_segments(mq->queue, host->max_hw_segs); 199 blk_queue_max_segments(mq->queue, host->max_segs);
200 blk_queue_max_segment_size(mq->queue, host->max_seg_size); 200 blk_queue_max_segment_size(mq->queue, host->max_seg_size);
201 201
202 mq->sg = kmalloc(sizeof(struct scatterlist) * 202 mq->sg = kmalloc(sizeof(struct scatterlist) *
203 host->max_phys_segs, GFP_KERNEL); 203 host->max_segs, GFP_KERNEL);
204 if (!mq->sg) { 204 if (!mq->sg) {
205 ret = -ENOMEM; 205 ret = -ENOMEM;
206 goto cleanup_queue; 206 goto cleanup_queue;
207 } 207 }
208 sg_init_table(mq->sg, host->max_phys_segs); 208 sg_init_table(mq->sg, host->max_segs);
209 } 209 }
210 210
211 init_MUTEX(&mq->thread_sem); 211 init_MUTEX(&mq->thread_sem);
diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c
index d80cfdc8edd2..10b8af27e03a 100644
--- a/drivers/mmc/core/host.c
+++ b/drivers/mmc/core/host.c
@@ -94,8 +94,7 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev)
94 * By default, hosts do not support SGIO or large requests. 94 * By default, hosts do not support SGIO or large requests.
95 * They have to set these according to their abilities. 95 * They have to set these according to their abilities.
96 */ 96 */
97 host->max_hw_segs = 1; 97 host->max_segs = 1;
98 host->max_phys_segs = 1;
99 host->max_seg_size = PAGE_CACHE_SIZE; 98 host->max_seg_size = PAGE_CACHE_SIZE;
100 99
101 host->max_req_size = PAGE_CACHE_SIZE; 100 host->max_req_size = PAGE_CACHE_SIZE;
diff --git a/drivers/mmc/host/at91_mci.c b/drivers/mmc/host/at91_mci.c
index 339e5913e5cc..591ab540b407 100644
--- a/drivers/mmc/host/at91_mci.c
+++ b/drivers/mmc/host/at91_mci.c
@@ -947,8 +947,7 @@ static int __init at91_mci_probe(struct platform_device *pdev)
947 mmc->max_blk_size = MCI_MAXBLKSIZE; 947 mmc->max_blk_size = MCI_MAXBLKSIZE;
948 mmc->max_blk_count = MCI_BLKATONCE; 948 mmc->max_blk_count = MCI_BLKATONCE;
949 mmc->max_req_size = MCI_BUFSIZE; 949 mmc->max_req_size = MCI_BUFSIZE;
950 mmc->max_phys_segs = MCI_BLKATONCE; 950 mmc->max_segs = MCI_BLKATONCE;
951 mmc->max_hw_segs = MCI_BLKATONCE;
952 mmc->max_seg_size = MCI_BUFSIZE; 951 mmc->max_seg_size = MCI_BUFSIZE;
953 952
954 host = mmc_priv(mmc); 953 host = mmc_priv(mmc);
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index 1d4e5464ea2f..301351a5d838 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -1618,8 +1618,7 @@ static int __init atmci_init_slot(struct atmel_mci *host,
1618 if (slot_data->bus_width >= 4) 1618 if (slot_data->bus_width >= 4)
1619 mmc->caps |= MMC_CAP_4_BIT_DATA; 1619 mmc->caps |= MMC_CAP_4_BIT_DATA;
1620 1620
1621 mmc->max_hw_segs = 64; 1621 mmc->max_segs = 64;
1622 mmc->max_phys_segs = 64;
1623 mmc->max_req_size = 32768 * 512; 1622 mmc->max_req_size = 32768 * 512;
1624 mmc->max_blk_size = 32768; 1623 mmc->max_blk_size = 32768;
1625 mmc->max_blk_count = 512; 1624 mmc->max_blk_count = 512;
diff --git a/drivers/mmc/host/au1xmmc.c b/drivers/mmc/host/au1xmmc.c
index e14b866b270f..41e5a60493ad 100644
--- a/drivers/mmc/host/au1xmmc.c
+++ b/drivers/mmc/host/au1xmmc.c
@@ -998,7 +998,7 @@ static int __devinit au1xmmc_probe(struct platform_device *pdev)
998 mmc->f_max = 24000000; 998 mmc->f_max = 24000000;
999 999
1000 mmc->max_seg_size = AU1XMMC_DESCRIPTOR_SIZE; 1000 mmc->max_seg_size = AU1XMMC_DESCRIPTOR_SIZE;
1001 mmc->max_phys_segs = AU1XMMC_DESCRIPTOR_COUNT; 1001 mmc->max_segs = AU1XMMC_DESCRIPTOR_COUNT;
1002 1002
1003 mmc->max_blk_size = 2048; 1003 mmc->max_blk_size = 2048;
1004 mmc->max_blk_count = 512; 1004 mmc->max_blk_count = 512;
diff --git a/drivers/mmc/host/bfin_sdh.c b/drivers/mmc/host/bfin_sdh.c
index 4b0e677d7295..bac7d62866b7 100644
--- a/drivers/mmc/host/bfin_sdh.c
+++ b/drivers/mmc/host/bfin_sdh.c
@@ -469,7 +469,7 @@ static int __devinit sdh_probe(struct platform_device *pdev)
469 } 469 }
470 470
471 mmc->ops = &sdh_ops; 471 mmc->ops = &sdh_ops;
472 mmc->max_phys_segs = 32; 472 mmc->max_segs = 32;
473 mmc->max_seg_size = 1 << 16; 473 mmc->max_seg_size = 1 << 16;
474 mmc->max_blk_size = 1 << 11; 474 mmc->max_blk_size = 1 << 11;
475 mmc->max_blk_count = 1 << 11; 475 mmc->max_blk_count = 1 << 11;
diff --git a/drivers/mmc/host/davinci_mmc.c b/drivers/mmc/host/davinci_mmc.c
index 33d9f1b00862..e15547cf701f 100644
--- a/drivers/mmc/host/davinci_mmc.c
+++ b/drivers/mmc/host/davinci_mmc.c
@@ -138,7 +138,7 @@
138/* 138/*
139 * One scatterlist dma "segment" is at most MAX_CCNT rw_threshold units, 139 * One scatterlist dma "segment" is at most MAX_CCNT rw_threshold units,
140 * and we handle up to MAX_NR_SG segments. MMC_BLOCK_BOUNCE kicks in only 140 * and we handle up to MAX_NR_SG segments. MMC_BLOCK_BOUNCE kicks in only
141 * for drivers with max_hw_segs == 1, making the segments bigger (64KB) 141 * for drivers with max_segs == 1, making the segments bigger (64KB)
142 * than the page or two that's otherwise typical. nr_sg (passed from 142 * than the page or two that's otherwise typical. nr_sg (passed from
143 * platform data) == 16 gives at least the same throughput boost, using 143 * platform data) == 16 gives at least the same throughput boost, using
144 * EDMA transfer linkage instead of spending CPU time copying pages. 144 * EDMA transfer linkage instead of spending CPU time copying pages.
@@ -1239,8 +1239,7 @@ static int __init davinci_mmcsd_probe(struct platform_device *pdev)
1239 * Each hw_seg uses one EDMA parameter RAM slot, always one 1239 * Each hw_seg uses one EDMA parameter RAM slot, always one
1240 * channel and then usually some linked slots. 1240 * channel and then usually some linked slots.
1241 */ 1241 */
1242 mmc->max_hw_segs = 1 + host->n_link; 1242 mmc->max_segs = 1 + host->n_link;
1243 mmc->max_phys_segs = mmc->max_hw_segs;
1244 1243
1245 /* EDMA limit per hw segment (one or two MBytes) */ 1244 /* EDMA limit per hw segment (one or two MBytes) */
1246 mmc->max_seg_size = MAX_CCNT * rw_threshold; 1245 mmc->max_seg_size = MAX_CCNT * rw_threshold;
@@ -1250,8 +1249,7 @@ static int __init davinci_mmcsd_probe(struct platform_device *pdev)
1250 mmc->max_blk_count = 65535; /* NBLK is 16 bits */ 1249 mmc->max_blk_count = 65535; /* NBLK is 16 bits */
1251 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count; 1250 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
1252 1251
1253 dev_dbg(mmc_dev(host->mmc), "max_phys_segs=%d\n", mmc->max_phys_segs); 1252 dev_dbg(mmc_dev(host->mmc), "max_segs=%d\n", mmc->max_segs);
1254 dev_dbg(mmc_dev(host->mmc), "max_hw_segs=%d\n", mmc->max_hw_segs);
1255 dev_dbg(mmc_dev(host->mmc), "max_blk_size=%d\n", mmc->max_blk_size); 1253 dev_dbg(mmc_dev(host->mmc), "max_blk_size=%d\n", mmc->max_blk_size);
1256 dev_dbg(mmc_dev(host->mmc), "max_req_size=%d\n", mmc->max_req_size); 1254 dev_dbg(mmc_dev(host->mmc), "max_req_size=%d\n", mmc->max_req_size);
1257 dev_dbg(mmc_dev(host->mmc), "max_seg_size=%d\n", mmc->max_seg_size); 1255 dev_dbg(mmc_dev(host->mmc), "max_seg_size=%d\n", mmc->max_seg_size);
diff --git a/drivers/mmc/host/imxmmc.c b/drivers/mmc/host/imxmmc.c
index 5a950b16d9e6..881f7ba545ae 100644
--- a/drivers/mmc/host/imxmmc.c
+++ b/drivers/mmc/host/imxmmc.c
@@ -966,8 +966,7 @@ static int __init imxmci_probe(struct platform_device *pdev)
966 mmc->caps = MMC_CAP_4_BIT_DATA; 966 mmc->caps = MMC_CAP_4_BIT_DATA;
967 967
968 /* MMC core transfer sizes tunable parameters */ 968 /* MMC core transfer sizes tunable parameters */
969 mmc->max_hw_segs = 64; 969 mmc->max_segs = 64;
970 mmc->max_phys_segs = 64;
971 mmc->max_seg_size = 64*512; /* default PAGE_CACHE_SIZE */ 970 mmc->max_seg_size = 64*512; /* default PAGE_CACHE_SIZE */
972 mmc->max_req_size = 64*512; /* default PAGE_CACHE_SIZE */ 971 mmc->max_req_size = 64*512; /* default PAGE_CACHE_SIZE */
973 mmc->max_blk_size = 2048; 972 mmc->max_blk_size = 2048;
diff --git a/drivers/mmc/host/jz4740_mmc.c b/drivers/mmc/host/jz4740_mmc.c
index ad4f9870e3ca..b3a0ab0e4c2b 100644
--- a/drivers/mmc/host/jz4740_mmc.c
+++ b/drivers/mmc/host/jz4740_mmc.c
@@ -876,8 +876,7 @@ static int __devinit jz4740_mmc_probe(struct platform_device* pdev)
876 mmc->max_blk_count = (1 << 15) - 1; 876 mmc->max_blk_count = (1 << 15) - 1;
877 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count; 877 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
878 878
879 mmc->max_phys_segs = 128; 879 mmc->max_segs = 128;
880 mmc->max_hw_segs = 128;
881 mmc->max_seg_size = mmc->max_req_size; 880 mmc->max_seg_size = mmc->max_req_size;
882 881
883 host->mmc = mmc; 882 host->mmc = mmc;
diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c
index 62a35822003e..5b0b50636ec4 100644
--- a/drivers/mmc/host/mmc_spi.c
+++ b/drivers/mmc/host/mmc_spi.c
@@ -1345,8 +1345,7 @@ static int mmc_spi_probe(struct spi_device *spi)
1345 1345
1346 mmc->ops = &mmc_spi_ops; 1346 mmc->ops = &mmc_spi_ops;
1347 mmc->max_blk_size = MMC_SPI_BLOCKSIZE; 1347 mmc->max_blk_size = MMC_SPI_BLOCKSIZE;
1348 mmc->max_hw_segs = MMC_SPI_BLOCKSATONCE; 1348 mmc->max_segs = MMC_SPI_BLOCKSATONCE;
1349 mmc->max_phys_segs = MMC_SPI_BLOCKSATONCE;
1350 mmc->max_req_size = MMC_SPI_BLOCKSATONCE * MMC_SPI_BLOCKSIZE; 1349 mmc->max_req_size = MMC_SPI_BLOCKSATONCE * MMC_SPI_BLOCKSIZE;
1351 mmc->max_blk_count = MMC_SPI_BLOCKSATONCE; 1350 mmc->max_blk_count = MMC_SPI_BLOCKSATONCE;
1352 1351
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
index f2e02d7d9f3d..5f2e72d38b5d 100644
--- a/drivers/mmc/host/mmci.c
+++ b/drivers/mmc/host/mmci.c
@@ -734,8 +734,7 @@ static int __devinit mmci_probe(struct amba_device *dev, struct amba_id *id)
734 /* 734 /*
735 * We can do SGIO 735 * We can do SGIO
736 */ 736 */
737 mmc->max_hw_segs = 16; 737 mmc->max_segs = NR_SG;
738 mmc->max_phys_segs = NR_SG;
739 738
740 /* 739 /*
741 * Since only a certain number of bits are valid in the data length 740 * Since only a certain number of bits are valid in the data length
diff --git a/drivers/mmc/host/msm_sdcc.c b/drivers/mmc/host/msm_sdcc.c
index ff7752348b11..1290d14c5839 100644
--- a/drivers/mmc/host/msm_sdcc.c
+++ b/drivers/mmc/host/msm_sdcc.c
@@ -1164,8 +1164,7 @@ msmsdcc_probe(struct platform_device *pdev)
1164 mmc->caps |= MMC_CAP_SDIO_IRQ; 1164 mmc->caps |= MMC_CAP_SDIO_IRQ;
1165 mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED; 1165 mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED;
1166 1166
1167 mmc->max_phys_segs = NR_SG; 1167 mmc->max_segs = NR_SG;
1168 mmc->max_hw_segs = NR_SG;
1169 mmc->max_blk_size = 4096; /* MCI_DATA_CTL BLOCKSIZE up to 4096 */ 1168 mmc->max_blk_size = 4096; /* MCI_DATA_CTL BLOCKSIZE up to 4096 */
1170 mmc->max_blk_count = 65536; 1169 mmc->max_blk_count = 65536;
1171 1170
diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c
index 366eefa77c5a..a5bf60e01af4 100644
--- a/drivers/mmc/host/mvsdio.c
+++ b/drivers/mmc/host/mvsdio.c
@@ -742,8 +742,7 @@ static int __init mvsd_probe(struct platform_device *pdev)
742 mmc->max_blk_size = 2048; 742 mmc->max_blk_size = 2048;
743 mmc->max_blk_count = 65535; 743 mmc->max_blk_count = 65535;
744 744
745 mmc->max_hw_segs = 1; 745 mmc->max_segs = 1;
746 mmc->max_phys_segs = 1;
747 mmc->max_seg_size = mmc->max_blk_size * mmc->max_blk_count; 746 mmc->max_seg_size = mmc->max_blk_size * mmc->max_blk_count;
748 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count; 747 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
749 748
diff --git a/drivers/mmc/host/mxcmmc.c b/drivers/mmc/host/mxcmmc.c
index 350f78e86245..bdd2cbb87cba 100644
--- a/drivers/mmc/host/mxcmmc.c
+++ b/drivers/mmc/host/mxcmmc.c
@@ -790,8 +790,7 @@ static int mxcmci_probe(struct platform_device *pdev)
790 mmc->caps = MMC_CAP_4_BIT_DATA | MMC_CAP_SDIO_IRQ; 790 mmc->caps = MMC_CAP_4_BIT_DATA | MMC_CAP_SDIO_IRQ;
791 791
792 /* MMC core transfer sizes tunable parameters */ 792 /* MMC core transfer sizes tunable parameters */
793 mmc->max_hw_segs = 64; 793 mmc->max_segs = 64;
794 mmc->max_phys_segs = 64;
795 mmc->max_blk_size = 2048; 794 mmc->max_blk_size = 2048;
796 mmc->max_blk_count = 65535; 795 mmc->max_blk_count = 65535;
797 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count; 796 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
diff --git a/drivers/mmc/host/omap.c b/drivers/mmc/host/omap.c
index d98ddcfac5e5..0c7e37f496ef 100644
--- a/drivers/mmc/host/omap.c
+++ b/drivers/mmc/host/omap.c
@@ -1335,8 +1335,7 @@ static int __init mmc_omap_new_slot(struct mmc_omap_host *host, int id)
1335 * NOTE max_seg_size assumption that small blocks aren't 1335 * NOTE max_seg_size assumption that small blocks aren't
1336 * normally used (except e.g. for reading SD registers). 1336 * normally used (except e.g. for reading SD registers).
1337 */ 1337 */
1338 mmc->max_phys_segs = 32; 1338 mmc->max_segs = 32;
1339 mmc->max_hw_segs = 32;
1340 mmc->max_blk_size = 2048; /* BLEN is 11 bits (+1) */ 1339 mmc->max_blk_size = 2048; /* BLEN is 11 bits (+1) */
1341 mmc->max_blk_count = 2048; /* NBLK is 11 bits (+1) */ 1340 mmc->max_blk_count = 2048; /* NBLK is 11 bits (+1) */
1342 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count; 1341 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 4526d2791f29..03c26e026506 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -2105,8 +2105,7 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev)
2105 2105
2106 /* Since we do only SG emulation, we can have as many segs 2106 /* Since we do only SG emulation, we can have as many segs
2107 * as we want. */ 2107 * as we want. */
2108 mmc->max_phys_segs = 1024; 2108 mmc->max_segs = 1024;
2109 mmc->max_hw_segs = 1024;
2110 2109
2111 mmc->max_blk_size = 512; /* Block Length at max can be 1024 */ 2110 mmc->max_blk_size = 512; /* Block Length at max can be 1024 */
2112 mmc->max_blk_count = 0xFFFF; /* No. of Blocks is 16 bits */ 2111 mmc->max_blk_count = 0xFFFF; /* No. of Blocks is 16 bits */
diff --git a/drivers/mmc/host/pxamci.c b/drivers/mmc/host/pxamci.c
index 0a4e43f37140..b7dfcac31e8a 100644
--- a/drivers/mmc/host/pxamci.c
+++ b/drivers/mmc/host/pxamci.c
@@ -576,7 +576,7 @@ static int pxamci_probe(struct platform_device *pdev)
576 * We can do SG-DMA, but we don't because we never know how much 576 * We can do SG-DMA, but we don't because we never know how much
577 * data we successfully wrote to the card. 577 * data we successfully wrote to the card.
578 */ 578 */
579 mmc->max_phys_segs = NR_SG; 579 mmc->max_segs = NR_SG;
580 580
581 /* 581 /*
582 * Our hardware DMA can handle a maximum of one page per SG entry. 582 * Our hardware DMA can handle a maximum of one page per SG entry.
diff --git a/drivers/mmc/host/s3cmci.c b/drivers/mmc/host/s3cmci.c
index 976330de379e..1ccd4b256cee 100644
--- a/drivers/mmc/host/s3cmci.c
+++ b/drivers/mmc/host/s3cmci.c
@@ -1736,8 +1736,7 @@ static int __devinit s3cmci_probe(struct platform_device *pdev)
1736 mmc->max_req_size = 4095 * 512; 1736 mmc->max_req_size = 4095 * 512;
1737 mmc->max_seg_size = mmc->max_req_size; 1737 mmc->max_seg_size = mmc->max_req_size;
1738 1738
1739 mmc->max_phys_segs = 128; 1739 mmc->max_segs = 128;
1740 mmc->max_hw_segs = 128;
1741 1740
1742 dbg(host, dbg_debug, 1741 dbg(host, dbg_debug,
1743 "probe: mode:%s mapped mci_base:%p irq:%u irq_cd:%u dma:%u.\n", 1742 "probe: mode:%s mapped mci_base:%p irq:%u irq_cd:%u dma:%u.\n",
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 401527d273b5..f608626c4821 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -1850,12 +1850,11 @@ int sdhci_add_host(struct sdhci_host *host)
1850 * can do scatter/gather or not. 1850 * can do scatter/gather or not.
1851 */ 1851 */
1852 if (host->flags & SDHCI_USE_ADMA) 1852 if (host->flags & SDHCI_USE_ADMA)
1853 mmc->max_hw_segs = 128; 1853 mmc->max_segs = 128;
1854 else if (host->flags & SDHCI_USE_SDMA) 1854 else if (host->flags & SDHCI_USE_SDMA)
1855 mmc->max_hw_segs = 1; 1855 mmc->max_segs = 1;
1856 else /* PIO */ 1856 else /* PIO */
1857 mmc->max_hw_segs = 128; 1857 mmc->max_segs = 128;
1858 mmc->max_phys_segs = 128;
1859 1858
1860 /* 1859 /*
1861 * Maximum number of sectors in one transfer. Limited by DMA boundary 1860 * Maximum number of sectors in one transfer. Limited by DMA boundary
diff --git a/drivers/mmc/host/sh_mmcif.c b/drivers/mmc/host/sh_mmcif.c
index 5d3f824bb5a3..0f06b8002814 100644
--- a/drivers/mmc/host/sh_mmcif.c
+++ b/drivers/mmc/host/sh_mmcif.c
@@ -846,8 +846,7 @@ static int __devinit sh_mmcif_probe(struct platform_device *pdev)
846 mmc->caps = MMC_CAP_MMC_HIGHSPEED; 846 mmc->caps = MMC_CAP_MMC_HIGHSPEED;
847 if (pd->caps) 847 if (pd->caps)
848 mmc->caps |= pd->caps; 848 mmc->caps |= pd->caps;
849 mmc->max_phys_segs = 128; 849 mmc->max_segs = 128;
850 mmc->max_hw_segs = 128;
851 mmc->max_blk_size = 512; 850 mmc->max_blk_size = 512;
852 mmc->max_blk_count = 65535; 851 mmc->max_blk_count = 65535;
853 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count; 852 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
diff --git a/drivers/mmc/host/tifm_sd.c b/drivers/mmc/host/tifm_sd.c
index cec99958b652..457c26ea09de 100644
--- a/drivers/mmc/host/tifm_sd.c
+++ b/drivers/mmc/host/tifm_sd.c
@@ -978,11 +978,10 @@ static int tifm_sd_probe(struct tifm_dev *sock)
978 mmc->f_max = 24000000; 978 mmc->f_max = 24000000;
979 979
980 mmc->max_blk_count = 2048; 980 mmc->max_blk_count = 2048;
981 mmc->max_hw_segs = mmc->max_blk_count; 981 mmc->max_segs = mmc->max_blk_count;
982 mmc->max_blk_size = min(TIFM_MMCSD_MAX_BLOCK_SIZE, PAGE_SIZE); 982 mmc->max_blk_size = min(TIFM_MMCSD_MAX_BLOCK_SIZE, PAGE_SIZE);
983 mmc->max_seg_size = mmc->max_blk_count * mmc->max_blk_size; 983 mmc->max_seg_size = mmc->max_blk_count * mmc->max_blk_size;
984 mmc->max_req_size = mmc->max_seg_size; 984 mmc->max_req_size = mmc->max_seg_size;
985 mmc->max_phys_segs = mmc->max_hw_segs;
986 985
987 sock->card_event = tifm_sd_card_event; 986 sock->card_event = tifm_sd_card_event;
988 sock->data_event = tifm_sd_data_event; 987 sock->data_event = tifm_sd_data_event;
diff --git a/drivers/mmc/host/via-sdmmc.c b/drivers/mmc/host/via-sdmmc.c
index 19f2d72dbca5..9ed84ddb4780 100644
--- a/drivers/mmc/host/via-sdmmc.c
+++ b/drivers/mmc/host/via-sdmmc.c
@@ -1050,8 +1050,7 @@ static void via_init_mmc_host(struct via_crdr_mmc_host *host)
1050 mmc->ops = &via_sdc_ops; 1050 mmc->ops = &via_sdc_ops;
1051 1051
1052 /*Hardware cannot do scatter lists*/ 1052 /*Hardware cannot do scatter lists*/
1053 mmc->max_hw_segs = 1; 1053 mmc->max_segs = 1;
1054 mmc->max_phys_segs = 1;
1055 1054
1056 mmc->max_blk_size = VIA_CRDR_MAX_BLOCK_LENGTH; 1055 mmc->max_blk_size = VIA_CRDR_MAX_BLOCK_LENGTH;
1057 mmc->max_blk_count = VIA_CRDR_MAX_BLOCK_COUNT; 1056 mmc->max_blk_count = VIA_CRDR_MAX_BLOCK_COUNT;
diff --git a/drivers/mmc/host/wbsd.c b/drivers/mmc/host/wbsd.c
index 0012f5d13d28..7fca0a386ba0 100644
--- a/drivers/mmc/host/wbsd.c
+++ b/drivers/mmc/host/wbsd.c
@@ -1235,8 +1235,7 @@ static int __devinit wbsd_alloc_mmc(struct device *dev)
1235 * Maximum number of segments. Worst case is one sector per segment 1235 * Maximum number of segments. Worst case is one sector per segment
1236 * so this will be 64kB/512. 1236 * so this will be 64kB/512.
1237 */ 1237 */
1238 mmc->max_hw_segs = 128; 1238 mmc->max_segs = 128;
1239 mmc->max_phys_segs = 128;
1240 1239
1241 /* 1240 /*
1242 * Maximum request size. Also limited by 64KiB buffer. 1241 * Maximum request size. Also limited by 64KiB buffer.
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index 1575b52c3bfa..ded401703762 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -162,8 +162,7 @@ struct mmc_host {
162 162
163 /* host specific block data */ 163 /* host specific block data */
164 unsigned int max_seg_size; /* see blk_queue_max_segment_size */ 164 unsigned int max_seg_size; /* see blk_queue_max_segment_size */
165 unsigned short max_hw_segs; /* see blk_queue_max_hw_segments */ 165 unsigned short max_segs; /* see blk_queue_max_segments */
166 unsigned short max_phys_segs; /* see blk_queue_max_phys_segments */
167 unsigned short unused; 166 unsigned short unused;
168 unsigned int max_req_size; /* maximum number of bytes in one req */ 167 unsigned int max_req_size; /* maximum number of bytes in one req */
169 unsigned int max_blk_size; /* maximum size of one mmc block */ 168 unsigned int max_blk_size; /* maximum size of one mmc block */