From: sashiko-bot@kernel.org
To: "Dmitry Baryshkov" <dmitry.baryshkov@oss.qualcomm.com>
Cc: conor+dt@kernel.org, robh@kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v4 02/16] media: iris: Filter UBWC raw formats based on hardware capabilities
Date: Fri, 12 Jun 2026 09:36:49 +0000 [thread overview]
Message-ID: <20260612093649.8105F1F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260612-iris-ar50lt-v4-2-0abfb74d5b3c@oss.qualcomm.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] The logic to dynamically filter out UBWC raw formats in the video decoder is incomplete and fails to omit the 8-bit UBWC format (QC08C).
- [Medium] Incorrect use of the encoder UBWC version field to validate decoder capabilities.
--
commit a8db7d07b5e1a7229c20919b2735cd3483c3c3ab
Author: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
media: iris: Filter UBWC raw formats based on hardware capabilities
The raw formats supported by Iris were previously advertised unconditionally,
assuming UBWC support on all platforms. Use the UBWC configuration provided
by the platform to dynamically filter raw formats at runtime. If UBWC is
not supported, UBWC-based formats are omitted from the advertised capability
list.
> diff --git a/drivers/media/platform/qcom/iris/iris_vdec.c b/drivers/media/platform/qcom/iris/iris_vdec.c
> index 9e228b70420e4..7da43f312ba98 100644
> --- a/drivers/media/platform/qcom/iris/iris_vdec.c
> +++ b/drivers/media/platform/qcom/iris/iris_vdec.c
[ ... ]
> @@ -82,6 +84,9 @@ static bool check_format(struct iris_inst *inst, u32 pixfmt, u32 type)
> case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE:
> fmt = iris_vdec_formats_cap;
> size = ARRAY_SIZE(iris_vdec_formats_cap);
> + /* Last format is UBWC; drop it if UBWC is unsupported */
> + if (!ubwc->ubwc_enc_version)
> + size--;
[Severity: High]
Does this logic successfully drop all UBWC formats?
Looking at the definition of iris_vdec_formats_cap, it appears there are
multiple UBWC formats interspersed:
static const u32 iris_vdec_formats_cap[] = {
[IRIS_FMT_NV12] = V4L2_PIX_FMT_NV12,
[IRIS_FMT_QC08C] = V4L2_PIX_FMT_QC08C,
[IRIS_FMT_TP10] = V4L2_PIX_FMT_P010,
[IRIS_FMT_QC10C] = V4L2_PIX_FMT_QC10C,
};
By just decrementing the size, it seems we only omit the last format
(QC10C), but QC08C would remain within the array bounds. Could this
cause QC08C to be incorrectly accepted by check_format() on platforms
without UBWC support?
[Severity: Medium]
Should this check use the decoder version instead?
Since this is the video decoder implementation in iris_vdec.c, checking
ubwc->ubwc_enc_version might lead to incorrect filtering on future hardware
platforms where UBWC support differs between the encoder and decoder. Would
ubwc->ubwc_dec_version be more appropriate here?
> break;
> default:
> return false;
> @@ -121,6 +127,9 @@ static u32 find_format_by_index(struct iris_inst *inst, u32 index, u32 type)
> case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE:
> fmt = iris_vdec_formats_cap;
> size = ARRAY_SIZE(iris_vdec_formats_cap);
> + /* Last format is UBWC; drop it if UBWC is unsupported */
> + if (!ubwc->ubwc_enc_version)
> + size--;
[Severity: High]
Does this also result in find_format_by_index() returning a UBWC format?
Because QC08C remains within the decremented array bounds, would querying
index 1 still return V4L2_PIX_FMT_QC08C to userspace even when UBWC is
unsupported?
[Severity: Medium]
Similar to the issue above, should this use ubwc->ubwc_dec_version instead
of ubwc->ubwc_enc_version to properly validate decoder capabilities?
> break;
> default:
> return 0;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260612-iris-ar50lt-v4-0-0abfb74d5b3c@oss.qualcomm.com?part=2
next prev parent reply other threads:[~2026-06-12 9:36 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-12 9:25 [PATCH v4 00/16] media: iris: Add AR50LT core support and enable Agatti platform Dmitry Baryshkov
2026-06-12 9:25 ` [PATCH v4 01/16] media: iris: Skip UBWC configuration when not supported Dmitry Baryshkov
2026-06-12 9:25 ` [PATCH v4 02/16] media: iris: Filter UBWC raw formats based on hardware capabilities Dmitry Baryshkov
2026-06-12 9:36 ` sashiko-bot [this message]
2026-06-12 9:25 ` [PATCH v4 03/16] media: iris: Introduce set_preset_register as a vpu_op Dmitry Baryshkov
2026-06-12 9:25 ` [PATCH v4 04/16] media: iris: Introduce interrupt_init " Dmitry Baryshkov
2026-06-12 9:25 ` [PATCH v4 05/16] media: iris: add vpu op hook to disable ARP buffer Dmitry Baryshkov
2026-06-12 9:25 ` [PATCH v4 06/16] media: iris: Add platform data field for watchdog interrupt mask Dmitry Baryshkov
2026-06-12 9:41 ` sashiko-bot
2026-06-12 9:25 ` [PATCH v4 07/16] media: iris: Add platform flag for instantaneous bandwidth voting Dmitry Baryshkov
2026-06-12 9:46 ` sashiko-bot
2026-06-12 9:25 ` [PATCH v4 08/16] media: iris: skip PIPE if it is not supported by the platform Dmitry Baryshkov
2026-06-12 9:25 ` [PATCH v4 09/16] media: iris: Add framework support for AR50_LITE video core Dmitry Baryshkov
2026-06-12 9:54 ` sashiko-bot
2026-06-12 9:25 ` [PATCH v4 10/16] media: iris: add minimal GET_PROPERTY implementation Dmitry Baryshkov
2026-06-12 9:56 ` sashiko-bot
2026-06-12 9:25 ` [PATCH v4 11/16] media: iris: update buffer requirements based on received info Dmitry Baryshkov
2026-06-12 10:08 ` sashiko-bot
2026-06-12 9:25 ` [PATCH v4 12/16] media: iris: implement support for the Agatti platform Dmitry Baryshkov
2026-06-12 10:25 ` sashiko-bot
2026-06-12 9:25 ` [PATCH v4 13/16] media: iris: Introduce buffer size calculations for AR50LT Dmitry Baryshkov
2026-06-12 10:22 ` sashiko-bot
2026-06-12 9:25 ` [PATCH v4 14/16] media: iris: add Gen2 firmware support on the Agatti platform Dmitry Baryshkov
2026-06-12 10:39 ` sashiko-bot
2026-06-12 9:25 ` [PATCH v4 15/16] media: venus: skip QCM2290 if Iris driver is enabled Dmitry Baryshkov
2026-06-12 10:33 ` sashiko-bot
2026-06-12 9:25 ` [PATCH v4 16/16] media: iris: constify inst_fw_cap_sm8250_dec Dmitry Baryshkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260612093649.8105F1F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox