All of lore.kernel.org
 help / color / mirror / Atom feed
From: matthias.bgg@kernel.org
To: robh+dt@kernel.org, mark.rutland@arm.com, ck.hu@mediatek.com,
	p.zabel@pengutronix.de, airlied@linux.ie,
	mturquette@baylibre.com, sboyd@codeaurora.org,
	ulrich.hecht+renesas@gmail.com,
	laurent.pinchart@ideasonboard.com, matthias.bgg@gmail.com
Cc: sean.wang@mediatek.com, sean.wang@kernel.org,
	rdunlap@infradead.org, wens@csie.org,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org, linux-clk@vger.kernel.org,
	devicetree@vger.kernel.org, Matthias Brugger <mbrugger@suse.com>
Subject: [PATCH v5 04/12] drm/mediatek: Add support for mmsys through a pdev
Date: Fri, 16 Nov 2018 13:54:41 +0100	[thread overview]
Message-ID: <20181116125449.23581-5-matthias.bgg@kernel.org> (raw)
In-Reply-To: <20181116125449.23581-1-matthias.bgg@kernel.org>

From: Matthias Brugger <mbrugger@suse.com>

The MMSYS subsystem includes clocks and drm components.
This patch adds an initailization path through a platform device
for the clock part, so that both drivers get probed from the same
device tree compatible.

Signed-off-by: Matthias Brugger <mbrugger@suse.com>
---
 drivers/gpu/drm/mediatek/mtk_drm_drv.c | 23 +++++++++++++++++++++++
 drivers/gpu/drm/mediatek/mtk_drm_drv.h |  2 ++
 2 files changed, 25 insertions(+)

diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index 99dd612a6683..18fc761ba94f 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -199,6 +199,7 @@ static const struct mtk_mmsys_driver_data mt2701_mmsys_driver_data = {
 	.ext_path = mt2701_mtk_ddp_ext,
 	.ext_len = ARRAY_SIZE(mt2701_mtk_ddp_ext),
 	.shadow_register = true,
+	.clk_drv_name = "clk-mt2701-mm",
 };
 
 static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data = {
@@ -215,6 +216,7 @@ static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
 	.main_len = ARRAY_SIZE(mt8173_mtk_ddp_main),
 	.ext_path = mt8173_mtk_ddp_ext,
 	.ext_len = ARRAY_SIZE(mt8173_mtk_ddp_ext),
+	.clk_drv_name = "clk-mt8173-mm",
 };
 
 static int mtk_drm_kms_init(struct drm_device *drm)
@@ -473,6 +475,24 @@ static int mtk_drm_probe(struct platform_device *pdev)
 	if (IS_ERR(private->config_regs))
 		return PTR_ERR(private->config_regs);
 
+	/*
+	 * For legacy reasons we need to probe the clock driver via
+	 * a platfomr device. This is outdated and should not be used
+	 * in newer SoCs.
+	 */
+	if (private->data->clk_drv_name) {
+		private->clk_dev = platform_device_register_data(dev,
+						private->data->clk_drv_name, -1,
+						NULL, 0);
+
+		if (IS_ERR(private->clk_dev)) {
+			pr_err("failed to register %s platform device\n",
+						private->data->clk_drv_name);
+
+			return PTR_ERR(private->clk_dev);
+		}
+	}
+
 	/* Iterate over sibling DISP function blocks */
 	for_each_child_of_node(dev->of_node->parent, node) {
 		const struct of_device_id *of_id;
@@ -577,6 +597,9 @@ static int mtk_drm_remove(struct platform_device *pdev)
 	for (i = 0; i < DDP_COMPONENT_ID_MAX; i++)
 		of_node_put(private->comp_node[i]);
 
+	if (private->clk_dev)
+		platform_device_unregister(private->clk_dev);
+
 	return 0;
 }
 
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h
index ab0adbd7d4ee..515ac4cae922 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h
@@ -37,11 +37,13 @@ struct mtk_mmsys_driver_data {
 	unsigned int third_len;
 
 	bool shadow_register;
+	const char *clk_drv_name;
 };
 
 struct mtk_drm_private {
 	struct drm_device *drm;
 	struct device *dma_dev;
+	struct platform_device *clk_dev;
 
 	unsigned int num_pipes;
 
-- 
2.19.1


WARNING: multiple messages have this Message-ID (diff)
From: matthias.bgg@kernel.org
To: robh+dt@kernel.org, mark.rutland@arm.com, ck.hu@mediatek.com,
	p.zabel@pengutronix.de, airlied@linux.ie,
	mturquette@baylibre.com, sboyd@codeaurora.org,
	ulrich.hecht+renesas@gmail.com,
	laurent.pinchart@ideasonboard.com, matthias.bgg@gmail.com
Cc: devicetree@vger.kernel.org, rdunlap@infradead.org,
	sean.wang@mediatek.com, linux-kernel@vger.kernel.org,
	dri-devel@lists.freedesktop.org, sean.wang@kernel.org,
	wens@csie.org, Matthias Brugger <mbrugger@suse.com>,
	linux-mediatek@lists.infradead.org, linux-clk@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 04/12] drm/mediatek: Add support for mmsys through a pdev
Date: Fri, 16 Nov 2018 13:54:41 +0100	[thread overview]
Message-ID: <20181116125449.23581-5-matthias.bgg@kernel.org> (raw)
In-Reply-To: <20181116125449.23581-1-matthias.bgg@kernel.org>

From: Matthias Brugger <mbrugger@suse.com>

The MMSYS subsystem includes clocks and drm components.
This patch adds an initailization path through a platform device
for the clock part, so that both drivers get probed from the same
device tree compatible.

Signed-off-by: Matthias Brugger <mbrugger@suse.com>
---
 drivers/gpu/drm/mediatek/mtk_drm_drv.c | 23 +++++++++++++++++++++++
 drivers/gpu/drm/mediatek/mtk_drm_drv.h |  2 ++
 2 files changed, 25 insertions(+)

diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index 99dd612a6683..18fc761ba94f 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -199,6 +199,7 @@ static const struct mtk_mmsys_driver_data mt2701_mmsys_driver_data = {
 	.ext_path = mt2701_mtk_ddp_ext,
 	.ext_len = ARRAY_SIZE(mt2701_mtk_ddp_ext),
 	.shadow_register = true,
+	.clk_drv_name = "clk-mt2701-mm",
 };
 
 static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data = {
@@ -215,6 +216,7 @@ static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
 	.main_len = ARRAY_SIZE(mt8173_mtk_ddp_main),
 	.ext_path = mt8173_mtk_ddp_ext,
 	.ext_len = ARRAY_SIZE(mt8173_mtk_ddp_ext),
+	.clk_drv_name = "clk-mt8173-mm",
 };
 
 static int mtk_drm_kms_init(struct drm_device *drm)
@@ -473,6 +475,24 @@ static int mtk_drm_probe(struct platform_device *pdev)
 	if (IS_ERR(private->config_regs))
 		return PTR_ERR(private->config_regs);
 
+	/*
+	 * For legacy reasons we need to probe the clock driver via
+	 * a platfomr device. This is outdated and should not be used
+	 * in newer SoCs.
+	 */
+	if (private->data->clk_drv_name) {
+		private->clk_dev = platform_device_register_data(dev,
+						private->data->clk_drv_name, -1,
+						NULL, 0);
+
+		if (IS_ERR(private->clk_dev)) {
+			pr_err("failed to register %s platform device\n",
+						private->data->clk_drv_name);
+
+			return PTR_ERR(private->clk_dev);
+		}
+	}
+
 	/* Iterate over sibling DISP function blocks */
 	for_each_child_of_node(dev->of_node->parent, node) {
 		const struct of_device_id *of_id;
@@ -577,6 +597,9 @@ static int mtk_drm_remove(struct platform_device *pdev)
 	for (i = 0; i < DDP_COMPONENT_ID_MAX; i++)
 		of_node_put(private->comp_node[i]);
 
+	if (private->clk_dev)
+		platform_device_unregister(private->clk_dev);
+
 	return 0;
 }
 
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h
index ab0adbd7d4ee..515ac4cae922 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h
@@ -37,11 +37,13 @@ struct mtk_mmsys_driver_data {
 	unsigned int third_len;
 
 	bool shadow_register;
+	const char *clk_drv_name;
 };
 
 struct mtk_drm_private {
 	struct drm_device *drm;
 	struct device *dma_dev;
+	struct platform_device *clk_dev;
 
 	unsigned int num_pipes;
 
-- 
2.19.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

WARNING: multiple messages have this Message-ID (diff)
From: matthias.bgg@kernel.org (matthias.bgg at kernel.org)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 04/12] drm/mediatek: Add support for mmsys through a pdev
Date: Fri, 16 Nov 2018 13:54:41 +0100	[thread overview]
Message-ID: <20181116125449.23581-5-matthias.bgg@kernel.org> (raw)
In-Reply-To: <20181116125449.23581-1-matthias.bgg@kernel.org>

From: Matthias Brugger <mbrugger@suse.com>

The MMSYS subsystem includes clocks and drm components.
This patch adds an initailization path through a platform device
for the clock part, so that both drivers get probed from the same
device tree compatible.

Signed-off-by: Matthias Brugger <mbrugger@suse.com>
---
 drivers/gpu/drm/mediatek/mtk_drm_drv.c | 23 +++++++++++++++++++++++
 drivers/gpu/drm/mediatek/mtk_drm_drv.h |  2 ++
 2 files changed, 25 insertions(+)

diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index 99dd612a6683..18fc761ba94f 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -199,6 +199,7 @@ static const struct mtk_mmsys_driver_data mt2701_mmsys_driver_data = {
 	.ext_path = mt2701_mtk_ddp_ext,
 	.ext_len = ARRAY_SIZE(mt2701_mtk_ddp_ext),
 	.shadow_register = true,
+	.clk_drv_name = "clk-mt2701-mm",
 };
 
 static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data = {
@@ -215,6 +216,7 @@ static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
 	.main_len = ARRAY_SIZE(mt8173_mtk_ddp_main),
 	.ext_path = mt8173_mtk_ddp_ext,
 	.ext_len = ARRAY_SIZE(mt8173_mtk_ddp_ext),
+	.clk_drv_name = "clk-mt8173-mm",
 };
 
 static int mtk_drm_kms_init(struct drm_device *drm)
@@ -473,6 +475,24 @@ static int mtk_drm_probe(struct platform_device *pdev)
 	if (IS_ERR(private->config_regs))
 		return PTR_ERR(private->config_regs);
 
+	/*
+	 * For legacy reasons we need to probe the clock driver via
+	 * a platfomr device. This is outdated and should not be used
+	 * in newer SoCs.
+	 */
+	if (private->data->clk_drv_name) {
+		private->clk_dev = platform_device_register_data(dev,
+						private->data->clk_drv_name, -1,
+						NULL, 0);
+
+		if (IS_ERR(private->clk_dev)) {
+			pr_err("failed to register %s platform device\n",
+						private->data->clk_drv_name);
+
+			return PTR_ERR(private->clk_dev);
+		}
+	}
+
 	/* Iterate over sibling DISP function blocks */
 	for_each_child_of_node(dev->of_node->parent, node) {
 		const struct of_device_id *of_id;
@@ -577,6 +597,9 @@ static int mtk_drm_remove(struct platform_device *pdev)
 	for (i = 0; i < DDP_COMPONENT_ID_MAX; i++)
 		of_node_put(private->comp_node[i]);
 
+	if (private->clk_dev)
+		platform_device_unregister(private->clk_dev);
+
 	return 0;
 }
 
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h
index ab0adbd7d4ee..515ac4cae922 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h
@@ -37,11 +37,13 @@ struct mtk_mmsys_driver_data {
 	unsigned int third_len;
 
 	bool shadow_register;
+	const char *clk_drv_name;
 };
 
 struct mtk_drm_private {
 	struct drm_device *drm;
 	struct device *dma_dev;
+	struct platform_device *clk_dev;
 
 	unsigned int num_pipes;
 
-- 
2.19.1

  parent reply	other threads:[~2018-11-16 12:55 UTC|newest]

Thread overview: 109+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-16 12:54 [PATCH v5 00/12] arm/arm64: mediatek: Fix mmsys device probing matthias.bgg
2018-11-16 12:54 ` matthias.bgg at kernel.org
2018-11-16 12:54 ` [PATCH v5 01/12] drm/mediatek: Use regmap for register access matthias.bgg
2018-11-16 12:54   ` matthias.bgg at kernel.org
2018-11-16 12:54 ` [PATCH v5 02/12] clk: mediatek: mt2701-mmsys: switch to platform device probing matthias.bgg
2018-11-16 12:54   ` matthias.bgg at kernel.org
2018-11-16 12:54   ` matthias.bgg
2018-11-16 12:54 ` [PATCH v5 03/12] clk: mediatek: mt8173: switch mmsys " matthias.bgg
2018-11-16 12:54   ` matthias.bgg at kernel.org
2018-11-16 12:54   ` matthias.bgg
2019-10-31  4:17   ` Hsin-Yi Wang
2019-10-31  4:17     ` Hsin-Yi Wang
2019-10-31  4:17     ` Hsin-Yi Wang
2019-10-31  4:17     ` Hsin-Yi Wang
2019-10-31  4:17     ` Hsin-Yi Wang
2019-11-04 11:14     ` Matthias Brugger
2019-11-04 11:14       ` Matthias Brugger
2019-11-04 11:14       ` Matthias Brugger
2019-11-04 11:14       ` Matthias Brugger
2019-11-04 11:14       ` Matthias Brugger
2018-11-16 12:54 ` matthias.bgg [this message]
2018-11-16 12:54   ` [PATCH v5 04/12] drm/mediatek: Add support for mmsys through a pdev matthias.bgg at kernel.org
2018-11-16 12:54   ` matthias.bgg
2018-11-19  5:54   ` CK Hu
2018-11-19  5:54     ` CK Hu
2018-11-19  5:54     ` CK Hu
2018-11-16 12:54 ` [PATCH v5 05/12] drm: mediatek: Omit warning on probe defers matthias.bgg
2018-11-16 12:54   ` matthias.bgg at kernel.org
2018-11-16 12:54   ` matthias.bgg
2018-11-19  5:38   ` CK Hu
2018-11-19  5:38     ` CK Hu
2018-11-19  5:38     ` CK Hu
2018-11-19  9:26     ` Matthias Brugger
2018-11-19  9:26       ` Matthias Brugger
2018-11-20  4:05       ` CK Hu
2018-11-20  4:05         ` CK Hu
2018-11-20  4:05         ` CK Hu
2018-11-20  4:09         ` CK Hu
2018-11-20  4:09           ` CK Hu
2018-11-20  4:09           ` CK Hu
2018-11-20  8:26           ` Aw: Re: [PATCH v5 05/12] drm: mediatek Frank Wunderlich
2018-11-20  8:26             ` Frank Wunderlich
2018-11-20 10:14             ` Matthias Brugger
2018-11-20 10:14               ` Matthias Brugger
2018-11-20 10:34               ` Aw: " Frank Wunderlich
2018-11-20 10:34                 ` Frank Wunderlich
2018-11-20 11:39                 ` Matthias Brugger
2018-11-20 11:39                   ` Matthias Brugger
2018-11-20 10:19         ` [PATCH v5 05/12] drm: mediatek: Omit warning on probe defers Matthias Brugger
2018-11-20 10:19           ` Matthias Brugger
2018-11-20 10:23           ` CK Hu
2018-11-20 10:23             ` CK Hu
2018-11-20 10:23             ` CK Hu
2018-11-16 12:54 ` [PATCH v5 06/12] drm/mediatek: update dt-bindings matthias.bgg
2018-11-16 12:54   ` matthias.bgg at kernel.org
2018-11-16 12:54   ` matthias.bgg
2018-11-16 23:06   ` Rob Herring
2018-11-16 23:06     ` Rob Herring
2018-11-16 12:54 ` [PATCH v5 07/12] dt-bindings: clock: mediatek: delete mmsys clocks matthias.bgg
2018-11-16 12:54   ` matthias.bgg at kernel.org
2018-11-16 12:54   ` matthias.bgg
2018-11-16 23:07   ` Rob Herring
2018-11-16 23:07     ` Rob Herring
2018-11-16 12:54 ` [PATCH v5 08/12] dt-bindings: mediatek: Change the binding for " matthias.bgg
2018-11-16 12:54   ` matthias.bgg at kernel.org
2018-11-16 12:54   ` matthias.bgg
2018-11-16 23:15   ` Rob Herring
2018-11-16 23:15     ` Rob Herring
2018-11-16 23:15     ` Rob Herring
2018-11-18 17:12     ` Matthias Brugger
2018-11-18 17:12       ` Matthias Brugger
2018-11-19 19:15       ` Rob Herring
2018-11-19 19:15         ` Rob Herring
2018-11-19 19:15         ` Rob Herring
2018-11-21 16:46         ` Stephen Boyd
2018-11-21 16:46           ` Stephen Boyd
2018-11-21 16:46           ` Stephen Boyd
2018-11-21 17:09           ` Matthias Brugger
2018-11-21 17:09             ` Matthias Brugger
2018-11-21 17:09             ` Matthias Brugger
2018-11-30  6:43             ` Stephen Boyd
2018-11-30  6:43               ` Stephen Boyd
2018-11-30  6:43               ` Stephen Boyd
2018-11-30  8:59               ` Matthias Brugger
2018-11-30  8:59                 ` Matthias Brugger
2018-11-30  8:59                 ` Matthias Brugger
2019-07-01  3:55                 ` CK Hu
2019-07-01  3:55                   ` CK Hu
2019-07-01  3:55                   ` CK Hu
2019-07-04  9:08                   ` Matthias Brugger
2019-07-04  9:08                     ` Matthias Brugger
2019-07-04  9:08                     ` Matthias Brugger
2019-07-04 15:33                     ` Ulrich Hecht
2019-07-04 15:33                       ` Ulrich Hecht
2019-07-04 15:33                       ` Ulrich Hecht
2019-07-05  1:35                       ` CK Hu
2019-07-05  1:35                         ` CK Hu
2019-07-05  1:35                         ` CK Hu
2019-07-05 10:13                         ` Matthias Brugger
2019-07-05 10:13                           ` Matthias Brugger
2018-11-16 12:54 ` [PATCH v5 09/12] arm64: dts: mt2712e: Use the new mmsys clock compatible matthias.bgg
2018-11-16 12:54   ` matthias.bgg at kernel.org
2018-11-16 12:54 ` [PATCH v5 10/12] arm64: dts: mt6797: " matthias.bgg
2018-11-16 12:54   ` matthias.bgg at kernel.org
2018-11-16 12:54 ` [PATCH v5 11/12] clk: mediatek: mt2712e: Probe with new compatible matthias.bgg
2018-11-16 12:54   ` matthias.bgg at kernel.org
2018-11-16 12:54   ` matthias.bgg
2018-11-16 12:54 ` [PATCH v5 12/12] clk: mediatek: mt6797: " matthias.bgg
2018-11-16 12:54   ` matthias.bgg at kernel.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181116125449.23581-5-matthias.bgg@kernel.org \
    --to=matthias.bgg@kernel.org \
    --cc=airlied@linux.ie \
    --cc=ck.hu@mediatek.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=mark.rutland@arm.com \
    --cc=matthias.bgg@gmail.com \
    --cc=mbrugger@suse.com \
    --cc=mturquette@baylibre.com \
    --cc=p.zabel@pengutronix.de \
    --cc=rdunlap@infradead.org \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@codeaurora.org \
    --cc=sean.wang@kernel.org \
    --cc=sean.wang@mediatek.com \
    --cc=ulrich.hecht+renesas@gmail.com \
    --cc=wens@csie.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.