Re: [PATCH] rtc: use simple i2c probe

From: Stephen Kitt
Date: Sun Jun 12 2022 - 15:24:04 EST


Hi Alexandre,

Le 11/06/2022 16:48, Alexandre Belloni a écrit :
On 10/06/2022 18:23:43+0200, Stephen Kitt wrote:
All these drivers have an i2c probe function which doesn't use the
"struct i2c_device_id *id" parameter, so they can trivially be
converted to the "probe_new" style of probe with a single argument.


I think you should explain why you want to do that as the trend is to do
the exact opposite to allow support for those RTCS on x86 systems.

Indeed, I should have given more context. The idea is to continue the transition started with https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b8a1a4cd5a98a2adf8dfd6902cd98e57d910ee12 (in 2016...). I²C drivers using probe() involve a call to i2c_match_id: in drivers/i2c/i2c-core-base.c,

/*
* When there are no more users of probe(),
* rename probe_new to probe.
*/
if (driver->probe_new)
status = driver->probe_new(client);
else if (driver->probe)
status = driver->probe(client,
i2c_match_id(driver->id_table, client));
else
status = -EINVAL;

Many drivers don't actually need the second parameter, so instead of having probe() with both parameters, the goal is to switch to a probe function with only "struct i2c_client *". Probe functions that *do* need the "struct i2c_device_id" can call i2c_match_id themselves (as is done currently with of_match_id).

I discussed this briefly with Wolfram beginning of June at Kernel Recipes, and as I understood it the plan was still to continue with this transition (in fact, the plan was for *me* to continue with this transition).

Do you have an example of a change requiring id to support RTCs on x86 systems?

Regards,

Stephen