Re: [PATCH v4] venus: Enable sufficient sequence change support for sc7180 and fix for Decoder STOP command issue.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 29 Mar 2023 at 20:16, Vikash Garodia <quic_vgarodia@xxxxxxxxxxx> wrote:
>
>
> On 3/29/2023 7:06 PM, Dmitry Baryshkov wrote:
> > 29 марта 2023 г. 10:48:23 GMT+03:00, Vikash Garodia <quic_vgarodia@xxxxxxxxxxx> пишет:
> >> On 3/29/2023 3:49 AM, Dmitry Baryshkov wrote:
> >>> On 23/03/2023 15:01, Viswanath Boma wrote:
> >>>> For VP9 bitstreams, there could be a change in resolution at interframe,
> >>>> for driver to get notified of such resolution change,
> >>>> enable the property in video firmware.
> >>>> Also, EOS handling is now made same in video firmware across all V6 SOCs,
> >>>> hence above a certain firmware version, the driver handling is
> >>>> made generic for all V6s
> >>> Having "Do abc. Also do defgh." is a clear sign that this patch should be split into two.
> >> I agree, it could have split into patches. The patch introduces way to store venus firmware
> >>
> >> version and take some decision for various version. For ex. here STOP handling and enabling
> >>
> >> DRC event for specific firmware revision and onwards. Since both the handling was primarily
> >>
> >> dependent of firmware version, and since the handlings were smaller, it was combined as single
> >>
> >> patch. Let me know, if you have any further review comments, else, will raise a new version with
> >>
> >> 2 patches probably.
> > Thanks!
> >
> >>>> Signed-off-by: Vikash Garodia <vgarodia@xxxxxxxxxxxxxxxx>
> >>>> Signed-off-by: Viswanath Boma <quic_vboma@xxxxxxxxxxx>
> >>>> Tested-by: Nathan Hebert <nhebert@xxxxxxxxxxxx>
> >>>> ---
> >>>> Since v3 : Addressed comments to rectify email address.
> >>>>
> >>>>    drivers/media/platform/qcom/venus/core.h       | 18 ++++++++++++++++++
> >>>>    drivers/media/platform/qcom/venus/hfi_cmds.c   |  1 +
> >>>>    drivers/media/platform/qcom/venus/hfi_helper.h |  2 ++
> >>>>    drivers/media/platform/qcom/venus/hfi_msgs.c   | 11 +++++++++--
> >>>>    drivers/media/platform/qcom/venus/vdec.c       | 12 +++++++++++-
> >>>>    5 files changed, 41 insertions(+), 3 deletions(-)
> >>>>
> > (Skipped)
> >
> >
> >
> >>>> @@ -671,6 +671,16 @@ static int vdec_set_properties(struct venus_inst *inst)
> >>>>                return ret;
> >>>>        }
> >>>>    +    /* Enabling sufficient sequence change support for VP9 */
> >>>> +    if (of_device_is_compatible(inst->core->dev->of_node, "qcom,sc7180-venus")) {
> >>> Let me repeat my question from v3:
> >>>
> >>> Is it really specific just to sc7180 or will it be applicable to any
> >>> other platform using venus-5.4 firmware?
> >> The HFI "HFI_PROPERTY_PARAM_VDEC_ENABLE_SUFFICIENT_SEQCHANGE_EVENT" is implemented
> >>
> >> only for sc7180. Calling this for any other venus-5.4 would error out the session with error as
> >>
> >> unsupported property from firmware.
> >
> > How can we be sure that other platforms do not end up using sc7180 firmware? Or that sc7180 didn't end up using some other firmware?
> >
> > I see generic  qcom/venus-5.4/venus.mbn in Linux firmware. It's version is VIDEO.VE.5.4-00053-PROD-1. It can be used with any unfused device which uses firmware 5.4
>
> Driver defines resources for every platforms and there it specifies the
> firmware to be used for that platform. For ex, for sc7180, the firmware
> is specified at [1].

And note that the firmware doesn't have an SoC name in it. This file
will be used by all unfused devices that use 5.4 firmware family.

> The various firmware supported by different platforms are also available
> in linux firmware.
>
> [1]
> https://elixir.bootlin.com/linux/v6.3-rc4/source/drivers/media/platform/qcom/venus/core.c#L765

And in that file sc7180 is the only platform having firmware 5.4.

I think that the check for sc7180 is redundant. Just check that the
firmware is from 5.4 family and it is 5.4.51 or newer.

> >>>> +        if (is_fw_rev_or_newer(inst->core, 5, 4, 51)) {
> >>>> +            ptype = HFI_PROPERTY_PARAM_VDEC_ENABLE_SUFFICIENT_SEQCHANGE_EVENT;
> >>>> +            ret = hfi_session_set_property(inst, ptype, &en);
> >>>> +            if (ret)
> >>>> +                return ret;
> >>>> +        }
> >>>> +    }
> >>>> +
> >>>>        ptype = HFI_PROPERTY_PARAM_VDEC_CONCEAL_COLOR;
> >>>>        conceal = ctr->conceal_color & 0xffff;
> >>>>        conceal |= ((ctr->conceal_color >> 16) & 0xffff) << 10;



-- 
With best wishes
Dmitry




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux