提交 9998943f 编写于 作者: N Nicolas Dufresne 提交者: Mauro Carvalho Chehab

media: rkvdec: Stop overclocking the decoder

While this overclock hack seems to work on some implementations
(some ChromeBooks, RockPi4) it also causes instability on other
implementations (notably LibreComputer Renegade, but there were more
reports in the LibreELEC project, where this has been removed). While
performance is indeed affected (tested with GStreamer), 4K playback
still works as long as you don't operate in lock step and keep at
least 1 frame ahead of time in the decode queue.

After discussion with ChromeOS members, it would seem that their
implementation indeed used to synchronously decode each frame, so
this hack was simply compensating for their code being less
efficient. In my opinion, this hack should not have been included
upstream.

Fixes: cd33c830 ("media: rkvdec: Add the rkvdec driver")
Signed-off-by: NNicolas Dufresne <nicolas.dufresne@collabora.com>
Reviewed-by: NSebastian Fricke <sebastian.fricke@collabora.com>
Reviewed-by: NEzequiel Garcia <ezequiel@vanguardiasur.com.ar>
Signed-off-by: NHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: NMauro Carvalho Chehab <mchehab@kernel.org>
上级 1b729998
...@@ -1027,12 +1027,6 @@ static int rkvdec_probe(struct platform_device *pdev) ...@@ -1027,12 +1027,6 @@ static int rkvdec_probe(struct platform_device *pdev)
if (ret) if (ret)
return ret; return ret;
/*
* Bump ACLK to max. possible freq. (500 MHz) to improve performance
* When 4k video playback.
*/
clk_set_rate(rkvdec->clocks[0].clk, 500 * 1000 * 1000);
rkvdec->regs = devm_platform_ioremap_resource(pdev, 0); rkvdec->regs = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(rkvdec->regs)) if (IS_ERR(rkvdec->regs))
return PTR_ERR(rkvdec->regs); return PTR_ERR(rkvdec->regs);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册