Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 225702
b: refs/heads/master
c: 0c521cc
h: refs/heads/master
v: v3
  • Loading branch information
Sahitya Tummala authored and David Brown committed Dec 20, 2010
1 parent d5c3e74 commit 1c124b4
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 71dd9106af54de0f758875fa4b595af42a327448
refs/heads/master: 0c521ccbd0c9ad5623ff9b37b20b3ff9d4ad65a7
15 changes: 4 additions & 11 deletions trunk/drivers/mmc/host/msm_sdcc.c
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ static void
msmsdcc_stop_data(struct msmsdcc_host *host)
{
host->curr.data = NULL;
host->curr.got_dataend = host->curr.got_datablkend = 0;
host->curr.got_dataend = 0;
}

uint32_t msmsdcc_fifo_addr(struct msmsdcc_host *host)
Expand Down Expand Up @@ -277,8 +277,7 @@ msmsdcc_dma_complete_tlet(unsigned long data)
host->dma.sg = NULL;
host->dma.busy = 0;

if ((host->curr.got_dataend && host->curr.got_datablkend)
|| mrq->data->error) {
if (host->curr.got_dataend || mrq->data->error) {

/*
* If we've already gotten our DATAEND / DATABLKEND
Expand Down Expand Up @@ -506,7 +505,6 @@ msmsdcc_start_data(struct msmsdcc_host *host, struct mmc_data *data,
host->curr.xfer_remain = host->curr.xfer_size;
host->curr.data_xfered = 0;
host->curr.got_dataend = 0;
host->curr.got_datablkend = 0;

memset(&host->pio, 0, sizeof(host->pio));

Expand Down Expand Up @@ -827,14 +825,10 @@ msmsdcc_handle_irq_data(struct msmsdcc_host *host, u32 status,
if (!host->curr.got_dataend && (status & MCI_DATAEND))
host->curr.got_dataend = 1;

if (!host->curr.got_datablkend && (status & MCI_DATABLOCKEND))
host->curr.got_datablkend = 1;

/*
* If DMA is still in progress, we complete via the completion handler
*/
if (host->curr.got_dataend && host->curr.got_datablkend &&
!host->dma.busy) {
if (host->curr.got_dataend && !host->dma.busy) {
/*
* There appears to be an issue in the controller where
* if you request a small block transfer (< fifo size),
Expand Down Expand Up @@ -871,8 +865,7 @@ msmsdcc_irq(int irq, void *dev_id)

do {
status = msmsdcc_readl(host, MMCISTATUS);
status &= (msmsdcc_readl(host, MMCIMASK0) |
MCI_DATABLOCKENDMASK);
status &= msmsdcc_readl(host, MMCIMASK0);
msmsdcc_writel(host, status, MMCICLEAR);

if (status & MCI_SDIOINTR)
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/mmc/host/msm_sdcc.h
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,6 @@ struct msmsdcc_curr_req {
unsigned int xfer_remain; /* Bytes remaining to send */
unsigned int data_xfered; /* Bytes acked by BLKEND irq */
int got_dataend;
int got_datablkend;
int user_pages;
};

Expand Down

0 comments on commit 1c124b4

Please sign in to comment.