提交 aca69344 编写于 作者: D David Daney 提交者: Ulf Hansson

mmc: cavium-octeon: Fix interrupt enable code

OCTEON SoCs with CIU3 do not have interrupt masking local to the MMC
bus interface.  Unfortunately, some even have a diagnostic register at
the same address of the enable register, which causes the interrupts
to fire immediately if stored to, thus breaking the driver.  The proper
action on these SoCs is not to touch this register.

Fixes: 01d95843 ("mmc: cavium: Add MMC support for Octeon SOCs.")
Signed-off-by: NDavid Daney <david.daney@cavium.com>
[jglauber@cavium.com: removed point after subject line]
Signed-off-by: NJan Glauber <jglauber@cavium.com>
Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
上级 bae3dee0
...@@ -108,7 +108,7 @@ static void octeon_mmc_release_bus(struct cvm_mmc_host *host) ...@@ -108,7 +108,7 @@ static void octeon_mmc_release_bus(struct cvm_mmc_host *host)
static void octeon_mmc_int_enable(struct cvm_mmc_host *host, u64 val) static void octeon_mmc_int_enable(struct cvm_mmc_host *host, u64 val)
{ {
writeq(val, host->base + MIO_EMM_INT(host)); writeq(val, host->base + MIO_EMM_INT(host));
if (!host->dma_active || (host->dma_active && !host->has_ciu3)) if (!host->has_ciu3)
writeq(val, host->base + MIO_EMM_INT_EN(host)); writeq(val, host->base + MIO_EMM_INT_EN(host));
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册