[PATCH v6 44/80] docs: gpu: i915.rst: Fix several C duplication warnings

Mauro Carvalho Chehab mchehab+huawei at kernel.org
Fri Oct 16 11:37:24 UTC 2020


Em Fri, 16 Oct 2020 14:01:07 +0300
Joonas Lahtinen <joonas.lahtinen at linux.intel.com> escreveu:

> + Lionel
> 
> Can you please take a look at best resolving the below problem.
> 
> Maybe we should eliminate the duplicate declarations? Updating such
> a list manually seems error prone to me.

For Kernel 5.10, IMO the best is to apply this patch as-is, as any
other thing would need to be postponed, and we want 5.10 free of
doc warnings.

Yet, when I wrote this one, I almost took a different approach:
to implement something like @*group (or \*group) directives that
exists on doxygen:

	https://www.doxygen.nl/manual/grouping.html

If something like that gets added to kernel-doc syntax, then
one could do something like:

	/**
	 * DOC: some foo description
	 * @group foo
	 */
 
	/**
	 * foo1 - do some foo things 
	 * @group foo
	...
	 */

	/**
	 * foo2 - do some other foo things
	 * @group foo
	...
	 */

	/**
	 * bar - do bar things
	 * @group bar
	...
	 */


And then, at kernel-doc markup:

	FOO
	===

	.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
		:group: foo


	BAR
	===
	.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
		:group: bar


I suspect that something like that would be a lot easier to maintain.

Once having someone like that implemented, it should be easy to also
have something like this:

	OTHERS
	======
	.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
		:export:
		:not-grouped:

in order to pick other functions that aren't grouped.

I suspect that implementing something like that at kernel-doc.pl
won't be hard.

Regards,
Mauro

> 
> Regards, Joonas
> 
> Quoting Mauro Carvalho Chehab (2020-10-13 14:53:59)
> > As reported by Sphinx:
> > 
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:1147: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_oa_wait_unlocked'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:1169: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_oa_poll_wait'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:1189: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_oa_read'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:2669: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_oa_stream_enable'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:2734: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_oa_stream_disable'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:2820: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_oa_stream_init'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:3010: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_perf_read'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:3098: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_perf_poll_locked'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:3129: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_perf_poll'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:3152: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_perf_enable_locked'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:3181: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_perf_disable_locked'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:3273: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_perf_ioctl'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:3296: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_perf_destroy_locked'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:3321: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_perf_release'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:3379: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_perf_open_ioctl_locked'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:3534: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'read_properties_unlocked'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:3717: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_perf_open_ioctl'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:3760: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_perf_register'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:3789: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_perf_unregister'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:4009: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_perf_add_config_ioctl'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:4162: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_perf_remove_config_ioctl'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:4260: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_perf_init'.
> >         ./Documentation/gpu/i915:646: ./drivers/gpu/drm/i915/i915_perf.c:4423: WARNING: Duplicate C declaration, also defined in 'gpu/i915'.
> >         Declaration is 'i915_perf_fini'.
> > 
> > With Sphinx 3, C declarations can't be duplicated anymore,
> > so let's exclude those from the other internals found on
> > i915_perf.c file.
> > 
> > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei at kernel.org>
> > ---
> >  Documentation/gpu/i915.rst | 29 +++++++++++++++++++++++++----
> >  1 file changed, 25 insertions(+), 4 deletions(-)
> > 
> > diff --git a/Documentation/gpu/i915.rst b/Documentation/gpu/i915.rst
> > index 33cc6ddf8f64..cff1f154b473 100644
> > --- a/Documentation/gpu/i915.rst
> > +++ b/Documentation/gpu/i915.rst
> > @@ -636,15 +636,36 @@ i915 Perf Observation Architecture Stream
> >  .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
> >     :functions: i915_oa_poll_wait
> >  
> > -All i915 Perf Internals
> > ------------------------
> > +Other i915 Perf Internals
> > +-------------------------
> >  
> > -This section simply includes all currently documented i915 perf internals, in
> > -no particular order, but may include some more minor utilities or platform
> > +This section simply includes all other currently documented i915 perf internals,
> > +in no particular order, but may include some more minor utilities or platform
> >  specific details than found in the more high-level sections.
> >  
> >  .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
> >     :internal:
> > +   :no-identifiers:
> > +       i915_perf_init
> > +       i915_perf_fini
> > +       i915_perf_register
> > +       i915_perf_unregister
> > +       i915_perf_open_ioctl
> > +       i915_perf_release
> > +       i915_perf_add_config_ioctl
> > +       i915_perf_remove_config_ioctl
> > +       read_properties_unlocked
> > +       i915_perf_open_ioctl_locked
> > +       i915_perf_destroy_locked
> > +       i915_perf_read i915_perf_ioctl
> > +       i915_perf_enable_locked
> > +       i915_perf_disable_locked
> > +       i915_perf_poll i915_perf_poll_locked
> > +       i915_oa_stream_init i915_oa_read
> > +       i915_oa_stream_enable
> > +       i915_oa_stream_disable
> > +       i915_oa_wait_unlocked
> > +       i915_oa_poll_wait
> >  
> >  Style
> >  =====
> > -- 
> > 2.26.2
> >   



Thanks,
Mauro


More information about the dri-devel mailing list