diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-24 08:37:52 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-24 08:37:52 -0700 |
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 W: http://www.linux-usb.org/SpeedTouch/ S: Maintained +ALCHEMY AU1XX0 MMC DRIVER +S: Orphan + ALI1563 I2C DRIVER P: Rudolf Marek M: r.marek@assembler.cz @@ -418,6 +421,12 @@ P: Ian Molton M: spyro@f2s.com S: Maintained +ARM PRIMECELL MMCI PL180/1 DRIVER +P: Russell King +M: rmk@arm.linux.org.uk +L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) +S: Maintained + ARM/ADI ROADRUNNER MACHINE SUPPORT P: Lennert Buytenhek M: kernel@wantstofly.org @@ -649,6 +658,9 @@ L: linux-atm-general@lists.sourceforge.net (subscribers-only) W: http://linux-atm.sourceforge.net S: Maintained +ATMEL AT91 MCI DRIVER +S: Orphan + ATMEL MACB ETHERNET DRIVER P: Haavard Skinnemoen M: hskinnemoen@atmel.com @@ -2380,6 +2392,13 @@ M: stelian@popies.net W: http://popies.net/meye/ S: Maintained +MOTOROLA IMX MMC/SD HOST CONTROLLER INTERFACE DRIVER +P: Pavel Pisa +M: ppisa@pikron.com +L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) +W: http://mmc.drzeus.cx/wiki/Controllers/Freescale/SDHC +S: Maintained + MOUSE AND MISC DEVICES [GENERAL] P: Alessandro Rubini M: rubini@ipvvis.unipv.it @@ -2900,6 +2919,9 @@ M: nico@cam.org L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) S: Maintained +PXA MMCI DRIVER +S: Orphan + QLOGIC QLA2XXX FC-SCSI DRIVER P: Andrew Vasquez M: linux-driver@qlogic.com @@ -3416,6 +3438,13 @@ P: Alex Dubov M: oakad@yahoo.com S: Maintained +TI OMAP MMC INTERFACE DRIVER +P: Carlos Aguiar, Anderson Briglia and Syed Khasim +M: linux-omap-open-source@linux.omap.com +W: http://linux.omap.com +W: http://www.muru.com/linux/omap/ +S: Maintained + TI OMAP RANDOM NUMBER GENERATOR SUPPORT P: Deepak Saxena 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 { struct mmc_data data; }; -static int mmc_blk_prep_rq(struct mmc_queue *mq, struct request *req) -{ - struct mmc_blk_data *md = mq->data; - int stat = BLKPREP_OK; - - /* - * If we have no device, we haven't finished initialising. - */ - if (!md || !mq->card) { - printk(KERN_ERR "%s: killing request - no device/host\n", - req->rq_disk->disk_name); - stat = BLKPREP_KILL; - } - - return stat; -} - static u32 mmc_sd_num_wr_blocks(struct mmc_card *card) { int err; @@ -460,7 +443,6 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card) if (ret) goto err_putdisk; - md->queue.prep_fn = mmc_blk_prep_rq; md->queue.issue_fn = mmc_blk_issue_rq; md->queue.data = md; 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 @@ #define MMC_QUEUE_SUSPENDED (1 << 0) /* - * Prepare a MMC request. Essentially, this means passing the - * preparation off to the media driver. The media driver will - * create a mmc_io_request in req->special. + * Prepare a MMC request. This just filters out odd stuff. */ static int mmc_prep_request(struct request_queue *q, struct request *req) { - struct mmc_queue *mq = q->queuedata; - int ret = BLKPREP_KILL; - - if (blk_special_request(req)) { - /* - * Special commands already have the command - * blocks already setup in req->special. - */ - BUG_ON(!req->special); - - ret = BLKPREP_OK; - } else if (blk_fs_request(req) || blk_pc_request(req)) { - /* - * Block I/O requests need translating according - * to the protocol. - */ - ret = mq->prep_fn(mq, req); - } else { - /* - * Everything else is invalid. - */ + /* + * We only like normal block requests. + */ + if (!blk_fs_request(req) && !blk_pc_request(req)) { blk_dump_rq_flags(req, "MMC bad request"); + return BLKPREP_KILL; } - if (ret == BLKPREP_OK) - req->cmd_flags |= REQ_DONTPREP; + req->cmd_flags |= REQ_DONTPREP; - return ret; + return BLKPREP_OK; } 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 { struct semaphore thread_sem; unsigned int flags; struct request *req; - int (*prep_fn)(struct mmc_queue *, struct request *); int (*issue_fn)(struct mmc_queue *, struct request *); void *data; struct request_queue *queue; struct scatterlist *sg; }; -struct mmc_io_request { - struct request *rq; - int num; - struct mmc_command selcmd; /* mmc_queue private */ - struct mmc_command cmd[4]; /* max 4 commands */ -}; - extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *); extern void mmc_cleanup_queue(struct mmc_queue *); extern void mmc_queue_suspend(struct mmc_queue *); |