All of 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();
 

WARNING: multiple messages have this Message-ID (diff)
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();
 
--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

Thread overview: 184+ 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 ` Mauro Carvalho Chehab
2018-05-07  9:35 ` Mauro Carvalho Chehab
2018-05-07  9:35 ` Mauro Carvalho Chehab
2018-05-07  9:35 ` [PATCH 01/18] docs: can.rst: fix a footnote reference Mauro Carvalho Chehab
2018-05-07  9:35   ` Mauro Carvalho Chehab
2018-05-07 18:41   ` Oliver Hartkopp
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-07  9:35   ` Mauro Carvalho Chehab
2018-05-08  3:07   ` Greg Kroah-Hartman
2018-05-08  3:07     ` Greg Kroah-Hartman
2018-05-08 15:49   ` Luis R. Rodriguez
2018-05-08 15:49     ` Luis R. Rodriguez
2018-05-09 12:26     ` Mauro Carvalho Chehab
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-07  9:35   ` Mauro Carvalho Chehab
2018-05-08  3:07   ` Greg Kroah-Hartman
2018-05-08  3:07     ` Greg Kroah-Hartman
2018-05-08 15:59   ` Jonathan Corbet
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-07  9:35   ` Mauro Carvalho Chehab
2018-05-08 16:01   ` Jonathan Corbet
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  9:35   ` Mauro Carvalho Chehab
2018-05-07 12:29   ` Andrea Parri
2018-05-07 12:29     ` Andrea Parri
2018-05-08 14:40     ` Jani Nikula
2018-05-08 14:40       ` Jani Nikula
2018-05-08 16:02       ` Andrea Parri
2018-05-08 16:02         ` Andrea Parri
2018-05-08 16:28         ` Andrea Parri
2018-05-08 16:28           ` Andrea Parri
2018-05-08 18:05       ` Mauro Carvalho Chehab
2018-05-08 18:05         ` Mauro Carvalho Chehab
2018-05-08 18:28         ` Mauro Carvalho Chehab
2018-05-08 18:28           ` Mauro Carvalho Chehab
2018-05-08 19:05           ` Andrea Parri
2018-05-08 19:05             ` Andrea Parri
2018-05-08 16:04   ` Jonathan Corbet
2018-05-08 16:04     ` Jonathan Corbet
2018-05-08 16:51     ` Andrea Parri
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-07  9:35   ` Mauro Carvalho Chehab
2018-05-08 15:51   ` Jonathan Corbet
2018-05-08 15:51     ` Jonathan Corbet
2018-05-09 12:02     ` Mauro Carvalho Chehab
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  9:35   ` Mauro Carvalho Chehab
2018-05-07 12:31   ` Andrea Parri
2018-05-07 12:31     ` Andrea Parri
2018-05-08 16:08   ` Jonathan Corbet
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-07  9:35   ` Mauro Carvalho Chehab
2018-05-08  3:07   ` Greg Kroah-Hartman
2018-05-08  3:07     ` Greg Kroah-Hartman
2018-05-08 16:10   ` Jonathan Corbet
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  9:35   ` Mauro Carvalho Chehab
2018-05-07 12:37   ` Kalle Valo
2018-05-07 12:37     ` Kalle Valo
2018-05-07 12:38     ` Johannes Berg
2018-05-07 12:38       ` Johannes Berg
2018-05-09 12:04       ` Mauro Carvalho Chehab
2018-05-09 12:04         ` Mauro Carvalho Chehab
2018-05-09 12:04         ` Johannes Berg
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  9:35   ` Mauro Carvalho Chehab
2018-05-07 14:23   ` Paul E. McKenney
2018-05-07 14:23     ` Paul E. McKenney
2018-05-09 11:55     ` Mauro Carvalho Chehab
2018-05-09 11:55       ` Mauro Carvalho Chehab
2018-05-14 19:40       ` Paul E. McKenney
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   ` Mauro Carvalho Chehab
2018-05-07  9:35 ` [PATCH 12/18] time: timer.c: adjust a kernel-doc comment Mauro Carvalho Chehab
2018-05-07  9:35   ` Mauro Carvalho Chehab
2018-05-13 14:00   ` [tip:timers/core] timers: Adjust " tip-bot for Mauro Carvalho Chehab
2018-05-13 14:00     ` 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-07  9:35   ` Mauro Carvalho Chehab
2018-05-09  8:41   ` Peter Zijlstra
2018-05-09  8:41     ` Peter Zijlstra
2018-05-09 14:45     ` Jonathan Corbet
2018-05-09 14:45       ` Jonathan Corbet
2018-05-09 15:20       ` Peter Zijlstra
2018-05-09 15:20         ` Peter Zijlstra
2018-05-09 18:35         ` Jonathan Corbet
2018-05-09 18:35           ` Jonathan Corbet
2018-05-09 18:50           ` Markus Heiser
2018-05-09 18:50             ` Markus Heiser
2018-05-09 19:31           ` Peter Zijlstra
2018-05-09 19:31             ` Peter Zijlstra
2018-05-10 12:23       ` Andrea Parri
2018-05-10 12:23         ` Andrea Parri
2018-05-10 13:15         ` Jonathan Corbet
2018-05-10 13:15           ` Jonathan Corbet
2018-05-10 16:52           ` Andrea Parri
2018-05-10 16:52             ` Andrea Parri
2018-05-10 17:45             ` Mauro Carvalho Chehab
2018-05-10 17:45               ` Mauro Carvalho Chehab
2018-05-10  8:38   ` Christoph Hellwig
2018-05-10  8:38     ` Christoph Hellwig
2018-05-10  9:38     ` Mauro Carvalho Chehab
2018-05-10  9:38       ` Mauro Carvalho Chehab
2018-05-10 12:20       ` Peter Zijlstra
2018-05-10 12:20         ` Peter Zijlstra
2018-05-10 13:04         ` Mauro Carvalho Chehab
2018-05-10 13:04           ` Mauro Carvalho Chehab
2018-05-10 13:30       ` Jonathan Corbet
2018-05-10 13:30         ` Jonathan Corbet
2018-05-10 13:31         ` Jonathan Corbet
2018-05-10 13:31           ` Jonathan Corbet
2018-05-10 14:21         ` Mauro Carvalho Chehab
2018-05-10 14:21           ` Mauro Carvalho Chehab
2018-05-10 15:38           ` Jonathan Corbet
2018-05-10 15:38             ` Jonathan Corbet
2018-05-10 16:42             ` Mauro Carvalho Chehab
2018-05-10 16:42               ` Mauro Carvalho Chehab
2018-05-10 17:14               ` Mauro Carvalho Chehab
2018-05-10 17:14                 ` Mauro Carvalho Chehab
2018-05-11  7:06               ` Markus Heiser
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-07  9:35   ` Mauro Carvalho Chehab
2018-05-07  9:35   ` Mauro Carvalho Chehab
2018-05-07  9:35   ` Mauro Carvalho Chehab
2018-05-15 10:22   ` Bartlomiej Zolnierkiewicz
2018-05-15 10:22     ` Bartlomiej Zolnierkiewicz
2018-05-15 10:22     ` Bartlomiej Zolnierkiewicz
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  9:35   ` Mauro Carvalho Chehab
2018-05-07 17:08   ` Jonathan Cameron
2018-05-07 17:08     ` Jonathan Cameron
2018-05-09 12:00     ` Mauro Carvalho Chehab
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:35   ` Mauro Carvalho Chehab
2018-05-07  9:46   ` Boris Brezillon
2018-05-07  9:46     ` Boris Brezillon
2018-05-07 11:32     ` Mauro Carvalho Chehab [this message]
2018-05-07 11:32       ` Mauro Carvalho Chehab
2018-05-09 12:02       ` Boris Brezillon
2018-05-09 12:02         ` Boris Brezillon
2018-05-09 12:10       ` Mauro Carvalho Chehab
2018-05-09 12:10         ` Mauro Carvalho Chehab
2018-05-09 12:22         ` Boris Brezillon
2018-05-09 12:22           ` Boris Brezillon
2018-05-09 13:28           ` Mauro Carvalho Chehab
2018-05-09 13:28             ` Mauro Carvalho Chehab
2018-05-09 15:56   ` Boris Brezillon
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-07  9:35   ` Mauro Carvalho Chehab
2018-05-08  3:07   ` Greg Kroah-Hartman
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-07  9:35   ` Mauro Carvalho Chehab
2018-05-08 11:03   ` Evgeniy Polyakov
2018-05-08 11:03     ` Evgeniy Polyakov
2018-05-09 12:32     ` Mauro Carvalho Chehab
2018-05-09 12:32       ` Mauro Carvalho Chehab
2018-05-09 13:11       ` Jonathan Corbet
2018-05-09 13:11         ` Jonathan Corbet
2018-05-10 10:37         ` Evgeniy Polyakov
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 16:13   ` Jonathan Corbet
2018-05-08 16:13   ` Jonathan Corbet
2018-05-08 16:13   ` Jonathan Corbet
2018-05-08 17:36   ` Luis R. Rodriguez
2018-05-08 17:36     ` Luis R. Rodriguez
2018-05-08 17:36     ` Luis R. Rodriguez
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 \
    /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.