linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@gmail.com>
To: Paul Cercueil <paul@crapouillou.net>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Balsam CHIHI <bchihi@baylibre.com>,
	Claudiu Beznea <claudiu.beznea@microchip.com>,
	Geert Uytterhoeven <geert+renesas@glider.be>,
	Wolfram Sang <wsa+renesas@sang-engineering.com>,
	linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mediatek@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	linux-renesas-soc@vger.kernel.org, linux-tegra@vger.kernel.org,
	linux-pm@vger.kernel.org, Andy Shevchenko <andy@kernel.org>,
	Sean Wang <sean.wang@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	AngeloGioacchino Del Regno 
	<angelogioacchino.delregno@collabora.com>,
	Andrew Lunn <andrew@lunn.ch>,
	Gregory Clement <gregory.clement@bootlin.com>,
	Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
	Ludovic Desroches <ludovic.desroches@microchip.com>,
	Nicolas Ferre <nicolas.ferre@microchip.com>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <len.brown@intel.com>, Pavel Machek <pavel@ucw.cz>
Subject: Re: [PATCH v2 10/10] pinctrl: tegra: Switch to use DEFINE_NOIRQ_DEV_PM_OPS() helper
Date: Tue, 18 Jul 2023 15:20:23 +0200	[thread overview]
Message-ID: <ZLaRlyzkqRLSqjQc@orome> (raw)
In-Reply-To: <8f32cb8377808a073b043e0adf3ccf5ae5a84c92.camel@crapouillou.net>

[-- Attachment #1: Type: text/plain, Size: 3990 bytes --]

On Tue, Jul 18, 2023 at 01:55:05PM +0200, Paul Cercueil wrote:
> Le mardi 18 juillet 2023 à 13:41 +0200, Thierry Reding a écrit :
> > On Tue, Jul 18, 2023 at 10:42:47AM +0200, Paul Cercueil wrote:
> > > Hi Thierry,
> > > 
> > > Le mardi 18 juillet 2023 à 09:45 +0200, Thierry Reding a écrit :
> > > > On Mon, Jul 17, 2023 at 09:14:12PM +0200, Paul Cercueil wrote:
> > > > > Hi Andy,
> > > > > 
> > > > > Le lundi 17 juillet 2023 à 20:28 +0300, Andy Shevchenko a
> > > > > écrit :
> > > > > > Since pm.h provides a helper for system no-IRQ PM callbacks,
> > > > > > switch the driver to use it instead of open coded variant.
> > > > > > 
> > > > > > Signed-off-by: Andy Shevchenko
> > > > > > <andriy.shevchenko@linux.intel.com>
> > > > > > ---
> > > > > >  drivers/pinctrl/tegra/pinctrl-tegra.c | 5 +----
> > > > > >  1 file changed, 1 insertion(+), 4 deletions(-)
> > > > > > 
> > > > > > diff --git a/drivers/pinctrl/tegra/pinctrl-tegra.c
> > > > > > b/drivers/pinctrl/tegra/pinctrl-tegra.c
> > > > > > index 4547cf66d03b..734c71ef005b 100644
> > > > > > --- a/drivers/pinctrl/tegra/pinctrl-tegra.c
> > > > > > +++ b/drivers/pinctrl/tegra/pinctrl-tegra.c
> > > > > > @@ -747,10 +747,7 @@ static int tegra_pinctrl_resume(struct
> > > > > > device
> > > > > > *dev)
> > > > > >         return 0;
> > > > > >  }
> > > > > >  
> > > > > > -const struct dev_pm_ops tegra_pinctrl_pm = {
> > > > > > -       .suspend_noirq = &tegra_pinctrl_suspend,
> > > > > > -       .resume_noirq = &tegra_pinctrl_resume
> > > > > > -};
> > > > > > +DEFINE_NOIRQ_DEV_PM_OPS(tegra_pinctrl_pm,
> > > > > > tegra_pinctrl_suspend,
> > > > > > tegra_pinctrl_resume);
> > > > > >  
> > > > > >  static bool tegra_pinctrl_gpio_node_has_range(struct
> > > > > > tegra_pmx
> > > > > > *pmx)
> > > > > >  {
> > > > > 
> > > > > Another driver where using EXPORT_GPL_DEV_PM_OPS() would make
> > > > > more
> > > > > sense.
> > > > 
> > > > We don't currently export these PM ops because none of the Tegra
> > > > pinctrl
> > > > drivers can be built as a module.
> > > 
> > > This doesn't change anything. You'd want to use
> > > EXPORT_GPL_DEV_PM_OPS
> > > (or better, the namespaced version) so that the PM ops can be
> > > defined
> > > in one file and referenced in another, while still having them
> > > garbage-
> > > collected when CONFIG_PM is disabled.
> > 
> > Looking at the definition of EXPORT_GPL_DEV_PM_OPS(), it will cause
> > an
> > EXPORT_SYMBOL_GPL() to be added. So there very well is a change. And
> > it's a completely bogus change because no module is ever going to use
> > that symbol. If we were to ever support building the pinctrl driver
> > as
> > a module, then this would perhaps make sense, but we don't.
> 
> In this particular case the EXPORT_SYMBOL_GPL() isn't really important,
> the rest of EXPORT_GPL_DEV_PM_OPS() is.
> 
> I don't think having a symbol exported it is a big deal, TBH, if you
> use the namespaced version. If you really don't want that, we need a
> version of EXPORT_GPL_DEV_PM_OPS() that doesn't export the symbol.

I do think it's a big deal to export a symbol if there's no reason to do
so.

And please, can we stop adding these macros for every possible scenario?
Maybe I'm just getting old, but I find it increasingly difficult to
understand what all of these are supposed to be. I get that people want
to get rid of boilerplate, but I think we need to more carefully balance
boilerplate vs. simplicity.

I'm seeing the same thing with stuff like those mass conversions to
atrocities like devm_platform_ioremap_resource() and
devm_platform_get_and_ioremap_resource(). There's so much churn involved
in getting those merged for usually saving a single line of code. And
it's not even mass conversions, but people tend to send these as one
patch per driver, which doesn't exactly help (except perhaps for patch
statistics).

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  parent reply	other threads:[~2023-07-18 13:20 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-17 17:28 [PATCH v2 00/10] pinctrl: Provide NOIRQ PM helper and use it Andy Shevchenko
2023-07-17 17:28 ` [PATCH v2 01/10] pm: Introduce DEFINE_NOIRQ_DEV_PM_OPS() helper Andy Shevchenko
2023-07-17 19:19   ` Paul Cercueil
2023-07-17 19:25     ` Andy Shevchenko
2023-07-18  9:55   ` Jonathan Cameron
2023-07-18 10:01   ` Geert Uytterhoeven
2023-07-20 19:00   ` Rafael J. Wysocki
2023-07-17 17:28 ` [PATCH v2 02/10] pinctrl: baytrail: Make use of pm_ptr() Andy Shevchenko
2023-07-17 19:20   ` Paul Cercueil
2023-07-18  9:53   ` Jonathan Cameron
2023-07-18 13:50     ` Andy Shevchenko
2023-07-17 17:28 ` [PATCH v2 03/10] pinctrl: cherryview: Switch to use DEFINE_NOIRQ_DEV_PM_OPS() helper Andy Shevchenko
2023-07-17 19:21   ` Paul Cercueil
2023-07-17 19:27     ` Andy Shevchenko
2023-07-17 19:28       ` Paul Cercueil
2023-07-18  9:54   ` Jonathan Cameron
2023-07-18 13:51     ` Andy Shevchenko
2023-07-17 17:28 ` [PATCH v2 04/10] pinctrl: intel: " Andy Shevchenko
     [not found]   ` <c47c26ba7ea5bcbdcbe1d001b6cc527cee6c7d03.camel@crapouillou.net>
2023-07-17 19:33     ` Andy Shevchenko
2023-07-17 19:55       ` Paul Cercueil
2023-07-18 12:57         ` Andy Shevchenko
2023-07-18 13:55           ` Paul Cercueil
2023-07-18 10:04   ` Jonathan Cameron
2023-07-18 13:53     ` Andy Shevchenko
2023-07-19 10:37       ` Jonathan Cameron
2023-07-17 17:28 ` [PATCH v2 05/10] pinctrl: lynxpoint: Make use of pm_ptr() Andy Shevchenko
2023-07-17 19:23   ` Paul Cercueil
2023-07-18 10:06   ` Jonathan Cameron
2023-07-18 13:55     ` Andy Shevchenko
2023-07-17 17:28 ` [PATCH v2 06/10] pinctrl: at91: Switch to use DEFINE_NOIRQ_DEV_PM_OPS() helper Andy Shevchenko
2023-07-17 19:25   ` Paul Cercueil
2023-07-17 19:35     ` Andy Shevchenko
2023-07-18 10:06   ` Jonathan Cameron
2023-07-18 14:48   ` claudiu beznea
2023-07-17 17:28 ` [PATCH v2 07/10] pinctrl: mediatek: " Andy Shevchenko
2023-07-17 19:06   ` Paul Cercueil
2023-07-17 19:36     ` Andy Shevchenko
2023-07-17 19:56       ` Paul Cercueil
2023-07-18 12:48         ` Andy Shevchenko
2023-07-18  9:47   ` AngeloGioacchino Del Regno
2023-07-18 12:46     ` Andy Shevchenko
2023-07-18 10:07   ` Jonathan Cameron
2023-07-17 17:28 ` [PATCH v2 08/10] pinctrl: mvebu: " Andy Shevchenko
2023-07-17 19:26   ` Paul Cercueil
2023-07-18 10:08   ` Jonathan Cameron
2023-07-17 17:28 ` [PATCH v2 09/10] pinctrl: renesas: " Andy Shevchenko
2023-07-17 19:12   ` Paul Cercueil
2023-07-17 19:38     ` Andy Shevchenko
2023-07-17 19:57       ` Paul Cercueil
2023-07-18 10:05     ` Geert Uytterhoeven
2023-07-18 12:43       ` Andy Shevchenko
2023-07-18 10:01   ` Geert Uytterhoeven
2023-07-18 10:10   ` Jonathan Cameron
2023-07-17 17:28 ` [PATCH v2 10/10] pinctrl: tegra: " Andy Shevchenko
2023-07-17 19:14   ` Paul Cercueil
2023-07-17 19:39     ` Andy Shevchenko
2023-07-18  7:45     ` Thierry Reding
2023-07-18  8:42       ` Paul Cercueil
2023-07-18 11:41         ` Thierry Reding
2023-07-18 11:55           ` Paul Cercueil
2023-07-18 12:50             ` Andy Shevchenko
2023-07-18 13:20             ` Thierry Reding [this message]
2023-07-18 13:48               ` Paul Cercueil
2023-07-18 12:53         ` Andy Shevchenko
2023-07-18  7:46   ` Thierry Reding
2023-07-18 10:11   ` Jonathan Cameron
2023-07-18 11:38     ` Thierry Reding
2023-07-18 12:01       ` Paul Cercueil
2023-07-18 13:07         ` Thierry Reding
2023-08-21 17:00 ` [PATCH v2 00/10] pinctrl: Provide NOIRQ PM helper and use it Andy Shevchenko

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=ZLaRlyzkqRLSqjQc@orome \
    --to=thierry.reding@gmail.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=andrew@lunn.ch \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=andy@kernel.org \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=bchihi@baylibre.com \
    --cc=claudiu.beznea@microchip.com \
    --cc=geert+renesas@glider.be \
    --cc=gregory.clement@bootlin.com \
    --cc=jonathanh@nvidia.com \
    --cc=len.brown@intel.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=ludovic.desroches@microchip.com \
    --cc=matthias.bgg@gmail.com \
    --cc=mika.westerberg@linux.intel.com \
    --cc=nicolas.ferre@microchip.com \
    --cc=paul@crapouillou.net \
    --cc=pavel@ucw.cz \
    --cc=rafael@kernel.org \
    --cc=sean.wang@kernel.org \
    --cc=sebastian.hesselbarth@gmail.com \
    --cc=wsa+renesas@sang-engineering.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 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).