Re: [RFC 3/3] media: tw9910: Initialize the entity type

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

 



Hi Fabio,

On Fri, Aug 27, 2021 at 10:01:50AM -0300, Fabio Estevam wrote:
> Currently the following warning is seen:
>
> imx7-csi 2214000.csi: Entity type for entity tw9910 2-0044 was not initialized!
>
> Initialize the entity type accordingly.
>
> Signed-off-by: Fabio Estevam <festevam@xxxxxxxxx>
> ---
>  drivers/media/i2c/tw9910.c | 18 +++++++++++++++---
>  1 file changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/media/i2c/tw9910.c b/drivers/media/i2c/tw9910.c
> index 0411b8ea9bda..ad4149073ba4 100644
> --- a/drivers/media/i2c/tw9910.c
> +++ b/drivers/media/i2c/tw9910.c
> @@ -228,6 +228,7 @@ struct tw9910_scale_ctrl {
>
>  struct tw9910_priv {
>  	struct v4l2_subdev		subdev;
> +	struct media_pad		pad;
>  	struct clk			*clk;
>  	struct tw9910_video_info	*info;
>  	struct gpio_desc		*pdn_gpio;
> @@ -948,6 +949,7 @@ static int tw9910_probe(struct i2c_client *client,
>  {
>  	struct tw9910_priv		*priv;
>  	struct i2c_adapter		*adapter = client->adapter;
> +	struct v4l2_subdev *sd;

As questionable as it could be, the existing variables are aligned
differently.

>  	int ret;
>
>  	if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) {
> @@ -973,14 +975,22 @@ static int tw9910_probe(struct i2c_client *client,
>  		return -ENODEV;
>  	}
>
> -	v4l2_i2c_subdev_init(&priv->subdev, client, &tw9910_subdev_ops);
> +	sd = &priv->subdev;
> +	v4l2_i2c_subdev_init(sd, client, &tw9910_subdev_ops);
> +	priv->pad.flags = MEDIA_PAD_FL_SOURCE;
> +	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS;
> +	sd->entity.function = MEDIA_ENT_F_ATV_DECODER;

Seems appropriate!

> +	ret = media_entity_pads_init(&sd->entity, 1, &priv->pad);
> +	if (ret)
> +		return ret;
>
>  	priv->clk = clk_get(&client->dev, "xti");
>  	if (PTR_ERR(priv->clk) == -ENOENT) {
>  		priv->clk = NULL;
>  	} else if (IS_ERR(priv->clk)) {
>  		dev_err(&client->dev, "Unable to get xti clock\n");
> -		return PTR_ERR(priv->clk);
> +		ret = PTR_ERR(priv->clk);
> +		goto media_entity_cleanup;
>  	}
>
>  	priv->pdn_gpio = gpiod_get_optional(&client->dev, "pdn",
> @@ -1006,7 +1016,9 @@ static int tw9910_probe(struct i2c_client *client,
>  		gpiod_put(priv->pdn_gpio);
>  error_clk_put:
>  	clk_put(priv->clk);
> -
> +

Rougue tab, or is it my mail client ?

> +media_entity_cleanup:
> +	media_entity_cleanup(&sd->entity);
>  	return ret;
>  }
>
> --
> 2.25.1
>



[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