drm/mediatek: Test component initialization earlier in the function mtk_drm_crtc_create
authorDafna Hirschfeld <dafna.hirschfeld@collabora.com>
Mon, 12 Jul 2021 18:12:09 +0000 (20:12 +0200)
committerChun-Kuang Hu <chunkuang.hu@kernel.org>
Mon, 9 Aug 2021 14:16:56 +0000 (22:16 +0800)
The initialization is currently tested in a later stage in
the function for no reason.
In addition, the test '!comp' will never fail since comp is
set with the '&' operator. Instead, test if a comp was not
initialized by testing "!comp->dev".

Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
drivers/gpu/drm/mediatek/mtk_drm_crtc.c

index 474efb8..06f40e5 100644 (file)
@@ -755,14 +755,22 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev,
        for (i = 0; i < path_len; i++) {
                enum mtk_ddp_comp_id comp_id = path[i];
                struct device_node *node;
+               struct mtk_ddp_comp *comp;
 
                node = priv->comp_node[comp_id];
+               comp = &priv->ddp_comp[comp_id];
+
                if (!node) {
                        dev_info(dev,
                                 "Not creating crtc %d because component %d is disabled or missing\n",
                                 pipe, comp_id);
                        return 0;
                }
+
+               if (!comp->dev) {
+                       dev_err(dev, "Component %pOF not initialized\n", node);
+                       return -ENODEV;
+               }
        }
 
        mtk_crtc = devm_kzalloc(dev, sizeof(*mtk_crtc), GFP_KERNEL);
@@ -787,16 +795,8 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev,
        for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) {
                enum mtk_ddp_comp_id comp_id = path[i];
                struct mtk_ddp_comp *comp;
-               struct device_node *node;
 
-               node = priv->comp_node[comp_id];
                comp = &priv->ddp_comp[comp_id];
-               if (!comp) {
-                       dev_err(dev, "Component %pOF not initialized\n", node);
-                       ret = -ENODEV;
-                       return ret;
-               }
-
                mtk_crtc->ddp_comp[i] = comp;
 
                if (comp->funcs) {