summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Osipenko <digetx@gmail.com>2018-03-17 16:28:14 +0100
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>2018-05-04 12:33:25 +0200
commit2efa20dae2810cf139eb39cbbf302749286e8f2d (patch)
treedf8c58b7292480b4ac4d63573667555a7b2fea7a
parentmedia: staging: tegra-vde: Correct minimum size of U/V planes (diff)
downloadlinux-2efa20dae2810cf139eb39cbbf302749286e8f2d.tar.xz
linux-2efa20dae2810cf139eb39cbbf302749286e8f2d.zip
media: staging: tegra-vde: Do not handle spurious interrupts
Do not handle interrupts if we haven't asked for them, potentially that could happen if HW wasn't programmed properly. Signed-off-by: Dmitry Osipenko <digetx@gmail.com> Signed-off-by: Hans Verkuil <hansverk@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
-rw-r--r--drivers/staging/media/tegra-vde/tegra-vde.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/staging/media/tegra-vde/tegra-vde.c b/drivers/staging/media/tegra-vde/tegra-vde.c
index 94b4db55cdb5..9e542c6288f1 100644
--- a/drivers/staging/media/tegra-vde/tegra-vde.c
+++ b/drivers/staging/media/tegra-vde/tegra-vde.c
@@ -935,6 +935,9 @@ static irqreturn_t tegra_vde_isr(int irq, void *data)
{
struct tegra_vde *vde = data;
+ if (completion_done(&vde->decode_completion))
+ return IRQ_NONE;
+
tegra_vde_set_bits(vde, 0, vde->frameid + 0x208);
complete(&vde->decode_completion);