diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-24 11:37:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-24 11:37:52 -0400 |
commit | 5270f2901d6ba38724d0e9e4b637e660f1ca85f7 (patch) | |
tree | f2010e07f40c26ee998dd70b2a9caa640c627f81 | |
parent | 92ea77275b5345c1300433f28689493dc4163f24 (diff) | |
parent | 2761f5c2ea80bcaa77ec1827064f3aa919474ac8 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc:
mmc: add maintainer for ARM Primecell controller
mmc: add maintainer for iMX MMC interface
mmc: Add maintainers for TI OMAP MMC interface
mmc: mark unmaintained drivers
mmc: clean up unused parts of block driver
-rw-r--r-- | MAINTAINERS | 29 | ||||
-rw-r--r-- | drivers/mmc/card/block.c | 18 | ||||
-rw-r--r-- | drivers/mmc/card/queue.c | 35 | ||||
-rw-r--r-- | drivers/mmc/card/queue.h | 8 |
4 files changed, 37 insertions, 53 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 22ab4019972b..953291d08c76 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -332,6 +332,9 @@ L: linux-usb-devel@lists.sourceforge.net | |||
332 | W: http://www.linux-usb.org/SpeedTouch/ | 332 | W: http://www.linux-usb.org/SpeedTouch/ |
333 | S: Maintained | 333 | S: Maintained |
334 | 334 | ||
335 | ALCHEMY AU1XX0 MMC DRIVER | ||
336 | S: Orphan | ||
337 | |||
335 | ALI1563 I2C DRIVER | 338 | ALI1563 I2C DRIVER |
336 | P: Rudolf Marek | 339 | P: Rudolf Marek |
337 | M: r.marek@assembler.cz | 340 | M: r.marek@assembler.cz |
@@ -418,6 +421,12 @@ P: Ian Molton | |||
418 | M: spyro@f2s.com | 421 | M: spyro@f2s.com |
419 | S: Maintained | 422 | S: Maintained |
420 | 423 | ||
424 | ARM PRIMECELL MMCI PL180/1 DRIVER | ||
425 | P: Russell King | ||
426 | M: rmk@arm.linux.org.uk | ||
427 | L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) | ||
428 | S: Maintained | ||
429 | |||
421 | ARM/ADI ROADRUNNER MACHINE SUPPORT | 430 | ARM/ADI ROADRUNNER MACHINE SUPPORT |
422 | P: Lennert Buytenhek | 431 | P: Lennert Buytenhek |
423 | M: kernel@wantstofly.org | 432 | M: kernel@wantstofly.org |
@@ -649,6 +658,9 @@ L: linux-atm-general@lists.sourceforge.net (subscribers-only) | |||
649 | W: http://linux-atm.sourceforge.net | 658 | W: http://linux-atm.sourceforge.net |
650 | S: Maintained | 659 | S: Maintained |
651 | 660 | ||
661 | ATMEL AT91 MCI DRIVER | ||
662 | S: Orphan | ||
663 | |||
652 | ATMEL MACB ETHERNET DRIVER | 664 | ATMEL MACB ETHERNET DRIVER |
653 | P: Haavard Skinnemoen | 665 | P: Haavard Skinnemoen |
654 | M: hskinnemoen@atmel.com | 666 | M: hskinnemoen@atmel.com |
@@ -2380,6 +2392,13 @@ M: stelian@popies.net | |||
2380 | W: http://popies.net/meye/ | 2392 | W: http://popies.net/meye/ |
2381 | S: Maintained | 2393 | S: Maintained |
2382 | 2394 | ||
2395 | MOTOROLA IMX MMC/SD HOST CONTROLLER INTERFACE DRIVER | ||
2396 | P: Pavel Pisa | ||
2397 | M: ppisa@pikron.com | ||
2398 | L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) | ||
2399 | W: http://mmc.drzeus.cx/wiki/Controllers/Freescale/SDHC | ||
2400 | S: Maintained | ||
2401 | |||
2383 | MOUSE AND MISC DEVICES [GENERAL] | 2402 | MOUSE AND MISC DEVICES [GENERAL] |
2384 | P: Alessandro Rubini | 2403 | P: Alessandro Rubini |
2385 | M: rubini@ipvvis.unipv.it | 2404 | M: rubini@ipvvis.unipv.it |
@@ -2900,6 +2919,9 @@ M: nico@cam.org | |||
2900 | L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) | 2919 | L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) |
2901 | S: Maintained | 2920 | S: Maintained |
2902 | 2921 | ||
2922 | PXA MMCI DRIVER | ||
2923 | S: Orphan | ||
2924 | |||
2903 | QLOGIC QLA2XXX FC-SCSI DRIVER | 2925 | QLOGIC QLA2XXX FC-SCSI DRIVER |
2904 | P: Andrew Vasquez | 2926 | P: Andrew Vasquez |
2905 | M: linux-driver@qlogic.com | 2927 | M: linux-driver@qlogic.com |
@@ -3416,6 +3438,13 @@ P: Alex Dubov | |||
3416 | M: oakad@yahoo.com | 3438 | M: oakad@yahoo.com |
3417 | S: Maintained | 3439 | S: Maintained |
3418 | 3440 | ||
3441 | TI OMAP MMC INTERFACE DRIVER | ||
3442 | P: Carlos Aguiar, Anderson Briglia and Syed Khasim | ||
3443 | M: linux-omap-open-source@linux.omap.com | ||
3444 | W: http://linux.omap.com | ||
3445 | W: http://www.muru.com/linux/omap/ | ||
3446 | S: Maintained | ||
3447 | |||
3419 | TI OMAP RANDOM NUMBER GENERATOR SUPPORT | 3448 | TI OMAP RANDOM NUMBER GENERATOR SUPPORT |
3420 | P: Deepak Saxena | 3449 | P: Deepak Saxena |
3421 | M: dsaxena@plexity.net | 3450 | M: dsaxena@plexity.net |
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c index a7562f7fc0b3..540ff4bea54c 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c | |||
@@ -135,23 +135,6 @@ struct mmc_blk_request { | |||
135 | struct mmc_data data; | 135 | struct mmc_data data; |
136 | }; | 136 | }; |
137 | 137 | ||
138 | static int mmc_blk_prep_rq(struct mmc_queue *mq, struct request *req) | ||
139 | { | ||
140 | struct mmc_blk_data *md = mq->data; | ||
141 | int stat = BLKPREP_OK; | ||
142 | |||
143 | /* | ||
144 | * If we have no device, we haven't finished initialising. | ||
145 | */ | ||
146 | if (!md || !mq->card) { | ||
147 | printk(KERN_ERR "%s: killing request - no device/host\n", | ||
148 | req->rq_disk->disk_name); | ||
149 | stat = BLKPREP_KILL; | ||
150 | } | ||
151 | |||
152 | return stat; | ||
153 | } | ||
154 | |||
155 | static u32 mmc_sd_num_wr_blocks(struct mmc_card *card) | 138 | static u32 mmc_sd_num_wr_blocks(struct mmc_card *card) |
156 | { | 139 | { |
157 | int err; | 140 | int err; |
@@ -460,7 +443,6 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card) | |||
460 | if (ret) | 443 | if (ret) |
461 | goto err_putdisk; | 444 | goto err_putdisk; |
462 | 445 | ||
463 | md->queue.prep_fn = mmc_blk_prep_rq; | ||
464 | md->queue.issue_fn = mmc_blk_issue_rq; | 446 | md->queue.issue_fn = mmc_blk_issue_rq; |
465 | md->queue.data = md; | 447 | md->queue.data = md; |
466 | 448 | ||
diff --git a/drivers/mmc/card/queue.c b/drivers/mmc/card/queue.c index 2e77963db334..dd97bc798409 100644 --- a/drivers/mmc/card/queue.c +++ b/drivers/mmc/card/queue.c | |||
@@ -20,40 +20,21 @@ | |||
20 | #define MMC_QUEUE_SUSPENDED (1 << 0) | 20 | #define MMC_QUEUE_SUSPENDED (1 << 0) |
21 | 21 | ||
22 | /* | 22 | /* |
23 | * Prepare a MMC request. Essentially, this means passing the | 23 | * Prepare a MMC request. This just filters out odd stuff. |
24 | * preparation off to the media driver. The media driver will | ||
25 | * create a mmc_io_request in req->special. | ||
26 | */ | 24 | */ |
27 | static int mmc_prep_request(struct request_queue *q, struct request *req) | 25 | static int mmc_prep_request(struct request_queue *q, struct request *req) |
28 | { | 26 | { |
29 | struct mmc_queue *mq = q->queuedata; | 27 | /* |
30 | int ret = BLKPREP_KILL; | 28 | * We only like normal block requests. |
31 | 29 | */ | |
32 | if (blk_special_request(req)) { | 30 | if (!blk_fs_request(req) && !blk_pc_request(req)) { |
33 | /* | ||
34 | * Special commands already have the command | ||
35 | * blocks already setup in req->special. | ||
36 | */ | ||
37 | BUG_ON(!req->special); | ||
38 | |||
39 | ret = BLKPREP_OK; | ||
40 | } else if (blk_fs_request(req) || blk_pc_request(req)) { | ||
41 | /* | ||
42 | * Block I/O requests need translating according | ||
43 | * to the protocol. | ||
44 | */ | ||
45 | ret = mq->prep_fn(mq, req); | ||
46 | } else { | ||
47 | /* | ||
48 | * Everything else is invalid. | ||
49 | */ | ||
50 | blk_dump_rq_flags(req, "MMC bad request"); | 31 | blk_dump_rq_flags(req, "MMC bad request"); |
32 | return BLKPREP_KILL; | ||
51 | } | 33 | } |
52 | 34 | ||
53 | if (ret == BLKPREP_OK) | 35 | req->cmd_flags |= REQ_DONTPREP; |
54 | req->cmd_flags |= REQ_DONTPREP; | ||
55 | 36 | ||
56 | return ret; | 37 | return BLKPREP_OK; |
57 | } | 38 | } |
58 | 39 | ||
59 | static int mmc_queue_thread(void *d) | 40 | static int mmc_queue_thread(void *d) |
diff --git a/drivers/mmc/card/queue.h b/drivers/mmc/card/queue.h index c9f139e764f6..1590b3f3f1f7 100644 --- a/drivers/mmc/card/queue.h +++ b/drivers/mmc/card/queue.h | |||
@@ -10,20 +10,12 @@ struct mmc_queue { | |||
10 | struct semaphore thread_sem; | 10 | struct semaphore thread_sem; |
11 | unsigned int flags; | 11 | unsigned int flags; |
12 | struct request *req; | 12 | struct request *req; |
13 | int (*prep_fn)(struct mmc_queue *, struct request *); | ||
14 | int (*issue_fn)(struct mmc_queue *, struct request *); | 13 | int (*issue_fn)(struct mmc_queue *, struct request *); |
15 | void *data; | 14 | void *data; |
16 | struct request_queue *queue; | 15 | struct request_queue *queue; |
17 | struct scatterlist *sg; | 16 | struct scatterlist *sg; |
18 | }; | 17 | }; |
19 | 18 | ||
20 | struct mmc_io_request { | ||
21 | struct request *rq; | ||
22 | int num; | ||
23 | struct mmc_command selcmd; /* mmc_queue private */ | ||
24 | struct mmc_command cmd[4]; /* max 4 commands */ | ||
25 | }; | ||
26 | |||
27 | extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *); | 19 | extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *); |
28 | extern void mmc_cleanup_queue(struct mmc_queue *); | 20 | extern void mmc_cleanup_queue(struct mmc_queue *); |
29 | extern void mmc_queue_suspend(struct mmc_queue *); | 21 | extern void mmc_queue_suspend(struct mmc_queue *); |