forked from luck/tmp_suning_uos_patched
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>
This commit is contained in:
parent
50d7fa9aa4
commit
e6130aeffd
|
@ -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)
|
||||
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue
Block a user