All of lore.kernel.org
 help / color / mirror / Atom feed
From: Javier Martinez Canillas <javier@osg.samsung.com>
To: Paul Bolle <pebolle@tiscali.nl>
Cc: Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 15/27] regulator: fan53555: Export I2C module alias information
Date: Tue, 4 Aug 2015 12:33:32 +0200	[thread overview]
Message-ID: <55C094FC.5070605@osg.samsung.com> (raw)
In-Reply-To: <1438682920.8734.61.camel@tiscali.nl>

Hello Paul,

On 08/04/2015 12:08 PM, Paul Bolle wrote:
> Hi Javier,
> 
> On ma, 2015-08-03 at 16:29 +0200, Javier Martinez Canillas wrote:
>> On 08/03/2015 01:43 PM, Paul Bolle wrote:
>>> On do, 2015-07-30 at 18:18 +0200, Javier Martinez Canillas wrote:
> 
>> I2C is a little special in that it uses the id_table again to match
>> in i2c_device_probe() and pass a i2c_device_id to the I2C driver's probe
>> function. That is what I meant by matching but maybe I could had been more
>> precise.
> 
> (So is what I2C currently does comparable to what, say, USB does (ie,
> using usb_device_id for the match and also passing it to the driver's
> probe function) or is it more complicated?)
>

Yes, is similar to what USB does. Now the difference is that USB is an
enumerable bus so you have a single id_table in USB drivers. But I2C
is not an enumerable bus so you need a i2c_device_id table and in the
case of Device Trees, also a of_device_id table.

So USB does the same but has it easy since the match is by USB idVendor,
idProduct, etc while I2C could need both the I2C and OF tables.

Currently for OF, I2C core uses the OF table in i2c_device_match() when
calling of_driver_match_device() and the I2C table in i2c_device_probe()
when calling i2c_match_id().

That's one of the reasons why OF only drivers needs an I2C table. The
other reason is due MODALIAS=i2c:<foo> uevents always been reported.

To make even more complicated, the struct i2c_device_id has a kernel_ulong_t
to store the driver data while the struct of_device_id has a const void * so
some casting would be necessary if the OF table is also used on probe in
the future to avoid the need of an I2C table in OF only drivers.
 
>>> But I'm guessing that parsing a device tree blob that contains
>>> strings like
>>>     compatible = "silergy,syr828"
>>>
>>> would add strings like
>>>     MODALIAS=of:N[...]T[...]Csilergy,syr828
>>
>> That would be the correct behavior and is what the RFC patch #27 does.
>>  
>>> to the related uevents. (Likewise for the two other aliases.) Doesn't
>>> that happen here?
>>
>> No, that is exactly the problem.
> 
> Which also explains how these
>    MODULE_DEVICE_TABLE(of, ...);
> 
> lines, which have no effect for the drivers at hand, added to my confusion.
>

Yes, it is confusing indeed and even more since this series are adding these
for the missing drivers. But the rationale for that is that once all drivers
have a proper MODULE_DEVICE_TABLE({i2c,of},...) then the I2C core can be
changed to report a proper MODALIAS=of:N*T*C* uevent.

>> Take a look to i2c_device_uevent() [0],
>> it just does:
>>
>> add_uevent_var(env, "MODALIAS=%s%s", I2C_MODULE_PREFIX, client->name))
>>
>> So if you have a i2c_device_id table but no 
>> MODULE_DEVICE_TABLE(i2c,...),
>> then module autoload won't work.
> 
> Thanks for taking the time to explain all this to me.
>

You are welcome and thanks a lot for the interest in the series
and feedback.

> 
> Paul Bolle
> 

Best regards,
-- 
Javier Martinez Canillas
Open Source Group
Samsung Research America

  reply	other threads:[~2015-08-04 10:33 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-30 16:18 [PATCH 00/27] Export I2C and OF module aliases in missing drivers Javier Martinez Canillas
2015-07-30 16:18 ` [lm-sensors] " Javier Martinez Canillas
2015-07-30 16:18 ` Javier Martinez Canillas
2015-07-30 16:18 ` [rtc-linux] " Javier Martinez Canillas
2015-07-30 16:18 ` Javier Martinez Canillas
2015-07-30 16:18 ` Javier Martinez Canillas
2015-07-30 16:18 ` [PATCH 01/27] mfd: stw481x: Export I2C module alias information Javier Martinez Canillas
2015-08-10 12:48   ` Lee Jones
2015-07-30 16:18 ` [PATCH 02/27] spi: xcomm: " Javier Martinez Canillas
     [not found]   ` <1438273132-20926-3-git-send-email-javier-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
2015-08-01 11:18     ` Applied "spi: xcomm: Export I2C module alias information" to the spi tree Mark Brown
2015-07-30 16:18 ` [PATCH 03/27] iio: Export I2C module alias information in missing drivers Javier Martinez Canillas
2015-08-02 15:35   ` Jonathan Cameron
2015-07-30 16:18 ` [PATCH 04/27] [media] " Javier Martinez Canillas
2015-07-30 16:18 ` [PATCH 05/27] macintosh: therm_windtunnel: Export I2C module alias information Javier Martinez Canillas
2015-08-18 10:24   ` [05/27] " Michael Ellerman
2015-08-18 10:35     ` Javier Martinez Canillas
2015-08-19  0:51       ` Michael Ellerman
2015-08-19  7:40         ` Javier Martinez Canillas
2015-08-20  8:38   ` Michael Ellerman
2015-07-30 16:18 ` [PATCH 06/27] misc: eeprom: Export I2C module alias information in missing drivers Javier Martinez Canillas
2015-08-03 11:05   ` Jean Delvare
2015-08-03 14:07     ` Javier Martinez Canillas
2015-08-03 16:50       ` Jean Delvare
2015-08-03 19:12         ` Javier Martinez Canillas
2015-08-04  7:19           ` Jean Delvare
2015-08-04  7:21             ` Javier Martinez Canillas
2015-07-30 16:18 ` [PATCH 07/27] Input: " Javier Martinez Canillas
2015-07-30 17:39   ` Dmitry Torokhov
2015-07-30 16:18 ` [PATCH 08/27] power: " Javier Martinez Canillas
2015-08-05  3:47   ` Sebastian Reichel
2015-07-30 16:18 ` [PATCH 09/27] i2c: core: Export I2C module alias information in dummy driver Javier Martinez Canillas
2015-07-30 16:18 ` [PATCH 10/27] backlight: tosa: Export I2C module alias information Javier Martinez Canillas
2015-07-30 16:18   ` Javier Martinez Canillas
2015-07-30 16:18 ` [PATCH 11/27] [media] staging: media: lirc: " Javier Martinez Canillas
2015-07-30 16:18 ` [PATCH 12/27] usb: phy: isp1301: " Javier Martinez Canillas
2015-07-30 16:18 ` [PATCH 13/27] ALSA: ppc: keywest: " Javier Martinez Canillas
2015-07-30 16:18 ` [lm-sensors] [PATCH 14/27] hwmon: (nct7904) " Javier Martinez Canillas
2015-07-30 16:18   ` Javier Martinez Canillas
2015-07-31  0:58   ` [lm-sensors] " Guenter Roeck
2015-07-31  0:58     ` Guenter Roeck
2015-07-30 16:18 ` [PATCH 15/27] regulator: fan53555: " Javier Martinez Canillas
2015-08-03 11:43   ` Paul Bolle
2015-08-03 14:29     ` Javier Martinez Canillas
2015-08-04 10:08       ` Paul Bolle
2015-08-04 10:33         ` Javier Martinez Canillas [this message]
2015-08-03 15:44     ` Mark Brown
2015-07-30 16:18 ` [PATCH 16/27] mfd: Export OF module alias information in missing drivers Javier Martinez Canillas
2015-08-10 12:48   ` Lee Jones
2015-07-30 16:18 ` [PATCH 17/27] iio: " Javier Martinez Canillas
2015-08-02 15:39   ` Jonathan Cameron
2015-07-30 16:18 ` [lm-sensors] [PATCH 18/27] hwmon: (g762) Export OF module alias information Javier Martinez Canillas
2015-07-30 16:18   ` Javier Martinez Canillas
2015-07-31  0:58   ` [lm-sensors] " Guenter Roeck
2015-07-31  0:58     ` Guenter Roeck
2015-07-30 16:18 ` [PATCH 19/27] extcon: Export OF module alias information in missing drivers Javier Martinez Canillas
2015-07-30 16:18 ` [PATCH 20/27] ASoC: Export OF module alias information in missing codec drivers Javier Martinez Canillas
2015-08-01 11:18   ` Applied "ASoC: Export OF module alias information in missing codec drivers" to the asoc tree Mark Brown
2015-07-30 16:18 ` [rtc-linux] [PATCH 21/27] rtc: Export OF module alias information in missing drivers Javier Martinez Canillas
2015-07-30 16:18   ` Javier Martinez Canillas
2015-08-09 22:59   ` [rtc-linux] " Alexandre Belloni
2015-08-09 22:59     ` Alexandre Belloni
2015-07-30 16:18 ` [PATCH 22/27] macintosh: therm_windtunnel: Export OF module alias information Javier Martinez Canillas
2015-08-20  8:38   ` [22/27] " Michael Ellerman
2015-07-30 16:18 ` [PATCH 23/27] leds: Export OF module alias information in missing drivers Javier Martinez Canillas
2015-08-04 10:32   ` Jacek Anaszewski
2015-07-30 16:18 ` [PATCH 24/27] [media] smiapp: Export OF module alias information Javier Martinez Canillas
2015-07-30 16:18 ` [PATCH 25/27] Input: touchscreen - " Javier Martinez Canillas
2015-07-30 17:40   ` Dmitry Torokhov
2015-07-30 16:18 ` [PATCH 26/27] regulator: isl9305: " Javier Martinez Canillas
2015-08-25 17:50   ` Applied "regulator: isl9305: Export OF module alias information" to the regulator tree Mark Brown
     [not found] ` <1438273132-20926-1-git-send-email-javier-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
2015-07-30 16:18   ` [PATCH 27/27] i2c: (RFC, don't apply) report OF style modalias when probing using DT Javier Martinez Canillas
2015-07-30 16:18     ` [lm-sensors] " Javier Martinez Canillas
2015-07-30 16:18     ` Javier Martinez Canillas
2015-07-30 16:18     ` [rtc-linux] " Javier Martinez Canillas
2015-07-30 16:18     ` Javier Martinez Canillas
2015-07-30 16:18     ` Javier Martinez Canillas
2015-07-30 16:35   ` [PATCH 00/27] Export I2C and OF module aliases in missing drivers Dmitry Torokhov
2015-07-30 16:35     ` [lm-sensors] " Dmitry Torokhov
2015-07-30 16:35     ` [rtc-linux] " Dmitry Torokhov
2015-07-30 16:35     ` Dmitry Torokhov
2015-07-30 16:35     ` Dmitry Torokhov
2015-07-30 16:37     ` Dmitry Torokhov
2015-07-30 16:37       ` [lm-sensors] " Dmitry Torokhov
2015-07-30 16:37       ` [rtc-linux] " Dmitry Torokhov
2015-07-30 16:37       ` Dmitry Torokhov
2015-07-30 16:37       ` Dmitry Torokhov
2015-07-30 17:13       ` Javier Martinez Canillas
2015-07-30 17:13         ` [lm-sensors] " Javier Martinez Canillas
2015-07-30 17:13         ` [rtc-linux] " Javier Martinez Canillas
2015-07-30 17:13         ` Javier Martinez Canillas
2015-07-30 17:13         ` Javier Martinez Canillas

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=55C094FC.5070605@osg.samsung.com \
    --to=javier@osg.samsung.com \
    --cc=broonie@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pebolle@tiscali.nl \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.