From: wsa@the-dreams.de (Wolfram Sang)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 02/17] i2c: add deprecation warning for class based instantiation
Date: Mon, 10 Feb 2014 11:03:56 +0100 [thread overview]
Message-ID: <1392026654-5343-3-git-send-email-wsa@the-dreams.de> (raw)
In-Reply-To: <1392026654-5343-1-git-send-email-wsa@the-dreams.de>
Class based instantiation can cause noticeable delays when booting. This
mechanism is used when it is not possible to describe slaves on I2C
busses. As we do have other mechanisms, most embedded I2C will not need
classes and for embedded it is explicitly not recommended to use them. Add
a deprecation warning for drivers which want to disable class based
instantiation in the near future to gain boot-up time, so users relying
on this technique can switch to something better. They really should.
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Cc: Jean Delvare <khali@linux-fr.org>
Cc: linux-arm-kernel at lists.infradead.org
---
drivers/i2c/i2c-core.c | 7 +++++++
include/linux/i2c.h | 1 +
2 files changed, 8 insertions(+)
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index d74c0b3..42fcc59 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -1935,6 +1935,13 @@ static int i2c_detect_address(struct i2c_client *temp_client,
struct i2c_client *client;
/* Detection succeeded, instantiate the device */
+ if (adapter->class & I2C_CLASS_DEPRECATED)
+ dev_warn(&adapter->dev,
+ "This adapter will soon drop class based instantiation of devices. "
+ "Please make sure client 0x%02x gets instantiated by other means. "
+ "Check 'Documentation/i2c/instantiating-devices' for details.\n",
+ info.addr);
+
dev_dbg(&adapter->dev, "Creating %s at 0x%02x\n",
info.type, info.addr);
client = i2c_new_device(adapter, &info);
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index d9c8dbd3..b9e1707 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -473,6 +473,7 @@ void i2c_unlock_adapter(struct i2c_adapter *);
#define I2C_CLASS_HWMON (1<<0) /* lm_sensors, ... */
#define I2C_CLASS_DDC (1<<3) /* DDC bus on graphics adapters */
#define I2C_CLASS_SPD (1<<7) /* Memory modules */
+#define I2C_CLASS_DEPRECATED (1<<8) /* Warn users that adapter will stop using classes */
/* Internal numbers to terminate lists */
#define I2C_CLIENT_END 0xfffeU
--
1.8.5.1
next prev parent reply other threads:[~2014-02-10 10:03 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-10 10:03 [PATCH 00/17] i2c: deprecate class based instantiation for embedded I2C drivers Wolfram Sang
2014-02-10 10:03 ` [PATCH 01/17] Documentation: i2c: describe devicetree method for instantiating devices Wolfram Sang
2014-02-10 18:21 ` linux at roeck-us.net
2014-02-12 15:15 ` Wolfram Sang
2014-02-15 14:48 ` Wolfram Sang
2014-02-10 10:03 ` Wolfram Sang [this message]
2014-02-10 10:04 ` [PATCH 10/17] i2c: i2c-nomadik: deprecate class based instantiation Wolfram Sang
2014-02-12 16:24 ` Linus Walleij
2014-02-10 10:04 ` [PATCH 13/17] i2c: i2c-s3c2410: " Wolfram Sang
2014-02-10 10:04 ` [PATCH 14/17] i2c: i2c-sirf: " Wolfram Sang
2014-02-10 10:04 ` [PATCH 15/17] i2c: i2c-stu300: " Wolfram Sang
2014-02-12 16:22 ` Linus Walleij
2014-03-28 7:55 ` [PATCH 00/17] i2c: deprecate class based instantiation for embedded I2C drivers Wolfram Sang
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=1392026654-5343-3-git-send-email-wsa@the-dreams.de \
--to=wsa@the-dreams.de \
--cc=linux-arm-kernel@lists.infradead.org \
/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).