Skip to content

Commit

Permalink
s3cmci: fix direct write to interrupt mask
Browse files Browse the repository at this point in the history
The clear_imask() call should be used to clear the interrupt mask
register, as it may end up clearing the SDIO interrupt bit if this is
enabled.

Change all writes of zero to SDIIMSK register to use clear_imask() ready
for the SDIO updates.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Ben Dooks authored and Linus Torvalds committed Oct 1, 2009
1 parent 50d7fa9 commit e6130ae
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions drivers/mmc/host/s3cmci.c
Original file line number Diff line number Diff line change
Expand Up @@ -681,9 +681,9 @@ static void s3cmci_dma_done_callback(struct s3c2410_dma_chan *dma_ch,
fail_request:
host->mrq->data->error = -EINVAL;
host->complete_what = COMPLETION_FINALIZE;
writel(0, host->base + host->sdiimsk);
goto out;
clear_imask(host);

goto out;
}

static void finalize_request(struct s3cmci_host *host)
Expand Down Expand Up @@ -726,7 +726,7 @@ static void finalize_request(struct s3cmci_host *host)
writel(0, host->base + S3C2410_SDICMDARG);
writel(S3C2410_SDIDCON_STOP, host->base + S3C2410_SDIDCON);
writel(0, host->base + S3C2410_SDICMDCON);
writel(0, host->base + host->sdiimsk);
clear_imask(host);

if (cmd->data && cmd->error)
cmd->data->error = cmd->error;
Expand Down

0 comments on commit e6130ae

Please sign in to comment.