[bug report] drm/mediatek: Add drm ovl_adaptor sub driver for MT8195
Dan Carpenter
dan.carpenter at linaro.org
Wed Apr 19 03:20:39 PDT 2023
Hello Nancy.Lin,
The patch 0d9eee9118b7: "drm/mediatek: Add drm ovl_adaptor sub driver
for MT8195" from Mar 21, 2023, leads to the following Smatch static
checker warning:
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c:606 mtk_ddp_comp_init()
error: uninitialized symbol 'comp_pdev'.
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c
546 int mtk_ddp_comp_init(struct device_node *node, struct mtk_ddp_comp *comp,
547 unsigned int comp_id)
548 {
549 struct platform_device *comp_pdev;
550 enum mtk_ddp_comp_type type;
551 struct mtk_ddp_comp_dev *priv;
552 #if IS_REACHABLE(CONFIG_MTK_CMDQ)
553 int ret;
554 #endif
555
556 if (comp_id < 0 || comp_id >= DDP_COMPONENT_DRM_ID_MAX)
557 return -EINVAL;
558
559 type = mtk_ddp_matches[comp_id].type;
560
561 comp->id = comp_id;
562 comp->funcs = mtk_ddp_matches[comp_id].funcs;
563 /* Not all drm components have a DTS device node, such as ovl_adaptor,
564 * which is the drm bring up sub driver
565 */
566 if (node) {
567 comp_pdev = of_find_device_by_node(node);
568 if (!comp_pdev) {
569 DRM_INFO("Waiting for device %s\n", node->full_name);
570 return -EPROBE_DEFER;
571 }
572 comp->dev = &comp_pdev->dev;
573 }
comp_pdev not initialized on else path.
574
575 if (type == MTK_DISP_AAL ||
576 type == MTK_DISP_BLS ||
577 type == MTK_DISP_CCORR ||
578 type == MTK_DISP_COLOR ||
579 type == MTK_DISP_GAMMA ||
580 type == MTK_DISP_MERGE ||
581 type == MTK_DISP_OVL ||
582 type == MTK_DISP_OVL_2L ||
583 type == MTK_DISP_OVL_ADAPTOR ||
584 type == MTK_DISP_PWM ||
585 type == MTK_DISP_RDMA ||
586 type == MTK_DPI ||
587 type == MTK_DP_INTF ||
588 type == MTK_DSI)
589 return 0;
590
591 priv = devm_kzalloc(comp->dev, sizeof(*priv), GFP_KERNEL);
592 if (!priv)
593 return -ENOMEM;
594
595 priv->regs = of_iomap(node, 0);
596 priv->clk = of_clk_get(node, 0);
597 if (IS_ERR(priv->clk))
598 return PTR_ERR(priv->clk);
599
600 #if IS_REACHABLE(CONFIG_MTK_CMDQ)
601 ret = cmdq_dev_get_client_reg(comp->dev, &priv->cmdq_reg, 0);
602 if (ret)
603 dev_dbg(comp->dev, "get mediatek,gce-client-reg fail!\n");
604 #endif
605
--> 606 platform_set_drvdata(comp_pdev, priv);
^^^^^^^^^
Warning msg triggered here.
607
608 return 0;
609 }
regards,
dan carpenter
More information about the Linux-mediatek
mailing list