Re: [PATCH 0/3] media: mediatek: vcodec: Add driver to support 10bit

From: Nicolas Dufresne
Date: Tue Jul 11 2023 - 15:39:58 EST


Le mardi 11 juillet 2023 à 15:15 -0400, Nicolas Dufresne a écrit :
> Hi,
>
> phew things missing in this cover letter,
>
> Le mardi 11 juillet 2023 à 20:57 +0800, Yunfei Dong a écrit :
> > Define two capture formats V4L2_PIX_FMT_MT2110R and
> > V4L2_PIX_FMT_MT2110T to support 10bit in mt8195, mt8199 and more.
> > Getting the size of each plane again when userspace set 10bit
> > syntax to driver.
> >
> > V4L2_PIX_FMT_MT2110R is used for H264, and V4L2_PIX_FMT_MT2110T
> > is used for AV1/VP9/HEVC.
> >
> > patch 1 Add driver to support 10bit
> > patch 2 Add capture format V4L2_PIX_FMT_MT2110T to support 10bit tile mode
> > patch 3 Add capture format V4L2_PIX_FMT_MT2110R to support 10bit raster mode
> > ---
> > - send the first version v1:
> > - Run 10bit VP9/AV1 fluster test pass.
>
> Please at least provide the score before and after these changes. Full report is
> also nice. You didn't explain why H.264 is not tested.
>
> > - Will return error when the 10bit parameter no correctly in function mtk_vdec_s_ctrl.
> > ---
>
> This cover letter is missing v4l2-compliance report. This is needed whenever
> format mechanism is modified in a driver (not just for new drivers). Please add
> and make sure there is not regression too.
>
> >
> > Reference series:
> > [1]: this series depends on v6 which is send by Yunfei Dong.
> > message-id: 20230704131349.8354-1-yunfei.dong@xxxxxxxxxxxx
>
> Its seems like 6.5.0-rc1 with the depedency and this patchset does not boot on
> MT8195 Chromebooks. Which paltform has this been validated on ?

I've manged to boot it using Collabora for-kernel-ci next kernel, which is based
on media-state/master 6.5.0-rc1. I suspect there is more depedencies then
described which might be pending in other trees. As all the patches are from
other trees submission, I suppose this is fine for now. Notice that the boot log
does not look very promising though, I will do some more testing, but from clean
boot, after udev have filled the HW database:

[ 10.399826] mt7921e 0000:01:00.0: WM Firmware Version: ____010000, Build Time: 20230117170942
[ 11.882202] mtk-vcodec-dec 18000000.video-codec: [MTK_V4L2][ERROR] Not supported ctrl id: 0xa40903
[ 11.882202]
[ 11.910945] mtk-vcodec-dec 18000000.video-codec: [MTK_V4L2][ERROR] Not supported ctrl id: 0xa40903

This is produced when udev calls /usr/lib/udev/v4l_id, I don't think its doing
anything that would explain error logs.

regards,
Nicolas

>
>
> For the record:
>
>
> [ 13.286252] platform 1c015000.dp-intf: deferred probe pending
> [ 13.292007] platform 1c113000.dp-intf: deferred probe pending
> [ 28.523484] rcu: INFO: rcu_preempt self-detected stall on CPU
> [ 28.529231] rcu: 5-....: (5250 ticks this GP)
> idle=51c4/1/0x4000000000000000 softirq=1434/1447 fqs=2471
> [ 28.538706] rcu: (t=5254 jiffies g=-119 q=13320 ncpus=8)
> [ 28.544095] Task dump for CPU 0:
> [ 28.547313] task:cpuhp/0 state:R running task stack:0 pid:17
> ppid:2 flags:0x0000000a
> [ 28.557221] Call trace:
> [ 28.559658] __switch_to+0xe4/0x15c
> [ 28.563147] 0xffff776000196740
> [ 28.566282] CPU: 5 PID: 1 Comm: systemd Not tainted 6.5.0-rc1+ #36
> [ 28.572453] Hardware name: Acer Tomato (rev3 - 4) board (DT)
> [ 28.578101] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [ 28.585053] pc : smp_call_function_single+0x1a4/0x1bc
> [ 28.590098] lr : smp_call_function_single+0x178/0x1bc
> [ 28.595140] sp : ffff80008008b9c0
> [ 28.598444] x29: ffff80008008b9c0 x28: ffff80008008bb90 x27: ffff77600515c858
> [ 28.605572] x26: ffff80008008bbb0 x25: 00000000ffffffff x24: 0000000000000000
> [ 28.612699] x23: 00000000fffffff5 x22: ffffd0fcb8de9b50 x21: ffff80008008bbb0
> [ 28.619825] x20: ffffd0fcb8de2af4 x19: ffff80008008ba00 x18: 0000000000000000
> [ 28.626952] x17: ffffa66484655000 x16: ffff800080028000 x15: 000000079c8b8c8b
> [ 28.634078] x14: 00000000000001c1 x13: 00000000000001c1 x12: 0000000000000000
> [ 28.641204] x11: 0000000000000031 x10: ffff77613ef540c0 x9 : 0000000000000000
> [ 28.648331] x8 : ffff77613ef54140 x7 : 0000000000000005 x6 : ffffd0fcb8de2af4
> [ 28.655458] x5 : 0000000000000001 x4 : 0000000000000040 x3 : ffff80008008ba08
> [ 28.662585] x2 : 0000000000000000 x1 : 0000000000000011 x0 : 0000000000000000
> [ 28.669711] Call trace:
> [ 28.672148] smp_call_function_single+0x1a4/0x1bc
> [ 28.676843] perf_cgroup_attach+0x74/0xd8
> [ 28.680847] cgroup_migrate_execute+0x374/0x444
> [ 28.685368] cgroup_migrate+0x74/0x8c
> [ 28.689021] cgroup_attach_task+0x114/0x120
> [ 28.693195] __cgroup_procs_write+0x108/0x230
> [ 28.697543] cgroup_procs_write+0x1c/0x34
> [ 28.701543] cgroup_file_write+0xa0/0x1a4
> [ 28.705545] kernfs_fop_write_iter+0x118/0x1a8
> [ 28.709983] vfs_write+0x2d0/0x39c
> [ 28.713376] ksys_write+0x68/0xf4
> [ 28.716682] __arm64_sys_write+0x1c/0x28
> [ 28.720594] invoke_syscall+0x48/0x114
> [ 28.724337] el0_svc_common.constprop.0+0x44/0xe4
> [ 28.729034] do_el0_svc+0x38/0xa4
> [ 28.732341] el0_svc+0x2c/0x84
> [ 28.735386] el0t_64_sync_handler+0xc0/0xc4
> [ 28.739561] el0t_64_sync+0x190/0x194
> [ 33.759553] vproc2: disabling
> [ 33.762551] vproc1: disabling
> [ 33.765548] vaud18: disabling
> [ 33.768760] va09: disabling
> [ 33.771599] vsram_md: disabling
> [ 91.755483] rcu: INFO: rcu_preempt self-detected stall on CPU
> [ 91.761220] rcu: 5-....: (21005 ticks this GP)
> idle=51c4/1/0x4000000000000000 softirq=1434/1447 fqs=8569
> [ 91.770778] rcu: (t=21062 jiffies g=-119 q=13628 ncpus=8)
> [ 91.776253] Task dump for CPU 0:
> [ 91.779471] task:cpuhp/0 state:R running task stack:0 pid:17
> ppid:2 flags:0x0000000a
> [ 91.789376] Call trace:
> [ 91.791812] __switch_to+0xe4/0x15c
> [ 91.795294] 0xffff776000196740
> [ 91.798426] CPU: 5 PID: 1 Comm: systemd Not tainted 6.5.0-rc1+ #36
> [ 91.804597] Hardware name: Acer Tomato (rev3 - 4) board (DT)
> [ 91.810244] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [ 91.817195] pc : smp_call_function_single+0x1a4/0x1bc
> [ 91.822237] lr : smp_call_function_single+0x178/0x1bc
> [ 91.827278] sp : ffff80008008b9c0
> [ 91.830582] x29: ffff80008008b9c0 x28: ffff80008008bb90 x27: ffff77600515c858
> [ 91.837709] x26: ffff80008008bbb0 x25: 00000000ffffffff x24: 0000000000000000
> [ 91.844835] x23: 00000000fffffff5 x22: ffffd0fcb8de9b50 x21: ffff80008008bbb0
> [ 91.851962] x20: ffffd0fcb8de2af4 x19: ffff80008008ba00 x18: 0000000000000000
> [ 91.859089] x17: ffffa66484655000 x16: ffff800080028000 x15: 000000079c8b8c8b
> [ 91.866215] x14: 00000000000001c1 x13: 00000000000001c1 x12: 0000000000000000
> [ 91.873342] x11: 0000000000000031 x10: ffff77613ef540c0 x9 : 0000000000000000
> [ 91.880468] x8 : ffff77613ef54140 x7 : 0000000000000005 x6 : ffffd0fcb8de2af4
> [ 91.887595] x5 : 0000000000000001 x4 : 0000000000000040 x3 : ffff80008008ba08
> [ 91.894721] x2 : 0000000000000000 x1 : 0000000000000011 x0 : 0000000000000000
> [ 91.901848] Call trace:
> [ 91.904284] smp_call_function_single+0x1a4/0x1bc
> [ 91.908979] perf_cgroup_attach+0x74/0xd8
> [ 91.912981] cgroup_migrate_execute+0x374/0x444
> [ 91.917502] cgroup_migrate+0x74/0x8c
> [ 91.921155] cgroup_attach_task+0x114/0x120
> [ 91.925329] __cgroup_procs_write+0x108/0x230
> [ 91.929677] cgroup_procs_write+0x1c/0x34
> [ 91.933677] cgroup_file_write+0xa0/0x1a4
> [ 91.937679] kernfs_fop_write_iter+0x118/0x1a8
> [ 91.942117] vfs_write+0x2d0/0x39c
> [ 91.945509] ksys_write+0x68/0xf4
> [ 91.948814] __arm64_sys_write+0x1c/0x28
> [ 91.952726] invoke_syscall+0x48/0x114
> [ 91.956467] el0_svc_common.constprop.0+0x44/0xe4
> [ 91.961164] do_el0_svc+0x38/0xa4
> [ 91.964472] el0_svc+0x2c/0x84
> [ 91.967517] el0t_64_sync_handler+0xc0/0xc4
> [ 91.971691] el0t_64_sync+0x190/0x194
> [ 154.987483] rcu: INFO: rcu_preempt self-detected stall on CPU
> [ 154.993218] rcu: 5-....: (36760 ticks this GP)
> idle=51c4/1/0x4000000000000000 softirq=1434/1447 fqs=14547
> [ 155.002862] rcu: (t=36870 jiffies g=-119 q=13628 ncpus=8)
> [ 155.008337] Task dump for CPU 0:
> [ 155.011554] task:cpuhp/0 state:R running task stack:0 pid:17
> ppid:2 flags:0x0000000a
> [ 155.021458] Call trace:
> [ 155.023894] __switch_to+0xe4/0x15c
> [ 155.027376] 0xffff776000196740
> [ 155.030507] CPU: 5 PID: 1 Comm: systemd Not tainted 6.5.0-rc1+ #36
> [ 155.036676] Hardware name: Acer Tomato (rev3 - 4) board (DT)
> [ 155.042323] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [ 155.049274] pc : smp_call_function_single+0x1a4/0x1bc
> [ 155.054316] lr : smp_call_function_single+0x178/0x1bc
> [ 155.059358] sp : ffff80008008b9c0
> [ 155.062662] x29: ffff80008008b9c0 x28: ffff80008008bb90 x27: ffff77600515c858
> [ 155.069788] x26: ffff80008008bbb0 x25: 00000000ffffffff x24: 0000000000000000
> [ 155.076914] x23: 00000000fffffff5 x22: ffffd0fcb8de9b50 x21: ffff80008008bbb0
> [ 155.084041] x20: ffffd0fcb8de2af4 x19: ffff80008008ba00 x18: 0000000000000000
> [ 155.091168] x17: ffffa66484655000 x16: ffff800080028000 x15: 000000079c8b8c8b
> [ 155.098294] x14: 00000000000001c1 x13: 00000000000001c1 x12: 0000000000000000
> [ 155.105421] x11: 0000000000000031 x10: ffff77613ef540c0 x9 : 0000000000000000
> [ 155.112548] x8 : ffff77613ef54140 x7 : 0000000000000005 x6 : ffffd0fcb8de2af4
> [ 155.119675] x5 : 0000000000000001 x4 : 0000000000000040 x3 : ffff80008008ba08
> [ 155.126801] x2 : 0000000000000000 x1 : 0000000000000011 x0 : 0000000000000000
> [ 155.133928] Call trace:
> [ 155.136363] smp_call_function_single+0x1a4/0x1bc
> [ 155.141059] perf_cgroup_attach+0x74/0xd8
> [ 155.145060] cgroup_migrate_execute+0x374/0x444
> [ 155.149581] cgroup_migrate+0x74/0x8c
> [ 155.153234] cgroup_attach_task+0x114/0x120
> [ 155.157408] __cgroup_procs_write+0x108/0x230
> [ 155.161755] cgroup_procs_write+0x1c/0x34
> [ 155.165756] cgroup_file_write+0xa0/0x1a4
> [ 155.169757] kernfs_fop_write_iter+0x118/0x1a8
> [ 155.174195] vfs_write+0x2d0/0x39c
> [ 155.177587] ksys_write+0x68/0xf4
> [ 155.180893] __arm64_sys_write+0x1c/0x28
> [ 155.184805] invoke_syscall+0x48/0x114
> [ 155.188547] el0_svc_common.constprop.0+0x44/0xe4
> [ 155.193243] do_el0_svc+0x38/0xa4
> [ 155.196551] el0_svc+0x2c/0x84
> [ 155.199595] el0t_64_sync_handler+0xc0/0xc4
> [ 155.203769] el0t_64_sync+0x190/0x194
>
>
> >
> > Mingjia Zhang (3):
> > media: mediatek: vcodec: Add capture format to support 10bit tile mode
> > media: mediatek: vcodec: Add capture format to support 10bit raster
> > mode
> > media: mediatek: vcodec: Add driver to support 10bit
> >
> > .../media/v4l/pixfmt-reserved.rst | 15 ++
> > .../mediatek/vcodec/decoder/mtk_vcodec_dec.c | 22 ++-
> > .../vcodec/decoder/mtk_vcodec_dec_drv.h | 5 +
> > .../vcodec/decoder/mtk_vcodec_dec_stateless.c | 140 +++++++++++++++++-
> > drivers/media/v4l2-core/v4l2-common.c | 4 +
> > drivers/media/v4l2-core/v4l2-ioctl.c | 2 +
> > include/uapi/linux/videodev2.h | 2 +
> > 7 files changed, 186 insertions(+), 4 deletions(-)
> >
>