OSDN Git Service

drm/tegra: vic: Use of_device_get_match_data()
authorThierry Reding <treding@nvidia.com>
Mon, 21 Aug 2017 16:03:27 +0000 (18:03 +0200)
committerThierry Reding <treding@nvidia.com>
Fri, 20 Oct 2017 12:19:54 +0000 (14:19 +0200)
Avoid some boilerplate by calling of_device_get_match_data() instead of
open-coding the equivalent in the driver.

Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/gpu/drm/tegra/vic.c

index b66b8d8..1802418 100644 (file)
@@ -285,21 +285,18 @@ static const struct of_device_id vic_match[] = {
 
 static int vic_probe(struct platform_device *pdev)
 {
-       struct vic_config *vic_config = NULL;
        struct device *dev = &pdev->dev;
        struct host1x_syncpt **syncpts;
        struct resource *regs;
-       const struct of_device_id *match;
        struct vic *vic;
        int err;
 
-       match = of_match_device(vic_match, dev);
-       vic_config = (struct vic_config *)match->data;
-
        vic = devm_kzalloc(dev, sizeof(*vic), GFP_KERNEL);
        if (!vic)
                return -ENOMEM;
 
+       vic->config = of_device_get_match_data(dev);
+
        syncpts = devm_kzalloc(dev, sizeof(*syncpts), GFP_KERNEL);
        if (!syncpts)
                return -ENOMEM;
@@ -328,7 +325,7 @@ static int vic_probe(struct platform_device *pdev)
        if (err < 0)
                return err;
 
-       err = falcon_read_firmware(&vic->falcon, vic_config->firmware);
+       err = falcon_read_firmware(&vic->falcon, vic->config->firmware);
        if (err < 0)
                goto exit_falcon;
 
@@ -341,7 +338,6 @@ static int vic_probe(struct platform_device *pdev)
        vic->client.base.syncpts = syncpts;
        vic->client.base.num_syncpts = 1;
        vic->dev = dev;
-       vic->config = vic_config;
 
        INIT_LIST_HEAD(&vic->client.list);
        vic->client.ops = &vic_ops;