public inbox for linux-i2c@vger.kernel.org
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: "Pali Rohár" <pali@kernel.org>
Cc: "Andy Shevchenko" <andy.shevchenko@gmail.com>,
	"Andy Shevchenko" <andy@kernel.org>,
	"Jean Delvare" <jdelvare@suse.de>,
	"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
	"Paul Menzel" <pmenzel@molgen.mpg.de>,
	"Andi Shyti" <andi.shyti@kernel.org>,
	eric.piel@tremplin-utc.net, "Marius Hoch" <mail@mariushoch.de>,
	Dell.Client.Kernel@dell.com,
	"Kai Heng Feng" <kai.heng.feng@canonical.com>,
	platform-driver-x86@vger.kernel.org,
	"Wolfram Sang" <wsa@kernel.org>,
	linux-i2c@vger.kernel.org
Subject: Re: [PATCH v2 2/6] platform/x86: dell-smo8800: Move instantiation of lis3lv02d i2c_client from i2c-i801 to dell-smo8800
Date: Sat, 2 Mar 2024 12:02:39 +0100	[thread overview]
Message-ID: <4892abd0-6523-4955-be5e-4e585a276297@redhat.com> (raw)
In-Reply-To: <20240229204612.3cmeqdjixmvif3yw@pali>

Hi,

On 2/29/24 21:46, Pali Rohár wrote:
> On Wednesday 28 February 2024 13:50:27 Hans de Goede wrote:
>> Hi,
>>
>> On 2/27/24 23:37, Andy Shevchenko wrote:
>>> On Tue, Feb 27, 2024 at 11:50 PM Pali Rohár <pali@kernel.org> wrote:
>>>> On Tuesday 27 February 2024 23:19:19 Andy Shevchenko wrote:
>>>>> On Tue, Feb 27, 2024 at 11:04 PM Pali Rohár <pali@kernel.org> wrote:
>>>
>>> ...
>>>
>>>>> I'm wondering why we need all this. We have notifiers when a device is
>>>>> added / removed. We can provide a board_info for the device and attach
>>>>> it to the proper adapter, no?
>>>>
>>>> I do not know how flexible are notifiers. Can notifier call our callback
>>>> when new "struct i2c_adapter *adapter" was instanced?
>>>
>>> You can follow notifications of *an* I2C adapter being added /
>>> removed. With that, you can filter which one is that. Based on that
>>> you may attach a saved (at __init as you talked about in the reply to
>>> Hans) board_info with all necessary information.
>>>
>>> Something like this (combined)
>>> https://elixir.bootlin.com/linux/latest/source/drivers/ptp/ptp_ocp.c#L4515
>>> https://elixir.bootlin.com/linux/latest/source/drivers/input/mouse/psmouse-smbus.c#L194
>>
>> drivers/platform/x86/touchscreen_dmi.c actually already does something
>> like this for i2c-clients. The problem is that this brings probe-ordering
>> problems with it. If the i801 driver is loaded before the dell-smo8800
>> driver then the notifiers will not trigger since the i2c-adapter has
>> already been created (1).
>>
>> So we would still need a "cold-plug" manual scan in smo8800_probe()
>> anyways at which point we might as well just return -EPROBE_DEFER
>> when the adapter is not there.
> 
> And that it example why the current existing solution is better, it does
> not have such problems like the proposed.
> 
>> As for Pali's suggestion of having the i2c-i801 code call a symbol
>> exported by dell-smo8800
> 
> I did not suggest that! Please do not make false statements about me.

In: https://lore.kernel.org/platform-driver-x86/20240227210429.l5o52wuexqqmrpol@pali/

You write:

"Location of the quirks can be moved outside of the i2c-i801.c source
code relatively easily without need to change the way how parent--child
relationship currently works.

Relevant functions is_dell_system_with_lis3lv02d() and
register_dell_lis3lv02d_i2c_device() does not use internals of
i2c-i801 and could be moved into new file, lets say
drivers/platform/x86/dell/dell-smo8800-plat.c"

Ok I see now you suggest moving the code to a new file,
sorry for misreading that.

But the point is that moving the code does not help because
since there is a symbol used from the new code it will still
get loaded on all machines were the i2c-i801.c driver gets
loaded. So it will still be taking up RAM and increases
boot time (loading an extra module consumes time) on machines
which do not have any SMO88xx devices.

And that point is still valid even independent of the code
is moved to the existing dell-smo8800 module or to a new
dell-smo8800-plat module.

Regards,

Hans



  reply	other threads:[~2024-03-02 11:02 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-06 16:09 [PATCH v2 0/6] i2c-i801 / dell-smo8800: Move instantiation of lis3lv02d i2c_client from i2c-i801 to dell-smo8800 Hans de Goede
2024-01-06 16:09 ` [PATCH v2 1/6] platform/x86: dell-smo8800: Change probe() ordering a bit Hans de Goede
2024-01-06 16:09 ` [PATCH v2 2/6] platform/x86: dell-smo8800: Move instantiation of lis3lv02d i2c_client from i2c-i801 to dell-smo8800 Hans de Goede
2024-01-06 16:24   ` Andy Shevchenko
2024-01-06 19:54     ` Joe Perches
2024-01-07 16:09     ` Steven Rostedt
2024-01-07 16:20       ` Steven Rostedt
2024-01-06 16:38   ` Pali Rohár
2024-01-07 17:10   ` Pali Rohár
2024-02-13 16:30     ` Jean Delvare
2024-02-17 10:33       ` Hans de Goede
2024-02-19 11:52         ` Andy Shevchenko
2024-02-27 21:04           ` Pali Rohár
2024-02-27 21:19             ` Andy Shevchenko
2024-02-27 21:50               ` Pali Rohár
2024-02-27 22:37                 ` Andy Shevchenko
2024-02-28 12:50                   ` Hans de Goede
2024-02-29 20:46                     ` Pali Rohár
2024-03-02 11:02                       ` Hans de Goede [this message]
2024-03-02 11:19                         ` Pali Rohár
2024-02-27 21:40         ` Pali Rohár
2024-02-28 13:10           ` Hans de Goede
2024-02-28 16:49             ` Andy Shevchenko
2024-02-29 20:57             ` Pali Rohár
2024-03-02 11:38               ` Hans de Goede
2024-03-03 11:14                 ` Andy Shevchenko
2024-01-13  4:42   ` kernel test robot
2024-01-13  7:46   ` kernel test robot
2024-01-06 16:09 ` [PATCH v2 3/6] platform/x86: dell-smo8800: Pass the IRQ to the lis3lv02d i2c_client Hans de Goede
2024-01-06 16:09 ` [PATCH v2 4/6] platform/x86: dell-smo8800: Allow using the IIO st_accel driver Hans de Goede
2024-01-13  9:55   ` kernel test robot
2024-01-13 14:24   ` kernel test robot
2024-01-06 16:09 ` [PATCH v2 5/6] platform/x86: dell-smo8800: Add support for probing for the accelerometer i2c address Hans de Goede
2024-01-06 16:09 ` [PATCH v2 6/6] platform/x86: dell-smo8800: Add a couple more models to dell_lis3lv02d_devices[] Hans de Goede

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=4892abd0-6523-4955-be5e-4e585a276297@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=Dell.Client.Kernel@dell.com \
    --cc=andi.shyti@kernel.org \
    --cc=andy.shevchenko@gmail.com \
    --cc=andy@kernel.org \
    --cc=eric.piel@tremplin-utc.net \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=jdelvare@suse.de \
    --cc=kai.heng.feng@canonical.com \
    --cc=linux-i2c@vger.kernel.org \
    --cc=mail@mariushoch.de \
    --cc=pali@kernel.org \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=pmenzel@molgen.mpg.de \
    --cc=wsa@kernel.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