[PATCH v9 1/6] media: verisilicon: Do not set context src/dst formats in reset functions
Thorsten Leemhuis
linux at leemhuis.info
Mon May 1 00:21:53 PDT 2023
On 27.04.23 00:19, Shreeya Patel wrote:
> On 20/02/23 16:18, Benjamin Gaignard wrote:
>> Setting context source and destination formats should only be done
>> in hantro_set_fmt_out() and hantro_set_fmt_cap() after check that
>> the targeted queue is not busy.
>> Remove these calls from hantro_reset_encoded_fmt() and
>> hantro_reset_raw_fmt() to clean the driver.
>>
>> Signed-off-by: Benjamin Gaignard <benjamin.gaignard at collabora.com>
>
> KernelCI found this patch causes a regression in the
> baseline.dmesg.alert test [1] on rk3399-rock-pi-4b [2],
> see the bisection report for more details [3].
>
> Let us know if you have any questions.
>
>
> [1]
> https://github.com/kernelci/kernelci-core/blob/main/config/rootfs/debos/overlays/baseline/opt/kernelci/dmesg.sh
> [2] https://linux.kernelci.org/test/case/id/6442e825f19134d74c2e865d/
> [3] https://groups.io/g/kernelci-results/message/40740
Thx for the report. FWIW, regzbot noticed there is a patch that refers
to the culprit that might have been landed in next after your test ran
for the last time (and meanwhile it was mainlined): f100ce3bbd6 ("media:
verisilicon: Fix crash when probing encoder")
I wonder if that is related or might even fix the issue.
Ciao, Thorsten
>> ---
>> drivers/media/platform/verisilicon/hantro_v4l2.c | 9 ++-------
>> 1 file changed, 2 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/media/platform/verisilicon/hantro_v4l2.c
>> b/drivers/media/platform/verisilicon/hantro_v4l2.c
>> index c0d427956210..d8aa42bd4cd4 100644
>> --- a/drivers/media/platform/verisilicon/hantro_v4l2.c
>> +++ b/drivers/media/platform/verisilicon/hantro_v4l2.c
>> @@ -382,13 +382,10 @@ hantro_reset_encoded_fmt(struct hantro_ctx *ctx)
>> vpu_fmt = hantro_get_default_fmt(ctx, true);
>> - if (ctx->is_encoder) {
>> - ctx->vpu_dst_fmt = vpu_fmt;
>> + if (ctx->is_encoder)
>> fmt = &ctx->dst_fmt;
>> - } else {
>> - ctx->vpu_src_fmt = vpu_fmt;
>> + else
>> fmt = &ctx->src_fmt;
>> - }
>> hantro_reset_fmt(fmt, vpu_fmt);
>> fmt->width = vpu_fmt->frmsize.min_width;
>> @@ -408,11 +405,9 @@ hantro_reset_raw_fmt(struct hantro_ctx *ctx)
>> raw_vpu_fmt = hantro_get_default_fmt(ctx, false);
>> if (ctx->is_encoder) {
>> - ctx->vpu_src_fmt = raw_vpu_fmt;
>> raw_fmt = &ctx->src_fmt;
>> encoded_fmt = &ctx->dst_fmt;
>> } else {
>> - ctx->vpu_dst_fmt = raw_vpu_fmt;
>> raw_fmt = &ctx->dst_fmt;
>> encoded_fmt = &ctx->src_fmt;
>> }
>
>
More information about the Linux-rockchip
mailing list