[PATCH 09/39] drm/imx: dc: ed: Rework dc_ed_pec_src_sel() to drop ARRAY_SIZE() use
Frank Li
Frank.li at nxp.com
Mon Oct 13 11:24:10 PDT 2025
On Sat, Oct 11, 2025 at 06:51:24PM +0200, Marek Vasut wrote:
> Rework dc_ed_pec_src_sel() to drop ARRAY_SIZE() use and use new sentinel
> trailing entry LINK_ID_LAST to stop iterating over src_sels array instead.
> This allows passing of this array around as OF match data, which will be
> useful when using this pipeline on i.MX95, which has different src_sels
> array.
>
> Signed-off-by: Marek Vasut <marek.vasut at mailbox.org>
> ---
Reviewed-by: Frank Li <Frank.Li at nxp.com>
> Cc: Abel Vesa <abelvesa at kernel.org>
> Cc: Conor Dooley <conor+dt at kernel.org>
> Cc: Fabio Estevam <festevam at gmail.com>
> Cc: Krzysztof Kozlowski <krzk+dt at kernel.org>
> Cc: Laurent Pinchart <Laurent.pinchart at ideasonboard.com>
> Cc: Liu Ying <victor.liu at nxp.com>
> Cc: Lucas Stach <l.stach at pengutronix.de>
> Cc: Peng Fan <peng.fan at nxp.com>
> Cc: Pengutronix Kernel Team <kernel at pengutronix.de>
> Cc: Rob Herring <robh at kernel.org>
> Cc: Shawn Guo <shawnguo at kernel.org>
> Cc: Thomas Zimmermann <tzimmermann at suse.de>
> Cc: devicetree at vger.kernel.org
> Cc: dri-devel at lists.freedesktop.org
> Cc: imx at lists.linux.dev
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-clk at vger.kernel.org
> ---
> drivers/gpu/drm/imx/dc/dc-ed.c | 7 ++++---
> drivers/gpu/drm/imx/dc/dc-pe.h | 1 +
> 2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/imx/dc/dc-ed.c b/drivers/gpu/drm/imx/dc/dc-ed.c
> index 9a141c6aa0812..2fdd22a903dec 100644
> --- a/drivers/gpu/drm/imx/dc/dc-ed.c
> +++ b/drivers/gpu/drm/imx/dc/dc-ed.c
> @@ -116,6 +116,7 @@ static const enum dc_link_id src_sels[] = {
> LINK_ID_LAYERBLEND2_MX8QXP,
> LINK_ID_LAYERBLEND1_MX8QXP,
> LINK_ID_LAYERBLEND0_MX8QXP,
> + LINK_ID_LAST /* sentinel */
> };
>
> static inline void dc_ed_pec_enable_shden(struct dc_ed *ed)
> @@ -141,10 +142,10 @@ static inline void dc_ed_pec_div_reset(struct dc_ed *ed)
>
> void dc_ed_pec_src_sel(struct dc_ed *ed, enum dc_link_id src)
> {
> - int i;
> + int i = 0;
>
> - for (i = 0; i < ARRAY_SIZE(src_sels); i++) {
> - if (src_sels[i] == src) {
> + while (src_sels[i] != LINK_ID_LAST) {
> + if (src_sels[i++] == src) {
> regmap_write(ed->reg_pec, PIXENGCFG_DYNAMIC, src);
> return;
> }
> diff --git a/drivers/gpu/drm/imx/dc/dc-pe.h b/drivers/gpu/drm/imx/dc/dc-pe.h
> index 866859403a79d..1e1e04cc39d4b 100644
> --- a/drivers/gpu/drm/imx/dc/dc-pe.h
> +++ b/drivers/gpu/drm/imx/dc/dc-pe.h
> @@ -33,6 +33,7 @@ enum dc_link_id {
> LINK_ID_LAYERBLEND1_MX8QXP = 0x22,
> LINK_ID_LAYERBLEND2_MX8QXP = 0x23,
> LINK_ID_LAYERBLEND3_MX8QXP = 0x24,
> + LINK_ID_LAST = 0xffffffff, /* sentinel */
> };
>
> enum dc_lb_mode {
> --
> 2.51.0
>
More information about the linux-arm-kernel
mailing list