Linux-RTC Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH 00/10] Stop NULLifying match pointer in of_match_device()
@ 2019-10-04 21:43 Stephen Boyd
  2019-10-04 21:43 ` [PATCH 03/10] rtc: armada38x: Use of_device_get_match_data() Stephen Boyd
  0 siblings, 1 reply; 3+ messages in thread
From: Stephen Boyd @ 2019-10-04 21:43 UTC (permalink / raw)
  To: linux-kernel
  Cc: Alessandro Zummo, Alexandre Belloni, Alexandre Torgue,
	alsa-devel, Andrew Lunn, Arnd Bergmann, Dan Murphy,
	David S. Miller, Frank Rowand, Geert Uytterhoeven,
	Greg Kroah-Hartman, Gregory Clement, Grygorii Strashko,
	Guenter Roeck, Jacek Anaszewski, Jacopo Mondi, Jaroslav Kysela,
	Jason Cooper, Jean Delvare, Jiri Slaby, Liam Girdwood,
	linux-hwmon, linux-leds, linux-media, linux-omap,
	linux-renesas-soc, linux-rtc, linux-serial, linux-spi, linux-usb,
	Mark Brown, Mauro Carvalho Chehab, Maxime Coquelin,
	Paul Cercueil, Pavel Machek, Richard Leitner, Riku Voipio,
	Rob Herring, Sebastian Hesselbarth, Takashi Iwai

of_match_device() uses of_match_ptr() to make the match table argument
NULL via the pre-processor when CONFIG_OF=n. This makes life harder for
compilers who think that match tables are never used and warn about
unused variables when CONFIG_OF=n. This series changes various callers
to use of_device_get_match_data() instead, which doesn't have this
problem, and removes the of_match_ptr() usage from of_match_device() so
that the compiler can stop complaining about unused variables. It will
do dead code elimination instead and remove the match table if it isn't
actually used.

Huge Cc list!

Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Alexandre Torgue <alexandre.torgue@st.com>
Cc: <alsa-devel@alsa-project.org>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Dan Murphy <dmurphy@ti.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Frank Rowand <frowand.list@gmail.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Gregory Clement <gregory.clement@bootlin.com>
Cc: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Cc: Jacopo Mondi <jacopo@jmondi.org>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Jean Delvare <jdelvare@suse.com>
Cc: Jiri Slaby <jslaby@suse.com>
Cc: Liam Girdwood <lgirdwood@gmail.com>
Cc: <linux-hwmon@vger.kernel.org>
Cc: <linux-leds@vger.kernel.org>
Cc: <linux-media@vger.kernel.org>
Cc: <linux-omap@vger.kernel.org>
Cc: <linux-renesas-soc@vger.kernel.org>
Cc: <linux-rtc@vger.kernel.org>
Cc: <linux-serial@vger.kernel.org>
Cc: <linux-spi@vger.kernel.org>
Cc: <linux-usb@vger.kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: Paul Cercueil <paul@crapouillou.net>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Richard Leitner <richard.leitner@skidata.com>
Cc: Riku Voipio <riku.voipio@iki.fi>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Cc: Takashi Iwai <tiwai@suse.com>

Stephen Boyd (10):
  leds: pca953x: Use of_device_get_match_data()
  media: renesas-ceu: Use of_device_get_match_data()
  rtc: armada38x: Use of_device_get_match_data()
  drivers: net: davinci_mdio: Use of_device_get_match_data()
  serial: stm32: Use of_device_get_match_data()
  usb: usb251xb: Use of_device_get_match_data()
  ASoC: jz4740: Use of_device_get_match_data()
  spi: gpio: Look for a device node instead of match
  hwmon: (lm70) Avoid undefined reference to match table
  of/device: Don't NULLify match table in of_match_device() with
    CONFIG_OF=n

 drivers/hwmon/lm70.c                   |  2 +-
 drivers/leds/leds-pca9532.c            | 14 +----
 drivers/media/platform/renesas-ceu.c   |  2 +-
 drivers/net/ethernet/ti/davinci_mdio.c | 12 ++---
 drivers/rtc/rtc-armada38x.c            | 10 ++--
 drivers/spi/spi-gpio.c                 |  5 +-
 drivers/tty/serial/stm32-usart.c       | 71 ++++++++++++--------------
 drivers/tty/serial/stm32-usart.h       |  2 +-
 drivers/usb/misc/usb251xb.c            | 12 ++---
 include/linux/of_device.h              |  4 +-
 sound/soc/jz4740/jz4740-i2s.c          |  5 +-
 11 files changed, 55 insertions(+), 84 deletions(-)


base-commit: 54ecb8f7028c5eb3d740bb82b0f1d90f2df63c5c
-- 
Sent by a computer through tubes

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 03/10] rtc: armada38x: Use of_device_get_match_data()
  2019-10-04 21:43 [PATCH 00/10] Stop NULLifying match pointer in of_match_device() Stephen Boyd
@ 2019-10-04 21:43 ` Stephen Boyd
  2019-10-07 13:53   ` Alexandre Belloni
  0 siblings, 1 reply; 3+ messages in thread
From: Stephen Boyd @ 2019-10-04 21:43 UTC (permalink / raw)
  To: linux-kernel
  Cc: Arnd Bergmann, Geert Uytterhoeven, Jason Cooper, Andrew Lunn,
	Gregory Clement, Sebastian Hesselbarth, Alessandro Zummo,
	Alexandre Belloni, Rob Herring, Frank Rowand, linux-rtc

Use the more modern API to get the match data out of the of match table.
This saves some code, lines, and nicely avoids referencing the match
table when it is undefined with configurations where CONFIG_OF=n.

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Gregory Clement <gregory.clement@bootlin.com>
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Frank Rowand <frowand.list@gmail.com>
Cc: <linux-rtc@vger.kernel.org>
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
---

Please ack or pick for immediate merge so the last patch can be merged.

 drivers/rtc/rtc-armada38x.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/rtc/rtc-armada38x.c b/drivers/rtc/rtc-armada38x.c
index 9351bd52477e..94d7c22fc4f3 100644
--- a/drivers/rtc/rtc-armada38x.c
+++ b/drivers/rtc/rtc-armada38x.c
@@ -74,7 +74,7 @@ struct armada38x_rtc {
 	int		    irq;
 	bool		    initialized;
 	struct value_to_freq *val_to_freq;
-	struct armada38x_rtc_data *data;
+	const struct armada38x_rtc_data *data;
 };
 
 #define ALARM1	0
@@ -501,17 +501,14 @@ static __init int armada38x_rtc_probe(struct platform_device *pdev)
 {
 	struct resource *res;
 	struct armada38x_rtc *rtc;
-	const struct of_device_id *match;
-
-	match = of_match_device(armada38x_rtc_of_match_table, &pdev->dev);
-	if (!match)
-		return -ENODEV;
 
 	rtc = devm_kzalloc(&pdev->dev, sizeof(struct armada38x_rtc),
 			    GFP_KERNEL);
 	if (!rtc)
 		return -ENOMEM;
 
+	rtc->data = of_device_get_match_data(&pdev->dev);
+
 	rtc->val_to_freq = devm_kcalloc(&pdev->dev, SAMPLE_NR,
 				sizeof(struct value_to_freq), GFP_KERNEL);
 	if (!rtc->val_to_freq)
@@ -553,7 +550,6 @@ static __init int armada38x_rtc_probe(struct platform_device *pdev)
 		 */
 		rtc->rtc_dev->ops = &armada38x_rtc_ops_noirq;
 	}
-	rtc->data = (struct armada38x_rtc_data *)match->data;
 
 	/* Update RTC-MBUS bridge timing parameters */
 	rtc->data->update_mbus_timing(rtc);
-- 
Sent by a computer through tubes


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 03/10] rtc: armada38x: Use of_device_get_match_data()
  2019-10-04 21:43 ` [PATCH 03/10] rtc: armada38x: Use of_device_get_match_data() Stephen Boyd
@ 2019-10-07 13:53   ` Alexandre Belloni
  0 siblings, 0 replies; 3+ messages in thread
From: Alexandre Belloni @ 2019-10-07 13:53 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: linux-kernel, Arnd Bergmann, Geert Uytterhoeven, Jason Cooper,
	Andrew Lunn, Gregory Clement, Sebastian Hesselbarth,
	Alessandro Zummo, Rob Herring, Frank Rowand, linux-rtc

On 04/10/2019 14:43:27-0700, Stephen Boyd wrote:
> Use the more modern API to get the match data out of the of match table.
> This saves some code, lines, and nicely avoids referencing the match
> table when it is undefined with configurations where CONFIG_OF=n.
> 
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> Cc: Jason Cooper <jason@lakedaemon.net>
> Cc: Andrew Lunn <andrew@lunn.ch>
> Cc: Gregory Clement <gregory.clement@bootlin.com>
> Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
> Cc: Alessandro Zummo <a.zummo@towertech.it>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Frank Rowand <frowand.list@gmail.com>
> Cc: <linux-rtc@vger.kernel.org>
> Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

> ---
> 
> Please ack or pick for immediate merge so the last patch can be merged.
> 
>  drivers/rtc/rtc-armada38x.c | 10 +++-------
>  1 file changed, 3 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/rtc/rtc-armada38x.c b/drivers/rtc/rtc-armada38x.c
> index 9351bd52477e..94d7c22fc4f3 100644
> --- a/drivers/rtc/rtc-armada38x.c
> +++ b/drivers/rtc/rtc-armada38x.c
> @@ -74,7 +74,7 @@ struct armada38x_rtc {
>  	int		    irq;
>  	bool		    initialized;
>  	struct value_to_freq *val_to_freq;
> -	struct armada38x_rtc_data *data;
> +	const struct armada38x_rtc_data *data;
>  };
>  
>  #define ALARM1	0
> @@ -501,17 +501,14 @@ static __init int armada38x_rtc_probe(struct platform_device *pdev)
>  {
>  	struct resource *res;
>  	struct armada38x_rtc *rtc;
> -	const struct of_device_id *match;
> -
> -	match = of_match_device(armada38x_rtc_of_match_table, &pdev->dev);
> -	if (!match)
> -		return -ENODEV;
>  
>  	rtc = devm_kzalloc(&pdev->dev, sizeof(struct armada38x_rtc),
>  			    GFP_KERNEL);
>  	if (!rtc)
>  		return -ENOMEM;
>  
> +	rtc->data = of_device_get_match_data(&pdev->dev);
> +
>  	rtc->val_to_freq = devm_kcalloc(&pdev->dev, SAMPLE_NR,
>  				sizeof(struct value_to_freq), GFP_KERNEL);
>  	if (!rtc->val_to_freq)
> @@ -553,7 +550,6 @@ static __init int armada38x_rtc_probe(struct platform_device *pdev)
>  		 */
>  		rtc->rtc_dev->ops = &armada38x_rtc_ops_noirq;
>  	}
> -	rtc->data = (struct armada38x_rtc_data *)match->data;
>  
>  	/* Update RTC-MBUS bridge timing parameters */
>  	rtc->data->update_mbus_timing(rtc);
> -- 
> Sent by a computer through tubes
> 

-- 
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, back to index

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-04 21:43 [PATCH 00/10] Stop NULLifying match pointer in of_match_device() Stephen Boyd
2019-10-04 21:43 ` [PATCH 03/10] rtc: armada38x: Use of_device_get_match_data() Stephen Boyd
2019-10-07 13:53   ` Alexandre Belloni

Linux-RTC Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-rtc/0 linux-rtc/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-rtc linux-rtc/ https://lore.kernel.org/linux-rtc \
		linux-rtc@vger.kernel.org
	public-inbox-index linux-rtc

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-rtc


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git