Re: linux-next: build warning after merge of the v4l-dvb tree

From: Sakari Ailus
Date: Mon Feb 08 2021 - 13:46:28 EST


Hi Ezequiel,

Thanks for addressing this.

On Mon, Feb 08, 2021 at 01:42:21PM -0300, Ezequiel Garcia wrote:
> Hi Stephen,
>
> On Mon, 2021-02-08 at 23:37 +1100, Stephen Rothwell wrote:
> > Hi all,
> >
> > After merging the v4l-dvb tree, today's linux-next build (htmldocs)
> > produced this warning:
> >
> > include/media/v4l2-async.h:178: warning: expecting prototype for v4l2_async_notifier_add_fwnode_subdev(). Prototype was for
> > __v4l2_async_notifier_add_fwnode_subdev() instead
> > include/media/v4l2-async.h:207: warning: expecting prototype for v4l2_async_notifier_add_fwnode_remote_subdev(). Prototype was for
> > __v4l2_async_notifier_add_fwnode_remote_subdev() instead
> > include/media/v4l2-async.h:230: warning: expecting prototype for v4l2_async_notifier_add_i2c_subdev(). Prototype was for
> > __v4l2_async_notifier_add_i2c_subdev() instead
> >
> > Maybe introduced by commit
> >
> >   c1cc23625062 ("media: v4l2-async: Discourage use of v4l2_async_notifier_add_subdev")
> >
>
> Thanks for spotting this. Should be fixed by:
>
> diff --git a/include/media/v4l2-async.h b/include/media/v4l2-async.h
> index 6f22daa6f067..3785445282fc 100644
> --- a/include/media/v4l2-async.h
> +++ b/include/media/v4l2-async.h
> @@ -157,7 +157,7 @@ int __v4l2_async_notifier_add_subdev(struct v4l2_async_notifier *notifier,
> struct v4l2_async_subdev *asd);
>
> /**
> - * v4l2_async_notifier_add_fwnode_subdev - Allocate and add a fwnode async
> + * __v4l2_async_notifier_add_fwnode_subdev - Allocate and add a fwnode async

The problem with the approach is that this no longer documents the API that
drivers are intended to use, but the intermediate one. I guess fixing
this properly could require changes to kerneldoc so I have no objections to
the approach.

> * subdev to the notifier's master asd_list.
> *
> * @notifier: pointer to &struct v4l2_async_notifier
> @@ -181,7 +181,7 @@ __v4l2_async_notifier_add_fwnode_subdev(struct v4l2_async_notifier *notifier,
> sizeof(__type)))
>
> /**
> - * v4l2_async_notifier_add_fwnode_remote_subdev - Allocate and add a fwnode
> + * __v4l2_async_notifier_add_fwnode_remote_subdev - Allocate and add a fwnode
> * remote async subdev to the
> * notifier's master asd_list.
> *
> @@ -210,7 +210,7 @@ __v4l2_async_notifier_add_fwnode_remote_subdev(struct v4l2_async_notifier *notif
> sizeof(__type)))
>
> /**
> - * v4l2_async_notifier_add_i2c_subdev - Allocate and add an i2c async
> + * __v4l2_async_notifier_add_i2c_subdev - Allocate and add an i2c async
> * subdev to the notifier's master asd_list.
> *
> * @notifier: pointer to &struct v4l2_async_notifier
> @@ -228,7 +228,7 @@ struct v4l2_async_subdev *
> __v4l2_async_notifier_add_i2c_subdev(struct v4l2_async_notifier *notifier,
> int adapter_id, unsigned short address,
> unsigned int asd_struct_size);
> -#define v4l2_async_notifier_add_i2c_subdev(__notifier, __adap, __addr, __type) \
> +#define v4l2_async_notifier_i2c(__notifier, __adap, __addr, __type) \

I guess this change was not intentional?

> ((__type *)__v4l2_async_notifier_add_i2c_subdev(__notifier, __adap, __addr, \
> sizeof(__type)))
>
>

--
Kind regards,

Sakari Ailus