All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
To: "jempty.liang" <imntjempty@163.com>,
	 Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: dan.scally@ideasonboard.com, jacopo.mondi@ideasonboard.com,
	 mchehab@kernel.org, linux-media@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] media: mali-c55: Fix NULL dev stream alert for tpg sub-device
Date: Tue, 13 Jan 2026 09:55:10 +0100	[thread overview]
Message-ID: <aWYHPKMVFu_QC1Ow@zed> (raw)
In-Reply-To: <20260113075722.143238-1-imntjempty@163.com>

Hi Jempty

On Tue, Jan 13, 2026 at 07:57:22AM +0000, jempty.liang wrote:
> Fix "(NULL device *): collect_streams: sub-device 'mali-c55 tpg'
> does not support streams" by setting `sd->dev = mali_c55->dev`
> for isp/resizer/tpg modules.

The missing device name in the error message is just a symptom, I
think this is a geniunely missing part of the subdevice initalization.

I would re-phrase this as

-------------------------------------------------------------------------------
The subdevices registered by the Mali-C55 driver do not have their
'struct device *dev' member initialized. This is visibile when looking
at debug message, as in example:

"(NULL device *): collect_streams: sub-device 'mali-c55 tpg' does not support streams"

Fix this by initializing the *dev field for each subdevice registered
by the Mali-C55 driver.
-------------------------------------------------------------------------------

I wonder if v4l2_device_register_subdev() shouldn't WARN or if return
an error if sd->dev is not initialized. Laurent, Sakari: opinions ?

Thanks
  j

>
> Signed-off-by: jempty.liang <imntjempty@163.com>
> ---
>  drivers/media/platform/arm/mali-c55/mali-c55-isp.c     | 1 +
>  drivers/media/platform/arm/mali-c55/mali-c55-resizer.c | 1 +
>  drivers/media/platform/arm/mali-c55/mali-c55-tpg.c     | 1 +
>  3 files changed, 3 insertions(+)
>
> diff --git a/drivers/media/platform/arm/mali-c55/mali-c55-isp.c b/drivers/media/platform/arm/mali-c55/mali-c55-isp.c
> index 497f25fbdd13..ce84aad9f1d5 100644
> --- a/drivers/media/platform/arm/mali-c55/mali-c55-isp.c
> +++ b/drivers/media/platform/arm/mali-c55/mali-c55-isp.c
> @@ -610,6 +610,7 @@ int mali_c55_register_isp(struct mali_c55 *mali_c55)
>  	sd->entity.ops = &mali_c55_isp_media_ops;
>  	sd->entity.function = MEDIA_ENT_F_PROC_VIDEO_ISP;
>  	sd->internal_ops = &mali_c55_isp_internal_ops;
> +	sd->dev = mali_c55->dev;
>  	strscpy(sd->name, MALI_C55_DRIVER_NAME " isp", sizeof(sd->name));
>
>  	isp->pads[MALI_C55_ISP_PAD_SINK_VIDEO].flags = MEDIA_PAD_FL_SINK |
> diff --git a/drivers/media/platform/arm/mali-c55/mali-c55-resizer.c b/drivers/media/platform/arm/mali-c55/mali-c55-resizer.c
> index a8d739af74b6..c4f46651dcee 100644
> --- a/drivers/media/platform/arm/mali-c55/mali-c55-resizer.c
> +++ b/drivers/media/platform/arm/mali-c55/mali-c55-resizer.c
> @@ -1070,6 +1070,7 @@ static int mali_c55_register_resizer(struct mali_c55 *mali_c55,
>  	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_STREAMS;
>  	sd->entity.function = MEDIA_ENT_F_PROC_VIDEO_SCALER;
>  	sd->internal_ops = &mali_c55_resizer_internal_ops;
> +	sd->dev = mali_c55->dev;
>
>  	rsz->pads[MALI_C55_RSZ_SINK_PAD].flags = MEDIA_PAD_FL_SINK;
>  	rsz->pads[MALI_C55_RSZ_SOURCE_PAD].flags = MEDIA_PAD_FL_SOURCE;
> diff --git a/drivers/media/platform/arm/mali-c55/mali-c55-tpg.c b/drivers/media/platform/arm/mali-c55/mali-c55-tpg.c
> index 1af5d2759a83..894f4cf377af 100644
> --- a/drivers/media/platform/arm/mali-c55/mali-c55-tpg.c
> +++ b/drivers/media/platform/arm/mali-c55/mali-c55-tpg.c
> @@ -370,6 +370,7 @@ int mali_c55_register_tpg(struct mali_c55 *mali_c55)
>  	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS;
>  	sd->entity.function = MEDIA_ENT_F_CAM_SENSOR;
>  	sd->internal_ops = &mali_c55_tpg_internal_ops;
> +	sd->dev = mali_c55->dev;
>  	strscpy(sd->name, MALI_C55_DRIVER_NAME " tpg", sizeof(sd->name));
>
>  	pad->flags = MEDIA_PAD_FL_SOURCE;
> --
> 2.25.1
>

  reply	other threads:[~2026-01-13  8:55 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-13  7:57 [PATCH] media: mali-c55: Fix NULL dev stream alert for tpg sub-device jempty.liang
2026-01-13  8:55 ` Jacopo Mondi [this message]
2026-01-13 10:40   ` Sakari Ailus
2026-01-13 12:43     ` Jacopo Mondi
2026-01-13 19:25       ` Sakari Ailus
2026-01-13 14:12     ` Dan Scally

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=aWYHPKMVFu_QC1Ow@zed \
    --to=jacopo.mondi@ideasonboard.com \
    --cc=dan.scally@ideasonboard.com \
    --cc=imntjempty@163.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.