linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] i2c: Split adapter initialisation from registers
@ 2016-06-09  8:53 Chris Wilson
  2016-06-09  8:53 ` [PATCH 2/3] i2c: Mark adapter as initialised Chris Wilson
  2016-06-09  8:53 ` [PATCH 3/3] i2c: Export i2c_init_adapter() for use by drivers in early initialisation Chris Wilson
  0 siblings, 2 replies; 4+ messages in thread
From: Chris Wilson @ 2016-06-09  8:53 UTC (permalink / raw)
  To: linux-i2c
  Cc: Chris Wilson, Ville Syrjälä,
	Wolfram Sang, linux-kernel, dri-devel

In order to handle devices that need to use the adapter prior to it
being registered with the system, we first need to split out the
initialisation of the adapter out of i2c_register_adapter.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Wolfram Sang <wsa@the-dreams.de>
Cc: linux-i2c@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
---
 drivers/i2c/i2c-core.c | 27 ++++++++++++++++++---------
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index af11b658984d..743c38a63da1 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -1511,16 +1511,8 @@ static int __process_new_adapter(struct device_driver *d, void *data)
 	return i2c_do_add_adapter(to_i2c_driver(d), data);
 }
 
-static int i2c_register_adapter(struct i2c_adapter *adap)
+static int i2c_init_adapter(struct i2c_adapter *adap)
 {
-	int res = 0;
-
-	/* Can't register until after driver model init */
-	if (WARN_ON(!is_registered)) {
-		res = -EAGAIN;
-		goto out_list;
-	}
-
 	/* Sanity checks */
 	if (unlikely(adap->name[0] == '\0')) {
 		pr_err("i2c-core: Attempt to register an adapter with "
@@ -1548,6 +1540,23 @@ static int i2c_register_adapter(struct i2c_adapter *adap)
 	if (adap->timeout == 0)
 		adap->timeout = HZ;
 
+	return 0;
+}
+
+static int i2c_register_adapter(struct i2c_adapter *adap)
+{
+	int res = 0;
+
+	/* Can't register until after driver model init */
+	if (WARN_ON(!is_registered)) {
+		res = -EAGAIN;
+		goto out_list;
+	}
+
+	res = i2c_init_adapter(adap);
+	if (res)
+		goto out_list;
+
 	dev_set_name(&adap->dev, "i2c-%d", adap->nr);
 	adap->dev.bus = &i2c_bus_type;
 	adap->dev.type = &i2c_adapter_type;
-- 
2.8.1

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

end of thread, other threads:[~2016-08-23 21:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-09  8:53 [PATCH 1/3] i2c: Split adapter initialisation from registers Chris Wilson
2016-06-09  8:53 ` [PATCH 2/3] i2c: Mark adapter as initialised Chris Wilson
2016-06-09  8:53 ` [PATCH 3/3] i2c: Export i2c_init_adapter() for use by drivers in early initialisation Chris Wilson
2016-08-23 21:33   ` Wolfram Sang

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