LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Bartosz Golaszewski <brgl@bgdev.pl>
To: Sekhar Nori <nsekhar@ti.com>, Kevin Hilman <khilman@kernel.org>,
	David Lechner <david@lechnology.com>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Rich Felker <dalias@libc.org>,
	Frank Rowand <frowand.list@gmail.com>,
	"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
	Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Arend van Spriel <aspriel@gmail.com>,
	Heikki Krogerus <heikki.krogerus@linux.intel.com>,
	Michal Suchanek <msuchanek@suse.de>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
	Bartosz Golaszewski <bgolaszewski@baylibre.com>
Subject: [PATCH 03/11] platform: make support for early platform devices conditional
Date: Tue, 24 Apr 2018 19:30:43 +0200	[thread overview]
Message-ID: <20180424173051.15099-4-brgl@bgdev.pl> (raw)
In-Reply-To: <20180424173051.15099-1-brgl@bgdev.pl>

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

We want to add support for device tree based early platform devices.

In order not to introduce additional bloat for all users when we extend
struct device to accomodate early platform DT support, let's make the
current machine code support conditional.

The only current user of the early platform infrastructure is SuperH so
make it select the appropriate Kconfig option.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 arch/sh/Kconfig                 |  1 +
 drivers/base/Kconfig            |  4 ++++
 drivers/base/platform.c         |  3 +++
 include/linux/platform_device.h | 32 ++++++++++++++++++++++++++++++++
 4 files changed, 40 insertions(+)

diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 97fe29316476..1b2c0b2ce402 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -50,6 +50,7 @@ config SUPERH
 	select HAVE_ARCH_AUDITSYSCALL
 	select HAVE_FUTEX_CMPXCHG if FUTEX
 	select HAVE_NMI
+	select EARLY_PLATFORM_DEVICES
 	help
 	  The SuperH is a RISC processor targeted for use in embedded systems
 	  and consumer electronics; it was also used in the Sega Dreamcast
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
index 29b0eb452b3a..37de5e1d6217 100644
--- a/drivers/base/Kconfig
+++ b/drivers/base/Kconfig
@@ -205,6 +205,10 @@ config DEBUG_TEST_DRIVER_REMOVE
 	  unusable. You should say N here unless you are explicitly looking to
 	  test this functionality.
 
+config EARLY_PLATFORM_DEVICES
+	bool
+	default n
+
 source "drivers/base/test/Kconfig"
 
 config SYS_HYPERVISOR
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index 8075ddc70a17..af440d703f0b 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -1186,6 +1186,8 @@ u64 dma_get_required_mask(struct device *dev)
 EXPORT_SYMBOL_GPL(dma_get_required_mask);
 #endif
 
+#ifdef CONFIG_EARLY_PLATFORM_DEVICES
+
 static __initdata LIST_HEAD(early_platform_driver_list);
 static __initdata LIST_HEAD(early_platform_device_list);
 
@@ -1471,3 +1473,4 @@ void __init early_platform_cleanup(void)
 	}
 }
 
+#endif /* CONFIG_EARLY_PLATFORM_DEVICES */
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h
index a06b194ba30b..514ada776004 100644
--- a/include/linux/platform_device.h
+++ b/include/linux/platform_device.h
@@ -297,6 +297,8 @@ struct early_platform_driver {
 #define EARLY_PLATFORM_ID_UNSET -2
 #define EARLY_PLATFORM_ID_ERROR -3
 
+#ifdef CONFIG_EARLY_PLATFORM_DEVICES
+
 extern int early_platform_driver_register(struct early_platform_driver *epdrv,
 					  char *buf);
 extern void early_platform_add_devices(struct platform_device **devs, int num);
@@ -350,6 +352,36 @@ static inline char *early_platform_driver_setup_func(void)		\
 }
 #endif /* MODULE */
 
+#else /* CONFIG_EARLY_PLATFORM_DEVICES */
+static inline int
+early_platform_driver_register(struct early_platform_driver *epdrv, char *buf)
+{
+	return -ENOSYS;
+}
+static inline void
+early_platform_add_devices(struct platform_device **devs, int num) {}
+static inline void early_platform_add_device(struct platform_device *pdev) {}
+static inline int is_early_platform_device(struct platform_device *pdev)
+{
+	return -ENOSYS;
+}
+static inline void early_platform_driver_register_all(char *class_str) {}
+static inline int early_platform_driver_probe(char *class_str,
+					      int nr_probe, int user_only)
+{
+	return -ENOSYS;
+}
+static inline int early_platform_driver_register_probe_all(char *class_str,
+							   int nr_probe,
+							   int user_only)
+{
+	return -ENOSYS;
+}
+static inline void early_platform_cleanup(void) {}
+#define early_platform_init(class_string, platdrv)
+#define early_platform_init_buffer(class_string, platdrv, buf, bufsiz)
+#endif /* CONFIG_EARLY_PLATFORM_DEVICES */
+
 #ifdef CONFIG_SUSPEND
 extern int platform_pm_suspend(struct device *dev);
 extern int platform_pm_resume(struct device *dev);
-- 
2.17.0

  parent reply	other threads:[~2018-04-24 17:30 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-24 17:30 [PATCH 00/11] platform: device tree support for early platform drivers Bartosz Golaszewski
2018-04-24 17:30 ` [PATCH 01/11] platform: early: provide early_platform_add_device() Bartosz Golaszewski
2018-04-24 17:30 ` [PATCH 02/11] platform: provide early_platform_driver_register_probe_all() Bartosz Golaszewski
2018-04-24 17:30 ` Bartosz Golaszewski [this message]
2018-04-24 19:31   ` [PATCH 03/11] platform: make support for early platform devices conditional Randy Dunlap
2018-04-25 14:02   ` Rich Felker
2018-04-24 17:30 ` [PATCH 04/11] of: platform: use pdev as name for vars of type struct platform_device Bartosz Golaszewski
2018-04-24 17:30 ` [PATCH 05/11] platform: use a dedicated list_head for early devices Bartosz Golaszewski
2018-04-26  4:27   ` kbuild test robot
2018-04-24 17:30 ` [PATCH 06/11] of: provide for_each_compatible_child_node() Bartosz Golaszewski
2018-04-24 17:30 ` [PATCH 07/11] dt-bindings: add bindings for early devices Bartosz Golaszewski
2018-04-24 17:30 ` [PATCH 08/11] of: platform: provide of_early_platform_populate() Bartosz Golaszewski
2018-04-24 17:30 ` [PATCH 09/11] platform: provide early_platform_driver() Bartosz Golaszewski
2018-04-24 17:30 ` [PATCH 10/11] of: platform: provide of_early_platform_probe() Bartosz Golaszewski
2018-04-26  3:46   ` kbuild test robot
2018-04-24 17:30 ` [PATCH 11/11] misc: implement a dummy early platform driver Bartosz Golaszewski
2018-04-24 17:55 ` [PATCH 00/11] platform: device tree support for early platform drivers Mark Rutland
2018-04-24 17:59   ` Rich Felker
2018-04-24 17:57 ` Rich Felker
2018-04-25  9:33   ` Bartosz Golaszewski
2018-04-24 18:19 ` Robin Murphy
2018-04-24 19:39 ` Rob Herring

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=20180424173051.15099-4-brgl@bgdev.pl \
    --to=brgl@bgdev.pl \
    --cc=andy.shevchenko@gmail.com \
    --cc=arnd@arndb.de \
    --cc=aspriel@gmail.com \
    --cc=bgolaszewski@baylibre.com \
    --cc=dalias@libc.org \
    --cc=david@lechnology.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=frowand.list@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=jan.kiszka@siemens.com \
    --cc=jarkko.sakkinen@linux.intel.com \
    --cc=khilman@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=msuchanek@suse.de \
    --cc=mturquette@baylibre.com \
    --cc=nsekhar@ti.com \
    --cc=rafael.j.wysocki@intel.com \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=ysato@users.sourceforge.jp \
    --subject='Re: [PATCH 03/11] platform: make support for early platform devices conditional' \
    /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

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).