Skip to content

Commit

Permalink
mmc: card: block.c cleanup for host claim/release.
Browse files Browse the repository at this point in the history
Move host claim/release into mmc_blk_issue_rq.

(This is helpful so that selecting partition only has to happen
in one place for these commands.)

Signed-off-by: Andrei Warkentin <[email protected]>
Signed-off-by: Chris Ball <[email protected]>
  • Loading branch information
Andrei Warkentin authored and cjb committed May 25, 2011
1 parent d3a8d95 commit 1a258db
Showing 1 changed file with 13 additions and 18 deletions.
31 changes: 13 additions & 18 deletions drivers/mmc/card/block.c
Original file line number Diff line number Diff line change
Expand Up @@ -273,8 +273,6 @@ static int mmc_blk_issue_discard_rq(struct mmc_queue *mq, struct request *req)
unsigned int from, nr, arg;
int err = 0;

mmc_claim_host(card->host);

if (!mmc_can_erase(card)) {
err = -EOPNOTSUPP;
goto out;
Expand All @@ -294,8 +292,6 @@ static int mmc_blk_issue_discard_rq(struct mmc_queue *mq, struct request *req)
__blk_end_request(req, err, blk_rq_bytes(req));
spin_unlock_irq(&md->lock);

mmc_release_host(card->host);

return err ? 0 : 1;
}

Expand All @@ -307,8 +303,6 @@ static int mmc_blk_issue_secdiscard_rq(struct mmc_queue *mq,
unsigned int from, nr, arg;
int err = 0;

mmc_claim_host(card->host);

if (!mmc_can_secure_erase_trim(card)) {
err = -EOPNOTSUPP;
goto out;
Expand All @@ -330,8 +324,6 @@ static int mmc_blk_issue_secdiscard_rq(struct mmc_queue *mq,
__blk_end_request(req, err, blk_rq_bytes(req));
spin_unlock_irq(&md->lock);

mmc_release_host(card->host);

return err ? 0 : 1;
}

Expand Down Expand Up @@ -402,8 +394,6 @@ static int mmc_blk_issue_rw_rq(struct mmc_queue *mq, struct request *req)
(rq_data_dir(req) == WRITE) &&
REL_WRITES_SUPPORTED(card);

mmc_claim_host(card->host);

do {
struct mmc_command cmd;
u32 readcmd, writecmd, status = 0;
Expand Down Expand Up @@ -589,8 +579,6 @@ static int mmc_blk_issue_rw_rq(struct mmc_queue *mq, struct request *req)
spin_unlock_irq(&md->lock);
} while (ret);

mmc_release_host(card->host);

return 1;

cmd_err:
Expand All @@ -617,8 +605,6 @@ static int mmc_blk_issue_rw_rq(struct mmc_queue *mq, struct request *req)
spin_unlock_irq(&md->lock);
}

mmc_release_host(card->host);

spin_lock_irq(&md->lock);
while (ret)
ret = __blk_end_request(req, -EIO, blk_rq_cur_bytes(req));
Expand All @@ -629,16 +615,25 @@ static int mmc_blk_issue_rw_rq(struct mmc_queue *mq, struct request *req)

static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
{
int ret;
struct mmc_blk_data *md = mq->data;
struct mmc_card *card = md->queue.card;

mmc_claim_host(card->host);

if (req->cmd_flags & REQ_DISCARD) {
if (req->cmd_flags & REQ_SECURE)
return mmc_blk_issue_secdiscard_rq(mq, req);
ret = mmc_blk_issue_secdiscard_rq(mq, req);
else
return mmc_blk_issue_discard_rq(mq, req);
ret = mmc_blk_issue_discard_rq(mq, req);
} else if (req->cmd_flags & REQ_FLUSH) {
return mmc_blk_issue_flush(mq, req);
ret = mmc_blk_issue_flush(mq, req);
} else {
return mmc_blk_issue_rw_rq(mq, req);
ret = mmc_blk_issue_rw_rq(mq, req);
}

mmc_release_host(card->host);
return ret;
}

static inline int mmc_blk_readonly(struct mmc_card *card)
Expand Down

0 comments on commit 1a258db

Please sign in to comment.