Re: [PATCHv7 10/11] mfd: as3722: Rid driver of superfluous I2C device ID structure

From: Javier Martinez Canillas
Date: Mon Nov 07 2016 - 14:20:34 EST


Hello Kieran,

On 11/07/2016 09:47 AM, Kieran Bingham wrote:
> From: Lee Jones <lee.jones@xxxxxxxxxx>
>
> Also remove unused second probe() parameter 'i2c_device_id'.
>
> Acked-by: Grant Likely <grant.likely@xxxxxxxxxx>
> Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
> Signed-off-by: Kieran Bingham <kieran@xxxxxxxxxxx>
>
> ---
> Changes since v4
> - Rename .probe2 to probe_new
>
> drivers/mfd/as3722.c | 12 ++----------
> 1 file changed, 2 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/mfd/as3722.c b/drivers/mfd/as3722.c
> index f87342c211bc..7d8c5e4136e2 100644
> --- a/drivers/mfd/as3722.c
> +++ b/drivers/mfd/as3722.c
> @@ -354,8 +354,7 @@ static int as3722_i2c_of_probe(struct i2c_client *i2c,
> return 0;
> }
>
> -static int as3722_i2c_probe(struct i2c_client *i2c,
> - const struct i2c_device_id *id)
> +static int as3722_i2c_probe(struct i2c_client *i2c)
> {

This is OK...

> struct as3722 *as3722;
> unsigned long irq_flags;
> @@ -441,12 +440,6 @@ static const struct of_device_id as3722_of_match[] = {
> };
> MODULE_DEVICE_TABLE(of, as3722_of_match);
>
> -static const struct i2c_device_id as3722_i2c_id[] = {
> - { "as3722", 0 },
> - {},
> -};
> -MODULE_DEVICE_TABLE(i2c, as3722_i2c_id);
> -

... but I don't think this is correct. Otherwise you will break module
autoload for this driver since modpost needs the I2C device ID table
info to fill the i2c modalias in the drivers' module.

Remember that i2c_device_uevent() always reports modalias of the form
MODALIAS=i2c:<foo> even when your series allows to match without a I2C
device ID table.

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