Linux-USB 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 06/10] usb: usb251xb: 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 06/10] usb: usb251xb: 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-05  6:53   ` Greg Kroah-Hartman
  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, Richard Leitner,
	Greg Kroah-Hartman, Rob Herring, Frank Rowand, linux-usb

Use the more modern API here instead of using of_match_device() and
avoid casting away const from the returned pointer by pushing the const
type through to the users. This nicely avoids referencing the match
table when it is undefined with configurations where CONFIG_OF=n and
avoids const issues.

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Richard Leitner <richard.leitner@skidata.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Frank Rowand <frowand.list@gmail.com>
Cc: <linux-usb@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/usb/misc/usb251xb.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/usb/misc/usb251xb.c b/drivers/usb/misc/usb251xb.c
index 6ca9111d150a..84f218a6843c 100644
--- a/drivers/usb/misc/usb251xb.c
+++ b/drivers/usb/misc/usb251xb.c
@@ -392,7 +392,7 @@ static void usb251xb_get_ports_field(struct usb251xb *hub,
 }
 
 static int usb251xb_get_ofdata(struct usb251xb *hub,
-			       struct usb251xb_data *data)
+			       const struct usb251xb_data *data)
 {
 	struct device *dev = hub->dev;
 	struct device_node *np = dev->of_node;
@@ -623,7 +623,7 @@ static const struct of_device_id usb251xb_of_match[] = {
 MODULE_DEVICE_TABLE(of, usb251xb_of_match);
 #else /* CONFIG_OF */
 static int usb251xb_get_ofdata(struct usb251xb *hub,
-			       struct usb251xb_data *data)
+			       const struct usb251xb_data *data)
 {
 	return 0;
 }
@@ -633,13 +633,11 @@ static int usb251xb_probe(struct usb251xb *hub)
 {
 	struct device *dev = hub->dev;
 	struct device_node *np = dev->of_node;
-	const struct of_device_id *of_id = of_match_device(usb251xb_of_match,
-							   dev);
+	const struct usb251xb_data *usb_data = of_device_get_match_data(dev);
 	int err;
 
-	if (np && of_id) {
-		err = usb251xb_get_ofdata(hub,
-					  (struct usb251xb_data *)of_id->data);
+	if (np && usb_data) {
+		err = usb251xb_get_ofdata(hub, usb_data);
 		if (err) {
 			dev_err(dev, "failed to get ofdata: %d\n", err);
 			return err;
-- 
Sent by a computer through tubes


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

* Re: [PATCH 06/10] usb: usb251xb: Use of_device_get_match_data()
  2019-10-04 21:43 ` [PATCH 06/10] usb: usb251xb: Use of_device_get_match_data() Stephen Boyd
@ 2019-10-05  6:53   ` Greg Kroah-Hartman
  0 siblings, 0 replies; 3+ messages in thread
From: Greg Kroah-Hartman @ 2019-10-05  6:53 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: linux-kernel, Arnd Bergmann, Geert Uytterhoeven, Richard Leitner,
	Rob Herring, Frank Rowand, linux-usb

On Fri, Oct 04, 2019 at 02:43:30PM -0700, Stephen Boyd wrote:
> Use the more modern API here instead of using of_match_device() and
> avoid casting away const from the returned pointer by pushing the const
> type through to the users. This nicely avoids referencing the match
> table when it is undefined with configurations where CONFIG_OF=n and
> avoids const issues.
> 
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> Cc: Richard Leitner <richard.leitner@skidata.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Frank Rowand <frowand.list@gmail.com>
> Cc: <linux-usb@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.

Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

^ 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 06/10] usb: usb251xb: Use of_device_get_match_data() Stephen Boyd
2019-10-05  6:53   ` Greg Kroah-Hartman

Linux-USB Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-usb/0 linux-usb/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-usb linux-usb/ https://lore.kernel.org/linux-usb \
		linux-usb@vger.kernel.org
	public-inbox-index linux-usb

Example config snippet for mirrors

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


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