public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: Robert Dolca <robert.dolca@gmail.com>
Cc: Robert Dolca <robert.dolca@intel.com>,
	linux-i2c@vger.kernel.org, linux-acpi@vger.kernel.org,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Wolfram Sang <wsa@the-dreams.de>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Len Brown <lenb@kernel.org>,
	Daniel Baluta <daniel.baluta@intel.com>
Subject: Re: [PATCH RFC] i2c: Use ID table to detect ACPI I2C devices
Date: Wed, 20 May 2015 13:57:53 +0300	[thread overview]
Message-ID: <20150520105753.GT1490@lahna.fi.intel.com> (raw)
In-Reply-To: <CAFPB+YcggLY9vwtYREX_YVVJFrTYHTQYnBtvMcicvLgo5MX-+A@mail.gmail.com>

On Wed, May 20, 2015 at 01:49:02PM +0300, Robert Dolca wrote:
> On Wed, May 20, 2015 at 12:48 PM, Mika Westerberg wrote:
> > On Wed, May 20, 2015 at 12:39:22PM +0300, Robert Dolca wrote:
> >> Currently, if the name used for DT (in dts) matches one of the names
> >> specified in the id table you will have a match. Isn't that an
> >> intended behavior?
> >
> > I thought one needs to put IDs to the driver .of_match_table. This is
> > also what i2c_device_match() is expecting, if I read it right.
> 
> If you put the DT id in of_match_table it will match here:
> 
> i2c_device_match
>         /* Attempt an OF style match */
>         if (of_driver_match_device(dev, drv))
>                 return 1;
> 
> If you don't specify of_match_table and you put the same ID in
> i2c_device_id table it wil match here:
> 
> i2c_device_match
>         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;
> 
> This is happening because the name from dts is used for client->name.
> i2c_match_id does the matching based on the client name.

OK.

> > BTW, how modules are supposed to be matched if we allow putting ACPI
> > identifiers to i2c_device_id table?
> 
> My aproach was like this: if the driver specifies .acpi_match table it
> will work like before.
> 
> i2c_device_match
>         /* Then ACPI style match */
>         if (acpi_driver_match_device(dev, drv))
>                 return 1;
> 
> If the driver does not specify .acpi_match table the i2c core will
> atempt to match against the  i2c_match_id table (the same way it does
> for DT). In the ACPI case the client->name has that :nn suffix and
> what the patch does is to ignore that when i2c_match_id is called.
> 
> i2c_device_match
>         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;

Yeah but when you have device with modalias of "acpi:FOO:" how
udev/modprobe is supposed find the correct module?

> The final goal is to simplify the driver and remove redundant code.

IMHO mixing ACPI identifiers with I2C device identifiers does not
simplify anything. And since you need to stick the ACPI ID somewhere
anyway I don't get the point of removing redundant code either.

  reply	other threads:[~2015-05-20 10:58 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-19 14:03 [PATCH RFC] i2c: Use ID table to detect ACPI I2C devices Robert Dolca
2015-05-19 23:35 ` Rafael J. Wysocki
2015-05-20  7:47 ` Mika Westerberg
2015-05-20  9:39   ` Robert Dolca
2015-05-20  9:48     ` Mika Westerberg
2015-05-20 10:49       ` Robert Dolca
2015-05-20 10:57         ` Mika Westerberg [this message]
2015-05-20 13:07           ` Robert Dolca
2015-05-20 13:57             ` Mika Westerberg
2015-05-20 21:32               ` Robert Dolca

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=20150520105753.GT1490@lahna.fi.intel.com \
    --to=mika.westerberg@linux.intel.com \
    --cc=daniel.baluta@intel.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=robert.dolca@gmail.com \
    --cc=robert.dolca@intel.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