[patch 5/9] s3cmci: Fix direct write to interrupt mask

Ben Dooks
2009-08-18T11:56:57Z

[-- Attachment #1: s3cmci-fix-clear-imask.patch --]
[-- Type: text/plain, Size: 1148 bytes --]

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>

---

Index: b/drivers/mmc/host/s3cmci.c
===================================================================
--- a/drivers/mmc/host/s3cmci.c 2009-07-22 14:55:13.000000000 +0100
+++ b/drivers/mmc/host/s3cmci.c 2009-07-22 14:57:07.000000000 +0100
@@ -681,9 +681,9 @@ out:
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)
@@ -726,7 +726,7 @@ static void finalize_request(struct s3cm
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;

--