diff options
| -rw-r--r-- | drivers/gpu/drm/mediatek/mtk_disp_color.c | 10 | ||||
| -rw-r--r-- | drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 34 | ||||
| -rw-r--r-- | drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 30 | ||||
| -rw-r--r-- | drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 67 | ||||
| -rw-r--r-- | drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 7 | 
5 files changed, 84 insertions, 64 deletions
diff --git a/drivers/gpu/drm/mediatek/mtk_disp_color.c b/drivers/gpu/drm/mediatek/mtk_disp_color.c index 93863dbfb761..929379c9c233 100644 --- a/drivers/gpu/drm/mediatek/mtk_disp_color.c +++ b/drivers/gpu/drm/mediatek/mtk_disp_color.c @@ -40,6 +40,7 @@ struct mtk_disp_color {  	struct drm_crtc				*crtc;  	struct clk				*clk;  	void __iomem				*regs; +	struct cmdq_client_reg			cmdq_reg;  	const struct mtk_disp_color_data	*data;  }; @@ -68,8 +69,8 @@ static void mtk_color_config(struct mtk_ddp_comp *comp, unsigned int w,  {  	struct mtk_disp_color *color = comp_to_color(comp); -	mtk_ddp_write(cmdq_pkt, w, comp, color->regs, DISP_COLOR_WIDTH(color)); -	mtk_ddp_write(cmdq_pkt, h, comp, color->regs, DISP_COLOR_HEIGHT(color)); +	mtk_ddp_write(cmdq_pkt, w, &color->cmdq_reg, color->regs, DISP_COLOR_WIDTH(color)); +	mtk_ddp_write(cmdq_pkt, h, &color->cmdq_reg, color->regs, DISP_COLOR_HEIGHT(color));  }  static void mtk_color_start(struct mtk_ddp_comp *comp) @@ -143,6 +144,11 @@ static int mtk_disp_color_probe(struct platform_device *pdev)  		dev_err(dev, "failed to ioremap color\n");  		return PTR_ERR(priv->regs);  	} +#if IS_REACHABLE(CONFIG_MTK_CMDQ) +	ret = cmdq_dev_get_client_reg(dev, &priv->cmdq_reg, 0); +	if (ret) +		dev_dbg(dev, "get mediatek,gce-client-reg fail!\n"); +#endif  	comp_id = mtk_ddp_comp_get_id(dev->of_node, MTK_DISP_COLOR);  	if (comp_id < 0) { diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c index 90a78db0e96b..0e59b360104a 100644 --- a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c +++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c @@ -74,6 +74,7 @@ struct mtk_disp_ovl {  	struct drm_crtc			*crtc;  	struct clk			*clk;  	void __iomem			*regs; +	struct cmdq_client_reg		cmdq_reg;  	const struct mtk_disp_ovl_data	*data;  }; @@ -151,12 +152,12 @@ static void mtk_ovl_config(struct mtk_ddp_comp *comp, unsigned int w,  	struct mtk_disp_ovl *ovl = dev_get_drvdata(comp->dev);  	if (w != 0 && h != 0) -		mtk_ddp_write_relaxed(cmdq_pkt, h << 16 | w, comp, ovl->regs, +		mtk_ddp_write_relaxed(cmdq_pkt, h << 16 | w, &ovl->cmdq_reg, ovl->regs,  				      DISP_REG_OVL_ROI_SIZE); -	mtk_ddp_write_relaxed(cmdq_pkt, 0x0, comp, ovl->regs, DISP_REG_OVL_ROI_BGCLR); +	mtk_ddp_write_relaxed(cmdq_pkt, 0x0, &ovl->cmdq_reg, ovl->regs, DISP_REG_OVL_ROI_BGCLR); -	mtk_ddp_write(cmdq_pkt, 0x1, comp, ovl->regs, DISP_REG_OVL_RST); -	mtk_ddp_write(cmdq_pkt, 0x0, comp, ovl->regs, DISP_REG_OVL_RST); +	mtk_ddp_write(cmdq_pkt, 0x1, &ovl->cmdq_reg, ovl->regs, DISP_REG_OVL_RST); +	mtk_ddp_write(cmdq_pkt, 0x0, &ovl->cmdq_reg, ovl->regs, DISP_REG_OVL_RST);  }  static unsigned int mtk_ovl_layer_nr(struct mtk_ddp_comp *comp) @@ -208,7 +209,7 @@ static void mtk_ovl_layer_on(struct mtk_ddp_comp *comp, unsigned int idx,  	unsigned int gmc_value;  	struct mtk_disp_ovl *ovl = comp_to_ovl(comp); -	mtk_ddp_write(cmdq_pkt, 0x1, comp, ovl->regs, +	mtk_ddp_write(cmdq_pkt, 0x1, &ovl->cmdq_reg, ovl->regs,  		      DISP_REG_OVL_RDMA_CTRL(idx));  	gmc_thrshd_l = GMC_THRESHOLD_LOW >>  		      (GMC_THRESHOLD_BITS - ovl->data->gmc_bits); @@ -220,8 +221,8 @@ static void mtk_ovl_layer_on(struct mtk_ddp_comp *comp, unsigned int idx,  		gmc_value = gmc_thrshd_l | gmc_thrshd_l << 8 |  			    gmc_thrshd_h << 16 | gmc_thrshd_h << 24;  	mtk_ddp_write(cmdq_pkt, gmc_value, -		      comp, ovl->regs, DISP_REG_OVL_RDMA_GMC(idx)); -	mtk_ddp_write_mask(cmdq_pkt, BIT(idx), comp, ovl->regs, +		      &ovl->cmdq_reg, ovl->regs, DISP_REG_OVL_RDMA_GMC(idx)); +	mtk_ddp_write_mask(cmdq_pkt, BIT(idx), &ovl->cmdq_reg, ovl->regs,  			   DISP_REG_OVL_SRC_CON, BIT(idx));  } @@ -230,9 +231,9 @@ static void mtk_ovl_layer_off(struct mtk_ddp_comp *comp, unsigned int idx,  {  	struct mtk_disp_ovl *ovl = dev_get_drvdata(comp->dev); -	mtk_ddp_write_mask(cmdq_pkt, 0, comp, ovl->regs, +	mtk_ddp_write_mask(cmdq_pkt, 0, &ovl->cmdq_reg, ovl->regs,  			   DISP_REG_OVL_SRC_CON, BIT(idx)); -	mtk_ddp_write(cmdq_pkt, 0, comp, ovl->regs, +	mtk_ddp_write(cmdq_pkt, 0, &ovl->cmdq_reg, ovl->regs,  		      DISP_REG_OVL_RDMA_CTRL(idx));  } @@ -304,15 +305,15 @@ static void mtk_ovl_layer_config(struct mtk_ddp_comp *comp, unsigned int idx,  		addr += pending->pitch - 1;  	} -	mtk_ddp_write_relaxed(cmdq_pkt, con, comp, ovl->regs, +	mtk_ddp_write_relaxed(cmdq_pkt, con, &ovl->cmdq_reg, ovl->regs,  			      DISP_REG_OVL_CON(idx)); -	mtk_ddp_write_relaxed(cmdq_pkt, pitch, comp, ovl->regs, +	mtk_ddp_write_relaxed(cmdq_pkt, pitch, &ovl->cmdq_reg, ovl->regs,  			      DISP_REG_OVL_PITCH(idx)); -	mtk_ddp_write_relaxed(cmdq_pkt, src_size, comp, ovl->regs, +	mtk_ddp_write_relaxed(cmdq_pkt, src_size, &ovl->cmdq_reg, ovl->regs,  			      DISP_REG_OVL_SRC_SIZE(idx)); -	mtk_ddp_write_relaxed(cmdq_pkt, offset, comp, ovl->regs, +	mtk_ddp_write_relaxed(cmdq_pkt, offset, &ovl->cmdq_reg, ovl->regs,  			      DISP_REG_OVL_OFFSET(idx)); -	mtk_ddp_write_relaxed(cmdq_pkt, addr, comp, ovl->regs, +	mtk_ddp_write_relaxed(cmdq_pkt, addr, &ovl->cmdq_reg, ovl->regs,  			      DISP_REG_OVL_ADDR(ovl, idx));  	mtk_ovl_layer_on(comp, idx, cmdq_pkt); @@ -414,6 +415,11 @@ static int mtk_disp_ovl_probe(struct platform_device *pdev)  		dev_err(dev, "failed to ioremap ovl\n");  		return PTR_ERR(priv->regs);  	} +#if IS_REACHABLE(CONFIG_MTK_CMDQ) +	ret = cmdq_dev_get_client_reg(dev, &priv->cmdq_reg, 0); +	if (ret) +		dev_dbg(dev, "get mediatek,gce-client-reg fail!\n"); +#endif  	priv->data = of_device_get_match_data(dev); diff --git a/drivers/gpu/drm/mediatek/mtk_disp_rdma.c b/drivers/gpu/drm/mediatek/mtk_disp_rdma.c index 1057c7a42ff2..d6d6c76526bb 100644 --- a/drivers/gpu/drm/mediatek/mtk_disp_rdma.c +++ b/drivers/gpu/drm/mediatek/mtk_disp_rdma.c @@ -65,6 +65,7 @@ struct mtk_disp_rdma {  	struct drm_crtc			*crtc;  	struct clk			*clk;  	void __iomem			*regs; +	struct cmdq_client_reg		cmdq_reg;  	const struct mtk_disp_rdma_data	*data;  }; @@ -150,9 +151,9 @@ static void mtk_rdma_config(struct mtk_ddp_comp *comp, unsigned int width,  	unsigned int reg;  	struct mtk_disp_rdma *rdma = comp_to_rdma(comp); -	mtk_ddp_write_mask(cmdq_pkt, width, comp, rdma->regs, +	mtk_ddp_write_mask(cmdq_pkt, width, &rdma->cmdq_reg, rdma->regs,  			   DISP_REG_RDMA_SIZE_CON_0, 0xfff); -	mtk_ddp_write_mask(cmdq_pkt, height, comp, rdma->regs, +	mtk_ddp_write_mask(cmdq_pkt, height, &rdma->cmdq_reg, rdma->regs,  			   DISP_REG_RDMA_SIZE_CON_1, 0xfffff);  	/* @@ -165,7 +166,7 @@ static void mtk_rdma_config(struct mtk_ddp_comp *comp, unsigned int width,  	reg = RDMA_FIFO_UNDERFLOW_EN |  	      RDMA_FIFO_PSEUDO_SIZE(RDMA_FIFO_SIZE(rdma)) |  	      RDMA_OUTPUT_VALID_FIFO_THRESHOLD(threshold); -	mtk_ddp_write(cmdq_pkt, reg, comp, rdma->regs, DISP_REG_RDMA_FIFO_CON); +	mtk_ddp_write(cmdq_pkt, reg, &rdma->cmdq_reg, rdma->regs, DISP_REG_RDMA_FIFO_CON);  }  static unsigned int rdma_fmt_convert(struct mtk_disp_rdma *rdma, @@ -222,25 +223,27 @@ static void mtk_rdma_layer_config(struct mtk_ddp_comp *comp, unsigned int idx,  	unsigned int con;  	con = rdma_fmt_convert(rdma, fmt); -	mtk_ddp_write_relaxed(cmdq_pkt, con, comp, rdma->regs, DISP_RDMA_MEM_CON); +	mtk_ddp_write_relaxed(cmdq_pkt, con, &rdma->cmdq_reg, rdma->regs, DISP_RDMA_MEM_CON);  	if (fmt == DRM_FORMAT_UYVY || fmt == DRM_FORMAT_YUYV) { -		mtk_ddp_write_mask(cmdq_pkt, RDMA_MATRIX_ENABLE, comp, rdma->regs, +		mtk_ddp_write_mask(cmdq_pkt, RDMA_MATRIX_ENABLE, &rdma->cmdq_reg, rdma->regs,  				   DISP_REG_RDMA_SIZE_CON_0,  				   RDMA_MATRIX_ENABLE);  		mtk_ddp_write_mask(cmdq_pkt, RDMA_MATRIX_INT_MTX_BT601_to_RGB, -				   comp, rdma->regs, DISP_REG_RDMA_SIZE_CON_0, +				   &rdma->cmdq_reg, rdma->regs, DISP_REG_RDMA_SIZE_CON_0,  				   RDMA_MATRIX_INT_MTX_SEL);  	} else { -		mtk_ddp_write_mask(cmdq_pkt, 0, comp, rdma->regs, +		mtk_ddp_write_mask(cmdq_pkt, 0, &rdma->cmdq_reg, rdma->regs,  				   DISP_REG_RDMA_SIZE_CON_0,  				   RDMA_MATRIX_ENABLE);  	} -	mtk_ddp_write_relaxed(cmdq_pkt, addr, comp, rdma->regs, DISP_RDMA_MEM_START_ADDR); -	mtk_ddp_write_relaxed(cmdq_pkt, pitch, comp, rdma->regs, DISP_RDMA_MEM_SRC_PITCH); -	mtk_ddp_write(cmdq_pkt, RDMA_MEM_GMC, comp, rdma->regs, +	mtk_ddp_write_relaxed(cmdq_pkt, addr, &rdma->cmdq_reg, rdma->regs, +			      DISP_RDMA_MEM_START_ADDR); +	mtk_ddp_write_relaxed(cmdq_pkt, pitch, &rdma->cmdq_reg, rdma->regs, +			      DISP_RDMA_MEM_SRC_PITCH); +	mtk_ddp_write(cmdq_pkt, RDMA_MEM_GMC, &rdma->cmdq_reg, rdma->regs,  		      DISP_RDMA_MEM_GMC_SETTING_0); -	mtk_ddp_write_mask(cmdq_pkt, RDMA_MODE_MEMORY, comp, rdma->regs, +	mtk_ddp_write_mask(cmdq_pkt, RDMA_MODE_MEMORY, &rdma->cmdq_reg, rdma->regs,  			   DISP_REG_RDMA_GLOBAL_CON, RDMA_MODE_MEMORY);  } @@ -318,6 +321,11 @@ static int mtk_disp_rdma_probe(struct platform_device *pdev)  		dev_err(dev, "failed to ioremap rdma\n");  		return PTR_ERR(priv->regs);  	} +#if IS_REACHABLE(CONFIG_MTK_CMDQ) +	ret = cmdq_dev_get_client_reg(dev, &priv->cmdq_reg, 0); +	if (ret) +		dev_dbg(dev, "get mediatek,gce-client-reg fail!\n"); +#endif  	comp_id = mtk_ddp_comp_get_id(dev->of_node, MTK_DISP_RDMA);  	if (comp_id < 0) { diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c index 14371d5863ae..5da57ea6d06e 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c @@ -88,42 +88,43 @@  struct mtk_ddp_comp_dev {  	struct clk *clk;  	void __iomem *regs; +	struct cmdq_client_reg cmdq_reg;  };  void mtk_ddp_write(struct cmdq_pkt *cmdq_pkt, unsigned int value, -		   struct mtk_ddp_comp *comp, void __iomem *regs, +		   struct cmdq_client_reg *cmdq_reg, void __iomem *regs,  		   unsigned int offset)  {  #if IS_REACHABLE(CONFIG_MTK_CMDQ)  	if (cmdq_pkt) -		cmdq_pkt_write(cmdq_pkt, comp->cmdq_reg.subsys, -			       comp->cmdq_reg.offset + offset, value); +		cmdq_pkt_write(cmdq_pkt, cmdq_reg->subsys, +			       cmdq_reg->offset + offset, value);  	else  #endif  		writel(value, regs + offset);  }  void mtk_ddp_write_relaxed(struct cmdq_pkt *cmdq_pkt, unsigned int value, -			   struct mtk_ddp_comp *comp, void __iomem *regs, +			   struct cmdq_client_reg *cmdq_reg, void __iomem *regs,  			   unsigned int offset)  {  #if IS_REACHABLE(CONFIG_MTK_CMDQ)  	if (cmdq_pkt) -		cmdq_pkt_write(cmdq_pkt, comp->cmdq_reg.subsys, -			       comp->cmdq_reg.offset + offset, value); +		cmdq_pkt_write(cmdq_pkt, cmdq_reg->subsys, +			       cmdq_reg->offset + offset, value);  	else  #endif  		writel_relaxed(value, regs + offset);  }  void mtk_ddp_write_mask(struct cmdq_pkt *cmdq_pkt, unsigned int value, -			struct mtk_ddp_comp *comp, void __iomem *regs, +			struct cmdq_client_reg *cmdq_reg, void __iomem *regs,  			unsigned int offset, unsigned int mask)  {  #if IS_REACHABLE(CONFIG_MTK_CMDQ)  	if (cmdq_pkt) { -		cmdq_pkt_write_mask(cmdq_pkt, comp->cmdq_reg.subsys, -				    comp->cmdq_reg.offset + offset, value, mask); +		cmdq_pkt_write_mask(cmdq_pkt, cmdq_reg->subsys, +				    cmdq_reg->offset + offset, value, mask);  	} else {  #endif  		u32 tmp = readl(regs + offset); @@ -159,20 +160,20 @@ void mtk_dither_set(struct mtk_ddp_comp *comp, unsigned int bpc,  		return;  	if (bpc >= MTK_MIN_BPC) { -		mtk_ddp_write(cmdq_pkt, 0, comp, priv->regs, DISP_DITHER_5); -		mtk_ddp_write(cmdq_pkt, 0, comp, priv->regs, DISP_DITHER_7); +		mtk_ddp_write(cmdq_pkt, 0, &priv->cmdq_reg, priv->regs, DISP_DITHER_5); +		mtk_ddp_write(cmdq_pkt, 0, &priv->cmdq_reg, priv->regs, DISP_DITHER_7);  		mtk_ddp_write(cmdq_pkt,  			      DITHER_LSB_ERR_SHIFT_R(MTK_MAX_BPC - bpc) |  			      DITHER_ADD_LSHIFT_R(MTK_MAX_BPC - bpc) |  			      DITHER_NEW_BIT_MODE, -			      comp, priv->regs, DISP_DITHER_15); +			      &priv->cmdq_reg, priv->regs, DISP_DITHER_15);  		mtk_ddp_write(cmdq_pkt,  			      DITHER_LSB_ERR_SHIFT_B(MTK_MAX_BPC - bpc) |  			      DITHER_ADD_LSHIFT_B(MTK_MAX_BPC - bpc) |  			      DITHER_LSB_ERR_SHIFT_G(MTK_MAX_BPC - bpc) |  			      DITHER_ADD_LSHIFT_G(MTK_MAX_BPC - bpc), -			      comp, priv->regs, DISP_DITHER_16); -		mtk_ddp_write(cmdq_pkt, DISP_DITHERING, comp, priv->regs, CFG); +			      &priv->cmdq_reg, priv->regs, DISP_DITHER_16); +		mtk_ddp_write(cmdq_pkt, DISP_DITHERING, &priv->cmdq_reg, priv->regs, CFG);  	}  } @@ -182,8 +183,8 @@ static void mtk_od_config(struct mtk_ddp_comp *comp, unsigned int w,  {  	struct mtk_ddp_comp_dev *priv = dev_get_drvdata(comp->dev); -	mtk_ddp_write(cmdq_pkt, w << 16 | h, comp, priv->regs, DISP_OD_SIZE); -	mtk_ddp_write(cmdq_pkt, OD_RELAYMODE, comp, priv->regs, DISP_OD_CFG); +	mtk_ddp_write(cmdq_pkt, w << 16 | h, &priv->cmdq_reg, priv->regs, DISP_OD_SIZE); +	mtk_ddp_write(cmdq_pkt, OD_RELAYMODE, &priv->cmdq_reg, priv->regs, DISP_OD_CFG);  	mtk_dither_set(comp, bpc, DISP_OD_CFG, cmdq_pkt);  } @@ -207,7 +208,7 @@ static void mtk_aal_config(struct mtk_ddp_comp *comp, unsigned int w,  {  	struct mtk_ddp_comp_dev *priv = dev_get_drvdata(comp->dev); -	mtk_ddp_write(cmdq_pkt, h << 16 | w, comp, priv->regs, DISP_AAL_SIZE); +	mtk_ddp_write(cmdq_pkt, h << 16 | w, &priv->cmdq_reg, priv->regs, DISP_AAL_SIZE);  }  static void mtk_aal_start(struct mtk_ddp_comp *comp) @@ -230,8 +231,8 @@ static void mtk_ccorr_config(struct mtk_ddp_comp *comp, unsigned int w,  {  	struct mtk_ddp_comp_dev *priv = dev_get_drvdata(comp->dev); -	mtk_ddp_write(cmdq_pkt, h << 16 | w, comp, priv->regs, DISP_CCORR_SIZE); -	mtk_ddp_write(cmdq_pkt, CCORR_ENGINE_EN, comp, priv->regs, DISP_CCORR_CFG); +	mtk_ddp_write(cmdq_pkt, h << 16 | w, &priv->cmdq_reg, priv->regs, DISP_CCORR_SIZE); +	mtk_ddp_write(cmdq_pkt, CCORR_ENGINE_EN, &priv->cmdq_reg, priv->regs, DISP_CCORR_CFG);  }  static void mtk_ccorr_start(struct mtk_ddp_comp *comp) @@ -289,15 +290,15 @@ static void mtk_ccorr_ctm_set(struct mtk_ddp_comp *comp,  		coeffs[i] = mtk_ctm_s31_32_to_s1_10(input[i]);  	mtk_ddp_write(cmdq_pkt, coeffs[0] << 16 | coeffs[1], -		      comp, priv->regs, DISP_CCORR_COEF_0); +		      &priv->cmdq_reg, priv->regs, DISP_CCORR_COEF_0);  	mtk_ddp_write(cmdq_pkt, coeffs[2] << 16 | coeffs[3], -		      comp, priv->regs, DISP_CCORR_COEF_1); +		      &priv->cmdq_reg, priv->regs, DISP_CCORR_COEF_1);  	mtk_ddp_write(cmdq_pkt, coeffs[4] << 16 | coeffs[5], -		      comp, priv->regs, DISP_CCORR_COEF_2); +		      &priv->cmdq_reg, priv->regs, DISP_CCORR_COEF_2);  	mtk_ddp_write(cmdq_pkt, coeffs[6] << 16 | coeffs[7], -		      comp, priv->regs, DISP_CCORR_COEF_3); +		      &priv->cmdq_reg, priv->regs, DISP_CCORR_COEF_3);  	mtk_ddp_write(cmdq_pkt, coeffs[8] << 16, -		      comp, priv->regs, DISP_CCORR_COEF_4); +		      &priv->cmdq_reg, priv->regs, DISP_CCORR_COEF_4);  }  static void mtk_dither_config(struct mtk_ddp_comp *comp, unsigned int w, @@ -306,8 +307,8 @@ static void mtk_dither_config(struct mtk_ddp_comp *comp, unsigned int w,  {  	struct mtk_ddp_comp_dev *priv = dev_get_drvdata(comp->dev); -	mtk_ddp_write(cmdq_pkt, h << 16 | w, comp, priv->regs, DISP_DITHER_SIZE); -	mtk_ddp_write(cmdq_pkt, DITHER_RELAY_MODE, comp, priv->regs, DISP_DITHER_CFG); +	mtk_ddp_write(cmdq_pkt, h << 16 | w, &priv->cmdq_reg, priv->regs, DISP_DITHER_SIZE); +	mtk_ddp_write(cmdq_pkt, DITHER_RELAY_MODE, &priv->cmdq_reg, priv->regs, DISP_DITHER_CFG);  }  static void mtk_dither_start(struct mtk_ddp_comp *comp) @@ -330,7 +331,7 @@ static void mtk_gamma_config(struct mtk_ddp_comp *comp, unsigned int w,  {  	struct mtk_ddp_comp_dev *priv = dev_get_drvdata(comp->dev); -	mtk_ddp_write(cmdq_pkt, h << 16 | w, comp, priv->regs, DISP_GAMMA_SIZE); +	mtk_ddp_write(cmdq_pkt, h << 16 | w, &priv->cmdq_reg, priv->regs, DISP_GAMMA_SIZE);  	mtk_dither_set(comp, bpc, DISP_GAMMA_CFG, cmdq_pkt);  } @@ -586,12 +587,6 @@ int mtk_ddp_comp_init(struct device_node *node, struct mtk_ddp_comp *comp,  	}  	comp->dev = &comp_pdev->dev; -#if IS_REACHABLE(CONFIG_MTK_CMDQ) -	ret = cmdq_dev_get_client_reg(comp->dev, &comp->cmdq_reg, 0); -	if (ret) -		dev_dbg(comp->dev, "get mediatek,gce-client-reg fail!\n"); -#endif -  	/* Only DMA capable components need the LARB property */  	if (type == MTK_DISP_OVL ||  	    type == MTK_DISP_OVL_2L || @@ -617,6 +612,12 @@ int mtk_ddp_comp_init(struct device_node *node, struct mtk_ddp_comp *comp,  	if (IS_ERR(priv->clk))  		return PTR_ERR(priv->clk); +#if IS_REACHABLE(CONFIG_MTK_CMDQ) +	ret = cmdq_dev_get_client_reg(comp->dev, &priv->cmdq_reg, 0); +	if (ret) +		dev_dbg(comp->dev, "get mediatek,gce-client-reg fail!\n"); +#endif +  	platform_set_drvdata(comp_pdev, priv);  	return 0; diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h index ba5fcffe6f9a..1590f2af1665 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h @@ -71,7 +71,6 @@ struct mtk_ddp_comp {  	struct device *larb_dev;  	enum mtk_ddp_comp_id id;  	const struct mtk_ddp_comp_funcs *funcs; -	struct cmdq_client_reg cmdq_reg;  };  static inline int mtk_ddp_comp_clk_enable(struct mtk_ddp_comp *comp) @@ -195,12 +194,12 @@ void mtk_dither_set(struct mtk_ddp_comp *comp, unsigned int bpc,  		    unsigned int CFG, struct cmdq_pkt *cmdq_pkt);  enum mtk_ddp_comp_type mtk_ddp_comp_get_type(enum mtk_ddp_comp_id comp_id);  void mtk_ddp_write(struct cmdq_pkt *cmdq_pkt, unsigned int value, -		   struct mtk_ddp_comp *comp, void __iomem *regs, +		   struct cmdq_client_reg *cmdq_reg, void __iomem *regs,  		   unsigned int offset);  void mtk_ddp_write_relaxed(struct cmdq_pkt *cmdq_pkt, unsigned int value, -			   struct mtk_ddp_comp *comp, void __iomem *regs, +			   struct cmdq_client_reg *cmdq_reg, void __iomem *regs,  			   unsigned int offset);  void mtk_ddp_write_mask(struct cmdq_pkt *cmdq_pkt, unsigned int value, -			struct mtk_ddp_comp *comp, void __iomem *regs, +			struct cmdq_client_reg *cmdq_reg, void __iomem *regs,  			unsigned int offset, unsigned int mask);  #endif /* MTK_DRM_DDP_COMP_H */  | 
