All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Anson Huang <anson.huang@nxp.com>
Cc: Russell King - ARM Linux <linux@armlinux.org.uk>,
	Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Sascha Hauer <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	"oleksandr.suvorov@toradex.com" <oleksandr.suvorov@toradex.com>,
	Stefan Agner <stefan.agner@toradex.com>,
	Peng Fan <peng.fan@nxp.com>, Abel Vesa <abel.vesa@nxp.com>,
	Aisheng Dong <aisheng.dong@nxp.com>,
	Andy Duan <fugang.duan@nxp.com>,
	Daniel Baluta <daniel.baluta@nxp.com>,
	YueHaibing <yuehaibing@huawei.com>,
	Stephen Rothwell <sfr@canb.auug.org.au>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	linux-clk <linux-clk@vger.kernel.org>,
	dl-linux-imx <linux-imx@nxp.com>
Subject: Re: [PATCH V3 02/10] init.h: Fix the __setup_param() macro for module build
Date: Wed, 1 Jul 2020 11:53:25 +0200	[thread overview]
Message-ID: <CAK8P3a1E_UecNq=7rvceQoXdFkmnBFOyUtxrpJ1bF6cLWOtNqQ@mail.gmail.com> (raw)
In-Reply-To: <DB3PR0402MB3916F746C792CB2BC876715BF56C0@DB3PR0402MB3916.eurprd04.prod.outlook.com>

On Wed, Jul 1, 2020 at 11:27 AM Anson Huang <anson.huang@nxp.com> wrote:
> > Subject: Re: [PATCH V3 02/10] init.h: Fix the __setup_param() macro for
> > module build
> >
> > On Wed, Jul 1, 2020 at 7:14 AM Anson Huang <anson.huang@nxp.com>
> > wrote:
> >
> > I don't understand what your plan is here. Do you mean you will leave that
> > part of the clk driver as built-in?
>
> I meant I will leave the #else block of __setup_param() defined as nothing as below to
> make module build passed.
>
> #define __setup_param(str, unique_id, fn, early)        /* nothing */

No, I think that is  mistake. It will mean that other drivers with the same
bug as the imx-clk driver will appear to build fine, but not work correctly.

A build error is better than silently dropping the command line parsing in
my opinion.

> > This error just means you can't have a __setup_param() call in a loadable
> > module, which we already knew. If you need to do something with the clocks
> > early on, that has to be in built-in code and cannot be in a module. If you don't
> > need that code, then you should just remove it from both the modular version
> > and the built-in version.
> >
> > What is the purpose of that __setup_param() argument parsing in the clock
> > driver?
>
> We need the code for proper uart clock management of earlycon, from the code, it
> is trying to keep console uart clock enabled during kernel boot up.

Why not move this all to a separate file then and only build it when
CONFIG_CLK_IMX=y?
It seems that you don't need the imx_keep_uart_clocks_param() if the
clk driver is
loaded as a module, but then you also don't need the imx_clk_disable_uart()
and imx_register_uart_clocks() functions or the associated variables.

     Arnd

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: Anson Huang <anson.huang@nxp.com>
Cc: Aisheng Dong <aisheng.dong@nxp.com>,
	Stephen Rothwell <sfr@canb.auug.org.au>,
	Peng Fan <peng.fan@nxp.com>,
	linux-clk <linux-clk@vger.kernel.org>,
	Andy Duan <fugang.duan@nxp.com>, Abel Vesa <abel.vesa@nxp.com>,
	Stefan Agner <stefan.agner@toradex.com>,
	Stephen Boyd <sboyd@kernel.org>, Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	YueHaibing <yuehaibing@huawei.com>,
	Russell King - ARM Linux <linux@armlinux.org.uk>,
	Daniel Baluta <daniel.baluta@nxp.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"oleksandr.suvorov@toradex.com" <oleksandr.suvorov@toradex.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Sascha Hauer <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>,
	Michael Turquette <mturquette@baylibre.com>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	dl-linux-imx <linux-imx@nxp.com>
Subject: Re: [PATCH V3 02/10] init.h: Fix the __setup_param() macro for module build
Date: Wed, 1 Jul 2020 11:53:25 +0200	[thread overview]
Message-ID: <CAK8P3a1E_UecNq=7rvceQoXdFkmnBFOyUtxrpJ1bF6cLWOtNqQ@mail.gmail.com> (raw)
In-Reply-To: <DB3PR0402MB3916F746C792CB2BC876715BF56C0@DB3PR0402MB3916.eurprd04.prod.outlook.com>

On Wed, Jul 1, 2020 at 11:27 AM Anson Huang <anson.huang@nxp.com> wrote:
> > Subject: Re: [PATCH V3 02/10] init.h: Fix the __setup_param() macro for
> > module build
> >
> > On Wed, Jul 1, 2020 at 7:14 AM Anson Huang <anson.huang@nxp.com>
> > wrote:
> >
> > I don't understand what your plan is here. Do you mean you will leave that
> > part of the clk driver as built-in?
>
> I meant I will leave the #else block of __setup_param() defined as nothing as below to
> make module build passed.
>
> #define __setup_param(str, unique_id, fn, early)        /* nothing */

No, I think that is  mistake. It will mean that other drivers with the same
bug as the imx-clk driver will appear to build fine, but not work correctly.

A build error is better than silently dropping the command line parsing in
my opinion.

> > This error just means you can't have a __setup_param() call in a loadable
> > module, which we already knew. If you need to do something with the clocks
> > early on, that has to be in built-in code and cannot be in a module. If you don't
> > need that code, then you should just remove it from both the modular version
> > and the built-in version.
> >
> > What is the purpose of that __setup_param() argument parsing in the clock
> > driver?
>
> We need the code for proper uart clock management of earlycon, from the code, it
> is trying to keep console uart clock enabled during kernel boot up.

Why not move this all to a separate file then and only build it when
CONFIG_CLK_IMX=y?
It seems that you don't need the imx_keep_uart_clocks_param() if the
clk driver is
loaded as a module, but then you also don't need the imx_clk_disable_uart()
and imx_register_uart_clocks() functions or the associated variables.

     Arnd

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2020-07-01  9:53 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-29  5:53 [PATCH V3 00/10] Support building i.MX8 SoCs clock driver as module Anson Huang
2020-06-29  5:53 ` Anson Huang
2020-06-29  5:53 ` [PATCH V3 01/10] clk: composite: Export clk_hw_register_composite() Anson Huang
2020-06-29  5:53   ` Anson Huang
2020-06-29  5:53 ` [PATCH V3 02/10] init.h: Fix the __setup_param() macro for module build Anson Huang
2020-06-29  5:53   ` Anson Huang
2020-06-29 11:33   ` Arnd Bergmann
2020-06-29 11:33     ` Arnd Bergmann
2020-06-29 11:40     ` Anson Huang
2020-06-29 11:40       ` Anson Huang
2020-06-29 11:58       ` Arnd Bergmann
2020-06-29 11:58         ` Arnd Bergmann
2020-07-01  5:14         ` Anson Huang
2020-07-01  5:14           ` Anson Huang
2020-07-01  8:37           ` Arnd Bergmann
2020-07-01  8:37             ` Arnd Bergmann
2020-07-01  9:27             ` Anson Huang
2020-07-01  9:27               ` Anson Huang
2020-07-01  9:53               ` Arnd Bergmann [this message]
2020-07-01  9:53                 ` Arnd Bergmann
2020-07-01 10:02                 ` Anson Huang
2020-07-01 10:02                   ` Anson Huang
2020-07-01 10:13                   ` Arnd Bergmann
2020-07-01 10:13                     ` Arnd Bergmann
2020-07-01 10:20                     ` Anson Huang
2020-07-01 10:20                       ` Anson Huang
2020-06-29  5:53 ` [PATCH V3 03/10] ARM: imx: Select MXC_CLK for each SoC Anson Huang
2020-06-29  5:53   ` Anson Huang
2020-06-29  7:27   ` Aisheng Dong
2020-06-29  7:27     ` Aisheng Dong
2020-06-29  8:21     ` Anson Huang
2020-06-29  8:21       ` Anson Huang
2020-06-29  5:53 ` [PATCH V3 04/10] clk: imx: Support building SCU clock driver as module Anson Huang
2020-06-29  5:53   ` Anson Huang
2020-06-29 11:37   ` Arnd Bergmann
2020-06-29 11:37     ` Arnd Bergmann
2020-06-29 12:53     ` Anson Huang
2020-06-29 12:53       ` Anson Huang
2020-06-29 13:20       ` Arnd Bergmann
2020-06-29 13:20         ` Arnd Bergmann
2020-06-29 14:52         ` Anson Huang
2020-06-29 14:52           ` Anson Huang
2020-06-29 15:08           ` Arnd Bergmann
2020-06-29 15:08             ` Arnd Bergmann
2020-06-29 15:19             ` Anson Huang
2020-06-29 15:19               ` Anson Huang
2020-06-30  3:55               ` Dong Aisheng
2020-06-30  3:55                 ` Dong Aisheng
2020-07-01  7:19                 ` Anson Huang
2020-07-01  7:19                   ` Anson Huang
2020-07-01  8:46                   ` Arnd Bergmann
2020-07-01  8:46                     ` Arnd Bergmann
2020-07-01  9:28                     ` Anson Huang
2020-07-01  9:28                       ` Anson Huang
2020-07-01  9:40                       ` Anson Huang
2020-07-01  9:40                         ` Anson Huang
2020-07-01  9:54                         ` Arnd Bergmann
2020-07-01  9:54                           ` Arnd Bergmann
2020-06-30  3:36         ` Dong Aisheng
2020-06-30  3:36           ` Dong Aisheng
2020-06-29  5:53 ` [PATCH V3 05/10] clk: imx: Support building i.MX common " Anson Huang
2020-06-29  5:53   ` Anson Huang
2020-06-29  5:53 ` [PATCH V3 06/10] clk: imx8mm: Support module build Anson Huang
2020-06-29  5:53   ` Anson Huang
2020-06-29  5:53 ` [PATCH V3 07/10] clk: imx8mn: " Anson Huang
2020-06-29  5:53   ` Anson Huang
2020-06-29  5:54 ` [PATCH V3 08/10] clk: imx8mp: " Anson Huang
2020-06-29  5:54   ` Anson Huang
2020-06-29  5:54 ` [PATCH V3 09/10] clk: imx8mq: " Anson Huang
2020-06-29  5:54   ` Anson Huang
2020-06-29  5:54 ` [PATCH V3 10/10] clk: imx8qxp: " Anson Huang
2020-06-29  5:54   ` Anson Huang
2020-06-29 11:40   ` Arnd Bergmann
2020-06-29 11:40     ` Arnd Bergmann
2020-06-29 11:43     ` Anson Huang
2020-06-29 11:43       ` Anson Huang
2020-06-29 11:58       ` Arnd Bergmann
2020-06-29 11:58         ` Arnd Bergmann

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='CAK8P3a1E_UecNq=7rvceQoXdFkmnBFOyUtxrpJ1bF6cLWOtNqQ@mail.gmail.com' \
    --to=arnd@arndb.de \
    --cc=abel.vesa@nxp.com \
    --cc=aisheng.dong@nxp.com \
    --cc=anson.huang@nxp.com \
    --cc=daniel.baluta@nxp.com \
    --cc=festevam@gmail.com \
    --cc=fugang.duan@nxp.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=mturquette@baylibre.com \
    --cc=oleksandr.suvorov@toradex.com \
    --cc=peng.fan@nxp.com \
    --cc=s.hauer@pengutronix.de \
    --cc=sboyd@kernel.org \
    --cc=sfr@canb.auug.org.au \
    --cc=shawnguo@kernel.org \
    --cc=stefan.agner@toradex.com \
    --cc=viro@zeniv.linux.org.uk \
    --cc=yuehaibing@huawei.com \
    /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.