rtc: m41t80: Convert to .probe_new()
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Fri, 21 Oct 2022 13:07:01 +0000 (15:07 +0200)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Tue, 15 Nov 2022 20:01:33 +0000 (21:01 +0100)
.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@pengutronix.de>
Link: https://lore.kernel.org/r/20221021130706.178687-5-u.kleine-koenig@pengutronix.de
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-m41t80.c

index e0b4d3794320bf5b26113f2e2d02180d75843dd2..d3144ffdebb58877b73ed2a18041b60452b1ee20 100644 (file)
@@ -876,8 +876,7 @@ static struct notifier_block wdt_notifier = {
  *****************************************************************************
  */
 
-static int m41t80_probe(struct i2c_client *client,
-                       const struct i2c_device_id *id)
+static int m41t80_probe(struct i2c_client *client)
 {
        struct i2c_adapter *adapter = client->adapter;
        int rc = 0;
@@ -897,11 +896,13 @@ static int m41t80_probe(struct i2c_client *client,
                return -ENOMEM;
 
        m41t80_data->client = client;
-       if (client->dev.of_node)
+       if (client->dev.of_node) {
                m41t80_data->features = (unsigned long)
                        of_device_get_match_data(&client->dev);
-       else
+       } else {
+               const struct i2c_device_id *id = i2c_match_id(m41t80_id, client);
                m41t80_data->features = id->driver_data;
+       }
        i2c_set_clientdata(client, m41t80_data);
 
        m41t80_data->rtc =  devm_rtc_allocate_device(&client->dev);
@@ -1007,7 +1008,7 @@ static struct i2c_driver m41t80_driver = {
                .of_match_table = of_match_ptr(m41t80_of_match),
                .pm = &m41t80_pm,
        },
-       .probe = m41t80_probe,
+       .probe_new = m41t80_probe,
        .remove = m41t80_remove,
        .id_table = m41t80_id,
 };