提交 d29bf019 编写于 作者: L Linus Walleij 提交者: Vinod Koul

dma/amba-pl08x: check for terminal count status only

For some reason I can't figure out we're reading the PL080_INT_STATUS
register instead of PL080_TC_STATUS when checking for the terminal
count. The PL080_INT_STATUS is a logical OR between the error and
terminal count status register and may not report what we want it
to, especially if there is an error and a terminal count at the same
time and the former is not lowered in time for the check in the TC
register. Make sure we read what we're actually interested in.

Cc: Russell King <linux@arm.linux.org.uk>
Cc: Viresh Kumar <viresh.kumar@st.com>
Cc: Alim Akhtar <alim.akhtar@gmail.com>
Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
Acked-by: NViresh Kumar <viresh.kumar@st.com>
Signed-off-by: NVinod Koul <vinod.koul@linux.intel.com>
上级 7e426da8
...@@ -1615,7 +1615,7 @@ static irqreturn_t pl08x_irq(int irq, void *dev) ...@@ -1615,7 +1615,7 @@ static irqreturn_t pl08x_irq(int irq, void *dev)
__func__, err); __func__, err);
writel(err, pl08x->base + PL080_ERR_CLEAR); writel(err, pl08x->base + PL080_ERR_CLEAR);
} }
tc = readl(pl08x->base + PL080_INT_STATUS); tc = readl(pl08x->base + PL080_TC_STATUS);
if (tc) if (tc)
writel(tc, pl08x->base + PL080_TC_CLEAR); writel(tc, pl08x->base + PL080_TC_CLEAR);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册