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: Mon, 3 Aug 2015 16:29:51 +0200	[thread overview]
Message-ID: <55BF7ADF.3070801@osg.samsung.com> (raw)
In-Reply-To: <1438602218.3726.45.camel@tiscali.nl>

Hello Paul,

Thanks a lot for the feedback.

On 08/03/2015 01:43 PM, Paul Bolle wrote:
> Hi Javier,
> 
> (Mark already applied this patch. Still, I couldn't wrap my head around
> it. So maybe you'd still like to answer a question or two, basically to
> educate me.)
> 
> On do, 2015-07-30 at 18:18 +0200, Javier Martinez Canillas wrote:
>> The I2C core always reports the MODALIAS uevent as "i2c:<client name"
>> regardless if the driver was matched using the I2C id_table or the
>> of_match_table.
> 
> It's the other way round, I think.
>
> Both MODULE_DEVICE_TABLE() macros add a set of aliases to this module.
> These aliases are used by userspace to load the fan53555 module if it
> notices a uevent that contains the proper "MODALIAS=" string. Only after
> this module is loaded by userspace will the I2C id_table and the
> of_match_table be available to match this driver to the hardware found

You are right on that but...

> in the machine and, if matching hardware is found, call
>  fan53555_regulator_probe() to get this module to actually do something.
> 

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

> That being said, before this patch the fan53555 module contained these
> aliases:
>     alias:          of:N*T*Csilergy,syr828*
>     alias:          of:N*T*Csilergy,syr827*
>     alias:          of:N*T*Cfcs,fan53555*
> 
> While this patch ad these two aliases:
>     alias:          i2c:syr82x
>     alias:          i2c:fan53555
> 
> Now I don't have an "of" or "i2c" capable machine at hand, which makes
> it a bit hard to figure out how all of this is supposed to fit together.
> 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. 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.

>> So the driver needs to export the I2C table and this
>> be built into the module or udev won't have the necessary information
>> to auto load the correct module when the device is added.
> 
> s/the correct module/this module/, right?
>

I don't think it's a big difference in semantics but probably yes.
 
>> --- a/drivers/regulator/fan53555.c
>> +++ b/drivers/regulator/fan53555.c
> 
>> +MODULE_DEVICE_TABLE(i2c, fan53555_id);
> 
> As I said above this patch adds two aliases to the fan53555 module:
>     alias:          i2c:syr82x
>     alias:          i2c:fan53555
> 
> But neither the string "fan53555" nor the string "syr82x" generate
> interesting hits in current linux-next. Are these strings perhaps only
> used in out of tree device tree source files?
> 

There are a lot of drivers whose platform code has not been upstreamed
so I haven't checked which ones are used an which ones are not.

But if someone is using this driver and registering a I2C device either
via board code or a Device Tree, it will break as soon as someone builds
it as a module without this patch.

> Thanks,
> 
> 
> Paul Bolle
> 

[0]: http://lxr.free-electrons.com/source/drivers/i2c/i2c-core.c#L483

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

  reply	other threads:[~2015-08-03 14:30 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 [this message]
2015-08-04 10:08       ` Paul Bolle
2015-08-04 10:33         ` Javier Martinez Canillas
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=55BF7ADF.3070801@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.