mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
55 lines
1.9 KiB
Diff
55 lines
1.9 KiB
Diff
From a85f156bdf40aecd9f308e96bd0ffeb6e06077d4 Mon Sep 17 00:00:00 2001
|
|
From: Alex Bee <knaerzche@gmail.com>
|
|
Date: Sun, 4 Jul 2021 15:19:44 +0200
|
|
Subject: [PATCH 34/59] WIP/1001: media: rkvdec: disable QoS for VP9
|
|
(corruptions on RK3328 otherwise)
|
|
|
|
Signed-off-by: Alex Bee <knaerzche@gmail.com>
|
|
---
|
|
drivers/staging/media/rkvdec/rkvdec-regs.h | 2 ++
|
|
drivers/staging/media/rkvdec/rkvdec-vp9.c | 8 ++++++++
|
|
2 files changed, 10 insertions(+)
|
|
|
|
diff --git a/drivers/staging/media/rkvdec/rkvdec-regs.h b/drivers/staging/media/rkvdec/rkvdec-regs.h
|
|
index 3acc914888f6..265f5234f4eb 100644
|
|
--- a/drivers/staging/media/rkvdec/rkvdec-regs.h
|
|
+++ b/drivers/staging/media/rkvdec/rkvdec-regs.h
|
|
@@ -222,6 +222,8 @@
|
|
#define RKVDEC_REG_H264_ERR_E 0x134
|
|
#define RKVDEC_H264_ERR_EN_HIGHBITS(x) ((x) & 0x3fffffff)
|
|
|
|
+#define RKVDEC_QOS_CTRL 0x18C
|
|
+
|
|
#define RKVDEC_REG_PREF_LUMA_CACHE_COMMAND 0x410
|
|
#define RKVDEC_REG_PREF_CHR_CACHE_COMMAND 0x450
|
|
|
|
diff --git a/drivers/staging/media/rkvdec/rkvdec-vp9.c b/drivers/staging/media/rkvdec/rkvdec-vp9.c
|
|
index 0e7e16f20eeb..b7bc07493cea 100644
|
|
--- a/drivers/staging/media/rkvdec/rkvdec-vp9.c
|
|
+++ b/drivers/staging/media/rkvdec/rkvdec-vp9.c
|
|
@@ -803,6 +803,7 @@ static int rkvdec_vp9_run(struct rkvdec_ctx *ctx)
|
|
struct rkvdec_dev *rkvdec = ctx->dev;
|
|
struct rkvdec_vp9_run run = { };
|
|
int ret;
|
|
+ u32 reg;
|
|
|
|
ret = rkvdec_vp9_run_preamble(ctx, &run);
|
|
if (ret) {
|
|
@@ -824,6 +825,13 @@ static int rkvdec_vp9_run(struct rkvdec_ctx *ctx)
|
|
writel(1, rkvdec->regs + RKVDEC_REG_PREF_CHR_CACHE_COMMAND);
|
|
|
|
writel(0xe, rkvdec->regs + RKVDEC_REG_STRMD_ERR_EN);
|
|
+
|
|
+ /* disable QOS for RK3328 - no effect on other SoCs */
|
|
+ reg = readl(rkvdec->regs + RKVDEC_QOS_CTRL);
|
|
+ reg |= 0xFFFF;
|
|
+ reg &= (~BIT(12));
|
|
+ writel(reg, rkvdec->regs + RKVDEC_QOS_CTRL);
|
|
+
|
|
/* Start decoding! */
|
|
writel(RKVDEC_INTERRUPT_DEC_E | RKVDEC_CONFIG_DEC_CLK_GATE_E |
|
|
RKVDEC_TIMEOUT_E | RKVDEC_BUF_EMPTY_E,
|
|
--
|
|
2.34.1
|
|
|