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 03/12] clk: mediatek: mt8173: switch mmsys to platform device probing
Date: Fri, 16 Nov 2018 13:54:40 +0100	[thread overview]
Message-ID: <20181116125449.23581-4-matthias.bgg@kernel.org> (raw)
In-Reply-To: <20181116125449.23581-1-matthias.bgg@kernel.org>

From: Matthias Brugger <mbrugger@suse.com>

Switch probing for the MMSYS to support invocation to a
plain paltform device. The driver will be probed by the DRM subsystem.

Signed-off-by: Matthias Brugger <mbrugger@suse.com>
---
 drivers/clk/mediatek/clk-mt8173.c | 51 ++++++++++++++++++++++++++-----
 1 file changed, 44 insertions(+), 7 deletions(-)

diff --git a/drivers/clk/mediatek/clk-mt8173.c b/drivers/clk/mediatek/clk-mt8173.c
index 96c292c3e440..10b6a0251123 100644
--- a/drivers/clk/mediatek/clk-mt8173.c
+++ b/drivers/clk/mediatek/clk-mt8173.c
@@ -13,8 +13,11 @@
  */
 
 #include <linux/clk.h>
+#include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
 
 #include "clk-mtk.h"
 #include "clk-gate.h"
@@ -791,7 +794,7 @@ static const struct mtk_gate_regs mm1_cg_regs __initconst = {
 		.ops = &mtk_clk_gate_ops_setclr,		\
 	}
 
-static const struct mtk_gate mm_clks[] __initconst = {
+static const struct mtk_gate mm_clks[] = {
 	/* MM0 */
 	GATE_MM0(CLK_MM_SMI_COMMON, "mm_smi_common", "mm_sel", 0),
 	GATE_MM0(CLK_MM_SMI_LARB0, "mm_smi_larb0", "mm_sel", 1),
@@ -1152,22 +1155,56 @@ static void __init mtk_imgsys_init(struct device_node *node)
 }
 CLK_OF_DECLARE(mtk_imgsys, "mediatek,mt8173-imgsys", mtk_imgsys_init);
 
-static void __init mtk_mmsys_init(struct device_node *node)
-{
+struct mtk_mmsys_priv {
 	struct clk_onecell_data *clk_data;
+};
+
+static int mtk_mmsys_probe(struct platform_device *pdev)
+{
 	int r;
+	struct device_node *node;
+	struct mtk_mmsys_priv *private;
+
+	node = pdev->dev.parent->of_node;
 
-	clk_data = mtk_alloc_clk_data(CLK_MM_NR_CLK);
+	private = devm_kzalloc(&pdev->dev, sizeof(*private), GFP_KERNEL);
+	if (!private)
+		return -ENOMEM;
+
+	private->clk_data = mtk_alloc_clk_data(CLK_MM_NR_CLK);
+
+	platform_set_drvdata(pdev, private);
 
 	mtk_clk_register_gates(node, mm_clks, ARRAY_SIZE(mm_clks),
-						clk_data);
+					private->clk_data);
 
-	r = of_clk_add_provider(node, of_clk_src_onecell_get, clk_data);
+	r = of_clk_add_provider(node, of_clk_src_onecell_get,
+					private->clk_data);
 	if (r)
 		pr_err("%s(): could not register clock provider: %d\n",
 			__func__, r);
+
+	return r;
+}
+
+static int mtk_mmsys_remove(struct platform_device *pdev)
+{
+	struct mtk_mmsys_priv *private = platform_get_drvdata(pdev);
+
+	kfree(private->clk_data);
+	kfree(private);
+
+	return 0;
 }
-CLK_OF_DECLARE(mtk_mmsys, "mediatek,mt8173-mmsys", mtk_mmsys_init);
+
+static struct platform_driver clk_mt8173_mm_drv = {
+	.probe = mtk_mmsys_probe,
+	.probe = mtk_mmsys_remove,
+	.driver = {
+		.name = "clk-mt8173-mm",
+	},
+};
+module_platform_driver(clk_mt8173_mm_drv);
 
 static void __init mtk_vdecsys_init(struct device_node *node)
 {
-- 
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 03/12] clk: mediatek: mt8173: switch mmsys to platform device probing
Date: Fri, 16 Nov 2018 13:54:40 +0100	[thread overview]
Message-ID: <20181116125449.23581-4-matthias.bgg@kernel.org> (raw)
In-Reply-To: <20181116125449.23581-1-matthias.bgg@kernel.org>

From: Matthias Brugger <mbrugger@suse.com>

Switch probing for the MMSYS to support invocation to a
plain paltform device. The driver will be probed by the DRM subsystem.

Signed-off-by: Matthias Brugger <mbrugger@suse.com>
---
 drivers/clk/mediatek/clk-mt8173.c | 51 ++++++++++++++++++++++++++-----
 1 file changed, 44 insertions(+), 7 deletions(-)

diff --git a/drivers/clk/mediatek/clk-mt8173.c b/drivers/clk/mediatek/clk-mt8173.c
index 96c292c3e440..10b6a0251123 100644
--- a/drivers/clk/mediatek/clk-mt8173.c
+++ b/drivers/clk/mediatek/clk-mt8173.c
@@ -13,8 +13,11 @@
  */
 
 #include <linux/clk.h>
+#include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
 
 #include "clk-mtk.h"
 #include "clk-gate.h"
@@ -791,7 +794,7 @@ static const struct mtk_gate_regs mm1_cg_regs __initconst = {
 		.ops = &mtk_clk_gate_ops_setclr,		\
 	}
 
-static const struct mtk_gate mm_clks[] __initconst = {
+static const struct mtk_gate mm_clks[] = {
 	/* MM0 */
 	GATE_MM0(CLK_MM_SMI_COMMON, "mm_smi_common", "mm_sel", 0),
 	GATE_MM0(CLK_MM_SMI_LARB0, "mm_smi_larb0", "mm_sel", 1),
@@ -1152,22 +1155,56 @@ static void __init mtk_imgsys_init(struct device_node *node)
 }
 CLK_OF_DECLARE(mtk_imgsys, "mediatek,mt8173-imgsys", mtk_imgsys_init);
 
-static void __init mtk_mmsys_init(struct device_node *node)
-{
+struct mtk_mmsys_priv {
 	struct clk_onecell_data *clk_data;
+};
+
+static int mtk_mmsys_probe(struct platform_device *pdev)
+{
 	int r;
+	struct device_node *node;
+	struct mtk_mmsys_priv *private;
+
+	node = pdev->dev.parent->of_node;
 
-	clk_data = mtk_alloc_clk_data(CLK_MM_NR_CLK);
+	private = devm_kzalloc(&pdev->dev, sizeof(*private), GFP_KERNEL);
+	if (!private)
+		return -ENOMEM;
+
+	private->clk_data = mtk_alloc_clk_data(CLK_MM_NR_CLK);
+
+	platform_set_drvdata(pdev, private);
 
 	mtk_clk_register_gates(node, mm_clks, ARRAY_SIZE(mm_clks),
-						clk_data);
+					private->clk_data);
 
-	r = of_clk_add_provider(node, of_clk_src_onecell_get, clk_data);
+	r = of_clk_add_provider(node, of_clk_src_onecell_get,
+					private->clk_data);
 	if (r)
 		pr_err("%s(): could not register clock provider: %d\n",
 			__func__, r);
+
+	return r;
+}
+
+static int mtk_mmsys_remove(struct platform_device *pdev)
+{
+	struct mtk_mmsys_priv *private = platform_get_drvdata(pdev);
+
+	kfree(private->clk_data);
+	kfree(private);
+
+	return 0;
 }
-CLK_OF_DECLARE(mtk_mmsys, "mediatek,mt8173-mmsys", mtk_mmsys_init);
+
+static struct platform_driver clk_mt8173_mm_drv = {
+	.probe = mtk_mmsys_probe,
+	.probe = mtk_mmsys_remove,
+	.driver = {
+		.name = "clk-mt8173-mm",
+	},
+};
+module_platform_driver(clk_mt8173_mm_drv);
 
 static void __init mtk_vdecsys_init(struct device_node *node)
 {
-- 
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 03/12] clk: mediatek: mt8173: switch mmsys to platform device probing
Date: Fri, 16 Nov 2018 13:54:40 +0100	[thread overview]
Message-ID: <20181116125449.23581-4-matthias.bgg@kernel.org> (raw)
In-Reply-To: <20181116125449.23581-1-matthias.bgg@kernel.org>

From: Matthias Brugger <mbrugger@suse.com>

Switch probing for the MMSYS to support invocation to a
plain paltform device. The driver will be probed by the DRM subsystem.

Signed-off-by: Matthias Brugger <mbrugger@suse.com>
---
 drivers/clk/mediatek/clk-mt8173.c | 51 ++++++++++++++++++++++++++-----
 1 file changed, 44 insertions(+), 7 deletions(-)

diff --git a/drivers/clk/mediatek/clk-mt8173.c b/drivers/clk/mediatek/clk-mt8173.c
index 96c292c3e440..10b6a0251123 100644
--- a/drivers/clk/mediatek/clk-mt8173.c
+++ b/drivers/clk/mediatek/clk-mt8173.c
@@ -13,8 +13,11 @@
  */
 
 #include <linux/clk.h>
+#include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_address.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
 
 #include "clk-mtk.h"
 #include "clk-gate.h"
@@ -791,7 +794,7 @@ static const struct mtk_gate_regs mm1_cg_regs __initconst = {
 		.ops = &mtk_clk_gate_ops_setclr,		\
 	}
 
-static const struct mtk_gate mm_clks[] __initconst = {
+static const struct mtk_gate mm_clks[] = {
 	/* MM0 */
 	GATE_MM0(CLK_MM_SMI_COMMON, "mm_smi_common", "mm_sel", 0),
 	GATE_MM0(CLK_MM_SMI_LARB0, "mm_smi_larb0", "mm_sel", 1),
@@ -1152,22 +1155,56 @@ static void __init mtk_imgsys_init(struct device_node *node)
 }
 CLK_OF_DECLARE(mtk_imgsys, "mediatek,mt8173-imgsys", mtk_imgsys_init);
 
-static void __init mtk_mmsys_init(struct device_node *node)
-{
+struct mtk_mmsys_priv {
 	struct clk_onecell_data *clk_data;
+};
+
+static int mtk_mmsys_probe(struct platform_device *pdev)
+{
 	int r;
+	struct device_node *node;
+	struct mtk_mmsys_priv *private;
+
+	node = pdev->dev.parent->of_node;
 
-	clk_data = mtk_alloc_clk_data(CLK_MM_NR_CLK);
+	private = devm_kzalloc(&pdev->dev, sizeof(*private), GFP_KERNEL);
+	if (!private)
+		return -ENOMEM;
+
+	private->clk_data = mtk_alloc_clk_data(CLK_MM_NR_CLK);
+
+	platform_set_drvdata(pdev, private);
 
 	mtk_clk_register_gates(node, mm_clks, ARRAY_SIZE(mm_clks),
-						clk_data);
+					private->clk_data);
 
-	r = of_clk_add_provider(node, of_clk_src_onecell_get, clk_data);
+	r = of_clk_add_provider(node, of_clk_src_onecell_get,
+					private->clk_data);
 	if (r)
 		pr_err("%s(): could not register clock provider: %d\n",
 			__func__, r);
+
+	return r;
+}
+
+static int mtk_mmsys_remove(struct platform_device *pdev)
+{
+	struct mtk_mmsys_priv *private = platform_get_drvdata(pdev);
+
+	kfree(private->clk_data);
+	kfree(private);
+
+	return 0;
 }
-CLK_OF_DECLARE(mtk_mmsys, "mediatek,mt8173-mmsys", mtk_mmsys_init);
+
+static struct platform_driver clk_mt8173_mm_drv = {
+	.probe = mtk_mmsys_probe,
+	.probe = mtk_mmsys_remove,
+	.driver = {
+		.name = "clk-mt8173-mm",
+	},
+};
+module_platform_driver(clk_mt8173_mm_drv);
 
 static void __init mtk_vdecsys_init(struct device_node *node)
 {
-- 
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 ` matthias.bgg [this message]
2018-11-16 12:54   ` [PATCH v5 03/12] clk: mediatek: mt8173: switch mmsys " 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 ` [PATCH v5 04/12] drm/mediatek: Add support for mmsys through a pdev matthias.bgg
2018-11-16 12:54   ` 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-4-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.