.probe_new() doesn't get the i2c_device_id * parameter, so determine that explicitly in .probe(). Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> --- drivers/rtc/rtc-ds1307.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c index d51565bcc189..70a6755a7d69 100644 --- a/drivers/rtc/rtc-ds1307.c +++ b/drivers/rtc/rtc-ds1307.c @@ -1712,9 +1712,9 @@ static const struct regmap_config regmap_config = { .val_bits = 8, }; -static int ds1307_probe(struct i2c_client *client, - const struct i2c_device_id *id) +static int ds1307_probe(struct i2c_client *client) { + const struct i2c_device_id *id; struct ds1307 *ds1307; const void *match; int err = -ENODEV; @@ -1746,7 +1746,7 @@ static int ds1307_probe(struct i2c_client *client, if (match) { ds1307->type = (enum ds_type)match; chip = &chips[ds1307->type]; - } else if (id) { + } else if ((id = i2c_match_id(ds1307_id, client))) { chip = &chips[id->driver_data]; ds1307->type = id->driver_data; } else { @@ -2011,7 +2011,7 @@ static struct i2c_driver ds1307_driver = { .name = "rtc-ds1307", .of_match_table = ds1307_of_match, }, - .probe = ds1307_probe, + .probe_new = ds1307_probe, .id_table = ds1307_id, }; -- 2.37.2