Marc Gonzalez
9ff328de02
clk: qcom: mmcc-msm8998: fix venus clock issue
[ Upstream commit e20ae5ae9f0c843aded4f06f3d1cab7384789e92 ]
Right now, msm8998 video decoder (venus) is non-functional:
$ time mpv --hwdec=v4l2m2m-copy --vd-lavc-software-fallback=no --vo=null --no-audio --untimed --length=30 --quiet demo-480.webm
(+) Video --vid=1 (*) (vp9 854x480 29.970fps)
Audio --aid=1 --alang=eng (*) (opus 2ch 48000Hz)
[ffmpeg/video] vp9_v4l2m2m: output VIDIOC_REQBUFS failed: Connection timed out
[ffmpeg/video] vp9_v4l2m2m: no v4l2 output context's buffers
[ffmpeg/video] vp9_v4l2m2m: can't configure decoder
Could not open codec.
Software decoding fallback is disabled.
Exiting... (Quit)
Bryan O'Donoghue suggested the proper fix:
- Set required register offsets in venus GDSC structs.
- Set HW_CTRL flag.
$ time mpv --hwdec=v4l2m2m-copy --vd-lavc-software-fallback=no --vo=null --no-audio --untimed --length=30 --quiet demo-480.webm
(+) Video --vid=1 (*) (vp9 854x480 29.970fps)
Audio --aid=1 --alang=eng (*) (opus 2ch 48000Hz)
[ffmpeg/video] vp9_v4l2m2m: VIDIOC_G_FMT ioctl
[ffmpeg/video] vp9_v4l2m2m: VIDIOC_G_FMT ioctl
...
Using hardware decoding (v4l2m2m-copy).
VO: [null] 854x480 nv12
Exiting... (End of file)
real 0m3.315s
user 0m1.277s
sys 0m0.453s
NOTES:
GDSC = Globally Distributed Switch Controller
Use same code as mmcc-msm8996 with:
s/venus_gdsc/video_top_gdsc/
s/venus_core0_gdsc/video_subcore0_gdsc/
s/venus_core1_gdsc/video_subcore1_gdsc/
https://git.codelinaro.org/clo/la/kernel/msm-4.4/-/blob/caf_migration/kernel.lnx.4.4.r38-rel/include/dt-bindings/clock/msm-clocks-hwio-8996.h
https://git.codelinaro.org/clo/la/kernel/msm-4.4/-/blob/caf_migration/kernel.lnx.4.4.r38-rel/include/dt-bindings/clock/msm-clocks-hwio-8998.h
0x1024 = MMSS_VIDEO GDSCR (undocumented)
0x1028 = MMSS_VIDEO_CORE_CBCR
0x1030 = MMSS_VIDEO_AHB_CBCR
0x1034 = MMSS_VIDEO_AXI_CBCR
0x1038 = MMSS_VIDEO_MAXI_CBCR
0x1040 = MMSS_VIDEO_SUBCORE0 GDSCR (undocumented)
0x1044 = MMSS_VIDEO_SUBCORE1 GDSCR (undocumented)
0x1048 = MMSS_VIDEO_SUBCORE0_CBCR
0x104c = MMSS_VIDEO_SUBCORE1_CBCR
Fixes: d14b15b5931c2b ("clk: qcom: Add MSM8998 Multimedia Clock Controller (MMCC) driver")
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Marc Gonzalez <mgonzalez@freebox.fr>
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Link: https://lore.kernel.org/r/ff4e2e34-a677-4c39-8c29-83655c5512ae@freebox.fr
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-06-16 13:32:13 +02:00
..
2022-04-08 14:40:26 +02:00
2019-05-21 10:50:46 +02:00
2023-05-17 11:48:00 +02:00
2019-06-19 17:09:55 +02:00
2019-10-16 16:17:50 -07:00
2022-10-26 13:25:39 +02:00
2022-10-26 13:25:54 +02:00
2022-10-26 13:25:31 +02:00
2020-10-22 12:53:28 -07:00
2019-05-21 10:50:46 +02:00
2024-03-26 18:21:58 -04:00
2020-06-14 01:57:21 +09:00
2023-11-20 11:06:47 +01:00
2022-10-05 10:38:38 +02:00
2023-11-20 11:06:47 +01:00
2022-04-08 14:40:26 +02:00
2023-11-20 11:06:48 +01:00
2022-10-26 13:25:31 +02:00
2019-12-23 18:53:13 -08:00
2024-02-23 08:42:12 +01:00
2021-11-18 14:04:14 +01:00
2019-05-30 11:26:37 -07:00
2019-05-30 11:26:37 -07:00
2019-06-05 17:37:15 +02:00
2020-10-13 19:49:11 -07:00
2024-06-16 13:32:13 +02:00
2023-03-11 16:39:42 +01:00
2024-01-25 14:37:37 -08:00
2023-01-14 10:15:40 +01:00
2020-06-25 15:04:13 -07:00
2020-10-13 19:54:30 -07:00
2023-01-14 10:15:42 +01:00
2020-07-16 12:32:26 -07:00
2023-04-20 12:10:25 +02:00
2023-01-14 10:16:19 +01:00
2022-05-09 09:05:04 +02:00
2024-05-17 11:48:02 +02:00
2023-10-10 21:53:30 +02:00
2023-11-20 11:06:47 +01:00
2022-04-08 14:39:50 +02:00
2020-01-04 23:27:15 -08:00
2020-09-10 00:57:42 -07:00
2023-02-25 11:55:02 +01:00
2019-08-16 10:20:15 -07:00
2019-06-05 17:37:13 +02:00
2024-01-25 14:37:49 -08:00
2023-11-20 11:06:47 +01:00
2019-11-26 10:02:48 -08:00
2019-09-06 15:17:02 -07:00
2022-10-26 13:25:40 +02:00
2020-10-13 19:44:40 -07:00
2019-06-19 17:09:55 +02:00
2020-01-24 07:22:47 +00:00
2022-01-27 10:54:09 +01:00
2019-09-17 13:26:31 -07:00
2020-07-10 17:15:34 -07:00
2023-07-27 08:43:54 +02:00
2022-04-08 14:40:26 +02:00
2020-08-22 12:38:06 +08:00
2023-05-17 11:48:01 +02:00
2023-08-30 16:23:14 +02:00
2021-03-04 11:38:06 +01:00
2019-06-19 17:09:55 +02:00
2020-09-22 12:44:14 -07:00
2019-05-15 13:21:37 -07:00
2024-01-25 14:37:49 -08:00
2019-05-15 13:21:37 -07:00
2020-12-30 11:53:42 +01:00
2020-07-16 12:35:15 -07:00
2020-07-10 17:15:34 -07:00
2019-06-05 17:36:37 +02:00
2019-05-30 11:29:52 -07:00
2020-05-28 21:06:39 -07:00
2019-08-16 10:20:07 -07:00
2019-02-06 10:35:03 -08:00
2019-08-16 10:20:15 -07:00
2019-05-15 13:21:37 -07:00
2020-01-06 23:10:05 -08:00
2019-05-30 11:29:22 -07:00
2023-11-20 11:06:47 +01:00
2019-06-19 17:09:55 +02:00
2022-10-26 13:25:31 +02:00
2020-02-03 23:03:49 -08:00
2020-06-17 20:42:10 +02:00
2022-10-26 13:25:31 +02:00
2019-07-15 20:18:40 -07:00
2020-12-30 11:54:01 +01:00
2023-11-20 11:06:50 +01:00
2019-05-30 11:29:52 -07:00
2019-05-30 11:26:37 -07:00
2019-06-27 13:45:38 -07:00
2019-05-30 11:26:37 -07:00
2024-01-25 14:37:49 -08:00
2020-07-10 17:15:34 -07:00
2019-05-30 11:26:32 -07:00
2020-07-28 18:17:56 -07:00
2022-01-27 10:54:07 +01:00
2019-04-29 11:13:23 -07:00
2019-06-05 17:37:07 +02:00
2019-05-30 11:29:22 -07:00
2023-07-27 08:43:54 +02:00
2019-06-05 17:36:37 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:35 -07:00
2024-05-17 11:48:05 +02:00
2019-07-12 11:00:14 -07:00
2019-06-19 17:09:55 +02:00
2023-09-19 12:20:05 +02:00
2020-07-28 18:17:56 -07:00