Commit 6ea6f827 authored by Chun-Kuang Hu's avatar Chun-Kuang Hu
Browse files

drm/mediatek: Use correct device pointer to get CMDQ client register



Some ddp component use mmsys device pointer to get CMDQ client
register, this would get mmsys' CMDQ client register, so use
each ddp component's device pointer to get.

Signed-off-by: default avatarChun-Kuang Hu <chunkuang.hu@kernel.org>
parent c822584e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -118,7 +118,7 @@ static int mtk_disp_color_probe(struct platform_device *pdev)
		return comp_id;
	}

	ret = mtk_ddp_comp_init(dev, dev->of_node, &priv->ddp_comp, comp_id,
	ret = mtk_ddp_comp_init(dev->of_node, &priv->ddp_comp, comp_id,
				&mtk_disp_color_funcs);
	if (ret) {
		if (ret != -EPROBE_DEFER)
+1 −1
Original line number Diff line number Diff line
@@ -384,7 +384,7 @@ static int mtk_disp_ovl_probe(struct platform_device *pdev)
		return comp_id;
	}

	ret = mtk_ddp_comp_init(dev, dev->of_node, &priv->ddp_comp, comp_id,
	ret = mtk_ddp_comp_init(dev->of_node, &priv->ddp_comp, comp_id,
				&mtk_disp_ovl_funcs);
	if (ret) {
		if (ret != -EPROBE_DEFER)
+1 −1
Original line number Diff line number Diff line
@@ -292,7 +292,7 @@ static int mtk_disp_rdma_probe(struct platform_device *pdev)
		return comp_id;
	}

	ret = mtk_ddp_comp_init(dev, dev->of_node, &priv->ddp_comp, comp_id,
	ret = mtk_ddp_comp_init(dev->of_node, &priv->ddp_comp, comp_id,
				&mtk_disp_rdma_funcs);
	if (ret) {
		if (ret != -EPROBE_DEFER)
+1 −1
Original line number Diff line number Diff line
@@ -775,7 +775,7 @@ static int mtk_dpi_probe(struct platform_device *pdev)
		return comp_id;
	}

	ret = mtk_ddp_comp_init(dev, dev->of_node, &dpi->ddp_comp, comp_id,
	ret = mtk_ddp_comp_init(dev->of_node, &dpi->ddp_comp, comp_id,
				&mtk_dpi_funcs);
	if (ret) {
		dev_err(dev, "Failed to initialize component: %d\n", ret);
+11 −4
Original line number Diff line number Diff line
@@ -465,10 +465,11 @@ unsigned int mtk_drm_find_possible_crtc_by_comp(struct drm_device *drm,
	return ret;
}

int mtk_ddp_comp_init(struct device *dev, struct device_node *node,
		      struct mtk_ddp_comp *comp, enum mtk_ddp_comp_id comp_id,
		      const struct mtk_ddp_comp_funcs *funcs)
int mtk_ddp_comp_init(struct device_node *node, struct mtk_ddp_comp *comp,
		      enum mtk_ddp_comp_id comp_id, const struct mtk_ddp_comp_funcs *funcs)
{
	struct platform_device *comp_pdev;
	struct device *dev;
	enum mtk_ddp_comp_type type;
	struct device_node *larb_node;
	struct platform_device *larb_pdev;
@@ -506,10 +507,16 @@ int mtk_ddp_comp_init(struct device *dev, struct device_node *node,
	if (IS_ERR(comp->clk))
		return PTR_ERR(comp->clk);

	comp_pdev = of_find_device_by_node(node);
	if (!comp_pdev) {
		DRM_INFO("Waiting for device %s\n", node->full_name);
		return -EPROBE_DEFER;
	}
	dev = &comp_pdev->dev;

#if IS_REACHABLE(CONFIG_MTK_CMDQ)
	if (of_address_to_resource(node, 0, &res) != 0) {
		dev_err(dev, "Missing reg in %s node\n", node->full_name);
		put_device(&larb_pdev->dev);
		return -EINVAL;
	}
	comp->regs_pa = res.start;
Loading