OSDN Git Service

rtc: armada38x: Use of_device_get_match_data()
authorStephen Boyd <swboyd@chromium.org>
Fri, 4 Oct 2019 21:43:27 +0000 (14:43 -0700)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Mon, 7 Oct 2019 13:49:20 +0000 (15:49 +0200)
Use the more modern API to get the match data out of the of match table.
This saves some code, lines, and nicely avoids referencing the match
table when it is undefined with configurations where CONFIG_OF=n.

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Gregory Clement <gregory.clement@bootlin.com>
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Frank Rowand <frowand.list@gmail.com>
Cc: <linux-rtc@vger.kernel.org>
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Link: https://lore.kernel.org/r/20191004214334.149976-4-swboyd@chromium.org
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-armada38x.c

index 9351bd5..94d7c22 100644 (file)
@@ -74,7 +74,7 @@ struct armada38x_rtc {
        int                 irq;
        bool                initialized;
        struct value_to_freq *val_to_freq;
-       struct armada38x_rtc_data *data;
+       const struct armada38x_rtc_data *data;
 };
 
 #define ALARM1 0
@@ -501,17 +501,14 @@ static __init int armada38x_rtc_probe(struct platform_device *pdev)
 {
        struct resource *res;
        struct armada38x_rtc *rtc;
-       const struct of_device_id *match;
-
-       match = of_match_device(armada38x_rtc_of_match_table, &pdev->dev);
-       if (!match)
-               return -ENODEV;
 
        rtc = devm_kzalloc(&pdev->dev, sizeof(struct armada38x_rtc),
                            GFP_KERNEL);
        if (!rtc)
                return -ENOMEM;
 
+       rtc->data = of_device_get_match_data(&pdev->dev);
+
        rtc->val_to_freq = devm_kcalloc(&pdev->dev, SAMPLE_NR,
                                sizeof(struct value_to_freq), GFP_KERNEL);
        if (!rtc->val_to_freq)
@@ -553,7 +550,6 @@ static __init int armada38x_rtc_probe(struct platform_device *pdev)
                 */
                rtc->rtc_dev->ops = &armada38x_rtc_ops_noirq;
        }
-       rtc->data = (struct armada38x_rtc_data *)match->data;
 
        /* Update RTC-MBUS bridge timing parameters */
        rtc->data->update_mbus_timing(rtc);