[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aJHgh8mon9auOHzi@trex>
Date: Tue, 5 Aug 2025 12:44:23 +0200
From: Jorge Ramirez <jorge.ramirez@....qualcomm.com>
To: Dmitry Baryshkov <dmitry.baryshkov@....qualcomm.com>
Cc: Jorge Ramirez-Ortiz <jorge.ramirez@....qualcomm.com>,
bryan.odonoghue@...aro.org, quic_dikshita@...cinc.com,
quic_vgarodia@...cinc.com, konradybcio@...nel.org, krzk+dt@...nel.org,
mchehab@...nel.org, conor+dt@...nel.org, andersson@...nel.org,
linux-media@...r.kernel.org, linux-arm-msm@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v8 5/7] media: venus: core: Add qcm2290 DT compatible and
resource data
On 05/08/25 13:04:50, Dmitry Baryshkov wrote:
> On Tue, Aug 05, 2025 at 08:44:28AM +0200, Jorge Ramirez-Ortiz wrote:
> > Add a qcm2290 compatible binding to the Cenus core.
> >
> > The maximum concurrency is video decode at 1920x1080 (FullHD) with video
> > encode at 1280x720 (HD).
> >
> > The driver is not available to firmware versions below 6.0.55 due to an
> > internal requirement for secure buffers.
> >
> > The bandwidth tables incorporate a conservative safety margin to ensure
> > stability under peak DDR and interconnect load conditions.
> >
> > Co-developed-by: Loic Poulain <loic.poulain@....qualcomm.com>
> > Signed-off-by: Loic Poulain <loic.poulain@....qualcomm.com>
> > Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez@....qualcomm.com>
> > Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@...aro.org>
> > Reviewed-by: Dikshita Agarwal <quic_dikshita@...cinc.com>
> > ---
> > drivers/media/platform/qcom/venus/core.c | 50 ++++++++++++++++++++++++
> > 1 file changed, 50 insertions(+)
> >
> > diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
> > index adc38fbc9d79..753a16f53622 100644
> > --- a/drivers/media/platform/qcom/venus/core.c
> > +++ b/drivers/media/platform/qcom/venus/core.c
> > @@ -1070,6 +1070,55 @@ static const struct venus_resources sc7280_res = {
> > .enc_nodename = "video-encoder",
> > };
> >
> > +static const struct bw_tbl qcm2290_bw_table_dec[] = {
> > + { 352800, 597000, 0, 746000, 0 }, /* 1080p@30 + 720p@30 */
> > + { 244800, 413000, 0, 516000, 0 }, /* 1080p@30 */
> > + { 216000, 364000, 0, 454000, 0 }, /* 720p@60 */
> > + { 108000, 182000, 0, 227000, 0 }, /* 720p@30 */
> > +};
> > +
> > +static const struct bw_tbl qcm2290_bw_table_enc[] = {
> > + { 352800, 396000, 0, 0, 0 }, /* 1080p@30 + 720p@30 */
> > + { 244800, 275000, 0, 0, 0 }, /* 1080p@30 */
> > + { 216000, 242000, 0, 0, 0 }, /* 720p@60 */
> > + { 108000, 121000, 0, 0, 0 }, /* 720p@30 */
> > +};
> > +
> > +static const struct firmware_version min_fw = {
> > + .major = 6, .minor = 0, .rev = 55,
> > +};
>
> This will make venus driver error out with the firmware which is
> available in Debian trixie (and possibly other distributions). If I
> remember correctly, the driver can work with that firmware with the
> limited functionality. Can we please support that instead of erroring
> out completely?
yes, in V7 I did implement this functionality plus a fix for EOS
handling (broken in pre 6.0.55 firmwares).
This added some complexity to the driver. And so in internal discussions
it was agreed that it was not worth to carry it and that it should be dropped.
I'll let Vikash and Bryan comment on the decision.
>
> > @@ -1080,6 +1129,7 @@ static const struct of_device_id venus_dt_match[] = {
> > { .compatible = "qcom,sc7180-venus", .data = &sc7180_res, },
> > { .compatible = "qcom,sc7280-venus", .data = &sc7280_res, },
> > { .compatible = "qcom,sm8250-venus", .data = &sm8250_res, },
> > + { .compatible = "qcom,qcm2290-venus", .data = &qcm2290_res, },
>
> Please keep the table sorted.
argh...sure
>
> > { }
> > };
> > MODULE_DEVICE_TABLE(of, venus_dt_match);
> > --
> > 2.34.1
> >
>
> --
> With best wishes
> Dmitry
Powered by blists - more mailing lists