diff options
author | Ben Dooks <ben@simtec.co.uk> | 2009-10-01 18:44:16 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-10-01 19:11:15 -0400 |
commit | e6130aeffd93d342e72ca85cfd335d066f680792 (patch) | |
tree | 7e1c1a6b7ef1bd048f4d46f1c5f51f482cf60f93 /drivers/mmc/host | |
parent | 50d7fa9aa4183be2575bba24dd1a7651a3923fba (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')
-rw-r--r-- | drivers/mmc/host/s3cmci.c | 6 |
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: | |||
681 | fail_request: | 681 | fail_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 | ||
689 | static void finalize_request(struct s3cmci_host *host) | 689 | static 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; |