LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
To: Boris Brezillon <boris.brezillon@bootlin.com>
Cc: Linux Doc Mailing List <linux-doc@vger.kernel.org>,
	Mauro Carvalho Chehab <mchehab@infradead.org>,
	linux-kernel@vger.kernel.org, Jonathan Corbet <corbet@lwn.net>,
	Richard Weinberger <richard@nod.at>,
	David Woodhouse <dwmw2@infradead.org>,
	Brian Norris <computersforpeace@gmail.com>,
	Marek Vasut <marek.vasut@gmail.com>,
	linux-mtd@lists.infradead.org
Subject: Re: [PATCH 16/18] mtd: rawnand.h: use nested union kernel-doc markups
Date: Mon, 7 May 2018 08:32:32 -0300	[thread overview]
Message-ID: <20180507083232.5a084ba7@vento.lan> (raw)
In-Reply-To: <20180507114650.171edcc2@bbrezillon>

Hi Boris,

Em Mon, 7 May 2018 11:46:50 +0200
Boris Brezillon <boris.brezillon@bootlin.com> escreveu:

> Hi Mauro,

> > diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h
> > index 5dad59b31244..b986f94906df 100644
> > --- a/include/linux/mtd/rawnand.h
> > +++ b/include/linux/mtd/rawnand.h
> > @@ -740,8 +740,9 @@ enum nand_data_interface_type {
> >  
> >  /**
> >   * struct nand_data_interface - NAND interface timing
> > - * @type:	type of the timing
> > - * @timings:	The timing, type according to @type
> > + * @type:	 type of the timing
> > + * @timings:	 The timing, type according to @type
> > + * @timings.sdr: Use it when @type is %NAND_SDR_IFACE.  
> 
> Hm, really feels weird to do that. I mean, either we describe
> timings.sdr or timings, but not both. I this case, I agree that
> describing timings.sdr would make more sense than generically
> describing any possible entries in the timings union.

This struct is funny, as the union has just one item. I assume
that the original intend is to be ready to have more timing
types (or you had it in the past). By the time you have a
second value there, describing the union would make more
sense.

> Is there a simple
> way we can get rid of the warning we have when not describing timings
> but all of its fields?

There's no direct way. It won't be hard to add a way to do it,
like applying the enclosed patch with ends by declaring timings as:

	* @timings:	 -- undescribed --

IMHO, this is uglier.

The way I see is that, if the embed struct/union is not interesting
enough to be described, the best would be to use an anonymous one like:

	struct nand_data_interface {
		enum nand_data_interface_type type;
		union {
			struct nand_sdr_timings sdr;
		};
	};

With the above, kernel-doc will expect a description just for @sdr.

Btw, if you want to see how nested struct/union is parsed, the
scripts/kernel_doc logic is at dump_struct() function.

When it finds an struct, it first handles private/public by simply
removing everything that it is not public from the struct, by a
very simple parser. Then, it converts nested struct/union into
un-nested ones. E. g. it converts:

	struct {
		union {
			int foo1;
		};
		union {
			int foo2;
		} bar;
	} foobar;

into this internal representation:

	struct {
		int foo1;
		union;
		int bar.foo2;
		union bar;
	};

Then it runs the normal un-nested struct parser.


Thanks,
Mauro

[PATCH] don't describe nested struct timings

IMHO, this is an ugly hack, but it allows having nested
structs (or fields) undescribed by purpose.

Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>

diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h
index b986f94906df..b724c7edf532 100644
--- a/include/linux/mtd/rawnand.h
+++ b/include/linux/mtd/rawnand.h
@@ -741,7 +741,7 @@ enum nand_data_interface_type {
 /**
  * struct nand_data_interface - NAND interface timing
  * @type:	 type of the timing
- * @timings:	 The timing, type according to @type
+ * @timings:	 -- undescribed --
  * @timings.sdr: Use it when @type is %NAND_SDR_IFACE.
  */
 struct nand_data_interface {
diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index 0057d8eafcc1..196a2107c8c1 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -390,7 +390,7 @@ my $section = $section_default;
 my $section_context = "Context";
 my $section_return = "Return";
 
-my $undescribed = "-- undescribed --";
+my $undescribed = "-- undescribed --\n";
 
 reset_state();
 

  reply	other threads:[~2018-05-07 11:32 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-07  9:35 [PATCH 00/18] Fix some build warnings/errors with Sphinx Mauro Carvalho Chehab
2018-05-07  9:35 ` [PATCH 01/18] docs: can.rst: fix a footnote reference Mauro Carvalho Chehab
2018-05-07 18:41   ` Oliver Hartkopp
2018-05-07  9:35 ` [PATCH 02/18] docs: fix location of request_firmware & friends Mauro Carvalho Chehab
2018-05-08  3:07   ` Greg Kroah-Hartman
2018-05-08 15:49   ` Luis R. Rodriguez
2018-05-09 12:26     ` Mauro Carvalho Chehab
2018-05-07  9:35 ` [PATCH 03/18] docs: */index.rst: Add newer documents to their respective index.rst Mauro Carvalho Chehab
2018-05-08  3:07   ` Greg Kroah-Hartman
2018-05-08 15:59   ` Jonathan Corbet
2018-05-07  9:35 ` [PATCH 04/18] docs: admin-guide: add bcache documentation Mauro Carvalho Chehab
2018-05-08 16:01   ` Jonathan Corbet
2018-05-07  9:35 ` [PATCH 05/18] docs: core-api: add cachetlb documentation Mauro Carvalho Chehab
2018-05-07 12:29   ` Andrea Parri
2018-05-08 14:40     ` Jani Nikula
2018-05-08 16:02       ` Andrea Parri
2018-05-08 16:28         ` Andrea Parri
2018-05-08 18:05       ` Mauro Carvalho Chehab
2018-05-08 18:28         ` Mauro Carvalho Chehab
2018-05-08 19:05           ` Andrea Parri
2018-05-08 16:04   ` Jonathan Corbet
2018-05-08 16:51     ` Andrea Parri
2018-05-07  9:35 ` [PATCH 06/18] docs: core-api: add cgroup-v2 documentation Mauro Carvalho Chehab
2018-05-08 15:51   ` Jonathan Corbet
2018-05-09 12:02     ` Mauro Carvalho Chehab
2018-05-07  9:35 ` [PATCH 07/18] docs: core-api: add circular-buffers documentation Mauro Carvalho Chehab
2018-05-07 12:31   ` Andrea Parri
2018-05-08 16:08   ` Jonathan Corbet
2018-05-07  9:35 ` [PATCH 08/18] docs: driver-api: add clk documentation Mauro Carvalho Chehab
2018-05-08  3:07   ` Greg Kroah-Hartman
2018-05-08 16:10   ` Jonathan Corbet
2018-05-07  9:35 ` [PATCH 09/18] net: mac80211.h: fix a bad comment line Mauro Carvalho Chehab
2018-05-07 12:37   ` Kalle Valo
2018-05-07 12:38     ` Johannes Berg
2018-05-09 12:04       ` Mauro Carvalho Chehab
2018-05-09 12:04         ` Johannes Berg
2018-05-07  9:35 ` [PATCH 10/18] rcu: rcupdate.h: get rid of Sphinx warnings at rcu_pointer_handoff() Mauro Carvalho Chehab
2018-05-07 14:23   ` Paul E. McKenney
2018-05-09 11:55     ` Mauro Carvalho Chehab
2018-05-14 19:40       ` Paul E. McKenney
2018-05-07  9:35 ` [PATCH 11/18] docs: crypto_engine.rst: Fix two parse warnings Mauro Carvalho Chehab
2018-05-07  9:35 ` [PATCH 12/18] time: timer.c: adjust a kernel-doc comment Mauro Carvalho Chehab
2018-05-13 14:00   ` [tip:timers/core] timers: Adjust " tip-bot for Mauro Carvalho Chehab
2018-05-07  9:35 ` [PATCH 13/18] wait: wait.h: Get rid of a kernel-doc/Sphinx warnings Mauro Carvalho Chehab
2018-05-09  8:41   ` Peter Zijlstra
2018-05-09 14:45     ` Jonathan Corbet
2018-05-09 15:20       ` Peter Zijlstra
2018-05-09 18:35         ` Jonathan Corbet
2018-05-09 18:50           ` Markus Heiser
2018-05-09 19:31           ` Peter Zijlstra
2018-05-10 12:23       ` Andrea Parri
2018-05-10 13:15         ` Jonathan Corbet
2018-05-10 16:52           ` Andrea Parri
2018-05-10 17:45             ` Mauro Carvalho Chehab
2018-05-10  8:38   ` Christoph Hellwig
2018-05-10  9:38     ` Mauro Carvalho Chehab
2018-05-10 12:20       ` Peter Zijlstra
2018-05-10 13:04         ` Mauro Carvalho Chehab
2018-05-10 13:30       ` Jonathan Corbet
2018-05-10 13:31         ` Jonathan Corbet
2018-05-10 14:21         ` Mauro Carvalho Chehab
2018-05-10 15:38           ` Jonathan Corbet
2018-05-10 16:42             ` Mauro Carvalho Chehab
2018-05-10 17:14               ` Mauro Carvalho Chehab
2018-05-11  7:06               ` Markus Heiser
2018-05-07  9:35 ` [PATCH 14/18] fbdev: modedb.c: fix a kernel-doc markup Mauro Carvalho Chehab
2018-05-15 10:22   ` Bartlomiej Zolnierkiewicz
2018-05-07  9:35 ` [PATCH 15/18] iio: iio.h: use nested struct support on " Mauro Carvalho Chehab
2018-05-07 17:08   ` Jonathan Cameron
2018-05-09 12:00     ` Mauro Carvalho Chehab
2018-05-07  9:35 ` [PATCH 16/18] mtd: rawnand.h: use nested union kernel-doc markups Mauro Carvalho Chehab
2018-05-07  9:46   ` Boris Brezillon
2018-05-07 11:32     ` Mauro Carvalho Chehab [this message]
2018-05-09 12:02       ` Boris Brezillon
2018-05-09 12:10       ` Mauro Carvalho Chehab
2018-05-09 12:22         ` Boris Brezillon
2018-05-09 13:28           ` Mauro Carvalho Chehab
2018-05-09 15:56   ` Boris Brezillon
2018-05-07  9:35 ` [PATCH 17/18] docs: uio-howto.rst: use a code block to solve a warning Mauro Carvalho Chehab
2018-05-08  3:07   ` Greg Kroah-Hartman
2018-05-07  9:35 ` [PATCH 18/18] w1: w1_io.c: fix a kernel-doc warning Mauro Carvalho Chehab
2018-05-08 11:03   ` Evgeniy Polyakov
2018-05-09 12:32     ` Mauro Carvalho Chehab
2018-05-09 13:11       ` Jonathan Corbet
2018-05-10 10:37         ` Evgeniy Polyakov
2018-05-08 16:13 ` [PATCH 00/18] Fix some build warnings/errors with Sphinx Jonathan Corbet
2018-05-08 17:36   ` Luis R. Rodriguez

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=20180507083232.5a084ba7@vento.lan \
    --to=mchehab+samsung@kernel.org \
    --cc=boris.brezillon@bootlin.com \
    --cc=computersforpeace@gmail.com \
    --cc=corbet@lwn.net \
    --cc=dwmw2@infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=marek.vasut@gmail.com \
    --cc=mchehab@infradead.org \
    --cc=richard@nod.at \
    --subject='Re: [PATCH 16/18] mtd: rawnand.h: use nested union kernel-doc markups' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).