aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host/s3cmci.c
diff options
context:
space:
mode:
authorBen Dooks <ben@simtec.co.uk>2009-10-01 18:44:16 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-10-01 19:11:15 -0400
commite6130aeffd93d342e72ca85cfd335d066f680792 (patch)
tree7e1c1a6b7ef1bd048f4d46f1c5f51f482cf60f93 /drivers/mmc/host/s3cmci.c
parent50d7fa9aa4183be2575bba24dd1a7651a3923fba (diff)
s3cmci: fix direct write to interrupt mask
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>
Diffstat (limited to 'drivers/mmc/host/s3cmci.c')
-rw-r--r--drivers/mmc/host/s3cmci.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/mmc/host/s3cmci.c b/drivers/mmc/host/s3cmci.c
index 6e408452855c..28a4a4535f38 100644
--- a/drivers/mmc/host/s3cmci.c
+++ b/drivers/mmc/host/s3cmci.c
@@ -681,9 +681,9 @@ out:
681fail_request: 681fail_request:
682 host->mrq->data->error = -EINVAL; 682 host->mrq->data->error = -EINVAL;
683 host->complete_what = COMPLETION_FINALIZE; 683 host->complete_what = COMPLETION_FINALIZE;
684 writel(0, host->base + host->sdiimsk); 684 clear_imask(host);
685 goto out;
686 685
686 goto out;
687} 687}
688 688
689static void finalize_request(struct s3cmci_host *host) 689static void finalize_request(struct s3cmci_host *host)
@@ -726,7 +726,7 @@ static void finalize_request(struct s3cmci_host *host)
726 writel(0, host->base + S3C2410_SDICMDARG); 726 writel(0, host->base + S3C2410_SDICMDARG);
727 writel(S3C2410_SDIDCON_STOP, host->base + S3C2410_SDIDCON); 727 writel(S3C2410_SDIDCON_STOP, host->base + S3C2410_SDIDCON);
728 writel(0, host->base + S3C2410_SDICMDCON); 728 writel(0, host->base + S3C2410_SDICMDCON);
729 writel(0, host->base + host->sdiimsk); 729 clear_imask(host);
730 730
731 if (cmd->data && cmd->error) 731 if (cmd->data && cmd->error)
732 cmd->data->error = cmd->error; 732 cmd->data->error = cmd->error;