All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Ralph Siemsen <ralph.siemsen@linaro.org>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org,
	linux-kernel@vger.kernel.org, kernel test robot <lkp@intel.com>
Subject: Re: [PATCH] clk: renesas: r9a06g032: fix kerneldoc warning
Date: Tue, 12 Sep 2023 10:20:05 +0200	[thread overview]
Message-ID: <20230912101559.2d9f41d1@xps-13> (raw)
In-Reply-To: <20230911175215.263009-1-ralph.siemsen@linaro.org>

Hi Ralph,

ralph.siemsen@linaro.org wrote on Mon, 11 Sep 2023 13:52:15 -0400:

> This fixes the following W=1 warning during build:
> > drivers/clk/renesas/r9a06g032-clocks.c:119: warning: Function parameter or member 'dual' not described in 'r9a06g032_clkdesc'  
> 
> Added documentation for member 'dual'. Also added names for the other
> structures in the same union, with documentation. Adjusted names of
> members within the 'div' structure to avoid duplication.

It would be better to use the imperative form: s/added/add/,
s/adjusted/adjust/, etc.

I would also split this patch because you are doing two different
actions here: adding "dual" to the kdoc *and* naming other anonymous
structures.

I would use something like this for the first patch:
"
Mention the 'dual' structure in the kdoc. This fixes the following
W=1...
"

And rephrase the commit log for the second patch, something along:
"
Clarify the content of the r9a06g032_clkdesc structure by naming the
remaining anonymous structures defined inside. Renaming each field and
updating the doc then becomes necessary in order to avoid name
duplications and kdoc warnings.
"

> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202309101314.kTRoxND5-lkp@intel.com/
> Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
> ---
> Second post, as the Subject: line accidentally got messed up previously.
> 
>  drivers/clk/renesas/r9a06g032-clocks.c | 64 ++++++++++++++------------
>  1 file changed, 34 insertions(+), 30 deletions(-)
> 
> diff --git a/drivers/clk/renesas/r9a06g032-clocks.c b/drivers/clk/renesas/r9a06g032-clocks.c
> index 55db63c7041a..61296c81f9b5 100644
> --- a/drivers/clk/renesas/r9a06g032-clocks.c
> +++ b/drivers/clk/renesas/r9a06g032-clocks.c
> @@ -102,19 +102,22 @@ enum gate_type {
>   * @source:    the ID+1 of the parent clock element.
>   *             Root clock uses ID of ~0 (PARENT_ID);
>   * @gate:      clock enable/disable
> - * @div_min:   smallest permitted clock divider
> - * @div_max:   largest permitted clock divider
> - * @reg:       clock divider register offset, in 32-bit words
> - * @div_table: optional list of fixed clock divider values;
> + * @div:       substructure for clock divider
> + * @div.min:   smallest permitted clock divider
> + * @div.max:   largest permitted clock divider
> + * @div.reg:   clock divider register offset, in 32-bit words
> + * @div.table: optional list of fixed clock divider values;
>   *             must be in ascending order, zero for unused
> - * @div:       divisor for fixed-factor clock
> - * @mul:       multiplier for fixed-factor clock
> - * @group:     UART group, 0=UART0/1/2, 1=UART3/4/5/6/7
> - * @sel:       select either g1/r1 or g2/r2 as clock source
> - * @g1:        1st source gate (clock enable/disable)
> - * @r1:        1st source reset (module reset)
> - * @g2:        2nd source gate (clock enable/disable)
> - * @r2:        2nd source reset (module reset)
> + * @ffc:       substructure for fixed-factor clocks
> + * @ffc.div:   divisor for fixed-factor clock
> + * @ffc.mul:   multiplier for fixed-factor clock
> + * @dual:      substructure for dual clock gates
> + * @dual.group: UART group, 0=UART0/1/2, 1=UART3/4/5/6/7
> + * @dual.sel:  select either g1/r1 or g2/r2 as clock source
> + * @dual.g1:   1st source gate (clock enable/disable)
> + * @dual.r1:   1st source reset (module reset)
> + * @dual.g2:   2nd source gate (clock enable/disable)
> + * @dual.r2:   2nd source reset (module reset)
>   *
>   * Describes a single element in the clock tree hierarchy.
>   * As there are quite a large number of clock elements, this
> @@ -131,13 +134,13 @@ struct r9a06g032_clkdesc {
>  		struct r9a06g032_gate gate;
>  		/* type = K_DIV  */
>  		struct {
> -			unsigned int div_min:10, div_max:10, reg:10;
> -			u16 div_table[4];
> -		};
> +			unsigned int min:10, max:10, reg:10;
> +			u16 table[4];
> +		} div;
>  		/* type = K_FFC */
>  		struct {
>  			u16 div, mul;
> -		};
> +		} ffc;
>  		/* type = K_DUALGATE */
>  		struct {
>  			uint16_t group:1;
> @@ -178,26 +181,26 @@ struct r9a06g032_clkdesc {
>  	.type = K_FFC, \
>  	.index = R9A06G032_##_idx, \
>  	.name = _n, \
> -	.div = _div, \
> -	.mul = _mul \
> +	.ffc.div = _div, \
> +	.ffc.mul = _mul \
>  }
>  #define D_FFC(_idx, _n, _src, _div) { \
>  	.type = K_FFC, \
>  	.index = R9A06G032_##_idx, \
>  	.source = 1 + R9A06G032_##_src, \
>  	.name = _n, \
> -	.div = _div, \
> -	.mul = 1 \
> +	.ffc.div = _div, \
> +	.ffc.mul = 1 \
>  }
>  #define D_DIV(_idx, _n, _src, _reg, _min, _max, ...) { \
>  	.type = K_DIV, \
>  	.index = R9A06G032_##_idx, \
>  	.source = 1 + R9A06G032_##_src, \
>  	.name = _n, \
> -	.reg = _reg, \
> -	.div_min = _min, \
> -	.div_max = _max, \
> -	.div_table = { __VA_ARGS__ } \
> +	.div.reg = _reg, \
> +	.div.min = _min, \
> +	.div.max = _max, \
> +	.div.table = { __VA_ARGS__ } \
>  }
>  #define D_UGATE(_idx, _n, _src, _g, _g1, _r1, _g2, _r2) { \
>  	.type = K_DUALGATE, \
> @@ -1063,14 +1066,14 @@ r9a06g032_register_div(struct r9a06g032_priv *clocks,
>  
>  	div->clocks = clocks;
>  	div->index = desc->index;
> -	div->reg = desc->reg;
> +	div->reg = desc->div.reg;
>  	div->hw.init = &init;
> -	div->min = desc->div_min;
> -	div->max = desc->div_max;
> +	div->min = desc->div.min;
> +	div->max = desc->div.max;
>  	/* populate (optional) divider table fixed values */
>  	for (i = 0; i < ARRAY_SIZE(div->table) &&
> -	     i < ARRAY_SIZE(desc->div_table) && desc->div_table[i]; i++) {
> -		div->table[div->table_size++] = desc->div_table[i];
> +	     i < ARRAY_SIZE(desc->div.table) && desc->div.table[i]; i++) {
> +		div->table[div->table_size++] = desc->div.table[i];
>  	}
>  
>  	clk = clk_register(NULL, &div->hw);
> @@ -1333,7 +1336,8 @@ static int __init r9a06g032_clocks_probe(struct platform_device *pdev)
>  		case K_FFC:
>  			clk = clk_register_fixed_factor(NULL, d->name,
>  							parent_name, 0,
> -							d->mul, d->div);
> +							d->ffc.mul,
> +							d->ffc.div);
>  			break;
>  		case K_GATE:
>  			clk = r9a06g032_register_gate(clocks, parent_name, d);


Thanks,
Miquèl

      reply	other threads:[~2023-09-12  8:23 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-11 17:52 [PATCH] clk: renesas: r9a06g032: fix kerneldoc warning Ralph Siemsen
2023-09-12  8:20 ` Miquel Raynal [this message]

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=20230912101559.2d9f41d1@xps-13 \
    --to=miquel.raynal@bootlin.com \
    --cc=geert+renesas@glider.be \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=mturquette@baylibre.com \
    --cc=ralph.siemsen@linaro.org \
    --cc=sboyd@kernel.org \
    /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.