Message ID | 20210712181209.27023-1-dafna.hirschfeld@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/mediatek: Test component initialization earlier in the function mtk_drm_crtc_create | expand |
Hi, Dafna: Dafna Hirschfeld <dafna.hirschfeld@collabora.com> 於 2021年7月13日 週二 上午2:12寫道: > > 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". Applied to mediatek-drm-next [1], thanks. [1] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next Regards, Chun-Kuang. > > Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com> > --- > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > index 474efb844249..06f40e589922 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > @@ -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) { > -- > 2.17.1 >
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index 474efb844249..06f40e589922 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -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) {
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> --- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)