Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5270f290 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* '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
parents 92ea7727 2761f5c2
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -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
+0 −18
Original line number Diff line number Diff line
@@ -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;

+8 −27
Original line number Diff line number Diff line
@@ -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;

	return ret;
	return BLKPREP_OK;
}

static int mmc_queue_thread(void *d)
+0 −8
Original line number Diff line number Diff line
@@ -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 *);