dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v13,0/3] Add dpi output format control for MT8186
@ 2022-10-24  2:04 xinlei.lee
  2022-10-24  2:04 ` [PATCH v13, 1/3] soc: mediatek: Add all settings to mtk_mmsys_ddp_dpi_fmt_config func xinlei.lee
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: xinlei.lee @ 2022-10-24  2:04 UTC (permalink / raw)
  To: matthias.bgg, rex-bc.chen, angelogioacchino.delregno,
	jason-jh.lin, nfraprado, chunkuang.hu, p.zabel, airlied, daniel
  Cc: Xinlei Lee, linux-kernel, dri-devel,
	Project_Global_Chrome_Upstream_Group, linux-mediatek,
	linux-arm-kernel

From: Xinlei Lee <xinlei.lee@mediatek.com>

Base on the branch of linus/master v6.1 rc1.

Change since v12:
1. Add MT8186_ prefix to variables added in mt8186-mmsys.h file.

Change since v11:
1. Rebase on v6.1-rc1. Change nothing.

Change since v10:
1. Modify patch title and add review tag.

Change since v9:
1. Modify the location of the mmsys_dev member variable.

Change since v8:
1. Modified the title and some description information.

Changes since v7:
1. This series is based on the following patch:
   [1] soc: mediatek: Add mmsys func to adapt to dpi output for MT8186
   https://patchwork.kernel.org/project/linux-mediatek/patch/1663161662-1598-2-git-send-email-xinlei.lee@mediatek.com/
2. Modify the DPI_FORMAT_MASK macro definition to GENMASK(1, 0);
3. Add all settings to mtk_mmsys_ddp_dpi_fmt_config;
4. Modify the commit title to Add mt8186 dpi compatibles and platform
data.

Changes since v6:
1. Different from other ICs, when mt8186 DPI changes the output format,
the mmsys_base+400 register needs to be set to be valid at the same
time.
   In this series, all the situations that mmsys need to be set up are
perfected (not necessarily used in practice).
2. Put the value that controls the mmsys function in mtk-mmsys.h.
3. Encountered the sink ic switched between dual edge and single edge,
perfected setting and clearing mmsys bit operations in mtk_dpi.c.

Changes since v5:
1. Separate the patch that adds edge_cfg_in_mmsys from the patch that
adds mt8186 dpi support.
2. Move the mmsys register definition to mmsys driver.
 
Changes since v4:
1. This series of cancellations is based on the following patches:
   [1] Add MediaTek SoC(vdosys1) support for mt8195
   https://patchwork.kernel.org/project/linux-mediatek/cover/20220711075245.10492-1-nancy.lin@mediatek.com/
   [2] Add MediaTek SoC DRM (vdosys1) support for mt8195
   https://patchwork.kernel.org/project/linux-mediatek/cover/20220804072827.22383-1-nancy.lin@mediatek.com/
2. Added mtk_mmsys_update_bits function in mtk-mmsys.c;
3. MMSYS 0x400 register is modified to MT8186_MMSYS_DPI_OUTPUT_FORMAT;
4. Fix formatting issues.

Changes since v3:
1. Fix formatting issues;
2. Modify the edge output control name & description;
3. Fix the threading problem.

Changes since v2:
1. Modify key nouns in the description;
2. Add the label of jitao to Co-developed-by;
3. Macro definition address lowercase problem and function naming;
4. Add missing a description of this property in the mtk_dpi_conf.

Change since v1:
1. Modify mt8186 compatiable location.
2. Modify MT8186_DPI_OUTPUT_FORMAT name.

When MT8186 outputs dpi signal, it is necessary to add dual edge output
format control in mmsys.

Xinlei Lee (3):
  soc: mediatek: Add all settings to mtk_mmsys_ddp_dpi_fmt_config func
  drm: mediatek: Set dpi format in mmsys
  drm: mediatek: Add mt8186 dpi compatibles and platform data

 drivers/gpu/drm/mediatek/mtk_dpi.c     | 32 ++++++++++++++++++++++++++
 drivers/gpu/drm/mediatek/mtk_drm_drv.c |  2 ++
 drivers/soc/mediatek/mt8186-mmsys.h    |  8 ++++---
 drivers/soc/mediatek/mtk-mmsys.c       | 27 +++++++++++++++++-----
 include/linux/soc/mediatek/mtk-mmsys.h |  7 ++++++
 5 files changed, 67 insertions(+), 9 deletions(-)

-- 
2.18.0


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH v13, 1/3] soc: mediatek: Add all settings to mtk_mmsys_ddp_dpi_fmt_config func
  2022-10-24  2:04 [PATCH v13,0/3] Add dpi output format control for MT8186 xinlei.lee
@ 2022-10-24  2:04 ` xinlei.lee
  2022-11-08 18:11   ` [PATCH v13,1/3] " Matthias Brugger
  2022-10-24  2:04 ` [PATCH v13,2/3] drm: mediatek: Set dpi format in mmsys xinlei.lee
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 13+ messages in thread
From: xinlei.lee @ 2022-10-24  2:04 UTC (permalink / raw)
  To: matthias.bgg, rex-bc.chen, angelogioacchino.delregno,
	jason-jh.lin, nfraprado, chunkuang.hu, p.zabel, airlied, daniel
  Cc: Xinlei Lee, linux-kernel, dri-devel,
	Project_Global_Chrome_Upstream_Group, linux-mediatek,
	linux-arm-kernel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="yes", Size: 3928 bytes --]

From: Xinlei Lee <xinlei.lee@mediatek.com>

The difference between MT8186 and other ICs is that when modifying the
output format, we need to modify the mmsys_base+0x400 register to take
effect. So when setting the dpi output format, we need to call 
mtk_mmsys_ddp_dpi_fmt_config to set it to MT8186 synchronously.
  
Commit a071e52f75d1 ("soc: mediatek: Add mmsys func to adapt to dpi
output for MT8186") lacked some of the possible output formats and also 
had a wrong bitmask.

Add the missing output formats and fix the bitmask.
  
While at it, also update mtk_mmsys_ddp_dpi_fmt_config() to use generic
formats, so that it is slightly easier to extend for other platforms.
  
Fixes: a071e52f75d1 ("soc: mediatek: Add mmsys func to adapt to dpi output for MT8186")
Signed-off-by: Xinlei Lee <xinlei.lee@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: CK Hu <ck.hu@mediatek.com>
Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
---
 drivers/soc/mediatek/mt8186-mmsys.h    |  8 +++++---
 drivers/soc/mediatek/mtk-mmsys.c       | 27 ++++++++++++++++++++------
 include/linux/soc/mediatek/mtk-mmsys.h |  7 +++++++
 3 files changed, 33 insertions(+), 9 deletions(-)

diff --git a/drivers/soc/mediatek/mt8186-mmsys.h b/drivers/soc/mediatek/mt8186-mmsys.h
index 09b1ccbc0093..279d4138525b 100644
--- a/drivers/soc/mediatek/mt8186-mmsys.h
+++ b/drivers/soc/mediatek/mt8186-mmsys.h
@@ -5,9 +5,11 @@
 
 /* Values for DPI configuration in MMSYS address space */
 #define MT8186_MMSYS_DPI_OUTPUT_FORMAT		0x400
-#define DPI_FORMAT_MASK					0x1
-#define DPI_RGB888_DDR_CON				BIT(0)
-#define DPI_RGB565_SDR_CON				BIT(1)
+#define MT8186_DPI_FORMAT_MASK				GENMASK(1, 0)
+#define MT8186_DPI_RGB888_SDR_CON			0
+#define MT8186_DPI_RGB888_DDR_CON			1
+#define MT8186_DPI_RGB565_SDR_CON			2
+#define MT8186_DPI_RGB565_DDR_CON			3
 
 #define MT8186_MMSYS_OVL_CON			0xF04
 #define MT8186_MMSYS_OVL0_CON_MASK			0x3
diff --git a/drivers/soc/mediatek/mtk-mmsys.c b/drivers/soc/mediatek/mtk-mmsys.c
index 2e20b24da363..16cd924d8973 100644
--- a/drivers/soc/mediatek/mtk-mmsys.c
+++ b/drivers/soc/mediatek/mtk-mmsys.c
@@ -238,12 +238,27 @@ static void mtk_mmsys_update_bits(struct mtk_mmsys *mmsys, u32 offset, u32 mask,
 
 void mtk_mmsys_ddp_dpi_fmt_config(struct device *dev, u32 val)
 {
-	if (val)
-		mtk_mmsys_update_bits(dev_get_drvdata(dev), MT8186_MMSYS_DPI_OUTPUT_FORMAT,
-				      DPI_RGB888_DDR_CON, DPI_FORMAT_MASK);
-	else
-		mtk_mmsys_update_bits(dev_get_drvdata(dev), MT8186_MMSYS_DPI_OUTPUT_FORMAT,
-				      DPI_RGB565_SDR_CON, DPI_FORMAT_MASK);
+	struct mtk_mmsys *mmsys = dev_get_drvdata(dev);
+
+	switch (val) {
+	case MTK_DPI_RGB888_SDR_CON:
+		mtk_mmsys_update_bits(mmsys, MT8186_MMSYS_DPI_OUTPUT_FORMAT,
+				      MT8186_DPI_FORMAT_MASK, MT8186_DPI_RGB888_SDR_CON);
+		break;
+	case MTK_DPI_RGB565_SDR_CON:
+		mtk_mmsys_update_bits(mmsys, MT8186_MMSYS_DPI_OUTPUT_FORMAT,
+				      MT8186_DPI_FORMAT_MASK, MT8186_DPI_RGB565_SDR_CON);
+		break;
+	case MTK_DPI_RGB565_DDR_CON:
+		mtk_mmsys_update_bits(mmsys, MT8186_MMSYS_DPI_OUTPUT_FORMAT,
+				      MT8186_DPI_FORMAT_MASK, MT8186_DPI_RGB565_DDR_CON);
+		break;
+	case MTK_DPI_RGB888_DDR_CON:
+	default:
+		mtk_mmsys_update_bits(mmsys, MT8186_MMSYS_DPI_OUTPUT_FORMAT,
+				      MT8186_DPI_FORMAT_MASK, MT8186_DPI_RGB888_DDR_CON);
+		break;
+	}
 }
 EXPORT_SYMBOL_GPL(mtk_mmsys_ddp_dpi_fmt_config);
 
diff --git a/include/linux/soc/mediatek/mtk-mmsys.h b/include/linux/soc/mediatek/mtk-mmsys.h
index d2b02bb43768..b85f66db33e1 100644
--- a/include/linux/soc/mediatek/mtk-mmsys.h
+++ b/include/linux/soc/mediatek/mtk-mmsys.h
@@ -9,6 +9,13 @@
 enum mtk_ddp_comp_id;
 struct device;
 
+enum mtk_dpi_out_format_con {
+	MTK_DPI_RGB888_SDR_CON,
+	MTK_DPI_RGB888_DDR_CON,
+	MTK_DPI_RGB565_SDR_CON,
+	MTK_DPI_RGB565_DDR_CON
+};
+
 enum mtk_ddp_comp_id {
 	DDP_COMPONENT_AAL0,
 	DDP_COMPONENT_AAL1,
-- 
2.18.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v13,2/3] drm: mediatek: Set dpi format in mmsys
  2022-10-24  2:04 [PATCH v13,0/3] Add dpi output format control for MT8186 xinlei.lee
  2022-10-24  2:04 ` [PATCH v13, 1/3] soc: mediatek: Add all settings to mtk_mmsys_ddp_dpi_fmt_config func xinlei.lee
@ 2022-10-24  2:04 ` xinlei.lee
  2022-11-21 18:26   ` Matthias Brugger
  2022-12-26 23:12   ` Chun-Kuang Hu
  2022-10-24  2:04 ` [PATCH v13, 3/3] drm: mediatek: Add mt8186 dpi compatibles and platform data xinlei.lee
  2022-11-08 18:27 ` [PATCH v13,0/3] Add dpi output format control for MT8186 Matthias Brugger
  3 siblings, 2 replies; 13+ messages in thread
From: xinlei.lee @ 2022-10-24  2:04 UTC (permalink / raw)
  To: matthias.bgg, rex-bc.chen, angelogioacchino.delregno,
	jason-jh.lin, nfraprado, chunkuang.hu, p.zabel, airlied, daniel
  Cc: Jitao Shi, Xinlei Lee, linux-kernel, dri-devel,
	Project_Global_Chrome_Upstream_Group, linux-mediatek,
	linux-arm-kernel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="yes", Size: 2871 bytes --]

From: Xinlei Lee <xinlei.lee@mediatek.com>

Dpi output needs to adjust the output format to dual edge for MT8186.

Co-developed-by: Jitao Shi <jitao.shi@mediatek.com>
Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
Signed-off-by: Xinlei Lee <xinlei.lee@mediatek.com>
Reviewed-by: CK Hu <ck.hu@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
---
 drivers/gpu/drm/mediatek/mtk_dpi.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c
index 630a4e301ef6..ad87ecddf58d 100644
--- a/drivers/gpu/drm/mediatek/mtk_dpi.c
+++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
@@ -15,6 +15,7 @@
 #include <linux/of_graph.h>
 #include <linux/pinctrl/consumer.h>
 #include <linux/platform_device.h>
+#include <linux/soc/mediatek/mtk-mmsys.h>
 #include <linux/types.h>
 
 #include <video/videomode.h>
@@ -30,6 +31,7 @@
 #include "mtk_disp_drv.h"
 #include "mtk_dpi_regs.h"
 #include "mtk_drm_ddp_comp.h"
+#include "mtk_drm_drv.h"
 
 enum mtk_dpi_out_bit_num {
 	MTK_DPI_OUT_BIT_NUM_8BITS,
@@ -67,6 +69,7 @@ struct mtk_dpi {
 	struct drm_connector *connector;
 	void __iomem *regs;
 	struct device *dev;
+	struct device *mmsys_dev;
 	struct clk *engine_clk;
 	struct clk *pixel_clk;
 	struct clk *tvd_clk;
@@ -135,6 +138,7 @@ struct mtk_dpi_yc_limit {
  * @yuv422_en_bit: Enable bit of yuv422.
  * @csc_enable_bit: Enable bit of CSC.
  * @pixels_per_iter: Quantity of transferred pixels per iteration.
+ * @edge_cfg_in_mmsys: If the edge configuration for DPI's output needs to be set in MMSYS.
  */
 struct mtk_dpi_conf {
 	unsigned int (*cal_factor)(int clock);
@@ -153,6 +157,7 @@ struct mtk_dpi_conf {
 	u32 yuv422_en_bit;
 	u32 csc_enable_bit;
 	u32 pixels_per_iter;
+	bool edge_cfg_in_mmsys;
 };
 
 static void mtk_dpi_mask(struct mtk_dpi *dpi, u32 offset, u32 val, u32 mask)
@@ -449,8 +454,12 @@ static void mtk_dpi_dual_edge(struct mtk_dpi *dpi)
 		mtk_dpi_mask(dpi, DPI_OUTPUT_SETTING,
 			     dpi->output_fmt == MEDIA_BUS_FMT_RGB888_2X12_LE ?
 			     EDGE_SEL : 0, EDGE_SEL);
+		if (dpi->conf->edge_cfg_in_mmsys)
+			mtk_mmsys_ddp_dpi_fmt_config(dpi->mmsys_dev, MTK_DPI_RGB888_DDR_CON);
 	} else {
 		mtk_dpi_mask(dpi, DPI_DDR_SETTING, DDR_EN | DDR_4PHASE, 0);
+		if (dpi->conf->edge_cfg_in_mmsys)
+			mtk_mmsys_ddp_dpi_fmt_config(dpi->mmsys_dev, MTK_DPI_RGB888_SDR_CON);
 	}
 }
 
@@ -778,8 +787,10 @@ static int mtk_dpi_bind(struct device *dev, struct device *master, void *data)
 {
 	struct mtk_dpi *dpi = dev_get_drvdata(dev);
 	struct drm_device *drm_dev = data;
+	struct mtk_drm_private *priv = drm_dev->dev_private;
 	int ret;
 
+	dpi->mmsys_dev = priv->mmsys_dev;
 	ret = drm_simple_encoder_init(drm_dev, &dpi->encoder,
 				      DRM_MODE_ENCODER_TMDS);
 	if (ret) {
-- 
2.18.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v13, 3/3] drm: mediatek: Add mt8186 dpi compatibles and platform data
  2022-10-24  2:04 [PATCH v13,0/3] Add dpi output format control for MT8186 xinlei.lee
  2022-10-24  2:04 ` [PATCH v13, 1/3] soc: mediatek: Add all settings to mtk_mmsys_ddp_dpi_fmt_config func xinlei.lee
  2022-10-24  2:04 ` [PATCH v13,2/3] drm: mediatek: Set dpi format in mmsys xinlei.lee
@ 2022-10-24  2:04 ` xinlei.lee
  2022-12-26 23:24   ` [PATCH v13,3/3] " Chun-Kuang Hu
  2022-11-08 18:27 ` [PATCH v13,0/3] Add dpi output format control for MT8186 Matthias Brugger
  3 siblings, 1 reply; 13+ messages in thread
From: xinlei.lee @ 2022-10-24  2:04 UTC (permalink / raw)
  To: matthias.bgg, rex-bc.chen, angelogioacchino.delregno,
	jason-jh.lin, nfraprado, chunkuang.hu, p.zabel, airlied, daniel
  Cc: Xinlei Lee, linux-kernel, dri-devel,
	Project_Global_Chrome_Upstream_Group, linux-mediatek,
	linux-arm-kernel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="yes", Size: 2356 bytes --]

From: Xinlei Lee <xinlei.lee@mediatek.com>

Add the compatible because use edge_cfg_in_mmsys in mt8186.

Signed-off-by: Xinlei Lee <xinlei.lee@mediatek.com>
Reviewed-by: CK Hu <ck.hu@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
---
 drivers/gpu/drm/mediatek/mtk_dpi.c     | 21 +++++++++++++++++++++
 drivers/gpu/drm/mediatek/mtk_drm_drv.c |  2 ++
 2 files changed, 23 insertions(+)

diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c
index ad87ecddf58d..325032fd5343 100644
--- a/drivers/gpu/drm/mediatek/mtk_dpi.c
+++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
@@ -941,6 +941,24 @@ static const struct mtk_dpi_conf mt8183_conf = {
 	.csc_enable_bit = CSC_ENABLE,
 };
 
+static const struct mtk_dpi_conf mt8186_conf = {
+	.cal_factor = mt8183_calculate_factor,
+	.reg_h_fre_con = 0xe0,
+	.max_clock_khz = 150000,
+	.output_fmts = mt8183_output_fmts,
+	.num_output_fmts = ARRAY_SIZE(mt8183_output_fmts),
+	.edge_cfg_in_mmsys = true,
+	.pixels_per_iter = 1,
+	.is_ck_de_pol = true,
+	.swap_input_support = true,
+	.support_direct_pin = true,
+	.dimension_mask = HPW_MASK,
+	.hvsize_mask = HSIZE_MASK,
+	.channel_swap_shift = CH_SWAP,
+	.yuv422_en_bit = YUV422_EN,
+	.csc_enable_bit = CSC_ENABLE,
+};
+
 static const struct mtk_dpi_conf mt8192_conf = {
 	.cal_factor = mt8183_calculate_factor,
 	.reg_h_fre_con = 0xe0,
@@ -1091,6 +1109,9 @@ static const struct of_device_id mtk_dpi_of_ids[] = {
 	{ .compatible = "mediatek,mt8183-dpi",
 	  .data = &mt8183_conf,
 	},
+	{ .compatible = "mediatek,mt8186-dpi",
+	  .data = &mt8186_conf,
+	},
 	{ .compatible = "mediatek,mt8192-dpi",
 	  .data = &mt8192_conf,
 	},
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index 546b79412815..3d32fbc66ac1 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -646,6 +646,8 @@ static const struct of_device_id mtk_ddp_comp_dt_ids[] = {
 	  .data = (void *)MTK_DPI },
 	{ .compatible = "mediatek,mt8183-dpi",
 	  .data = (void *)MTK_DPI },
+	{ .compatible = "mediatek,mt8186-dpi",
+	  .data = (void *)MTK_DPI },
 	{ .compatible = "mediatek,mt8192-dpi",
 	  .data = (void *)MTK_DPI },
 	{ .compatible = "mediatek,mt8195-dp-intf",
-- 
2.18.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH v13,1/3] soc: mediatek: Add all settings to mtk_mmsys_ddp_dpi_fmt_config func
  2022-10-24  2:04 ` [PATCH v13, 1/3] soc: mediatek: Add all settings to mtk_mmsys_ddp_dpi_fmt_config func xinlei.lee
@ 2022-11-08 18:11   ` Matthias Brugger
  2022-11-08 18:12     ` Matthias Brugger
  0 siblings, 1 reply; 13+ messages in thread
From: Matthias Brugger @ 2022-11-08 18:11 UTC (permalink / raw)
  To: xinlei.lee, rex-bc.chen, angelogioacchino.delregno, jason-jh.lin,
	nfraprado, chunkuang.hu, p.zabel, airlied, daniel
  Cc: Project_Global_Chrome_Upstream_Group, linux-mediatek,
	linux-arm-kernel, dri-devel, linux-kernel

Hi Xinlei,

Can you please fix the threading of this patches. I can see that this 1/3 but 
I'm not able to find 3/3 in the series. The first two look good, the third, I 
don't know.

Regards,
Matthias

On 24/10/2022 04:04, xinlei.lee@mediatek.com wrote:
> From: Xinlei Lee <xinlei.lee@mediatek.com>
> 
> The difference between MT8186 and other ICs is that when modifying the
> output format, we need to modify the mmsys_base+0x400 register to take
> effect. So when setting the dpi output format, we need to call
> mtk_mmsys_ddp_dpi_fmt_config to set it to MT8186 synchronously.
>    
> Commit a071e52f75d1 ("soc: mediatek: Add mmsys func to adapt to dpi
> output for MT8186") lacked some of the possible output formats and also
> had a wrong bitmask.
> 
> Add the missing output formats and fix the bitmask.
>    
> While at it, also update mtk_mmsys_ddp_dpi_fmt_config() to use generic
> formats, so that it is slightly easier to extend for other platforms.
>    
> Fixes: a071e52f75d1 ("soc: mediatek: Add mmsys func to adapt to dpi output for MT8186")
> Signed-off-by: Xinlei Lee <xinlei.lee@mediatek.com>
> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> Reviewed-by: CK Hu <ck.hu@mediatek.com>
> Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> ---
>   drivers/soc/mediatek/mt8186-mmsys.h    |  8 +++++---
>   drivers/soc/mediatek/mtk-mmsys.c       | 27 ++++++++++++++++++++------
>   include/linux/soc/mediatek/mtk-mmsys.h |  7 +++++++
>   3 files changed, 33 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/soc/mediatek/mt8186-mmsys.h b/drivers/soc/mediatek/mt8186-mmsys.h
> index 09b1ccbc0093..279d4138525b 100644
> --- a/drivers/soc/mediatek/mt8186-mmsys.h
> +++ b/drivers/soc/mediatek/mt8186-mmsys.h
> @@ -5,9 +5,11 @@
>   
>   /* Values for DPI configuration in MMSYS address space */
>   #define MT8186_MMSYS_DPI_OUTPUT_FORMAT		0x400
> -#define DPI_FORMAT_MASK					0x1
> -#define DPI_RGB888_DDR_CON				BIT(0)
> -#define DPI_RGB565_SDR_CON				BIT(1)
> +#define MT8186_DPI_FORMAT_MASK				GENMASK(1, 0)
> +#define MT8186_DPI_RGB888_SDR_CON			0
> +#define MT8186_DPI_RGB888_DDR_CON			1
> +#define MT8186_DPI_RGB565_SDR_CON			2
> +#define MT8186_DPI_RGB565_DDR_CON			3
>   
>   #define MT8186_MMSYS_OVL_CON			0xF04
>   #define MT8186_MMSYS_OVL0_CON_MASK			0x3
> diff --git a/drivers/soc/mediatek/mtk-mmsys.c b/drivers/soc/mediatek/mtk-mmsys.c
> index 2e20b24da363..16cd924d8973 100644
> --- a/drivers/soc/mediatek/mtk-mmsys.c
> +++ b/drivers/soc/mediatek/mtk-mmsys.c
> @@ -238,12 +238,27 @@ static void mtk_mmsys_update_bits(struct mtk_mmsys *mmsys, u32 offset, u32 mask,
>   
>   void mtk_mmsys_ddp_dpi_fmt_config(struct device *dev, u32 val)
>   {
> -	if (val)
> -		mtk_mmsys_update_bits(dev_get_drvdata(dev), MT8186_MMSYS_DPI_OUTPUT_FORMAT,
> -				      DPI_RGB888_DDR_CON, DPI_FORMAT_MASK);
> -	else
> -		mtk_mmsys_update_bits(dev_get_drvdata(dev), MT8186_MMSYS_DPI_OUTPUT_FORMAT,
> -				      DPI_RGB565_SDR_CON, DPI_FORMAT_MASK);
> +	struct mtk_mmsys *mmsys = dev_get_drvdata(dev);
> +
> +	switch (val) {
> +	case MTK_DPI_RGB888_SDR_CON:
> +		mtk_mmsys_update_bits(mmsys, MT8186_MMSYS_DPI_OUTPUT_FORMAT,
> +				      MT8186_DPI_FORMAT_MASK, MT8186_DPI_RGB888_SDR_CON);
> +		break;
> +	case MTK_DPI_RGB565_SDR_CON:
> +		mtk_mmsys_update_bits(mmsys, MT8186_MMSYS_DPI_OUTPUT_FORMAT,
> +				      MT8186_DPI_FORMAT_MASK, MT8186_DPI_RGB565_SDR_CON);
> +		break;
> +	case MTK_DPI_RGB565_DDR_CON:
> +		mtk_mmsys_update_bits(mmsys, MT8186_MMSYS_DPI_OUTPUT_FORMAT,
> +				      MT8186_DPI_FORMAT_MASK, MT8186_DPI_RGB565_DDR_CON);
> +		break;
> +	case MTK_DPI_RGB888_DDR_CON:
> +	default:
> +		mtk_mmsys_update_bits(mmsys, MT8186_MMSYS_DPI_OUTPUT_FORMAT,
> +				      MT8186_DPI_FORMAT_MASK, MT8186_DPI_RGB888_DDR_CON);
> +		break;
> +	}
>   }
>   EXPORT_SYMBOL_GPL(mtk_mmsys_ddp_dpi_fmt_config);
>   
> diff --git a/include/linux/soc/mediatek/mtk-mmsys.h b/include/linux/soc/mediatek/mtk-mmsys.h
> index d2b02bb43768..b85f66db33e1 100644
> --- a/include/linux/soc/mediatek/mtk-mmsys.h
> +++ b/include/linux/soc/mediatek/mtk-mmsys.h
> @@ -9,6 +9,13 @@
>   enum mtk_ddp_comp_id;
>   struct device;
>   
> +enum mtk_dpi_out_format_con {
> +	MTK_DPI_RGB888_SDR_CON,
> +	MTK_DPI_RGB888_DDR_CON,
> +	MTK_DPI_RGB565_SDR_CON,
> +	MTK_DPI_RGB565_DDR_CON
> +};
> +
>   enum mtk_ddp_comp_id {
>   	DDP_COMPONENT_AAL0,
>   	DDP_COMPONENT_AAL1,

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v13,1/3] soc: mediatek: Add all settings to mtk_mmsys_ddp_dpi_fmt_config func
  2022-11-08 18:11   ` [PATCH v13,1/3] " Matthias Brugger
@ 2022-11-08 18:12     ` Matthias Brugger
  0 siblings, 0 replies; 13+ messages in thread
From: Matthias Brugger @ 2022-11-08 18:12 UTC (permalink / raw)
  To: xinlei.lee, rex-bc.chen, angelogioacchino.delregno, jason-jh.lin,
	nfraprado, chunkuang.hu, p.zabel, airlied, daniel
  Cc: Project_Global_Chrome_Upstream_Group, linux-mediatek,
	linux-arm-kernel, dri-devel, linux-kernel



On 08/11/2022 19:11, Matthias Brugger wrote:
> Hi Xinlei,
> 
> Can you please fix the threading of this patches. I can see that this 1/3 but 
> I'm not able to find 3/3 in the series. The first two look good, the third, I 
> don't know.
> 

Nevermind this message, the problem was on my side.

Regards,
Matthias

> Regards,
> Matthias
> 
> On 24/10/2022 04:04, xinlei.lee@mediatek.com wrote:
>> From: Xinlei Lee <xinlei.lee@mediatek.com>
>>
>> The difference between MT8186 and other ICs is that when modifying the
>> output format, we need to modify the mmsys_base+0x400 register to take
>> effect. So when setting the dpi output format, we need to call
>> mtk_mmsys_ddp_dpi_fmt_config to set it to MT8186 synchronously.
>> Commit a071e52f75d1 ("soc: mediatek: Add mmsys func to adapt to dpi
>> output for MT8186") lacked some of the possible output formats and also
>> had a wrong bitmask.
>>
>> Add the missing output formats and fix the bitmask.
>> While at it, also update mtk_mmsys_ddp_dpi_fmt_config() to use generic
>> formats, so that it is slightly easier to extend for other platforms.
>> Fixes: a071e52f75d1 ("soc: mediatek: Add mmsys func to adapt to dpi output for 
>> MT8186")
>> Signed-off-by: Xinlei Lee <xinlei.lee@mediatek.com>
>> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
>> Reviewed-by: CK Hu <ck.hu@mediatek.com>
>> Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>> ---
>>   drivers/soc/mediatek/mt8186-mmsys.h    |  8 +++++---
>>   drivers/soc/mediatek/mtk-mmsys.c       | 27 ++++++++++++++++++++------
>>   include/linux/soc/mediatek/mtk-mmsys.h |  7 +++++++
>>   3 files changed, 33 insertions(+), 9 deletions(-)
>>
>> diff --git a/drivers/soc/mediatek/mt8186-mmsys.h 
>> b/drivers/soc/mediatek/mt8186-mmsys.h
>> index 09b1ccbc0093..279d4138525b 100644
>> --- a/drivers/soc/mediatek/mt8186-mmsys.h
>> +++ b/drivers/soc/mediatek/mt8186-mmsys.h
>> @@ -5,9 +5,11 @@
>>   /* Values for DPI configuration in MMSYS address space */
>>   #define MT8186_MMSYS_DPI_OUTPUT_FORMAT        0x400
>> -#define DPI_FORMAT_MASK                    0x1
>> -#define DPI_RGB888_DDR_CON                BIT(0)
>> -#define DPI_RGB565_SDR_CON                BIT(1)
>> +#define MT8186_DPI_FORMAT_MASK                GENMASK(1, 0)
>> +#define MT8186_DPI_RGB888_SDR_CON            0
>> +#define MT8186_DPI_RGB888_DDR_CON            1
>> +#define MT8186_DPI_RGB565_SDR_CON            2
>> +#define MT8186_DPI_RGB565_DDR_CON            3
>>   #define MT8186_MMSYS_OVL_CON            0xF04
>>   #define MT8186_MMSYS_OVL0_CON_MASK            0x3
>> diff --git a/drivers/soc/mediatek/mtk-mmsys.c b/drivers/soc/mediatek/mtk-mmsys.c
>> index 2e20b24da363..16cd924d8973 100644
>> --- a/drivers/soc/mediatek/mtk-mmsys.c
>> +++ b/drivers/soc/mediatek/mtk-mmsys.c
>> @@ -238,12 +238,27 @@ static void mtk_mmsys_update_bits(struct mtk_mmsys 
>> *mmsys, u32 offset, u32 mask,
>>   void mtk_mmsys_ddp_dpi_fmt_config(struct device *dev, u32 val)
>>   {
>> -    if (val)
>> -        mtk_mmsys_update_bits(dev_get_drvdata(dev), 
>> MT8186_MMSYS_DPI_OUTPUT_FORMAT,
>> -                      DPI_RGB888_DDR_CON, DPI_FORMAT_MASK);
>> -    else
>> -        mtk_mmsys_update_bits(dev_get_drvdata(dev), 
>> MT8186_MMSYS_DPI_OUTPUT_FORMAT,
>> -                      DPI_RGB565_SDR_CON, DPI_FORMAT_MASK);
>> +    struct mtk_mmsys *mmsys = dev_get_drvdata(dev);
>> +
>> +    switch (val) {
>> +    case MTK_DPI_RGB888_SDR_CON:
>> +        mtk_mmsys_update_bits(mmsys, MT8186_MMSYS_DPI_OUTPUT_FORMAT,
>> +                      MT8186_DPI_FORMAT_MASK, MT8186_DPI_RGB888_SDR_CON);
>> +        break;
>> +    case MTK_DPI_RGB565_SDR_CON:
>> +        mtk_mmsys_update_bits(mmsys, MT8186_MMSYS_DPI_OUTPUT_FORMAT,
>> +                      MT8186_DPI_FORMAT_MASK, MT8186_DPI_RGB565_SDR_CON);
>> +        break;
>> +    case MTK_DPI_RGB565_DDR_CON:
>> +        mtk_mmsys_update_bits(mmsys, MT8186_MMSYS_DPI_OUTPUT_FORMAT,
>> +                      MT8186_DPI_FORMAT_MASK, MT8186_DPI_RGB565_DDR_CON);
>> +        break;
>> +    case MTK_DPI_RGB888_DDR_CON:
>> +    default:
>> +        mtk_mmsys_update_bits(mmsys, MT8186_MMSYS_DPI_OUTPUT_FORMAT,
>> +                      MT8186_DPI_FORMAT_MASK, MT8186_DPI_RGB888_DDR_CON);
>> +        break;
>> +    }
>>   }
>>   EXPORT_SYMBOL_GPL(mtk_mmsys_ddp_dpi_fmt_config);
>> diff --git a/include/linux/soc/mediatek/mtk-mmsys.h 
>> b/include/linux/soc/mediatek/mtk-mmsys.h
>> index d2b02bb43768..b85f66db33e1 100644
>> --- a/include/linux/soc/mediatek/mtk-mmsys.h
>> +++ b/include/linux/soc/mediatek/mtk-mmsys.h
>> @@ -9,6 +9,13 @@
>>   enum mtk_ddp_comp_id;
>>   struct device;
>> +enum mtk_dpi_out_format_con {
>> +    MTK_DPI_RGB888_SDR_CON,
>> +    MTK_DPI_RGB888_DDR_CON,
>> +    MTK_DPI_RGB565_SDR_CON,
>> +    MTK_DPI_RGB565_DDR_CON
>> +};
>> +
>>   enum mtk_ddp_comp_id {
>>       DDP_COMPONENT_AAL0,
>>       DDP_COMPONENT_AAL1,

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v13,0/3] Add dpi output format control for MT8186
  2022-10-24  2:04 [PATCH v13,0/3] Add dpi output format control for MT8186 xinlei.lee
                   ` (2 preceding siblings ...)
  2022-10-24  2:04 ` [PATCH v13, 3/3] drm: mediatek: Add mt8186 dpi compatibles and platform data xinlei.lee
@ 2022-11-08 18:27 ` Matthias Brugger
  2022-11-09  2:40   ` Xinlei Lee (李昕磊)
  3 siblings, 1 reply; 13+ messages in thread
From: Matthias Brugger @ 2022-11-08 18:27 UTC (permalink / raw)
  To: xinlei.lee, rex-bc.chen, angelogioacchino.delregno, jason-jh.lin,
	nfraprado, chunkuang.hu, p.zabel, airlied, daniel
  Cc: Project_Global_Chrome_Upstream_Group, linux-mediatek,
	linux-arm-kernel, dri-devel, linux-kernel

Hi Xinlei,

Somehow b4 broke with your thread but I was able to apply patch 1 and 2 by hand.

Thanks
Matthias

On 24/10/2022 04:04, xinlei.lee@mediatek.com wrote:
> From: Xinlei Lee <xinlei.lee@mediatek.com>
> 
> Base on the branch of linus/master v6.1 rc1.
> 
> Change since v12:
> 1. Add MT8186_ prefix to variables added in mt8186-mmsys.h file.
> 
> Change since v11:
> 1. Rebase on v6.1-rc1. Change nothing.
> 
> Change since v10:
> 1. Modify patch title and add review tag.
> 
> Change since v9:
> 1. Modify the location of the mmsys_dev member variable.
> 
> Change since v8:
> 1. Modified the title and some description information.
> 
> Changes since v7:
> 1. This series is based on the following patch:
>     [1] soc: mediatek: Add mmsys func to adapt to dpi output for MT8186
>     https://patchwork.kernel.org/project/linux-mediatek/patch/1663161662-1598-2-git-send-email-xinlei.lee@mediatek.com/
> 2. Modify the DPI_FORMAT_MASK macro definition to GENMASK(1, 0);
> 3. Add all settings to mtk_mmsys_ddp_dpi_fmt_config;
> 4. Modify the commit title to Add mt8186 dpi compatibles and platform
> data.
> 
> Changes since v6:
> 1. Different from other ICs, when mt8186 DPI changes the output format,
> the mmsys_base+400 register needs to be set to be valid at the same
> time.
>     In this series, all the situations that mmsys need to be set up are
> perfected (not necessarily used in practice).
> 2. Put the value that controls the mmsys function in mtk-mmsys.h.
> 3. Encountered the sink ic switched between dual edge and single edge,
> perfected setting and clearing mmsys bit operations in mtk_dpi.c.
> 
> Changes since v5:
> 1. Separate the patch that adds edge_cfg_in_mmsys from the patch that
> adds mt8186 dpi support.
> 2. Move the mmsys register definition to mmsys driver.
>   
> Changes since v4:
> 1. This series of cancellations is based on the following patches:
>     [1] Add MediaTek SoC(vdosys1) support for mt8195
>     https://patchwork.kernel.org/project/linux-mediatek/cover/20220711075245.10492-1-nancy.lin@mediatek.com/
>     [2] Add MediaTek SoC DRM (vdosys1) support for mt8195
>     https://patchwork.kernel.org/project/linux-mediatek/cover/20220804072827.22383-1-nancy.lin@mediatek.com/
> 2. Added mtk_mmsys_update_bits function in mtk-mmsys.c;
> 3. MMSYS 0x400 register is modified to MT8186_MMSYS_DPI_OUTPUT_FORMAT;
> 4. Fix formatting issues.
> 
> Changes since v3:
> 1. Fix formatting issues;
> 2. Modify the edge output control name & description;
> 3. Fix the threading problem.
> 
> Changes since v2:
> 1. Modify key nouns in the description;
> 2. Add the label of jitao to Co-developed-by;
> 3. Macro definition address lowercase problem and function naming;
> 4. Add missing a description of this property in the mtk_dpi_conf.
> 
> Change since v1:
> 1. Modify mt8186 compatiable location.
> 2. Modify MT8186_DPI_OUTPUT_FORMAT name.
> 
> When MT8186 outputs dpi signal, it is necessary to add dual edge output
> format control in mmsys.
> 
> Xinlei Lee (3):
>    soc: mediatek: Add all settings to mtk_mmsys_ddp_dpi_fmt_config func
>    drm: mediatek: Set dpi format in mmsys
>    drm: mediatek: Add mt8186 dpi compatibles and platform data
> 
>   drivers/gpu/drm/mediatek/mtk_dpi.c     | 32 ++++++++++++++++++++++++++
>   drivers/gpu/drm/mediatek/mtk_drm_drv.c |  2 ++
>   drivers/soc/mediatek/mt8186-mmsys.h    |  8 ++++---
>   drivers/soc/mediatek/mtk-mmsys.c       | 27 +++++++++++++++++-----
>   include/linux/soc/mediatek/mtk-mmsys.h |  7 ++++++
>   5 files changed, 67 insertions(+), 9 deletions(-)
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v13,0/3] Add dpi output format control for MT8186
  2022-11-08 18:27 ` [PATCH v13,0/3] Add dpi output format control for MT8186 Matthias Brugger
@ 2022-11-09  2:40   ` Xinlei Lee (李昕磊)
  2022-11-09 11:17     ` Matthias Brugger
  0 siblings, 1 reply; 13+ messages in thread
From: Xinlei Lee (李昕磊) @ 2022-11-09  2:40 UTC (permalink / raw)
  To: Jason-JH Lin (林睿祥),
	chunkuang.hu, daniel, p.zabel, matthias.bgg, airlied,
	Rex-BC Chen (陳柏辰),
	angelogioacchino.delregno, nfraprado
  Cc: Project_Global_Chrome_Upstream_Group, linux-mediatek,
	linux-arm-kernel, dri-devel, linux-kernel

[-- Attachment #1: Type: text/html, Size: 9214 bytes --]

[-- Attachment #2: Type: text/plain, Size: 4806 bytes --]

On Tue, 2022-11-08 at 19:27 +0100, Matthias Brugger wrote:
> Hi Xinlei,
> 
> Somehow b4 broke with your thread but I was able to apply patch 1 and
> 2 by hand.
> 
> Thanks
> Matthias
> 
> On 24/10/2022 04:04, xinlei.lee@mediatek.com wrote:
> > From: Xinlei Lee <xinlei.lee@mediatek.com>
> > 
> > Base on the branch of linus/master v6.1 rc1.
> > 
> > Change since v12:
> > 1. Add MT8186_ prefix to variables added in mt8186-mmsys.h file.
> > 
> > Change since v11:
> > 1. Rebase on v6.1-rc1. Change nothing.
> > 
> > Change since v10:
> > 1. Modify patch title and add review tag.
> > 
> > Change since v9:
> > 1. Modify the location of the mmsys_dev member variable.
> > 
> > Change since v8:
> > 1. Modified the title and some description information.
> > 
> > Changes since v7:
> > 1. This series is based on the following patch:
> >     [1] soc: mediatek: Add mmsys func to adapt to dpi output for
> > MT8186
> >     
> > https://urldefense.com/v3/__https://patchwork.kernel.org/project/linux-mediatek/patch/1663161662-1598-2-git-send-email-xinlei.lee@mediatek.com/__;!!CTRNKA9wMg0ARbw!3tXTL3P6SgcP8Q_rcyCro64dxIXE6VuVbcNftU0ZnX6TNtU1akXwd96YfnoJs_fEig$
> >  
> > 2. Modify the DPI_FORMAT_MASK macro definition to GENMASK(1, 0);
> > 3. Add all settings to mtk_mmsys_ddp_dpi_fmt_config;
> > 4. Modify the commit title to Add mt8186 dpi compatibles and
> > platform
> > data.
> > 
> > Changes since v6:
> > 1. Different from other ICs, when mt8186 DPI changes the output
> > format,
> > the mmsys_base+400 register needs to be set to be valid at the same
> > time.
> >     In this series, all the situations that mmsys need to be set up
> > are
> > perfected (not necessarily used in practice).
> > 2. Put the value that controls the mmsys function in mtk-mmsys.h.
> > 3. Encountered the sink ic switched between dual edge and single
> > edge,
> > perfected setting and clearing mmsys bit operations in mtk_dpi.c.
> > 
> > Changes since v5:
> > 1. Separate the patch that adds edge_cfg_in_mmsys from the patch
> > that
> > adds mt8186 dpi support.
> > 2. Move the mmsys register definition to mmsys driver.
> >   
> > Changes since v4:
> > 1. This series of cancellations is based on the following patches:
> >     [1] Add MediaTek SoC(vdosys1) support for mt8195
> >     
> > https://urldefense.com/v3/__https://patchwork.kernel.org/project/linux-mediatek/cover/20220711075245.10492-1-nancy.lin@mediatek.com/__;!!CTRNKA9wMg0ARbw!3tXTL3P6SgcP8Q_rcyCro64dxIXE6VuVbcNftU0ZnX6TNtU1akXwd96Yfnqv0_QYpg$
> >  
> >     [2] Add MediaTek SoC DRM (vdosys1) support for mt8195
> >     
> > https://urldefense.com/v3/__https://patchwork.kernel.org/project/linux-mediatek/cover/20220804072827.22383-1-nancy.lin@mediatek.com/__;!!CTRNKA9wMg0ARbw!3tXTL3P6SgcP8Q_rcyCro64dxIXE6VuVbcNftU0ZnX6TNtU1akXwd96YfnoZMZ_peA$
> >  
> > 2. Added mtk_mmsys_update_bits function in mtk-mmsys.c;
> > 3. MMSYS 0x400 register is modified to
> > MT8186_MMSYS_DPI_OUTPUT_FORMAT;
> > 4. Fix formatting issues.
> > 
> > Changes since v3:
> > 1. Fix formatting issues;
> > 2. Modify the edge output control name & description;
> > 3. Fix the threading problem.
> > 
> > Changes since v2:
> > 1. Modify key nouns in the description;
> > 2. Add the label of jitao to Co-developed-by;
> > 3. Macro definition address lowercase problem and function naming;
> > 4. Add missing a description of this property in the mtk_dpi_conf.
> > 
> > Change since v1:
> > 1. Modify mt8186 compatiable location.
> > 2. Modify MT8186_DPI_OUTPUT_FORMAT name.
> > 
> > When MT8186 outputs dpi signal, it is necessary to add dual edge
> > output
> > format control in mmsys.
> > 
> > Xinlei Lee (3):
> >    soc: mediatek: Add all settings to mtk_mmsys_ddp_dpi_fmt_config
> > func
> >    drm: mediatek: Set dpi format in mmsys
> >    drm: mediatek: Add mt8186 dpi compatibles and platform data
> > 
> >   drivers/gpu/drm/mediatek/mtk_dpi.c     | 32
> > ++++++++++++++++++++++++++
> >   drivers/gpu/drm/mediatek/mtk_drm_drv.c |  2 ++
> >   drivers/soc/mediatek/mt8186-mmsys.h    |  8 ++++---
> >   drivers/soc/mediatek/mtk-mmsys.c       | 27 +++++++++++++++++--
> > ---
> >   include/linux/soc/mediatek/mtk-mmsys.h |  7 ++++++
> >   5 files changed, 67 insertions(+), 9 deletions(-)
> > 

Hi Matthias:

Is your problem solved?

I tried to pull the series in link[1] to the kernel 6.1-rc1 version, 
the patches are all successfully applied, and the patch in link[1] 
looks complete.

If you still think there is something wrong, please let me know and I 
can send a new version to try to fix it.

[1]: 
https://patchwork.kernel.org/project/linux-mediatek/cover/1666577099-3859-1-git-send-email-xinlei.lee@mediatek.com/

Best Regards!
xinlei

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v13,0/3] Add dpi output format control for MT8186
  2022-11-09  2:40   ` Xinlei Lee (李昕磊)
@ 2022-11-09 11:17     ` Matthias Brugger
  0 siblings, 0 replies; 13+ messages in thread
From: Matthias Brugger @ 2022-11-09 11:17 UTC (permalink / raw)
  To: Xinlei Lee (李昕磊),
	Jason-JH Lin (林睿祥),
	chunkuang.hu, daniel, p.zabel, airlied,
	Rex-BC Chen (陳柏辰),
	angelogioacchino.delregno, nfraprado
  Cc: Project_Global_Chrome_Upstream_Group, linux-mediatek,
	linux-arm-kernel, dri-devel, linux-kernel

Hi Xinlei,

On 09/11/2022 03:40, Xinlei Lee (李昕磊) wrote:
> On Tue, 2022-11-08 at 19:27 +0100, Matthias Brugger wrote:
>> Hi Xinlei,
>> 
>> Somehow b4 broke with your thread but I was able to apply patch 1 and
>> 2 by hand.
>> 
>> Thanks
>> Matthias
>> 
>> On 24/10/2022 04:04, xinlei.lee@mediatek.com wrote:
>> > From: Xinlei Lee <xinlei.lee@mediatek.com>
>> > 
>> > Base on the branch of linus/master v6.1 rc1.
>> > 
>> > Change since v12:
>> > 1. Add MT8186_ prefix to variables added in mt8186-mmsys.h file.
>> > 
>> > Change since v11:
>> > 1. Rebase on v6.1-rc1. Change nothing.
>> > 
>> > Change since v10:
>> > 1. Modify patch title and add review tag.
>> > 
>> > Change since v9:
>> > 1. Modify the location of the mmsys_dev member variable.
>> > 
>> > Change since v8:
>> > 1. Modified the title and some description information.
>> > 
>> > Changes since v7:
>> > 1. This series is based on the following patch:
>> >     [1] soc: mediatek: Add mmsys func to adapt to dpi output for
>> > MT8186
>> >     
>> > https://urldefense.com/v3/__https://patchwork.kernel.org/project/linux-mediatek/patch/1663161662-1598-2-git-send-email-xinlei.lee@mediatek.com/__;!!CTRNKA9wMg0ARbw!3tXTL3P6SgcP8Q_rcyCro64dxIXE6VuVbcNftU0ZnX6TNtU1akXwd96YfnoJs_fEig$
>> >  
>> > 2. Modify the DPI_FORMAT_MASK macro definition to GENMASK(1, 0);
>> > 3. Add all settings to mtk_mmsys_ddp_dpi_fmt_config;
>> > 4. Modify the commit title to Add mt8186 dpi compatibles and
>> > platform
>> > data.
>> > 
>> > Changes since v6:
>> > 1. Different from other ICs, when mt8186 DPI changes the output
>> > format,
>> > the mmsys_base+400 register needs to be set to be valid at the same
>> > time.
>> >     In this series, all the situations that mmsys need to be set up
>> > are
>> > perfected (not necessarily used in practice).
>> > 2. Put the value that controls the mmsys function in mtk-mmsys.h.
>> > 3. Encountered the sink ic switched between dual edge and single
>> > edge,
>> > perfected setting and clearing mmsys bit operations in mtk_dpi.c.
>> > 
>> > Changes since v5:
>> > 1. Separate the patch that adds edge_cfg_in_mmsys from the patch
>> > that
>> > adds mt8186 dpi support.
>> > 2. Move the mmsys register definition to mmsys driver.
>> >   
>> > Changes since v4:
>> > 1. This series of cancellations is based on the following patches:
>> >     [1] Add MediaTek SoC(vdosys1) support for mt8195
>> >     
>> > https://urldefense.com/v3/__https://patchwork.kernel.org/project/linux-mediatek/cover/20220711075245.10492-1-nancy.lin@mediatek.com/__;!!CTRNKA9wMg0ARbw!3tXTL3P6SgcP8Q_rcyCro64dxIXE6VuVbcNftU0ZnX6TNtU1akXwd96Yfnqv0_QYpg$
>> >  
>> >     [2] Add MediaTek SoC DRM (vdosys1) support for mt8195
>> >     
>> > https://urldefense.com/v3/__https://patchwork.kernel.org/project/linux-mediatek/cover/20220804072827.22383-1-nancy.lin@mediatek.com/__;!!CTRNKA9wMg0ARbw!3tXTL3P6SgcP8Q_rcyCro64dxIXE6VuVbcNftU0ZnX6TNtU1akXwd96YfnoZMZ_peA$
>> >  
>> > 2. Added mtk_mmsys_update_bits function in mtk-mmsys.c;
>> > 3. MMSYS 0x400 register is modified to
>> > MT8186_MMSYS_DPI_OUTPUT_FORMAT;
>> > 4. Fix formatting issues.
>> > 
>> > Changes since v3:
>> > 1. Fix formatting issues;
>> > 2. Modify the edge output control name & description;
>> > 3. Fix the threading problem.
>> > 
>> > Changes since v2:
>> > 1. Modify key nouns in the description;
>> > 2. Add the label of jitao to Co-developed-by;
>> > 3. Macro definition address lowercase problem and function naming;
>> > 4. Add missing a description of this property in the mtk_dpi_conf.
>> > 
>> > Change since v1:
>> > 1. Modify mt8186 compatiable location.
>> > 2. Modify MT8186_DPI_OUTPUT_FORMAT name.
>> > 
>> > When MT8186 outputs dpi signal, it is necessary to add dual edge
>> > output
>> > format control in mmsys.
>> > 
>> > Xinlei Lee (3):
>> >    soc: mediatek: Add all settings to mtk_mmsys_ddp_dpi_fmt_config
>> > func
>> >    drm: mediatek: Set dpi format in mmsys
>> >    drm: mediatek: Add mt8186 dpi compatibles and platform data
>> > 
>> >   drivers/gpu/drm/mediatek/mtk_dpi.c     | 32
>> > ++++++++++++++++++++++++++
>> >   drivers/gpu/drm/mediatek/mtk_drm_drv.c |  2 ++
>> >   drivers/soc/mediatek/mt8186-mmsys.h    |  8 ++++---
>> >   drivers/soc/mediatek/mtk-mmsys.c       | 27 +++++++++++++++++--
>> > ---
>> >   include/linux/soc/mediatek/mtk-mmsys.h |  7 ++++++
>> >   5 files changed, 67 insertions(+), 9 deletions(-)
>> > 
> 
> Hi Matthias:
> 
> Is your problem solved?
> 
> I tried to pull the series in link[1] to the kernel 6.1-rc1 version,
> the patches are all successfully applied, and the patch in link[1]
> looks complete.
> 
> If you still think there is something wrong, please let me know and I
> can send a new version to try to fix it.

Everything is fine, no worries.

Thanks for asking.
Matthias

> 
> [1]:
> https://patchwork.kernel.org/project/linux-mediatek/cover/1666577099-3859-1-git-send-email-xinlei.lee@mediatek.com/
> 
> Best Regards!
> xinlei
> 
> ************* MEDIATEK Confidentiality Notice
>   ********************
> The information contained in this e-mail message (including any
> attachments) may be confidential, proprietary, privileged, or otherwise
> exempt from disclosure under applicable laws. It is intended to be
> conveyed only to the designated recipient(s). Any use, dissemination,
> distribution, printing, retaining or copying of this e-mail (including its
> attachments) by unintended recipient(s) is strictly prohibited and may
> be unlawful. If you are not an intended recipient of this e-mail, or believe
>   
> that you have received this e-mail in error, please notify the sender
> immediately (by replying to this e-mail), delete any and all copies of
> this e-mail (including any attachments) from your system, and do not
> disclose the content of this e-mail to any other person. Thank you!

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v13,2/3] drm: mediatek: Set dpi format in mmsys
  2022-10-24  2:04 ` [PATCH v13,2/3] drm: mediatek: Set dpi format in mmsys xinlei.lee
@ 2022-11-21 18:26   ` Matthias Brugger
  2022-11-24  6:15     ` Allen-KH Cheng (程冠勳)
  2022-12-26 23:12   ` Chun-Kuang Hu
  1 sibling, 1 reply; 13+ messages in thread
From: Matthias Brugger @ 2022-11-21 18:26 UTC (permalink / raw)
  To: xinlei.lee, rex-bc.chen, angelogioacchino.delregno, jason-jh.lin,
	nfraprado, chunkuang.hu, p.zabel, airlied, daniel
  Cc: Jitao Shi, linux-kernel, dri-devel,
	Project_Global_Chrome_Upstream_Group, linux-mediatek,
	linux-arm-kernel



On 24/10/2022 04:04, xinlei.lee@mediatek.com wrote:
> From: Xinlei Lee <xinlei.lee@mediatek.com>
> 
> Dpi output needs to adjust the output format to dual edge for MT8186.
> 
> Co-developed-by: Jitao Shi <jitao.shi@mediatek.com>
> Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
> Signed-off-by: Xinlei Lee <xinlei.lee@mediatek.com>
> Reviewed-by: CK Hu <ck.hu@mediatek.com>
> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>

I realized that I took this patch by error. I'll drop it from my tree now.

Regards,
Matthias

> ---
>   drivers/gpu/drm/mediatek/mtk_dpi.c | 11 +++++++++++
>   1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c
> index 630a4e301ef6..ad87ecddf58d 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dpi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
> @@ -15,6 +15,7 @@
>   #include <linux/of_graph.h>
>   #include <linux/pinctrl/consumer.h>
>   #include <linux/platform_device.h>
> +#include <linux/soc/mediatek/mtk-mmsys.h>
>   #include <linux/types.h>
>   
>   #include <video/videomode.h>
> @@ -30,6 +31,7 @@
>   #include "mtk_disp_drv.h"
>   #include "mtk_dpi_regs.h"
>   #include "mtk_drm_ddp_comp.h"
> +#include "mtk_drm_drv.h"
>   
>   enum mtk_dpi_out_bit_num {
>   	MTK_DPI_OUT_BIT_NUM_8BITS,
> @@ -67,6 +69,7 @@ struct mtk_dpi {
>   	struct drm_connector *connector;
>   	void __iomem *regs;
>   	struct device *dev;
> +	struct device *mmsys_dev;
>   	struct clk *engine_clk;
>   	struct clk *pixel_clk;
>   	struct clk *tvd_clk;
> @@ -135,6 +138,7 @@ struct mtk_dpi_yc_limit {
>    * @yuv422_en_bit: Enable bit of yuv422.
>    * @csc_enable_bit: Enable bit of CSC.
>    * @pixels_per_iter: Quantity of transferred pixels per iteration.
> + * @edge_cfg_in_mmsys: If the edge configuration for DPI's output needs to be set in MMSYS.
>    */
>   struct mtk_dpi_conf {
>   	unsigned int (*cal_factor)(int clock);
> @@ -153,6 +157,7 @@ struct mtk_dpi_conf {
>   	u32 yuv422_en_bit;
>   	u32 csc_enable_bit;
>   	u32 pixels_per_iter;
> +	bool edge_cfg_in_mmsys;
>   };
>   
>   static void mtk_dpi_mask(struct mtk_dpi *dpi, u32 offset, u32 val, u32 mask)
> @@ -449,8 +454,12 @@ static void mtk_dpi_dual_edge(struct mtk_dpi *dpi)
>   		mtk_dpi_mask(dpi, DPI_OUTPUT_SETTING,
>   			     dpi->output_fmt == MEDIA_BUS_FMT_RGB888_2X12_LE ?
>   			     EDGE_SEL : 0, EDGE_SEL);
> +		if (dpi->conf->edge_cfg_in_mmsys)
> +			mtk_mmsys_ddp_dpi_fmt_config(dpi->mmsys_dev, MTK_DPI_RGB888_DDR_CON);
>   	} else {
>   		mtk_dpi_mask(dpi, DPI_DDR_SETTING, DDR_EN | DDR_4PHASE, 0);
> +		if (dpi->conf->edge_cfg_in_mmsys)
> +			mtk_mmsys_ddp_dpi_fmt_config(dpi->mmsys_dev, MTK_DPI_RGB888_SDR_CON);
>   	}
>   }
>   
> @@ -778,8 +787,10 @@ static int mtk_dpi_bind(struct device *dev, struct device *master, void *data)
>   {
>   	struct mtk_dpi *dpi = dev_get_drvdata(dev);
>   	struct drm_device *drm_dev = data;
> +	struct mtk_drm_private *priv = drm_dev->dev_private;
>   	int ret;
>   
> +	dpi->mmsys_dev = priv->mmsys_dev;
>   	ret = drm_simple_encoder_init(drm_dev, &dpi->encoder,
>   				      DRM_MODE_ENCODER_TMDS);
>   	if (ret) {

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v13,2/3] drm: mediatek: Set dpi format in mmsys
  2022-11-21 18:26   ` Matthias Brugger
@ 2022-11-24  6:15     ` Allen-KH Cheng (程冠勳)
  0 siblings, 0 replies; 13+ messages in thread
From: Allen-KH Cheng (程冠勳) @ 2022-11-24  6:15 UTC (permalink / raw)
  To: Jason-JH Lin (林睿祥),
	chunkuang.hu, Xinlei Lee (李昕磊),
	p.zabel, daniel, matthias.bgg, airlied,
	Rex-BC Chen (陳柏辰),
	angelogioacchino.delregno, nfraprado
  Cc: Jitao Shi (石记涛),
	linux-kernel, dri-devel, Project_Global_Chrome_Upstream_Group,
	linux-mediatek, linux-arm-kernel

[-- Attachment #1: Type: text/html, Size: 7609 bytes --]

[-- Attachment #2: Type: text/plain, Size: 3754 bytes --]

Hi Matthias,

Thank you for responding.

Is there anything we can do about this?

Best Regards,
Allen


On Mon, 2022-11-21 at 19:26 +0100, Matthias Brugger wrote:
> 
> On 24/10/2022 04:04, xinlei.lee@mediatek.com wrote:
> > From: Xinlei Lee <xinlei.lee@mediatek.com>
> > 
> > Dpi output needs to adjust the output format to dual edge for
> > MT8186.
> > 
> > Co-developed-by: Jitao Shi <jitao.shi@mediatek.com>
> > Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
> > Signed-off-by: Xinlei Lee <xinlei.lee@mediatek.com>
> > Reviewed-by: CK Hu <ck.hu@mediatek.com>
> > Reviewed-by: AngeloGioacchino Del Regno <
> > angelogioacchino.delregno@collabora.com>
> > Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> 
> I realized that I took this patch by error. I'll drop it from my tree
> now.
> 
> Regards,
> Matthias
> 
> > ---
> >   drivers/gpu/drm/mediatek/mtk_dpi.c | 11 +++++++++++
> >   1 file changed, 11 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c
> > b/drivers/gpu/drm/mediatek/mtk_dpi.c
> > index 630a4e301ef6..ad87ecddf58d 100644
> > --- a/drivers/gpu/drm/mediatek/mtk_dpi.c
> > +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
> > @@ -15,6 +15,7 @@
> >   #include <linux/of_graph.h>
> >   #include <linux/pinctrl/consumer.h>
> >   #include <linux/platform_device.h>
> > +#include <linux/soc/mediatek/mtk-mmsys.h>
> >   #include <linux/types.h>
> >   
> >   #include <video/videomode.h>
> > @@ -30,6 +31,7 @@
> >   #include "mtk_disp_drv.h"
> >   #include "mtk_dpi_regs.h"
> >   #include "mtk_drm_ddp_comp.h"
> > +#include "mtk_drm_drv.h"
> >   
> >   enum mtk_dpi_out_bit_num {
> >   	MTK_DPI_OUT_BIT_NUM_8BITS,
> > @@ -67,6 +69,7 @@ struct mtk_dpi {
> >   	struct drm_connector *connector;
> >   	void __iomem *regs;
> >   	struct device *dev;
> > +	struct device *mmsys_dev;
> >   	struct clk *engine_clk;
> >   	struct clk *pixel_clk;
> >   	struct clk *tvd_clk;
> > @@ -135,6 +138,7 @@ struct mtk_dpi_yc_limit {
> >    * @yuv422_en_bit: Enable bit of yuv422.
> >    * @csc_enable_bit: Enable bit of CSC.
> >    * @pixels_per_iter: Quantity of transferred pixels per
> > iteration.
> > + * @edge_cfg_in_mmsys: If the edge configuration for DPI's output
> > needs to be set in MMSYS.
> >    */
> >   struct mtk_dpi_conf {
> >   	unsigned int (*cal_factor)(int clock);
> > @@ -153,6 +157,7 @@ struct mtk_dpi_conf {
> >   	u32 yuv422_en_bit;
> >   	u32 csc_enable_bit;
> >   	u32 pixels_per_iter;
> > +	bool edge_cfg_in_mmsys;
> >   };
> >   
> >   static void mtk_dpi_mask(struct mtk_dpi *dpi, u32 offset, u32
> > val, u32 mask)
> > @@ -449,8 +454,12 @@ static void mtk_dpi_dual_edge(struct mtk_dpi
> > *dpi)
> >   		mtk_dpi_mask(dpi, DPI_OUTPUT_SETTING,
> >   			     dpi->output_fmt ==
> > MEDIA_BUS_FMT_RGB888_2X12_LE ?
> >   			     EDGE_SEL : 0, EDGE_SEL);
> > +		if (dpi->conf->edge_cfg_in_mmsys)
> > +			mtk_mmsys_ddp_dpi_fmt_config(dpi->mmsys_dev,
> > MTK_DPI_RGB888_DDR_CON);
> >   	} else {
> >   		mtk_dpi_mask(dpi, DPI_DDR_SETTING, DDR_EN | DDR_4PHASE,
> > 0);
> > +		if (dpi->conf->edge_cfg_in_mmsys)
> > +			mtk_mmsys_ddp_dpi_fmt_config(dpi->mmsys_dev,
> > MTK_DPI_RGB888_SDR_CON);
> >   	}
> >   }
> >   
> > @@ -778,8 +787,10 @@ static int mtk_dpi_bind(struct device *dev,
> > struct device *master, void *data)
> >   {
> >   	struct mtk_dpi *dpi = dev_get_drvdata(dev);
> >   	struct drm_device *drm_dev = data;
> > +	struct mtk_drm_private *priv = drm_dev->dev_private;
> >   	int ret;
> >   
> > +	dpi->mmsys_dev = priv->mmsys_dev;
> >   	ret = drm_simple_encoder_init(drm_dev, &dpi->encoder,
> >   				      DRM_MODE_ENCODER_TMDS);
> >   	if (ret) {TThank you for responding.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v13,2/3] drm: mediatek: Set dpi format in mmsys
  2022-10-24  2:04 ` [PATCH v13,2/3] drm: mediatek: Set dpi format in mmsys xinlei.lee
  2022-11-21 18:26   ` Matthias Brugger
@ 2022-12-26 23:12   ` Chun-Kuang Hu
  1 sibling, 0 replies; 13+ messages in thread
From: Chun-Kuang Hu @ 2022-12-26 23:12 UTC (permalink / raw)
  To: xinlei.lee
  Cc: chunkuang.hu, Jitao Shi, nfraprado, airlied, jason-jh.lin,
	linux-kernel, dri-devel, Project_Global_Chrome_Upstream_Group,
	rex-bc.chen, linux-mediatek, matthias.bgg, linux-arm-kernel,
	angelogioacchino.delregno

Hi, Xinlei:

<xinlei.lee@mediatek.com> 於 2022年10月24日 週一 上午10:05寫道:
>
> From: Xinlei Lee <xinlei.lee@mediatek.com>
>
> Dpi output needs to adjust the output format to dual edge for MT8186.

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.

>
> Co-developed-by: Jitao Shi <jitao.shi@mediatek.com>
> Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
> Signed-off-by: Xinlei Lee <xinlei.lee@mediatek.com>
> Reviewed-by: CK Hu <ck.hu@mediatek.com>
> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> ---
>  drivers/gpu/drm/mediatek/mtk_dpi.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c
> index 630a4e301ef6..ad87ecddf58d 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dpi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
> @@ -15,6 +15,7 @@
>  #include <linux/of_graph.h>
>  #include <linux/pinctrl/consumer.h>
>  #include <linux/platform_device.h>
> +#include <linux/soc/mediatek/mtk-mmsys.h>
>  #include <linux/types.h>
>
>  #include <video/videomode.h>
> @@ -30,6 +31,7 @@
>  #include "mtk_disp_drv.h"
>  #include "mtk_dpi_regs.h"
>  #include "mtk_drm_ddp_comp.h"
> +#include "mtk_drm_drv.h"
>
>  enum mtk_dpi_out_bit_num {
>         MTK_DPI_OUT_BIT_NUM_8BITS,
> @@ -67,6 +69,7 @@ struct mtk_dpi {
>         struct drm_connector *connector;
>         void __iomem *regs;
>         struct device *dev;
> +       struct device *mmsys_dev;
>         struct clk *engine_clk;
>         struct clk *pixel_clk;
>         struct clk *tvd_clk;
> @@ -135,6 +138,7 @@ struct mtk_dpi_yc_limit {
>   * @yuv422_en_bit: Enable bit of yuv422.
>   * @csc_enable_bit: Enable bit of CSC.
>   * @pixels_per_iter: Quantity of transferred pixels per iteration.
> + * @edge_cfg_in_mmsys: If the edge configuration for DPI's output needs to be set in MMSYS.
>   */
>  struct mtk_dpi_conf {
>         unsigned int (*cal_factor)(int clock);
> @@ -153,6 +157,7 @@ struct mtk_dpi_conf {
>         u32 yuv422_en_bit;
>         u32 csc_enable_bit;
>         u32 pixels_per_iter;
> +       bool edge_cfg_in_mmsys;
>  };
>
>  static void mtk_dpi_mask(struct mtk_dpi *dpi, u32 offset, u32 val, u32 mask)
> @@ -449,8 +454,12 @@ static void mtk_dpi_dual_edge(struct mtk_dpi *dpi)
>                 mtk_dpi_mask(dpi, DPI_OUTPUT_SETTING,
>                              dpi->output_fmt == MEDIA_BUS_FMT_RGB888_2X12_LE ?
>                              EDGE_SEL : 0, EDGE_SEL);
> +               if (dpi->conf->edge_cfg_in_mmsys)
> +                       mtk_mmsys_ddp_dpi_fmt_config(dpi->mmsys_dev, MTK_DPI_RGB888_DDR_CON);
>         } else {
>                 mtk_dpi_mask(dpi, DPI_DDR_SETTING, DDR_EN | DDR_4PHASE, 0);
> +               if (dpi->conf->edge_cfg_in_mmsys)
> +                       mtk_mmsys_ddp_dpi_fmt_config(dpi->mmsys_dev, MTK_DPI_RGB888_SDR_CON);
>         }
>  }
>
> @@ -778,8 +787,10 @@ static int mtk_dpi_bind(struct device *dev, struct device *master, void *data)
>  {
>         struct mtk_dpi *dpi = dev_get_drvdata(dev);
>         struct drm_device *drm_dev = data;
> +       struct mtk_drm_private *priv = drm_dev->dev_private;
>         int ret;
>
> +       dpi->mmsys_dev = priv->mmsys_dev;
>         ret = drm_simple_encoder_init(drm_dev, &dpi->encoder,
>                                       DRM_MODE_ENCODER_TMDS);
>         if (ret) {
> --
> 2.18.0
>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v13,3/3] drm: mediatek: Add mt8186 dpi compatibles and platform data
  2022-10-24  2:04 ` [PATCH v13, 3/3] drm: mediatek: Add mt8186 dpi compatibles and platform data xinlei.lee
@ 2022-12-26 23:24   ` Chun-Kuang Hu
  0 siblings, 0 replies; 13+ messages in thread
From: Chun-Kuang Hu @ 2022-12-26 23:24 UTC (permalink / raw)
  To: xinlei.lee
  Cc: chunkuang.hu, nfraprado, airlied, jason-jh.lin, linux-kernel,
	dri-devel, Project_Global_Chrome_Upstream_Group, rex-bc.chen,
	linux-mediatek, matthias.bgg, linux-arm-kernel,
	angelogioacchino.delregno

Hi, Xinlei:

<xinlei.lee@mediatek.com> 於 2022年10月24日 週一 上午10:05寫道:
>
> From: Xinlei Lee <xinlei.lee@mediatek.com>
>
> Add the compatible because use edge_cfg_in_mmsys in mt8186.

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: Xinlei Lee <xinlei.lee@mediatek.com>
> Reviewed-by: CK Hu <ck.hu@mediatek.com>
> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> ---
>  drivers/gpu/drm/mediatek/mtk_dpi.c     | 21 +++++++++++++++++++++
>  drivers/gpu/drm/mediatek/mtk_drm_drv.c |  2 ++
>  2 files changed, 23 insertions(+)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c
> index ad87ecddf58d..325032fd5343 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dpi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
> @@ -941,6 +941,24 @@ static const struct mtk_dpi_conf mt8183_conf = {
>         .csc_enable_bit = CSC_ENABLE,
>  };
>
> +static const struct mtk_dpi_conf mt8186_conf = {
> +       .cal_factor = mt8183_calculate_factor,
> +       .reg_h_fre_con = 0xe0,
> +       .max_clock_khz = 150000,
> +       .output_fmts = mt8183_output_fmts,
> +       .num_output_fmts = ARRAY_SIZE(mt8183_output_fmts),
> +       .edge_cfg_in_mmsys = true,
> +       .pixels_per_iter = 1,
> +       .is_ck_de_pol = true,
> +       .swap_input_support = true,
> +       .support_direct_pin = true,
> +       .dimension_mask = HPW_MASK,
> +       .hvsize_mask = HSIZE_MASK,
> +       .channel_swap_shift = CH_SWAP,
> +       .yuv422_en_bit = YUV422_EN,
> +       .csc_enable_bit = CSC_ENABLE,
> +};
> +
>  static const struct mtk_dpi_conf mt8192_conf = {
>         .cal_factor = mt8183_calculate_factor,
>         .reg_h_fre_con = 0xe0,
> @@ -1091,6 +1109,9 @@ static const struct of_device_id mtk_dpi_of_ids[] = {
>         { .compatible = "mediatek,mt8183-dpi",
>           .data = &mt8183_conf,
>         },
> +       { .compatible = "mediatek,mt8186-dpi",
> +         .data = &mt8186_conf,
> +       },
>         { .compatible = "mediatek,mt8192-dpi",
>           .data = &mt8192_conf,
>         },
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> index 546b79412815..3d32fbc66ac1 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> @@ -646,6 +646,8 @@ static const struct of_device_id mtk_ddp_comp_dt_ids[] = {
>           .data = (void *)MTK_DPI },
>         { .compatible = "mediatek,mt8183-dpi",
>           .data = (void *)MTK_DPI },
> +       { .compatible = "mediatek,mt8186-dpi",
> +         .data = (void *)MTK_DPI },
>         { .compatible = "mediatek,mt8192-dpi",
>           .data = (void *)MTK_DPI },
>         { .compatible = "mediatek,mt8195-dp-intf",
> --
> 2.18.0
>

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2022-12-26 23:24 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-24  2:04 [PATCH v13,0/3] Add dpi output format control for MT8186 xinlei.lee
2022-10-24  2:04 ` [PATCH v13, 1/3] soc: mediatek: Add all settings to mtk_mmsys_ddp_dpi_fmt_config func xinlei.lee
2022-11-08 18:11   ` [PATCH v13,1/3] " Matthias Brugger
2022-11-08 18:12     ` Matthias Brugger
2022-10-24  2:04 ` [PATCH v13,2/3] drm: mediatek: Set dpi format in mmsys xinlei.lee
2022-11-21 18:26   ` Matthias Brugger
2022-11-24  6:15     ` Allen-KH Cheng (程冠勳)
2022-12-26 23:12   ` Chun-Kuang Hu
2022-10-24  2:04 ` [PATCH v13, 3/3] drm: mediatek: Add mt8186 dpi compatibles and platform data xinlei.lee
2022-12-26 23:24   ` [PATCH v13,3/3] " Chun-Kuang Hu
2022-11-08 18:27 ` [PATCH v13,0/3] Add dpi output format control for MT8186 Matthias Brugger
2022-11-09  2:40   ` Xinlei Lee (李昕磊)
2022-11-09 11:17     ` Matthias Brugger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).