linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/4] Move Mediatek HDMI PHY driver from DRM folder to PHY folder
@ 2020-03-31 15:57 Chun-Kuang Hu
  2020-03-31 15:57 ` [PATCH v3 1/4] drm/mediatek: Move tz_disabled from mtk_hdmi_phy to mtk_hdmi driver Chun-Kuang Hu
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Chun-Kuang Hu @ 2020-03-31 15:57 UTC (permalink / raw)
  To: Philipp Zabel, David Airlie, Daniel Vetter, Matthias Brugger,
	Chunfeng Yun, Kishon Vijay Abraham I
  Cc: linux-kernel, dri-devel, linux-mediatek, Chun-Kuang Hu

mtk_hdmi_phy is currently placed inside mediatek drm driver, but it's
more suitable to place a phy driver into phy driver folder, so move
mtk_hdmi_phy driver into phy driver folder.

Changes in v3:
- Modify [PATCH v2 3/4] prefix.

Changes in v2:
- include module.h in mtk_hdmi.c

CK Hu (3):
  drm/mediatek: Move tz_disabled from mtk_hdmi_phy to mtk_hdmi driver
  drm/mediatek: Separate mtk_hdmi_phy to an independent module
  phy: mediatek: Move mtk_hdmi_phy driver into drivers/phy/mediatek
    folder

Chun-Kuang Hu (1):
  MAINTAINERS: add files for Mediatek DRM drivers

 MAINTAINERS                                   |  1 +
 drivers/gpu/drm/mediatek/Kconfig              |  2 +-
 drivers/gpu/drm/mediatek/Makefile             |  5 +---
 drivers/gpu/drm/mediatek/mtk_hdmi.c           | 24 +++++++++++++++----
 drivers/gpu/drm/mediatek/mtk_hdmi.h           |  1 -
 drivers/phy/mediatek/Kconfig                  |  7 ++++++
 drivers/phy/mediatek/Makefile                 |  7 ++++++
 .../mediatek/phy-mtk-hdmi-mt2701.c}           |  3 +--
 .../mediatek/phy-mtk-hdmi-mt8173.c}           |  2 +-
 .../mediatek/phy-mtk-hdmi.c}                  |  3 ++-
 .../mediatek/phy-mtk-hdmi.h}                  |  2 --
 11 files changed, 41 insertions(+), 16 deletions(-)
 rename drivers/{gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c => phy/mediatek/phy-mtk-hdmi-mt2701.c} (99%)
 rename drivers/{gpu/drm/mediatek/mtk_mt8173_hdmi_phy.c => phy/mediatek/phy-mtk-hdmi-mt8173.c} (99%)
 rename drivers/{gpu/drm/mediatek/mtk_hdmi_phy.c => phy/mediatek/phy-mtk-hdmi.c} (98%)
 rename drivers/{gpu/drm/mediatek/mtk_hdmi_phy.h => phy/mediatek/phy-mtk-hdmi.h} (95%)

-- 
2.17.1


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

* [PATCH v3 1/4] drm/mediatek: Move tz_disabled from mtk_hdmi_phy to mtk_hdmi driver
  2020-03-31 15:57 [PATCH v3 0/4] Move Mediatek HDMI PHY driver from DRM folder to PHY folder Chun-Kuang Hu
@ 2020-03-31 15:57 ` Chun-Kuang Hu
  2020-04-01  2:16   ` Chunfeng Yun
  2020-03-31 15:57 ` [PATCH v3 2/4] drm/mediatek: Separate mtk_hdmi_phy to an independent module Chun-Kuang Hu
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 14+ messages in thread
From: Chun-Kuang Hu @ 2020-03-31 15:57 UTC (permalink / raw)
  To: Philipp Zabel, David Airlie, Daniel Vetter, Matthias Brugger,
	Chunfeng Yun, Kishon Vijay Abraham I
  Cc: linux-kernel, dri-devel, linux-mediatek, CK Hu, Chun-Kuang Hu

From: CK Hu <ck.hu@mediatek.com>

tz_disabled is used to control mtk_hdmi output signal, but this variable
is stored in mtk_hdmi_phy and mtk_hdmi_phy does not use it. So move
tz_disabled to mtk_hdmi where it's used.

Signed-off-by: CK Hu <ck.hu@mediatek.com>
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
---
 drivers/gpu/drm/mediatek/mtk_hdmi.c           | 22 ++++++++++++++++---
 drivers/gpu/drm/mediatek/mtk_hdmi_phy.h       |  1 -
 .../gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c    |  1 -
 3 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
index 5e4a4dbda443..878433c09c9b 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
@@ -144,11 +144,16 @@ struct hdmi_audio_param {
 	struct hdmi_codec_params codec_params;
 };
 
+struct mtk_hdmi_conf {
+	bool tz_disabled;
+};
+
 struct mtk_hdmi {
 	struct drm_bridge bridge;
 	struct drm_bridge *next_bridge;
 	struct drm_connector conn;
 	struct device *dev;
+	const struct mtk_hdmi_conf *conf;
 	struct phy *phy;
 	struct device *cec_dev;
 	struct i2c_adapter *ddc_adpt;
@@ -230,7 +235,6 @@ static void mtk_hdmi_hw_vid_black(struct mtk_hdmi *hdmi, bool black)
 static void mtk_hdmi_hw_make_reg_writable(struct mtk_hdmi *hdmi, bool enable)
 {
 	struct arm_smccc_res res;
-	struct mtk_hdmi_phy *hdmi_phy = phy_get_drvdata(hdmi->phy);
 
 	/*
 	 * MT8173 HDMI hardware has an output control bit to enable/disable HDMI
@@ -238,7 +242,7 @@ static void mtk_hdmi_hw_make_reg_writable(struct mtk_hdmi *hdmi, bool enable)
 	 * The ARM trusted firmware provides an API for the HDMI driver to set
 	 * this control bit to enable HDMI output in supervisor mode.
 	 */
-	if (hdmi_phy->conf && hdmi_phy->conf->tz_disabled)
+	if (hdmi->conf->tz_disabled)
 		regmap_update_bits(hdmi->sys_regmap,
 				   hdmi->sys_offset + HDMI_SYS_CFG20,
 				   0x80008005, enable ? 0x80000005 : 0x8000);
@@ -1688,6 +1692,7 @@ static int mtk_drm_hdmi_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	hdmi->dev = dev;
+	hdmi->conf = of_device_get_match_data(dev);
 
 	ret = mtk_hdmi_dt_parse_pdata(hdmi, pdev);
 	if (ret)
@@ -1765,8 +1770,19 @@ static int mtk_hdmi_resume(struct device *dev)
 static SIMPLE_DEV_PM_OPS(mtk_hdmi_pm_ops,
 			 mtk_hdmi_suspend, mtk_hdmi_resume);
 
+static const struct mtk_hdmi_conf mtk_hdmi_conf_mt2701 = {
+	.tz_disabled = true,
+};
+
+static const struct mtk_hdmi_conf mtk_hdmi_conf_mt8173;
+
 static const struct of_device_id mtk_drm_hdmi_of_ids[] = {
-	{ .compatible = "mediatek,mt8173-hdmi", },
+	{ .compatible = "mediatek,mt2701-hdmi",
+	  .data = &mtk_hdmi_conf_mt2701,
+	},
+	{ .compatible = "mediatek,mt8173-hdmi",
+	  .data = &mtk_hdmi_conf_mt8173,
+	},
 	{}
 };
 
diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
index 2d8b3182470d..fc1c2efd1128 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
@@ -20,7 +20,6 @@
 struct mtk_hdmi_phy;
 
 struct mtk_hdmi_phy_conf {
-	bool tz_disabled;
 	unsigned long flags;
 	const struct clk_ops *hdmi_phy_clk_ops;
 	void (*hdmi_phy_enable_tmds)(struct mtk_hdmi_phy *hdmi_phy);
diff --git a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c b/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
index d3cc4022e988..99fe05cd3598 100644
--- a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
+++ b/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
@@ -237,7 +237,6 @@ static void mtk_hdmi_phy_disable_tmds(struct mtk_hdmi_phy *hdmi_phy)
 }
 
 struct mtk_hdmi_phy_conf mtk_hdmi_phy_2701_conf = {
-	.tz_disabled = true,
 	.flags = CLK_SET_RATE_GATE,
 	.hdmi_phy_clk_ops = &mtk_hdmi_phy_pll_ops,
 	.hdmi_phy_enable_tmds = mtk_hdmi_phy_enable_tmds,
-- 
2.17.1


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

* [PATCH v3 2/4] drm/mediatek: Separate mtk_hdmi_phy to an independent module
  2020-03-31 15:57 [PATCH v3 0/4] Move Mediatek HDMI PHY driver from DRM folder to PHY folder Chun-Kuang Hu
  2020-03-31 15:57 ` [PATCH v3 1/4] drm/mediatek: Move tz_disabled from mtk_hdmi_phy to mtk_hdmi driver Chun-Kuang Hu
@ 2020-03-31 15:57 ` Chun-Kuang Hu
  2020-04-01  2:20   ` Chunfeng Yun
  2020-03-31 15:57 ` [PATCH v3 3/4] phy: mediatek: Move mtk_hdmi_phy driver into drivers/phy/mediatek folder Chun-Kuang Hu
  2020-03-31 15:57 ` [PATCH v3 4/4] MAINTAINERS: add files for Mediatek DRM drivers Chun-Kuang Hu
  3 siblings, 1 reply; 14+ messages in thread
From: Chun-Kuang Hu @ 2020-03-31 15:57 UTC (permalink / raw)
  To: Philipp Zabel, David Airlie, Daniel Vetter, Matthias Brugger,
	Chunfeng Yun, Kishon Vijay Abraham I
  Cc: linux-kernel, dri-devel, linux-mediatek, CK Hu, Chun-Kuang Hu

From: CK Hu <ck.hu@mediatek.com>

mtk_hdmi_phy is a part of mtk_hdmi module, but phy driver should be an
independent module rather than be part of drm module, so separate the phy
driver to an independent module.

Signed-off-by: CK Hu <ck.hu@mediatek.com>
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
---
 drivers/gpu/drm/mediatek/Kconfig        |  9 ++++++++-
 drivers/gpu/drm/mediatek/Makefile       | 11 +++++++----
 drivers/gpu/drm/mediatek/mtk_hdmi.c     |  2 +-
 drivers/gpu/drm/mediatek/mtk_hdmi.h     |  1 -
 drivers/gpu/drm/mediatek/mtk_hdmi_phy.c |  1 +
 drivers/gpu/drm/mediatek/mtk_hdmi_phy.h |  1 -
 6 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/mediatek/Kconfig b/drivers/gpu/drm/mediatek/Kconfig
index fa5ffc4fe823..ff6a1eb4ae83 100644
--- a/drivers/gpu/drm/mediatek/Kconfig
+++ b/drivers/gpu/drm/mediatek/Kconfig
@@ -23,6 +23,13 @@ config DRM_MEDIATEK_HDMI
 	tristate "DRM HDMI Support for Mediatek SoCs"
 	depends on DRM_MEDIATEK
 	select SND_SOC_HDMI_CODEC if SND_SOC
-	select GENERIC_PHY
+	select PHY_MTK_HDMI
 	help
 	  DRM/KMS HDMI driver for Mediatek SoCs
+
+config PHY_MTK_HDMI
+    tristate "MediaTek HDMI-PHY Driver"
+    depends on ARCH_MEDIATEK && OF
+    select GENERIC_PHY
+    help
+          Enable this to support HDMI-PHY
diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile
index b7a82ed5788f..fcbef23aa6ce 100644
--- a/drivers/gpu/drm/mediatek/Makefile
+++ b/drivers/gpu/drm/mediatek/Makefile
@@ -19,9 +19,12 @@ obj-$(CONFIG_DRM_MEDIATEK) += mediatek-drm.o
 
 mediatek-drm-hdmi-objs := mtk_cec.o \
 			  mtk_hdmi.o \
-			  mtk_hdmi_ddc.o \
-			  mtk_mt2701_hdmi_phy.o \
-			  mtk_mt8173_hdmi_phy.o \
-			  mtk_hdmi_phy.o
+			  mtk_hdmi_ddc.o
 
 obj-$(CONFIG_DRM_MEDIATEK_HDMI) += mediatek-drm-hdmi.o
+
+phy-mtk-hdmi-drv-objs := mtk_hdmi_phy.o \
+			 mtk_mt2701_hdmi_phy.o \
+			 mtk_mt8173_hdmi_phy.o
+
+obj-$(CONFIG_PHY_MTK_HDMI) += phy-mtk-hdmi-drv.o
diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
index 878433c09c9b..ee72ece0e54d 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
@@ -12,6 +12,7 @@
 #include <linux/io.h>
 #include <linux/kernel.h>
 #include <linux/mfd/syscon.h>
+#include <linux/module.h>
 #include <linux/of_platform.h>
 #include <linux/of.h>
 #include <linux/of_gpio.h>
@@ -1797,7 +1798,6 @@ static struct platform_driver mtk_hdmi_driver = {
 };
 
 static struct platform_driver * const mtk_hdmi_drivers[] = {
-	&mtk_hdmi_phy_driver,
 	&mtk_hdmi_ddc_driver,
 	&mtk_cec_driver,
 	&mtk_hdmi_driver,
diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.h b/drivers/gpu/drm/mediatek/mtk_hdmi.h
index bb3653de6bd1..472bf141c92b 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi.h
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi.h
@@ -5,7 +5,6 @@
  */
 #ifndef _MTK_HDMI_CTRL_H
 #define _MTK_HDMI_CTRL_H
-#include "mtk_hdmi_phy.h"
 
 struct platform_driver;
 
diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.c b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.c
index 5223498502c4..fe022acddbef 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.c
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.c
@@ -205,6 +205,7 @@ struct platform_driver mtk_hdmi_phy_driver = {
 		.of_match_table = mtk_hdmi_phy_match,
 	},
 };
+module_platform_driver(mtk_hdmi_phy_driver);
 
 MODULE_DESCRIPTION("MediaTek HDMI PHY Driver");
 MODULE_LICENSE("GPL v2");
diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
index fc1c2efd1128..b13e1d5f8e78 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
@@ -49,7 +49,6 @@ void mtk_hdmi_phy_mask(struct mtk_hdmi_phy *hdmi_phy, u32 offset,
 		       u32 val, u32 mask);
 struct mtk_hdmi_phy *to_mtk_hdmi_phy(struct clk_hw *hw);
 
-extern struct platform_driver mtk_hdmi_phy_driver;
 extern struct mtk_hdmi_phy_conf mtk_hdmi_phy_8173_conf;
 extern struct mtk_hdmi_phy_conf mtk_hdmi_phy_2701_conf;
 
-- 
2.17.1


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

* [PATCH v3 3/4] phy: mediatek: Move mtk_hdmi_phy driver into drivers/phy/mediatek folder
  2020-03-31 15:57 [PATCH v3 0/4] Move Mediatek HDMI PHY driver from DRM folder to PHY folder Chun-Kuang Hu
  2020-03-31 15:57 ` [PATCH v3 1/4] drm/mediatek: Move tz_disabled from mtk_hdmi_phy to mtk_hdmi driver Chun-Kuang Hu
  2020-03-31 15:57 ` [PATCH v3 2/4] drm/mediatek: Separate mtk_hdmi_phy to an independent module Chun-Kuang Hu
@ 2020-03-31 15:57 ` Chun-Kuang Hu
  2020-04-01  2:18   ` Chunfeng Yun
  2020-04-01 16:04   ` Matthias Brugger
  2020-03-31 15:57 ` [PATCH v3 4/4] MAINTAINERS: add files for Mediatek DRM drivers Chun-Kuang Hu
  3 siblings, 2 replies; 14+ messages in thread
From: Chun-Kuang Hu @ 2020-03-31 15:57 UTC (permalink / raw)
  To: Philipp Zabel, David Airlie, Daniel Vetter, Matthias Brugger,
	Chunfeng Yun, Kishon Vijay Abraham I
  Cc: linux-kernel, dri-devel, linux-mediatek, CK Hu, Chun-Kuang Hu

From: CK Hu <ck.hu@mediatek.com>

mtk_hdmi_phy is currently placed inside mediatek drm driver, but it's
more suitable to place a phy driver into phy driver folder, so move
mtk_hdmi_phy driver into phy driver folder.

Signed-off-by: CK Hu <ck.hu@mediatek.com>
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
---
 drivers/gpu/drm/mediatek/Kconfig                           | 7 -------
 drivers/gpu/drm/mediatek/Makefile                          | 6 ------
 drivers/phy/mediatek/Kconfig                               | 7 +++++++
 drivers/phy/mediatek/Makefile                              | 7 +++++++
 .../mediatek/phy-mtk-hdmi-mt2701.c}                        | 2 +-
 .../mediatek/phy-mtk-hdmi-mt8173.c}                        | 2 +-
 .../mtk_hdmi_phy.c => phy/mediatek/phy-mtk-hdmi.c}         | 2 +-
 .../mtk_hdmi_phy.h => phy/mediatek/phy-mtk-hdmi.h}         | 0
 8 files changed, 17 insertions(+), 16 deletions(-)
 rename drivers/{gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c => phy/mediatek/phy-mtk-hdmi-mt2701.c} (99%)
 rename drivers/{gpu/drm/mediatek/mtk_mt8173_hdmi_phy.c => phy/mediatek/phy-mtk-hdmi-mt8173.c} (99%)
 rename drivers/{gpu/drm/mediatek/mtk_hdmi_phy.c => phy/mediatek/phy-mtk-hdmi.c} (99%)
 rename drivers/{gpu/drm/mediatek/mtk_hdmi_phy.h => phy/mediatek/phy-mtk-hdmi.h} (100%)

diff --git a/drivers/gpu/drm/mediatek/Kconfig b/drivers/gpu/drm/mediatek/Kconfig
index ff6a1eb4ae83..2427d5bf699d 100644
--- a/drivers/gpu/drm/mediatek/Kconfig
+++ b/drivers/gpu/drm/mediatek/Kconfig
@@ -26,10 +26,3 @@ config DRM_MEDIATEK_HDMI
 	select PHY_MTK_HDMI
 	help
 	  DRM/KMS HDMI driver for Mediatek SoCs
-
-config PHY_MTK_HDMI
-    tristate "MediaTek HDMI-PHY Driver"
-    depends on ARCH_MEDIATEK && OF
-    select GENERIC_PHY
-    help
-          Enable this to support HDMI-PHY
diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile
index fcbef23aa6ce..77b0fd86063d 100644
--- a/drivers/gpu/drm/mediatek/Makefile
+++ b/drivers/gpu/drm/mediatek/Makefile
@@ -22,9 +22,3 @@ mediatek-drm-hdmi-objs := mtk_cec.o \
 			  mtk_hdmi_ddc.o
 
 obj-$(CONFIG_DRM_MEDIATEK_HDMI) += mediatek-drm-hdmi.o
-
-phy-mtk-hdmi-drv-objs := mtk_hdmi_phy.o \
-			 mtk_mt2701_hdmi_phy.o \
-			 mtk_mt8173_hdmi_phy.o
-
-obj-$(CONFIG_PHY_MTK_HDMI) += phy-mtk-hdmi-drv.o
diff --git a/drivers/phy/mediatek/Kconfig b/drivers/phy/mediatek/Kconfig
index dee757c957f2..10f0ec2d5b54 100644
--- a/drivers/phy/mediatek/Kconfig
+++ b/drivers/phy/mediatek/Kconfig
@@ -35,3 +35,10 @@ config PHY_MTK_XSPHY
 	  Enable this to support the SuperSpeedPlus XS-PHY transceiver for
 	  USB3.1 GEN2 controllers on MediaTek chips. The driver supports
 	  multiple USB2.0, USB3.1 GEN2 ports.
+
+config PHY_MTK_HDMI
+    tristate "MediaTek HDMI-PHY Driver"
+    depends on ARCH_MEDIATEK && OF
+    select GENERIC_PHY
+    help
+          Enable this to support HDMI-PHY
diff --git a/drivers/phy/mediatek/Makefile b/drivers/phy/mediatek/Makefile
index 08a8e6a97b1e..cda074c53235 100644
--- a/drivers/phy/mediatek/Makefile
+++ b/drivers/phy/mediatek/Makefile
@@ -6,3 +6,10 @@
 obj-$(CONFIG_PHY_MTK_TPHY)		+= phy-mtk-tphy.o
 obj-$(CONFIG_PHY_MTK_UFS)		+= phy-mtk-ufs.o
 obj-$(CONFIG_PHY_MTK_XSPHY)		+= phy-mtk-xsphy.o
+
+phy-mtk-hdmi-drv-objs := phy-mtk-hdmi.o \
+			 phy-mtk-hdmi-mt2701.o \
+			 phy-mtk-hdmi-mt8173.o
+
+obj-$(CONFIG_PHY_MTK_HDMI) += phy-mtk-hdmi-drv.o
+
diff --git a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c b/drivers/phy/mediatek/phy-mtk-hdmi-mt2701.c
similarity index 99%
rename from drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
rename to drivers/phy/mediatek/phy-mtk-hdmi-mt2701.c
index 99fe05cd3598..a6cb1dea3d0c 100644
--- a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
+++ b/drivers/phy/mediatek/phy-mtk-hdmi-mt2701.c
@@ -4,7 +4,7 @@
  * Author: Chunhui Dai <chunhui.dai@mediatek.com>
  */
 
-#include "mtk_hdmi_phy.h"
+#include "phy-mtk-hdmi.h"
 
 #define HDMI_CON0	0x00
 #define RG_HDMITX_DRV_IBIAS		0
diff --git a/drivers/gpu/drm/mediatek/mtk_mt8173_hdmi_phy.c b/drivers/phy/mediatek/phy-mtk-hdmi-mt8173.c
similarity index 99%
rename from drivers/gpu/drm/mediatek/mtk_mt8173_hdmi_phy.c
rename to drivers/phy/mediatek/phy-mtk-hdmi-mt8173.c
index b55f51675205..3521c4893c53 100644
--- a/drivers/gpu/drm/mediatek/mtk_mt8173_hdmi_phy.c
+++ b/drivers/phy/mediatek/phy-mtk-hdmi-mt8173.c
@@ -4,7 +4,7 @@
  * Author: Jie Qiu <jie.qiu@mediatek.com>
  */
 
-#include "mtk_hdmi_phy.h"
+#include "phy-mtk-hdmi.h"
 
 #define HDMI_CON0		0x00
 #define RG_HDMITX_PLL_EN		BIT(31)
diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.c b/drivers/phy/mediatek/phy-mtk-hdmi.c
similarity index 99%
rename from drivers/gpu/drm/mediatek/mtk_hdmi_phy.c
rename to drivers/phy/mediatek/phy-mtk-hdmi.c
index fe022acddbef..8fc83f01a720 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.c
+++ b/drivers/phy/mediatek/phy-mtk-hdmi.c
@@ -4,7 +4,7 @@
  * Author: Jie Qiu <jie.qiu@mediatek.com>
  */
 
-#include "mtk_hdmi_phy.h"
+#include "phy-mtk-hdmi.h"
 
 static int mtk_hdmi_phy_power_on(struct phy *phy);
 static int mtk_hdmi_phy_power_off(struct phy *phy);
diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h b/drivers/phy/mediatek/phy-mtk-hdmi.h
similarity index 100%
rename from drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
rename to drivers/phy/mediatek/phy-mtk-hdmi.h
-- 
2.17.1


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

* [PATCH v3 4/4] MAINTAINERS: add files for Mediatek DRM drivers
  2020-03-31 15:57 [PATCH v3 0/4] Move Mediatek HDMI PHY driver from DRM folder to PHY folder Chun-Kuang Hu
                   ` (2 preceding siblings ...)
  2020-03-31 15:57 ` [PATCH v3 3/4] phy: mediatek: Move mtk_hdmi_phy driver into drivers/phy/mediatek folder Chun-Kuang Hu
@ 2020-03-31 15:57 ` Chun-Kuang Hu
  2020-04-01 16:05   ` Matthias Brugger
  3 siblings, 1 reply; 14+ messages in thread
From: Chun-Kuang Hu @ 2020-03-31 15:57 UTC (permalink / raw)
  To: Philipp Zabel, David Airlie, Daniel Vetter, Matthias Brugger,
	Chunfeng Yun, Kishon Vijay Abraham I
  Cc: linux-kernel, dri-devel, linux-mediatek, Chun-Kuang Hu

Mediatek HDMI phy driver is moved from drivers/gpu/drm/mediatek to
drivers/phy/mediatek, so add the new folder to the Mediatek DRM drivers'
information.

Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
---
 MAINTAINERS | 1 +
 1 file changed, 1 insertion(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 38fe2f3f7b6f..129777037538 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5612,6 +5612,7 @@ M:	Philipp Zabel <p.zabel@pengutronix.de>
 L:	dri-devel@lists.freedesktop.org
 S:	Supported
 F:	drivers/gpu/drm/mediatek/
+F:	drivers/phy/mediatek/phy-mtk-hdmi*
 F:	Documentation/devicetree/bindings/display/mediatek/
 
 DRM DRIVERS FOR NVIDIA TEGRA
-- 
2.17.1


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

* Re: [PATCH v3 1/4] drm/mediatek: Move tz_disabled from mtk_hdmi_phy to mtk_hdmi driver
  2020-03-31 15:57 ` [PATCH v3 1/4] drm/mediatek: Move tz_disabled from mtk_hdmi_phy to mtk_hdmi driver Chun-Kuang Hu
@ 2020-04-01  2:16   ` Chunfeng Yun
  2020-04-01 15:53     ` Matthias Brugger
  0 siblings, 1 reply; 14+ messages in thread
From: Chunfeng Yun @ 2020-04-01  2:16 UTC (permalink / raw)
  To: Chun-Kuang Hu
  Cc: Philipp Zabel, David Airlie, Daniel Vetter, Matthias Brugger,
	Kishon Vijay Abraham I, linux-kernel, dri-devel, linux-mediatek,
	CK Hu

On Tue, 2020-03-31 at 23:57 +0800, Chun-Kuang Hu wrote:
> From: CK Hu <ck.hu@mediatek.com>
> 
> tz_disabled is used to control mtk_hdmi output signal, but this variable
> is stored in mtk_hdmi_phy and mtk_hdmi_phy does not use it. So move
> tz_disabled to mtk_hdmi where it's used.
> 
> Signed-off-by: CK Hu <ck.hu@mediatek.com>
> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
> ---
>  drivers/gpu/drm/mediatek/mtk_hdmi.c           | 22 ++++++++++++++++---
>  drivers/gpu/drm/mediatek/mtk_hdmi_phy.h       |  1 -
>  .../gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c    |  1 -
>  3 files changed, 19 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> index 5e4a4dbda443..878433c09c9b 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> @@ -144,11 +144,16 @@ struct hdmi_audio_param {
>  	struct hdmi_codec_params codec_params;
>  };
>  
> +struct mtk_hdmi_conf {
> +	bool tz_disabled;
> +};
> +
>  struct mtk_hdmi {
>  	struct drm_bridge bridge;
>  	struct drm_bridge *next_bridge;
>  	struct drm_connector conn;
>  	struct device *dev;
> +	const struct mtk_hdmi_conf *conf;
>  	struct phy *phy;
>  	struct device *cec_dev;
>  	struct i2c_adapter *ddc_adpt;
> @@ -230,7 +235,6 @@ static void mtk_hdmi_hw_vid_black(struct mtk_hdmi *hdmi, bool black)
>  static void mtk_hdmi_hw_make_reg_writable(struct mtk_hdmi *hdmi, bool enable)
>  {
>  	struct arm_smccc_res res;
> -	struct mtk_hdmi_phy *hdmi_phy = phy_get_drvdata(hdmi->phy);
>  
>  	/*
>  	 * MT8173 HDMI hardware has an output control bit to enable/disable HDMI
> @@ -238,7 +242,7 @@ static void mtk_hdmi_hw_make_reg_writable(struct mtk_hdmi *hdmi, bool enable)
>  	 * The ARM trusted firmware provides an API for the HDMI driver to set
>  	 * this control bit to enable HDMI output in supervisor mode.
>  	 */
> -	if (hdmi_phy->conf && hdmi_phy->conf->tz_disabled)
> +	if (hdmi->conf->tz_disabled)
>  		regmap_update_bits(hdmi->sys_regmap,
>  				   hdmi->sys_offset + HDMI_SYS_CFG20,
>  				   0x80008005, enable ? 0x80000005 : 0x8000);
> @@ -1688,6 +1692,7 @@ static int mtk_drm_hdmi_probe(struct platform_device *pdev)
>  		return -ENOMEM;
>  
>  	hdmi->dev = dev;
> +	hdmi->conf = of_device_get_match_data(dev);
>  
>  	ret = mtk_hdmi_dt_parse_pdata(hdmi, pdev);
>  	if (ret)
> @@ -1765,8 +1770,19 @@ static int mtk_hdmi_resume(struct device *dev)
>  static SIMPLE_DEV_PM_OPS(mtk_hdmi_pm_ops,
>  			 mtk_hdmi_suspend, mtk_hdmi_resume);
>  
> +static const struct mtk_hdmi_conf mtk_hdmi_conf_mt2701 = {
> +	.tz_disabled = true,
> +};
> +
> +static const struct mtk_hdmi_conf mtk_hdmi_conf_mt8173;
> +
>  static const struct of_device_id mtk_drm_hdmi_of_ids[] = {
> -	{ .compatible = "mediatek,mt8173-hdmi", },
> +	{ .compatible = "mediatek,mt2701-hdmi",
> +	  .data = &mtk_hdmi_conf_mt2701,
> +	},
> +	{ .compatible = "mediatek,mt8173-hdmi",
> +	  .data = &mtk_hdmi_conf_mt8173,
> +	},
>  	{}
>  };
>  
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
> index 2d8b3182470d..fc1c2efd1128 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
> @@ -20,7 +20,6 @@
>  struct mtk_hdmi_phy;
>  
>  struct mtk_hdmi_phy_conf {
> -	bool tz_disabled;
>  	unsigned long flags;
>  	const struct clk_ops *hdmi_phy_clk_ops;
>  	void (*hdmi_phy_enable_tmds)(struct mtk_hdmi_phy *hdmi_phy);
> diff --git a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c b/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
> index d3cc4022e988..99fe05cd3598 100644
> --- a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
> +++ b/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
> @@ -237,7 +237,6 @@ static void mtk_hdmi_phy_disable_tmds(struct mtk_hdmi_phy *hdmi_phy)
>  }
>  
>  struct mtk_hdmi_phy_conf mtk_hdmi_phy_2701_conf = {
> -	.tz_disabled = true,
>  	.flags = CLK_SET_RATE_GATE,
>  	.hdmi_phy_clk_ops = &mtk_hdmi_phy_pll_ops,
>  	.hdmi_phy_enable_tmds = mtk_hdmi_phy_enable_tmds,

Reviewed-by: Chunfeng Yun <chunfeng.yun@mediatek.com>


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

* Re: [PATCH v3 3/4] phy: mediatek: Move mtk_hdmi_phy driver into drivers/phy/mediatek folder
  2020-03-31 15:57 ` [PATCH v3 3/4] phy: mediatek: Move mtk_hdmi_phy driver into drivers/phy/mediatek folder Chun-Kuang Hu
@ 2020-04-01  2:18   ` Chunfeng Yun
  2020-04-01 16:04   ` Matthias Brugger
  1 sibling, 0 replies; 14+ messages in thread
From: Chunfeng Yun @ 2020-04-01  2:18 UTC (permalink / raw)
  To: Chun-Kuang Hu
  Cc: Philipp Zabel, David Airlie, Daniel Vetter, Matthias Brugger,
	Kishon Vijay Abraham I, linux-kernel, dri-devel, linux-mediatek,
	CK Hu

On Tue, 2020-03-31 at 23:57 +0800, Chun-Kuang Hu wrote:
> From: CK Hu <ck.hu@mediatek.com>
> 
> mtk_hdmi_phy is currently placed inside mediatek drm driver, but it's
> more suitable to place a phy driver into phy driver folder, so move
> mtk_hdmi_phy driver into phy driver folder.
> 
> Signed-off-by: CK Hu <ck.hu@mediatek.com>
> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
> ---
>  drivers/gpu/drm/mediatek/Kconfig                           | 7 -------
>  drivers/gpu/drm/mediatek/Makefile                          | 6 ------
>  drivers/phy/mediatek/Kconfig                               | 7 +++++++
>  drivers/phy/mediatek/Makefile                              | 7 +++++++
>  .../mediatek/phy-mtk-hdmi-mt2701.c}                        | 2 +-
>  .../mediatek/phy-mtk-hdmi-mt8173.c}                        | 2 +-
>  .../mtk_hdmi_phy.c => phy/mediatek/phy-mtk-hdmi.c}         | 2 +-
>  .../mtk_hdmi_phy.h => phy/mediatek/phy-mtk-hdmi.h}         | 0
>  8 files changed, 17 insertions(+), 16 deletions(-)
>  rename drivers/{gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c => phy/mediatek/phy-mtk-hdmi-mt2701.c} (99%)
>  rename drivers/{gpu/drm/mediatek/mtk_mt8173_hdmi_phy.c => phy/mediatek/phy-mtk-hdmi-mt8173.c} (99%)
>  rename drivers/{gpu/drm/mediatek/mtk_hdmi_phy.c => phy/mediatek/phy-mtk-hdmi.c} (99%)
>  rename drivers/{gpu/drm/mediatek/mtk_hdmi_phy.h => phy/mediatek/phy-mtk-hdmi.h} (100%)
> 
Reviewed-by: Chunfeng Yun <chunfeng.yun@mediatek.com>

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

* Re: [PATCH v3 2/4] drm/mediatek: Separate mtk_hdmi_phy to an independent module
  2020-03-31 15:57 ` [PATCH v3 2/4] drm/mediatek: Separate mtk_hdmi_phy to an independent module Chun-Kuang Hu
@ 2020-04-01  2:20   ` Chunfeng Yun
  0 siblings, 0 replies; 14+ messages in thread
From: Chunfeng Yun @ 2020-04-01  2:20 UTC (permalink / raw)
  To: Chun-Kuang Hu
  Cc: Philipp Zabel, David Airlie, Daniel Vetter, Matthias Brugger,
	Kishon Vijay Abraham I, linux-kernel, dri-devel, linux-mediatek,
	CK Hu

On Tue, 2020-03-31 at 23:57 +0800, Chun-Kuang Hu wrote:
> From: CK Hu <ck.hu@mediatek.com>
> 
> mtk_hdmi_phy is a part of mtk_hdmi module, but phy driver should be an
> independent module rather than be part of drm module, so separate the phy
> driver to an independent module.
> 
> Signed-off-by: CK Hu <ck.hu@mediatek.com>
> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
> ---
>  drivers/gpu/drm/mediatek/Kconfig        |  9 ++++++++-
>  drivers/gpu/drm/mediatek/Makefile       | 11 +++++++----
>  drivers/gpu/drm/mediatek/mtk_hdmi.c     |  2 +-
>  drivers/gpu/drm/mediatek/mtk_hdmi.h     |  1 -
>  drivers/gpu/drm/mediatek/mtk_hdmi_phy.c |  1 +
>  drivers/gpu/drm/mediatek/mtk_hdmi_phy.h |  1 -
>  6 files changed, 17 insertions(+), 8 deletions(-)
Reviewed-by: Chunfeng Yun <chunfeng.yun@mediatek.com>

Thanks a lot


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

* Re: [PATCH v3 1/4] drm/mediatek: Move tz_disabled from mtk_hdmi_phy to mtk_hdmi driver
  2020-04-01  2:16   ` Chunfeng Yun
@ 2020-04-01 15:53     ` Matthias Brugger
  2020-04-02 12:49       ` Chun-Kuang Hu
  0 siblings, 1 reply; 14+ messages in thread
From: Matthias Brugger @ 2020-04-01 15:53 UTC (permalink / raw)
  To: Chunfeng Yun, Chun-Kuang Hu
  Cc: Philipp Zabel, David Airlie, Daniel Vetter,
	Kishon Vijay Abraham I, linux-kernel, dri-devel, linux-mediatek,
	CK Hu



On 01/04/2020 04:16, Chunfeng Yun wrote:
> On Tue, 2020-03-31 at 23:57 +0800, Chun-Kuang Hu wrote:
>> From: CK Hu <ck.hu@mediatek.com>
>>
>> tz_disabled is used to control mtk_hdmi output signal, but this variable
>> is stored in mtk_hdmi_phy and mtk_hdmi_phy does not use it. So move
>> tz_disabled to mtk_hdmi where it's used.
>>
>> Signed-off-by: CK Hu <ck.hu@mediatek.com>
>> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
>> ---
>>  drivers/gpu/drm/mediatek/mtk_hdmi.c           | 22 ++++++++++++++++---
>>  drivers/gpu/drm/mediatek/mtk_hdmi_phy.h       |  1 -
>>  .../gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c    |  1 -
>>  3 files changed, 19 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
>> index 5e4a4dbda443..878433c09c9b 100644
>> --- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
>> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
>> @@ -144,11 +144,16 @@ struct hdmi_audio_param {
>>  	struct hdmi_codec_params codec_params;
>>  };
>>  
>> +struct mtk_hdmi_conf {
>> +	bool tz_disabled;
>> +};
>> +
>>  struct mtk_hdmi {
>>  	struct drm_bridge bridge;
>>  	struct drm_bridge *next_bridge;
>>  	struct drm_connector conn;
>>  	struct device *dev;
>> +	const struct mtk_hdmi_conf *conf;
>>  	struct phy *phy;
>>  	struct device *cec_dev;
>>  	struct i2c_adapter *ddc_adpt;
>> @@ -230,7 +235,6 @@ static void mtk_hdmi_hw_vid_black(struct mtk_hdmi *hdmi, bool black)
>>  static void mtk_hdmi_hw_make_reg_writable(struct mtk_hdmi *hdmi, bool enable)
>>  {
>>  	struct arm_smccc_res res;
>> -	struct mtk_hdmi_phy *hdmi_phy = phy_get_drvdata(hdmi->phy);
>>  
>>  	/*
>>  	 * MT8173 HDMI hardware has an output control bit to enable/disable HDMI
>> @@ -238,7 +242,7 @@ static void mtk_hdmi_hw_make_reg_writable(struct mtk_hdmi *hdmi, bool enable)
>>  	 * The ARM trusted firmware provides an API for the HDMI driver to set
>>  	 * this control bit to enable HDMI output in supervisor mode.
>>  	 */
>> -	if (hdmi_phy->conf && hdmi_phy->conf->tz_disabled)
>> +	if (hdmi->conf->tz_disabled)

Wouldn't we need to check:
if (hdmi->conf && hdmi->conf->tz_disabled)

>>  		regmap_update_bits(hdmi->sys_regmap,
>>  				   hdmi->sys_offset + HDMI_SYS_CFG20,
>>  				   0x80008005, enable ? 0x80000005 : 0x8000);
>> @@ -1688,6 +1692,7 @@ static int mtk_drm_hdmi_probe(struct platform_device *pdev)
>>  		return -ENOMEM;
>>  
>>  	hdmi->dev = dev;
>> +	hdmi->conf = of_device_get_match_data(dev);
>>  
>>  	ret = mtk_hdmi_dt_parse_pdata(hdmi, pdev);
>>  	if (ret)
>> @@ -1765,8 +1770,19 @@ static int mtk_hdmi_resume(struct device *dev)
>>  static SIMPLE_DEV_PM_OPS(mtk_hdmi_pm_ops,
>>  			 mtk_hdmi_suspend, mtk_hdmi_resume);
>>  
>> +static const struct mtk_hdmi_conf mtk_hdmi_conf_mt2701 = {
>> +	.tz_disabled = true,
>> +};
>> +
>> +static const struct mtk_hdmi_conf mtk_hdmi_conf_mt8173;
>> +
>>  static const struct of_device_id mtk_drm_hdmi_of_ids[] = {
>> -	{ .compatible = "mediatek,mt8173-hdmi", },
>> +	{ .compatible = "mediatek,mt2701-hdmi",
>> +	  .data = &mtk_hdmi_conf_mt2701,
>> +	},
>> +	{ .compatible = "mediatek,mt8173-hdmi",
>> +	  .data = &mtk_hdmi_conf_mt8173,

We don't have any data? Then we should set data to NULL instead.

Regards,
Matthias

>> +	},
>>  	{}
>>  };
>>  
>> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
>> index 2d8b3182470d..fc1c2efd1128 100644
>> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
>> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
>> @@ -20,7 +20,6 @@
>>  struct mtk_hdmi_phy;
>>  
>>  struct mtk_hdmi_phy_conf {
>> -	bool tz_disabled;
>>  	unsigned long flags;
>>  	const struct clk_ops *hdmi_phy_clk_ops;
>>  	void (*hdmi_phy_enable_tmds)(struct mtk_hdmi_phy *hdmi_phy);
>> diff --git a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c b/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
>> index d3cc4022e988..99fe05cd3598 100644
>> --- a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
>> +++ b/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
>> @@ -237,7 +237,6 @@ static void mtk_hdmi_phy_disable_tmds(struct mtk_hdmi_phy *hdmi_phy)
>>  }
>>  
>>  struct mtk_hdmi_phy_conf mtk_hdmi_phy_2701_conf = {
>> -	.tz_disabled = true,
>>  	.flags = CLK_SET_RATE_GATE,
>>  	.hdmi_phy_clk_ops = &mtk_hdmi_phy_pll_ops,
>>  	.hdmi_phy_enable_tmds = mtk_hdmi_phy_enable_tmds,
> 
> Reviewed-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
> 

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

* Re: [PATCH v3 3/4] phy: mediatek: Move mtk_hdmi_phy driver into drivers/phy/mediatek folder
  2020-03-31 15:57 ` [PATCH v3 3/4] phy: mediatek: Move mtk_hdmi_phy driver into drivers/phy/mediatek folder Chun-Kuang Hu
  2020-04-01  2:18   ` Chunfeng Yun
@ 2020-04-01 16:04   ` Matthias Brugger
  1 sibling, 0 replies; 14+ messages in thread
From: Matthias Brugger @ 2020-04-01 16:04 UTC (permalink / raw)
  To: Chun-Kuang Hu, Philipp Zabel, David Airlie, Daniel Vetter,
	Chunfeng Yun, Kishon Vijay Abraham I
  Cc: linux-kernel, dri-devel, linux-mediatek, CK Hu



On 31/03/2020 17:57, Chun-Kuang Hu wrote:
> From: CK Hu <ck.hu@mediatek.com>
> 
> mtk_hdmi_phy is currently placed inside mediatek drm driver, but it's
> more suitable to place a phy driver into phy driver folder, so move
> mtk_hdmi_phy driver into phy driver folder.
> 
> Signed-off-by: CK Hu <ck.hu@mediatek.com>
> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
> ---

Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>

>  drivers/gpu/drm/mediatek/Kconfig                           | 7 -------
>  drivers/gpu/drm/mediatek/Makefile                          | 6 ------
>  drivers/phy/mediatek/Kconfig                               | 7 +++++++
>  drivers/phy/mediatek/Makefile                              | 7 +++++++
>  .../mediatek/phy-mtk-hdmi-mt2701.c}                        | 2 +-
>  .../mediatek/phy-mtk-hdmi-mt8173.c}                        | 2 +-
>  .../mtk_hdmi_phy.c => phy/mediatek/phy-mtk-hdmi.c}         | 2 +-
>  .../mtk_hdmi_phy.h => phy/mediatek/phy-mtk-hdmi.h}         | 0
>  8 files changed, 17 insertions(+), 16 deletions(-)
>  rename drivers/{gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c => phy/mediatek/phy-mtk-hdmi-mt2701.c} (99%)
>  rename drivers/{gpu/drm/mediatek/mtk_mt8173_hdmi_phy.c => phy/mediatek/phy-mtk-hdmi-mt8173.c} (99%)
>  rename drivers/{gpu/drm/mediatek/mtk_hdmi_phy.c => phy/mediatek/phy-mtk-hdmi.c} (99%)
>  rename drivers/{gpu/drm/mediatek/mtk_hdmi_phy.h => phy/mediatek/phy-mtk-hdmi.h} (100%)
> 
> diff --git a/drivers/gpu/drm/mediatek/Kconfig b/drivers/gpu/drm/mediatek/Kconfig
> index ff6a1eb4ae83..2427d5bf699d 100644
> --- a/drivers/gpu/drm/mediatek/Kconfig
> +++ b/drivers/gpu/drm/mediatek/Kconfig
> @@ -26,10 +26,3 @@ config DRM_MEDIATEK_HDMI
>  	select PHY_MTK_HDMI
>  	help
>  	  DRM/KMS HDMI driver for Mediatek SoCs
> -
> -config PHY_MTK_HDMI
> -    tristate "MediaTek HDMI-PHY Driver"
> -    depends on ARCH_MEDIATEK && OF
> -    select GENERIC_PHY
> -    help
> -          Enable this to support HDMI-PHY
> diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile
> index fcbef23aa6ce..77b0fd86063d 100644
> --- a/drivers/gpu/drm/mediatek/Makefile
> +++ b/drivers/gpu/drm/mediatek/Makefile
> @@ -22,9 +22,3 @@ mediatek-drm-hdmi-objs := mtk_cec.o \
>  			  mtk_hdmi_ddc.o
>  
>  obj-$(CONFIG_DRM_MEDIATEK_HDMI) += mediatek-drm-hdmi.o
> -
> -phy-mtk-hdmi-drv-objs := mtk_hdmi_phy.o \
> -			 mtk_mt2701_hdmi_phy.o \
> -			 mtk_mt8173_hdmi_phy.o
> -
> -obj-$(CONFIG_PHY_MTK_HDMI) += phy-mtk-hdmi-drv.o
> diff --git a/drivers/phy/mediatek/Kconfig b/drivers/phy/mediatek/Kconfig
> index dee757c957f2..10f0ec2d5b54 100644
> --- a/drivers/phy/mediatek/Kconfig
> +++ b/drivers/phy/mediatek/Kconfig
> @@ -35,3 +35,10 @@ config PHY_MTK_XSPHY
>  	  Enable this to support the SuperSpeedPlus XS-PHY transceiver for
>  	  USB3.1 GEN2 controllers on MediaTek chips. The driver supports
>  	  multiple USB2.0, USB3.1 GEN2 ports.
> +
> +config PHY_MTK_HDMI
> +    tristate "MediaTek HDMI-PHY Driver"
> +    depends on ARCH_MEDIATEK && OF
> +    select GENERIC_PHY
> +    help
> +          Enable this to support HDMI-PHY
> diff --git a/drivers/phy/mediatek/Makefile b/drivers/phy/mediatek/Makefile
> index 08a8e6a97b1e..cda074c53235 100644
> --- a/drivers/phy/mediatek/Makefile
> +++ b/drivers/phy/mediatek/Makefile
> @@ -6,3 +6,10 @@
>  obj-$(CONFIG_PHY_MTK_TPHY)		+= phy-mtk-tphy.o
>  obj-$(CONFIG_PHY_MTK_UFS)		+= phy-mtk-ufs.o
>  obj-$(CONFIG_PHY_MTK_XSPHY)		+= phy-mtk-xsphy.o
> +
> +phy-mtk-hdmi-drv-objs := phy-mtk-hdmi.o \
> +			 phy-mtk-hdmi-mt2701.o \
> +			 phy-mtk-hdmi-mt8173.o
> +
> +obj-$(CONFIG_PHY_MTK_HDMI) += phy-mtk-hdmi-drv.o
> +
> diff --git a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c b/drivers/phy/mediatek/phy-mtk-hdmi-mt2701.c
> similarity index 99%
> rename from drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
> rename to drivers/phy/mediatek/phy-mtk-hdmi-mt2701.c
> index 99fe05cd3598..a6cb1dea3d0c 100644
> --- a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
> +++ b/drivers/phy/mediatek/phy-mtk-hdmi-mt2701.c
> @@ -4,7 +4,7 @@
>   * Author: Chunhui Dai <chunhui.dai@mediatek.com>
>   */
>  
> -#include "mtk_hdmi_phy.h"
> +#include "phy-mtk-hdmi.h"
>  
>  #define HDMI_CON0	0x00
>  #define RG_HDMITX_DRV_IBIAS		0
> diff --git a/drivers/gpu/drm/mediatek/mtk_mt8173_hdmi_phy.c b/drivers/phy/mediatek/phy-mtk-hdmi-mt8173.c
> similarity index 99%
> rename from drivers/gpu/drm/mediatek/mtk_mt8173_hdmi_phy.c
> rename to drivers/phy/mediatek/phy-mtk-hdmi-mt8173.c
> index b55f51675205..3521c4893c53 100644
> --- a/drivers/gpu/drm/mediatek/mtk_mt8173_hdmi_phy.c
> +++ b/drivers/phy/mediatek/phy-mtk-hdmi-mt8173.c
> @@ -4,7 +4,7 @@
>   * Author: Jie Qiu <jie.qiu@mediatek.com>
>   */
>  
> -#include "mtk_hdmi_phy.h"
> +#include "phy-mtk-hdmi.h"
>  
>  #define HDMI_CON0		0x00
>  #define RG_HDMITX_PLL_EN		BIT(31)
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.c b/drivers/phy/mediatek/phy-mtk-hdmi.c
> similarity index 99%
> rename from drivers/gpu/drm/mediatek/mtk_hdmi_phy.c
> rename to drivers/phy/mediatek/phy-mtk-hdmi.c
> index fe022acddbef..8fc83f01a720 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.c
> +++ b/drivers/phy/mediatek/phy-mtk-hdmi.c
> @@ -4,7 +4,7 @@
>   * Author: Jie Qiu <jie.qiu@mediatek.com>
>   */
>  
> -#include "mtk_hdmi_phy.h"
> +#include "phy-mtk-hdmi.h"
>  
>  static int mtk_hdmi_phy_power_on(struct phy *phy);
>  static int mtk_hdmi_phy_power_off(struct phy *phy);
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h b/drivers/phy/mediatek/phy-mtk-hdmi.h
> similarity index 100%
> rename from drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
> rename to drivers/phy/mediatek/phy-mtk-hdmi.h
> 

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

* Re: [PATCH v3 4/4] MAINTAINERS: add files for Mediatek DRM drivers
  2020-03-31 15:57 ` [PATCH v3 4/4] MAINTAINERS: add files for Mediatek DRM drivers Chun-Kuang Hu
@ 2020-04-01 16:05   ` Matthias Brugger
  0 siblings, 0 replies; 14+ messages in thread
From: Matthias Brugger @ 2020-04-01 16:05 UTC (permalink / raw)
  To: Chun-Kuang Hu, Philipp Zabel, David Airlie, Daniel Vetter,
	Chunfeng Yun, Kishon Vijay Abraham I
  Cc: linux-kernel, dri-devel, linux-mediatek



On 31/03/2020 17:57, Chun-Kuang Hu wrote:
> Mediatek HDMI phy driver is moved from drivers/gpu/drm/mediatek to
> drivers/phy/mediatek, so add the new folder to the Mediatek DRM drivers'
> information.
> 
> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>

Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>

> ---
>  MAINTAINERS | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 38fe2f3f7b6f..129777037538 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -5612,6 +5612,7 @@ M:	Philipp Zabel <p.zabel@pengutronix.de>
>  L:	dri-devel@lists.freedesktop.org
>  S:	Supported
>  F:	drivers/gpu/drm/mediatek/
> +F:	drivers/phy/mediatek/phy-mtk-hdmi*
>  F:	Documentation/devicetree/bindings/display/mediatek/
>  
>  DRM DRIVERS FOR NVIDIA TEGRA
> 

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

* Re: [PATCH v3 1/4] drm/mediatek: Move tz_disabled from mtk_hdmi_phy to mtk_hdmi driver
  2020-04-01 15:53     ` Matthias Brugger
@ 2020-04-02 12:49       ` Chun-Kuang Hu
  2020-04-03  2:59         ` Chunfeng Yun
  0 siblings, 1 reply; 14+ messages in thread
From: Chun-Kuang Hu @ 2020-04-02 12:49 UTC (permalink / raw)
  To: Matthias Brugger
  Cc: Chunfeng Yun, Chun-Kuang Hu, Philipp Zabel, David Airlie,
	Daniel Vetter, Kishon Vijay Abraham I, linux-kernel,
	DRI Development, linux-mediatek, CK Hu

Hi, Matthias:

Matthias Brugger <matthias.bgg@gmail.com> 於 2020年4月1日 週三 下午11:53寫道:
>
>
>
> On 01/04/2020 04:16, Chunfeng Yun wrote:
> > On Tue, 2020-03-31 at 23:57 +0800, Chun-Kuang Hu wrote:
> >> From: CK Hu <ck.hu@mediatek.com>
> >>
> >> tz_disabled is used to control mtk_hdmi output signal, but this variable
> >> is stored in mtk_hdmi_phy and mtk_hdmi_phy does not use it. So move
> >> tz_disabled to mtk_hdmi where it's used.
> >>
> >> Signed-off-by: CK Hu <ck.hu@mediatek.com>
> >> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
> >> ---
> >>  drivers/gpu/drm/mediatek/mtk_hdmi.c           | 22 ++++++++++++++++---
> >>  drivers/gpu/drm/mediatek/mtk_hdmi_phy.h       |  1 -
> >>  .../gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c    |  1 -
> >>  3 files changed, 19 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> >> index 5e4a4dbda443..878433c09c9b 100644
> >> --- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
> >> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> >> @@ -144,11 +144,16 @@ struct hdmi_audio_param {
> >>      struct hdmi_codec_params codec_params;
> >>  };
> >>
> >> +struct mtk_hdmi_conf {
> >> +    bool tz_disabled;
> >> +};
> >> +
> >>  struct mtk_hdmi {
> >>      struct drm_bridge bridge;
> >>      struct drm_bridge *next_bridge;
> >>      struct drm_connector conn;
> >>      struct device *dev;
> >> +    const struct mtk_hdmi_conf *conf;
> >>      struct phy *phy;
> >>      struct device *cec_dev;
> >>      struct i2c_adapter *ddc_adpt;
> >> @@ -230,7 +235,6 @@ static void mtk_hdmi_hw_vid_black(struct mtk_hdmi *hdmi, bool black)
> >>  static void mtk_hdmi_hw_make_reg_writable(struct mtk_hdmi *hdmi, bool enable)
> >>  {
> >>      struct arm_smccc_res res;
> >> -    struct mtk_hdmi_phy *hdmi_phy = phy_get_drvdata(hdmi->phy);
> >>
> >>      /*
> >>       * MT8173 HDMI hardware has an output control bit to enable/disable HDMI
> >> @@ -238,7 +242,7 @@ static void mtk_hdmi_hw_make_reg_writable(struct mtk_hdmi *hdmi, bool enable)
> >>       * The ARM trusted firmware provides an API for the HDMI driver to set
> >>       * this control bit to enable HDMI output in supervisor mode.
> >>       */
> >> -    if (hdmi_phy->conf && hdmi_phy->conf->tz_disabled)
> >> +    if (hdmi->conf->tz_disabled)
>
> Wouldn't we need to check:
> if (hdmi->conf && hdmi->conf->tz_disabled)

My design is: hdmi->conf would not be NULL.

>
> >>              regmap_update_bits(hdmi->sys_regmap,
> >>                                 hdmi->sys_offset + HDMI_SYS_CFG20,
> >>                                 0x80008005, enable ? 0x80000005 : 0x8000);
> >> @@ -1688,6 +1692,7 @@ static int mtk_drm_hdmi_probe(struct platform_device *pdev)
> >>              return -ENOMEM;
> >>
> >>      hdmi->dev = dev;
> >> +    hdmi->conf = of_device_get_match_data(dev);
> >>
> >>      ret = mtk_hdmi_dt_parse_pdata(hdmi, pdev);
> >>      if (ret)
> >> @@ -1765,8 +1770,19 @@ static int mtk_hdmi_resume(struct device *dev)
> >>  static SIMPLE_DEV_PM_OPS(mtk_hdmi_pm_ops,
> >>                       mtk_hdmi_suspend, mtk_hdmi_resume);
> >>
> >> +static const struct mtk_hdmi_conf mtk_hdmi_conf_mt2701 = {
> >> +    .tz_disabled = true,
> >> +};
> >> +
> >> +static const struct mtk_hdmi_conf mtk_hdmi_conf_mt8173;
> >> +
> >>  static const struct of_device_id mtk_drm_hdmi_of_ids[] = {
> >> -    { .compatible = "mediatek,mt8173-hdmi", },
> >> +    { .compatible = "mediatek,mt2701-hdmi",
> >> +      .data = &mtk_hdmi_conf_mt2701,
> >> +    },
> >> +    { .compatible = "mediatek,mt8173-hdmi",
> >> +      .data = &mtk_hdmi_conf_mt8173,
>
> We don't have any data? Then we should set data to NULL instead.

My design is data would not be NULL, so I need not to check whether it
is NULL in driver.

Regards,
CK

>
> Regards,
> Matthias
>
> >> +    },
> >>      {}
> >>  };
> >>
> >> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
> >> index 2d8b3182470d..fc1c2efd1128 100644
> >> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
> >> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
> >> @@ -20,7 +20,6 @@
> >>  struct mtk_hdmi_phy;
> >>
> >>  struct mtk_hdmi_phy_conf {
> >> -    bool tz_disabled;
> >>      unsigned long flags;
> >>      const struct clk_ops *hdmi_phy_clk_ops;
> >>      void (*hdmi_phy_enable_tmds)(struct mtk_hdmi_phy *hdmi_phy);
> >> diff --git a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c b/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
> >> index d3cc4022e988..99fe05cd3598 100644
> >> --- a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
> >> +++ b/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
> >> @@ -237,7 +237,6 @@ static void mtk_hdmi_phy_disable_tmds(struct mtk_hdmi_phy *hdmi_phy)
> >>  }
> >>
> >>  struct mtk_hdmi_phy_conf mtk_hdmi_phy_2701_conf = {
> >> -    .tz_disabled = true,
> >>      .flags = CLK_SET_RATE_GATE,
> >>      .hdmi_phy_clk_ops = &mtk_hdmi_phy_pll_ops,
> >>      .hdmi_phy_enable_tmds = mtk_hdmi_phy_enable_tmds,
> >
> > Reviewed-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
> >

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

* Re: [PATCH v3 1/4] drm/mediatek: Move tz_disabled from mtk_hdmi_phy to mtk_hdmi driver
  2020-04-02 12:49       ` Chun-Kuang Hu
@ 2020-04-03  2:59         ` Chunfeng Yun
  2020-04-03 15:22           ` Chun-Kuang Hu
  0 siblings, 1 reply; 14+ messages in thread
From: Chunfeng Yun @ 2020-04-03  2:59 UTC (permalink / raw)
  To: Chun-Kuang Hu
  Cc: Matthias Brugger, Philipp Zabel, David Airlie, Daniel Vetter,
	Kishon Vijay Abraham I, linux-kernel, DRI Development,
	linux-mediatek, CK Hu

On Thu, 2020-04-02 at 20:49 +0800, Chun-Kuang Hu wrote:
> Hi, Matthias:
> 
> Matthias Brugger <matthias.bgg@gmail.com> 於 2020年4月1日 週三 下午11:53寫道:
> >
> >
> >
> > On 01/04/2020 04:16, Chunfeng Yun wrote:
> > > On Tue, 2020-03-31 at 23:57 +0800, Chun-Kuang Hu wrote:
> > >> From: CK Hu <ck.hu@mediatek.com>
> > >>
> > >> tz_disabled is used to control mtk_hdmi output signal, but this variable
> > >> is stored in mtk_hdmi_phy and mtk_hdmi_phy does not use it. So move
> > >> tz_disabled to mtk_hdmi where it's used.
> > >>
> > >> Signed-off-by: CK Hu <ck.hu@mediatek.com>
> > >> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
> > >> ---
> > >>  drivers/gpu/drm/mediatek/mtk_hdmi.c           | 22 ++++++++++++++++---
> > >>  drivers/gpu/drm/mediatek/mtk_hdmi_phy.h       |  1 -
> > >>  .../gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c    |  1 -
> > >>  3 files changed, 19 insertions(+), 5 deletions(-)
> > >>
> > >> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> > >> index 5e4a4dbda443..878433c09c9b 100644
> > >> --- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
> > >> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> > >> @@ -144,11 +144,16 @@ struct hdmi_audio_param {
> > >>      struct hdmi_codec_params codec_params;
> > >>  };
> > >>
> > >> +struct mtk_hdmi_conf {
> > >> +    bool tz_disabled;
> > >> +};
> > >> +
> > >>  struct mtk_hdmi {
> > >>      struct drm_bridge bridge;
> > >>      struct drm_bridge *next_bridge;
> > >>      struct drm_connector conn;
> > >>      struct device *dev;
> > >> +    const struct mtk_hdmi_conf *conf;
> > >>      struct phy *phy;
> > >>      struct device *cec_dev;
> > >>      struct i2c_adapter *ddc_adpt;
> > >> @@ -230,7 +235,6 @@ static void mtk_hdmi_hw_vid_black(struct mtk_hdmi *hdmi, bool black)
> > >>  static void mtk_hdmi_hw_make_reg_writable(struct mtk_hdmi *hdmi, bool enable)
> > >>  {
> > >>      struct arm_smccc_res res;
> > >> -    struct mtk_hdmi_phy *hdmi_phy = phy_get_drvdata(hdmi->phy);
> > >>
> > >>      /*
> > >>       * MT8173 HDMI hardware has an output control bit to enable/disable HDMI
> > >> @@ -238,7 +242,7 @@ static void mtk_hdmi_hw_make_reg_writable(struct mtk_hdmi *hdmi, bool enable)
> > >>       * The ARM trusted firmware provides an API for the HDMI driver to set
> > >>       * this control bit to enable HDMI output in supervisor mode.
> > >>       */
> > >> -    if (hdmi_phy->conf && hdmi_phy->conf->tz_disabled)
> > >> +    if (hdmi->conf->tz_disabled)
> >
> > Wouldn't we need to check:
> > if (hdmi->conf && hdmi->conf->tz_disabled)
> 
> My design is: hdmi->conf would not be NULL.
> 
> >
> > >>              regmap_update_bits(hdmi->sys_regmap,
> > >>                                 hdmi->sys_offset + HDMI_SYS_CFG20,
> > >>                                 0x80008005, enable ? 0x80000005 : 0x8000);
> > >> @@ -1688,6 +1692,7 @@ static int mtk_drm_hdmi_probe(struct platform_device *pdev)
> > >>              return -ENOMEM;
> > >>
> > >>      hdmi->dev = dev;
> > >> +    hdmi->conf = of_device_get_match_data(dev);
> > >>
> > >>      ret = mtk_hdmi_dt_parse_pdata(hdmi, pdev);
> > >>      if (ret)
> > >> @@ -1765,8 +1770,19 @@ static int mtk_hdmi_resume(struct device *dev)
> > >>  static SIMPLE_DEV_PM_OPS(mtk_hdmi_pm_ops,
> > >>                       mtk_hdmi_suspend, mtk_hdmi_resume);
> > >>
> > >> +static const struct mtk_hdmi_conf mtk_hdmi_conf_mt2701 = {
> > >> +    .tz_disabled = true,
> > >> +};
> > >> +
> > >> +static const struct mtk_hdmi_conf mtk_hdmi_conf_mt8173;
> > >> +
> > >>  static const struct of_device_id mtk_drm_hdmi_of_ids[] = {
> > >> -    { .compatible = "mediatek,mt8173-hdmi", },
> > >> +    { .compatible = "mediatek,mt2701-hdmi",
> > >> +      .data = &mtk_hdmi_conf_mt2701,
> > >> +    },
> > >> +    { .compatible = "mediatek,mt8173-hdmi",
> > >> +      .data = &mtk_hdmi_conf_mt8173,
> >
> > We don't have any data? Then we should set data to NULL instead.
> 
> My design is data would not be NULL, so I need not to check whether it
> is NULL in driver.
But we don't need .data for mt8173, it's better to set it to NULL.

> 
> Regards,
> CK
> 
> >
> > Regards,
> > Matthias
> >
> > >> +    },
> > >>      {}
> > >>  };
> > >>
> > >> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
> > >> index 2d8b3182470d..fc1c2efd1128 100644
> > >> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
> > >> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
> > >> @@ -20,7 +20,6 @@
> > >>  struct mtk_hdmi_phy;
> > >>
> > >>  struct mtk_hdmi_phy_conf {
> > >> -    bool tz_disabled;
> > >>      unsigned long flags;
> > >>      const struct clk_ops *hdmi_phy_clk_ops;
> > >>      void (*hdmi_phy_enable_tmds)(struct mtk_hdmi_phy *hdmi_phy);
> > >> diff --git a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c b/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
> > >> index d3cc4022e988..99fe05cd3598 100644
> > >> --- a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
> > >> +++ b/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
> > >> @@ -237,7 +237,6 @@ static void mtk_hdmi_phy_disable_tmds(struct mtk_hdmi_phy *hdmi_phy)
> > >>  }
> > >>
> > >>  struct mtk_hdmi_phy_conf mtk_hdmi_phy_2701_conf = {
> > >> -    .tz_disabled = true,
> > >>      .flags = CLK_SET_RATE_GATE,
> > >>      .hdmi_phy_clk_ops = &mtk_hdmi_phy_pll_ops,
> > >>      .hdmi_phy_enable_tmds = mtk_hdmi_phy_enable_tmds,
> > >
> > > Reviewed-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
> > >


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

* Re: [PATCH v3 1/4] drm/mediatek: Move tz_disabled from mtk_hdmi_phy to mtk_hdmi driver
  2020-04-03  2:59         ` Chunfeng Yun
@ 2020-04-03 15:22           ` Chun-Kuang Hu
  0 siblings, 0 replies; 14+ messages in thread
From: Chun-Kuang Hu @ 2020-04-03 15:22 UTC (permalink / raw)
  To: Chunfeng Yun
  Cc: Chun-Kuang Hu, Matthias Brugger, Philipp Zabel, David Airlie,
	Daniel Vetter, Kishon Vijay Abraham I, linux-kernel,
	DRI Development, linux-mediatek, CK Hu

Chunfeng Yun <chunfeng.yun@mediatek.com> 於 2020年4月3日 週五 上午10:59寫道:
>
> On Thu, 2020-04-02 at 20:49 +0800, Chun-Kuang Hu wrote:
> > Hi, Matthias:
> >
> > Matthias Brugger <matthias.bgg@gmail.com> 於 2020年4月1日 週三 下午11:53寫道:
> > >
> > >
> > >
> > > On 01/04/2020 04:16, Chunfeng Yun wrote:
> > > > On Tue, 2020-03-31 at 23:57 +0800, Chun-Kuang Hu wrote:
> > > >> From: CK Hu <ck.hu@mediatek.com>
> > > >>
> > > >> tz_disabled is used to control mtk_hdmi output signal, but this variable
> > > >> is stored in mtk_hdmi_phy and mtk_hdmi_phy does not use it. So move
> > > >> tz_disabled to mtk_hdmi where it's used.
> > > >>
> > > >> Signed-off-by: CK Hu <ck.hu@mediatek.com>
> > > >> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
> > > >> ---
> > > >>  drivers/gpu/drm/mediatek/mtk_hdmi.c           | 22 ++++++++++++++++---
> > > >>  drivers/gpu/drm/mediatek/mtk_hdmi_phy.h       |  1 -
> > > >>  .../gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c    |  1 -
> > > >>  3 files changed, 19 insertions(+), 5 deletions(-)
> > > >>
> > > >> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> > > >> index 5e4a4dbda443..878433c09c9b 100644
> > > >> --- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
> > > >> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> > > >> @@ -144,11 +144,16 @@ struct hdmi_audio_param {
> > > >>      struct hdmi_codec_params codec_params;
> > > >>  };
> > > >>
> > > >> +struct mtk_hdmi_conf {
> > > >> +    bool tz_disabled;
> > > >> +};
> > > >> +
> > > >>  struct mtk_hdmi {
> > > >>      struct drm_bridge bridge;
> > > >>      struct drm_bridge *next_bridge;
> > > >>      struct drm_connector conn;
> > > >>      struct device *dev;
> > > >> +    const struct mtk_hdmi_conf *conf;
> > > >>      struct phy *phy;
> > > >>      struct device *cec_dev;
> > > >>      struct i2c_adapter *ddc_adpt;
> > > >> @@ -230,7 +235,6 @@ static void mtk_hdmi_hw_vid_black(struct mtk_hdmi *hdmi, bool black)
> > > >>  static void mtk_hdmi_hw_make_reg_writable(struct mtk_hdmi *hdmi, bool enable)
> > > >>  {
> > > >>      struct arm_smccc_res res;
> > > >> -    struct mtk_hdmi_phy *hdmi_phy = phy_get_drvdata(hdmi->phy);
> > > >>
> > > >>      /*
> > > >>       * MT8173 HDMI hardware has an output control bit to enable/disable HDMI
> > > >> @@ -238,7 +242,7 @@ static void mtk_hdmi_hw_make_reg_writable(struct mtk_hdmi *hdmi, bool enable)
> > > >>       * The ARM trusted firmware provides an API for the HDMI driver to set
> > > >>       * this control bit to enable HDMI output in supervisor mode.
> > > >>       */
> > > >> -    if (hdmi_phy->conf && hdmi_phy->conf->tz_disabled)
> > > >> +    if (hdmi->conf->tz_disabled)
> > >
> > > Wouldn't we need to check:
> > > if (hdmi->conf && hdmi->conf->tz_disabled)
> >
> > My design is: hdmi->conf would not be NULL.
> >
> > >
> > > >>              regmap_update_bits(hdmi->sys_regmap,
> > > >>                                 hdmi->sys_offset + HDMI_SYS_CFG20,
> > > >>                                 0x80008005, enable ? 0x80000005 : 0x8000);
> > > >> @@ -1688,6 +1692,7 @@ static int mtk_drm_hdmi_probe(struct platform_device *pdev)
> > > >>              return -ENOMEM;
> > > >>
> > > >>      hdmi->dev = dev;
> > > >> +    hdmi->conf = of_device_get_match_data(dev);
> > > >>
> > > >>      ret = mtk_hdmi_dt_parse_pdata(hdmi, pdev);
> > > >>      if (ret)
> > > >> @@ -1765,8 +1770,19 @@ static int mtk_hdmi_resume(struct device *dev)
> > > >>  static SIMPLE_DEV_PM_OPS(mtk_hdmi_pm_ops,
> > > >>                       mtk_hdmi_suspend, mtk_hdmi_resume);
> > > >>
> > > >> +static const struct mtk_hdmi_conf mtk_hdmi_conf_mt2701 = {
> > > >> +    .tz_disabled = true,
> > > >> +};
> > > >> +
> > > >> +static const struct mtk_hdmi_conf mtk_hdmi_conf_mt8173;
> > > >> +
> > > >>  static const struct of_device_id mtk_drm_hdmi_of_ids[] = {
> > > >> -    { .compatible = "mediatek,mt8173-hdmi", },
> > > >> +    { .compatible = "mediatek,mt2701-hdmi",
> > > >> +      .data = &mtk_hdmi_conf_mt2701,
> > > >> +    },
> > > >> +    { .compatible = "mediatek,mt8173-hdmi",
> > > >> +      .data = &mtk_hdmi_conf_mt8173,
> > >
> > > We don't have any data? Then we should set data to NULL instead.
> >
> > My design is data would not be NULL, so I need not to check whether it
> > is NULL in driver.
> But we don't need .data for mt8173, it's better to set it to NULL.

OK, in the view of reducing the code size, setting it to NULL would
make code size smaller.
I would modify this in next version.

Regards,
Chun-Kuang.

>
> >
> > Regards,
> > CK
> >
> > >
> > > Regards,
> > > Matthias
> > >
> > > >> +    },
> > > >>      {}
> > > >>  };
> > > >>
> > > >> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
> > > >> index 2d8b3182470d..fc1c2efd1128 100644
> > > >> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
> > > >> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
> > > >> @@ -20,7 +20,6 @@
> > > >>  struct mtk_hdmi_phy;
> > > >>
> > > >>  struct mtk_hdmi_phy_conf {
> > > >> -    bool tz_disabled;
> > > >>      unsigned long flags;
> > > >>      const struct clk_ops *hdmi_phy_clk_ops;
> > > >>      void (*hdmi_phy_enable_tmds)(struct mtk_hdmi_phy *hdmi_phy);
> > > >> diff --git a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c b/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
> > > >> index d3cc4022e988..99fe05cd3598 100644
> > > >> --- a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
> > > >> +++ b/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
> > > >> @@ -237,7 +237,6 @@ static void mtk_hdmi_phy_disable_tmds(struct mtk_hdmi_phy *hdmi_phy)
> > > >>  }
> > > >>
> > > >>  struct mtk_hdmi_phy_conf mtk_hdmi_phy_2701_conf = {
> > > >> -    .tz_disabled = true,
> > > >>      .flags = CLK_SET_RATE_GATE,
> > > >>      .hdmi_phy_clk_ops = &mtk_hdmi_phy_pll_ops,
> > > >>      .hdmi_phy_enable_tmds = mtk_hdmi_phy_enable_tmds,
> > > >
> > > > Reviewed-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
> > > >
>

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

end of thread, other threads:[~2020-04-03 15:23 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-31 15:57 [PATCH v3 0/4] Move Mediatek HDMI PHY driver from DRM folder to PHY folder Chun-Kuang Hu
2020-03-31 15:57 ` [PATCH v3 1/4] drm/mediatek: Move tz_disabled from mtk_hdmi_phy to mtk_hdmi driver Chun-Kuang Hu
2020-04-01  2:16   ` Chunfeng Yun
2020-04-01 15:53     ` Matthias Brugger
2020-04-02 12:49       ` Chun-Kuang Hu
2020-04-03  2:59         ` Chunfeng Yun
2020-04-03 15:22           ` Chun-Kuang Hu
2020-03-31 15:57 ` [PATCH v3 2/4] drm/mediatek: Separate mtk_hdmi_phy to an independent module Chun-Kuang Hu
2020-04-01  2:20   ` Chunfeng Yun
2020-03-31 15:57 ` [PATCH v3 3/4] phy: mediatek: Move mtk_hdmi_phy driver into drivers/phy/mediatek folder Chun-Kuang Hu
2020-04-01  2:18   ` Chunfeng Yun
2020-04-01 16:04   ` Matthias Brugger
2020-03-31 15:57 ` [PATCH v3 4/4] MAINTAINERS: add files for Mediatek DRM drivers Chun-Kuang Hu
2020-04-01 16:05   ` 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).