From: Mark Brown <broonie@kernel.org>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Wolfram Sang <wsa@the-dreams.de>,
"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
Lee Jones <lee.jones@linaro.org>,
Samuel Ortiz <sameo@linux.intel.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Wang Shilong <wangshilong1991@gmail.com>
Subject: Re: [PATCH 1/4 v2] mfd: add STw481x driver
Date: Mon, 16 Sep 2013 14:51:18 +0100 [thread overview]
Message-ID: <20130916135118.GD29403@sirena.org.uk> (raw)
In-Reply-To: <CACRpkdatiELF3WK9qE_Mgcq3iCgv5w3X22xp1=232JJq9sWggQ@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2291 bytes --]
On Mon, Sep 16, 2013 at 02:44:35PM +0200, Linus Walleij wrote:
> I've tried to fix this for DT-only I2C devices
> and this very driver was the reason.
> But a tiresome regression due to drivers relying on this
> i2c_device_id not being NULL and inability to remove it from the I2C
> core without refactoring the world ensued, see:
> commit c80f52847c50109ca248c22efbf71ff10553dca4
Oh, that was the change...
> Reverted in:
> commit 661f6c1cd926c6c973e03c6b5151d161f3a666ed
> For this reason I think:
> http://marc.info/?l=linux-next&m=137148411231784&w=2
> I have tentatively given up getting pure DT I2C drivers
> to probe, I don't think I have the whole picture, but
> Wolfram has serious doubts about this and say we have
> to be careful ....
> Wolfram, do you have some ideas on how we should
> proceed or ar you happy with merging this as-is?
I'd have expected that it should be possible to change things such that
the change in the core doesn't produce any change in behaviour for
existing drivers. Can we not change the patch so that i2c_match_id()
copes with getting a NULL id_table? Something like this:
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index 29d3f04..61087ea 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -67,6 +67,9 @@ static int i2c_detect(struct i2c_adapter *adapter, struct i2c_driver *driver);
static const struct i2c_device_id *i2c_match_id(const struct i2c_device_id *id,
const struct i2c_client *client)
{
+ if (!id)
+ return NULL;
+
while (id->name[0]) {
if (strcmp(client->name, id->name) == 0)
return id;
@@ -92,11 +95,8 @@ static int i2c_device_match(struct device *dev, struct device_driver *drv)
return 1;
driver = to_i2c_driver(drv);
- /* match on an id table if there is one */
- if (driver->id_table)
- return i2c_match_id(driver->id_table, client) != NULL;
- return 0;
+ return i2c_match_id(driver->id_table, client) != NULL;
}
@@ -246,7 +246,7 @@ static int i2c_device_probe(struct device *dev)
return 0;
driver = to_i2c_driver(dev->driver);
- if (!driver->probe || !driver->id_table)
+ if (!driver->probe)
return -ENODEV;
client->driver = driver;
if (!device_can_wakeup(&client->dev))
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2013-09-16 13:51 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1379094851-26385-1-git-send-email-linus.walleij@linaro.org>
[not found] ` <20130916091956.GF3999@lee--X1>
[not found] ` <20130916104009.GA29403@sirena.org.uk>
[not found] ` <20130916104009.GA29403-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-09-16 12:44 ` [PATCH 1/4 v2] mfd: add STw481x driver Linus Walleij
2013-09-16 13:51 ` Mark Brown [this message]
[not found] ` <20130916135118.GD29403-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-09-16 15:21 ` Wolfram Sang
2013-09-16 15:34 ` Lee Jones
2013-09-16 16:00 ` Wolfram Sang
2013-09-16 16:05 ` Lee Jones
2013-09-16 16:24 ` Mark Brown
[not found] ` <20130916162428.GE29403-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-09-17 8:06 ` Lee Jones
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=20130916135118.GD29403@sirena.org.uk \
--to=broonie@kernel.org \
--cc=lee.jones@linaro.org \
--cc=linus.walleij@linaro.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sameo@linux.intel.com \
--cc=wangshilong1991@gmail.com \
--cc=wsa@the-dreams.de \
/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).