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, enric.balletbo@collabora.com
Cc: sean.wang@mediatek.com, sean.wang@kernel.org,
	rdunlap@infradead.org, wens@csie.org, hsinyi@chromium.org,
	frank-w@public-files.de, drinkcat@chromium.org,
	linux-media@vger.kernel.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, mbrugger@suse.com
Subject: [PATCH v6 10/12] clk: mediatek: mt8183: switch mmsys to platform device probing
Date: Sat,  7 Dec 2019 23:23:47 +0100	[thread overview]
Message-ID: <20191207222349.23161-11-matthias.bgg@kernel.org> (raw)
In-Reply-To: <20191207222349.23161-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.

Singed-off-by: Matthias Brugger <mbrugger@suse.com>
---
 drivers/clk/mediatek/clk-mt8183-mm.c | 39 +++++++++++++++++++---------
 1 file changed, 27 insertions(+), 12 deletions(-)

diff --git a/drivers/clk/mediatek/clk-mt8183-mm.c b/drivers/clk/mediatek/clk-mt8183-mm.c
index 720c696b506d..e6dcad18d81a 100644
--- a/drivers/clk/mediatek/clk-mt8183-mm.c
+++ b/drivers/clk/mediatek/clk-mt8183-mm.c
@@ -3,14 +3,20 @@
 // Copyright (c) 2018 MediaTek Inc.
 // Author: Weiyi Lu <weiyi.lu@mediatek.com>
 
+#include <linux/module.h>
 #include <linux/clk-provider.h>
 #include <linux/platform_device.h>
+#include <linux/slab.h>
 
 #include "clk-mtk.h"
 #include "clk-gate.h"
 
 #include <dt-bindings/clock/mt8183-clk.h>
 
+struct clk_mt8183_mm_priv {
+	struct clk_onecell_data *clk_data;
+};
+
 static const struct mtk_gate_regs mm0_cg_regs = {
 	.set_ofs = 0x104,
 	.clr_ofs = 0x108,
@@ -84,28 +90,37 @@ static const struct mtk_gate mm_clks[] = {
 
 static int clk_mt8183_mm_probe(struct platform_device *pdev)
 {
-	struct clk_onecell_data *clk_data;
-	struct device_node *node = pdev->dev.of_node;
+	struct clk_mt8183_mm_priv *private;
+	struct device_node *node = pdev->dev.parent->of_node;
+
+	private = devm_kzalloc(&pdev->dev, sizeof(*private), GFP_KERNEL);
+	if (!private)
+		return -ENOMEM;
 
-	clk_data = mtk_alloc_clk_data(CLK_MM_NR_CLK);
+	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);
 
-	return of_clk_add_provider(node, of_clk_src_onecell_get, clk_data);
+	return of_clk_add_provider(node, of_clk_src_onecell_get,
+			private->clk_data);
 }
 
-static const struct of_device_id of_match_clk_mt8183_mm[] = {
-	{ .compatible = "mediatek,mt8183-mmsys", },
-	{}
-};
+static int clk_mt8183_mm_remove(struct platform_device *pdev)
+{
+	struct clk_mt8183_mm_priv *private = platform_get_drvdata(pdev);
+
+	kfree(private->clk_data);
+
+	return 0;
+}
 
 static struct platform_driver clk_mt8183_mm_drv = {
 	.probe = clk_mt8183_mm_probe,
+	.remove = clk_mt8183_mm_remove,
 	.driver = {
 		.name = "clk-mt8183-mm",
-		.of_match_table = of_match_clk_mt8183_mm,
 	},
 };
-
-builtin_platform_driver(clk_mt8183_mm_drv);
+module_platform_driver(clk_mt8183_mm_drv);
-- 
2.24.0


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, enric.balletbo@collabora.com
Cc: devicetree@vger.kernel.org, rdunlap@infradead.org,
	frank-w@public-files.de, sean.wang@mediatek.com,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	sean.wang@kernel.org, wens@csie.org, drinkcat@chromium.org,
	linux-mediatek@lists.infradead.org, mbrugger@suse.com,
	hsinyi@chromium.org, linux-clk@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-media@vger.kernel.org
Subject: [PATCH v6 10/12] clk: mediatek: mt8183: switch mmsys to platform device probing
Date: Sat,  7 Dec 2019 23:23:47 +0100	[thread overview]
Message-ID: <20191207222349.23161-11-matthias.bgg@kernel.org> (raw)
In-Reply-To: <20191207222349.23161-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.

Singed-off-by: Matthias Brugger <mbrugger@suse.com>
---
 drivers/clk/mediatek/clk-mt8183-mm.c | 39 +++++++++++++++++++---------
 1 file changed, 27 insertions(+), 12 deletions(-)

diff --git a/drivers/clk/mediatek/clk-mt8183-mm.c b/drivers/clk/mediatek/clk-mt8183-mm.c
index 720c696b506d..e6dcad18d81a 100644
--- a/drivers/clk/mediatek/clk-mt8183-mm.c
+++ b/drivers/clk/mediatek/clk-mt8183-mm.c
@@ -3,14 +3,20 @@
 // Copyright (c) 2018 MediaTek Inc.
 // Author: Weiyi Lu <weiyi.lu@mediatek.com>
 
+#include <linux/module.h>
 #include <linux/clk-provider.h>
 #include <linux/platform_device.h>
+#include <linux/slab.h>
 
 #include "clk-mtk.h"
 #include "clk-gate.h"
 
 #include <dt-bindings/clock/mt8183-clk.h>
 
+struct clk_mt8183_mm_priv {
+	struct clk_onecell_data *clk_data;
+};
+
 static const struct mtk_gate_regs mm0_cg_regs = {
 	.set_ofs = 0x104,
 	.clr_ofs = 0x108,
@@ -84,28 +90,37 @@ static const struct mtk_gate mm_clks[] = {
 
 static int clk_mt8183_mm_probe(struct platform_device *pdev)
 {
-	struct clk_onecell_data *clk_data;
-	struct device_node *node = pdev->dev.of_node;
+	struct clk_mt8183_mm_priv *private;
+	struct device_node *node = pdev->dev.parent->of_node;
+
+	private = devm_kzalloc(&pdev->dev, sizeof(*private), GFP_KERNEL);
+	if (!private)
+		return -ENOMEM;
 
-	clk_data = mtk_alloc_clk_data(CLK_MM_NR_CLK);
+	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);
 
-	return of_clk_add_provider(node, of_clk_src_onecell_get, clk_data);
+	return of_clk_add_provider(node, of_clk_src_onecell_get,
+			private->clk_data);
 }
 
-static const struct of_device_id of_match_clk_mt8183_mm[] = {
-	{ .compatible = "mediatek,mt8183-mmsys", },
-	{}
-};
+static int clk_mt8183_mm_remove(struct platform_device *pdev)
+{
+	struct clk_mt8183_mm_priv *private = platform_get_drvdata(pdev);
+
+	kfree(private->clk_data);
+
+	return 0;
+}
 
 static struct platform_driver clk_mt8183_mm_drv = {
 	.probe = clk_mt8183_mm_probe,
+	.remove = clk_mt8183_mm_remove,
 	.driver = {
 		.name = "clk-mt8183-mm",
-		.of_match_table = of_match_clk_mt8183_mm,
 	},
 };
-
-builtin_platform_driver(clk_mt8183_mm_drv);
+module_platform_driver(clk_mt8183_mm_drv);
-- 
2.24.0


_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

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, enric.balletbo@collabora.com
Cc: devicetree@vger.kernel.org, rdunlap@infradead.org,
	frank-w@public-files.de, sean.wang@mediatek.com,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	sean.wang@kernel.org, wens@csie.org, drinkcat@chromium.org,
	linux-mediatek@lists.infradead.org, mbrugger@suse.com,
	hsinyi@chromium.org, linux-clk@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-media@vger.kernel.org
Subject: [PATCH v6 10/12] clk: mediatek: mt8183: switch mmsys to platform device probing
Date: Sat,  7 Dec 2019 23:23:47 +0100	[thread overview]
Message-ID: <20191207222349.23161-11-matthias.bgg@kernel.org> (raw)
In-Reply-To: <20191207222349.23161-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.

Singed-off-by: Matthias Brugger <mbrugger@suse.com>
---
 drivers/clk/mediatek/clk-mt8183-mm.c | 39 +++++++++++++++++++---------
 1 file changed, 27 insertions(+), 12 deletions(-)

diff --git a/drivers/clk/mediatek/clk-mt8183-mm.c b/drivers/clk/mediatek/clk-mt8183-mm.c
index 720c696b506d..e6dcad18d81a 100644
--- a/drivers/clk/mediatek/clk-mt8183-mm.c
+++ b/drivers/clk/mediatek/clk-mt8183-mm.c
@@ -3,14 +3,20 @@
 // Copyright (c) 2018 MediaTek Inc.
 // Author: Weiyi Lu <weiyi.lu@mediatek.com>
 
+#include <linux/module.h>
 #include <linux/clk-provider.h>
 #include <linux/platform_device.h>
+#include <linux/slab.h>
 
 #include "clk-mtk.h"
 #include "clk-gate.h"
 
 #include <dt-bindings/clock/mt8183-clk.h>
 
+struct clk_mt8183_mm_priv {
+	struct clk_onecell_data *clk_data;
+};
+
 static const struct mtk_gate_regs mm0_cg_regs = {
 	.set_ofs = 0x104,
 	.clr_ofs = 0x108,
@@ -84,28 +90,37 @@ static const struct mtk_gate mm_clks[] = {
 
 static int clk_mt8183_mm_probe(struct platform_device *pdev)
 {
-	struct clk_onecell_data *clk_data;
-	struct device_node *node = pdev->dev.of_node;
+	struct clk_mt8183_mm_priv *private;
+	struct device_node *node = pdev->dev.parent->of_node;
+
+	private = devm_kzalloc(&pdev->dev, sizeof(*private), GFP_KERNEL);
+	if (!private)
+		return -ENOMEM;
 
-	clk_data = mtk_alloc_clk_data(CLK_MM_NR_CLK);
+	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);
 
-	return of_clk_add_provider(node, of_clk_src_onecell_get, clk_data);
+	return of_clk_add_provider(node, of_clk_src_onecell_get,
+			private->clk_data);
 }
 
-static const struct of_device_id of_match_clk_mt8183_mm[] = {
-	{ .compatible = "mediatek,mt8183-mmsys", },
-	{}
-};
+static int clk_mt8183_mm_remove(struct platform_device *pdev)
+{
+	struct clk_mt8183_mm_priv *private = platform_get_drvdata(pdev);
+
+	kfree(private->clk_data);
+
+	return 0;
+}
 
 static struct platform_driver clk_mt8183_mm_drv = {
 	.probe = clk_mt8183_mm_probe,
+	.remove = clk_mt8183_mm_remove,
 	.driver = {
 		.name = "clk-mt8183-mm",
-		.of_match_table = of_match_clk_mt8183_mm,
 	},
 };
-
-builtin_platform_driver(clk_mt8183_mm_drv);
+module_platform_driver(clk_mt8183_mm_drv);
-- 
2.24.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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, enric.balletbo@collabora.com
Cc: devicetree@vger.kernel.org, rdunlap@infradead.org,
	frank-w@public-files.de, sean.wang@mediatek.com,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	sean.wang@kernel.org, wens@csie.org, drinkcat@chromium.org,
	linux-mediatek@lists.infradead.org, mbrugger@suse.com,
	hsinyi@chromium.org, linux-clk@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-media@vger.kernel.org
Subject: [PATCH v6 10/12] clk: mediatek: mt8183: switch mmsys to platform device probing
Date: Sat,  7 Dec 2019 23:23:47 +0100	[thread overview]
Message-ID: <20191207222349.23161-11-matthias.bgg@kernel.org> (raw)
In-Reply-To: <20191207222349.23161-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.

Singed-off-by: Matthias Brugger <mbrugger@suse.com>
---
 drivers/clk/mediatek/clk-mt8183-mm.c | 39 +++++++++++++++++++---------
 1 file changed, 27 insertions(+), 12 deletions(-)

diff --git a/drivers/clk/mediatek/clk-mt8183-mm.c b/drivers/clk/mediatek/clk-mt8183-mm.c
index 720c696b506d..e6dcad18d81a 100644
--- a/drivers/clk/mediatek/clk-mt8183-mm.c
+++ b/drivers/clk/mediatek/clk-mt8183-mm.c
@@ -3,14 +3,20 @@
 // Copyright (c) 2018 MediaTek Inc.
 // Author: Weiyi Lu <weiyi.lu@mediatek.com>
 
+#include <linux/module.h>
 #include <linux/clk-provider.h>
 #include <linux/platform_device.h>
+#include <linux/slab.h>
 
 #include "clk-mtk.h"
 #include "clk-gate.h"
 
 #include <dt-bindings/clock/mt8183-clk.h>
 
+struct clk_mt8183_mm_priv {
+	struct clk_onecell_data *clk_data;
+};
+
 static const struct mtk_gate_regs mm0_cg_regs = {
 	.set_ofs = 0x104,
 	.clr_ofs = 0x108,
@@ -84,28 +90,37 @@ static const struct mtk_gate mm_clks[] = {
 
 static int clk_mt8183_mm_probe(struct platform_device *pdev)
 {
-	struct clk_onecell_data *clk_data;
-	struct device_node *node = pdev->dev.of_node;
+	struct clk_mt8183_mm_priv *private;
+	struct device_node *node = pdev->dev.parent->of_node;
+
+	private = devm_kzalloc(&pdev->dev, sizeof(*private), GFP_KERNEL);
+	if (!private)
+		return -ENOMEM;
 
-	clk_data = mtk_alloc_clk_data(CLK_MM_NR_CLK);
+	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);
 
-	return of_clk_add_provider(node, of_clk_src_onecell_get, clk_data);
+	return of_clk_add_provider(node, of_clk_src_onecell_get,
+			private->clk_data);
 }
 
-static const struct of_device_id of_match_clk_mt8183_mm[] = {
-	{ .compatible = "mediatek,mt8183-mmsys", },
-	{}
-};
+static int clk_mt8183_mm_remove(struct platform_device *pdev)
+{
+	struct clk_mt8183_mm_priv *private = platform_get_drvdata(pdev);
+
+	kfree(private->clk_data);
+
+	return 0;
+}
 
 static struct platform_driver clk_mt8183_mm_drv = {
 	.probe = clk_mt8183_mm_probe,
+	.remove = clk_mt8183_mm_remove,
 	.driver = {
 		.name = "clk-mt8183-mm",
-		.of_match_table = of_match_clk_mt8183_mm,
 	},
 };
-
-builtin_platform_driver(clk_mt8183_mm_drv);
+module_platform_driver(clk_mt8183_mm_drv);
-- 
2.24.0

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

  parent reply	other threads:[~2019-12-07 22:25 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-07 22:23 [PATCH v6 00/12] arm/arm64: mediatek: Fix mmsys device probing matthias.bgg
2019-12-07 22:23 ` matthias.bgg
2019-12-07 22:23 ` matthias.bgg
2019-12-07 22:23 ` matthias.bgg
2019-12-07 22:23 ` [PATCH v6 01/12] dt-bindings: display: mediatek: Add mmsys binding description matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23 ` [PATCH v6 02/12] dt-bindings: mediatek: Add compatible for mt7623 matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23 ` [PATCH v6 03/12] drm/mediatek: Use regmap for register access matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23 ` [PATCH v6 04/12] drm: mediatek: Omit warning on probe defers matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23 ` [PATCH v6 05/12] media: mtk-mdp: Check return value of of_clk_get matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23 ` [PATCH v6 06/12] clk: mediatek: mt2701: switch mmsys to platform device probing matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23 ` [PATCH v6 07/12] clk: mediatek: mt2712e: switch " matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23 ` [PATCH v6 08/12] clk: mediatek: mt6779: switch mmsys " matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23 ` [PATCH v6 09/12] clk: mediatek: mt6797: switch " matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23 ` matthias.bgg [this message]
2019-12-07 22:23   ` [PATCH v6 10/12] clk: mediatek: mt8183: switch mmsys " matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23 ` [PATCH v6 11/12] clk: mediatek: mt8173: " matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23 ` [PATCH v6 12/12] drm/mediatek: Add support for mmsys through a pdev matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg
2019-12-07 22:23   ` matthias.bgg

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=20191207222349.23161-11-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=drinkcat@chromium.org \
    --cc=enric.balletbo@collabora.com \
    --cc=frank-w@public-files.de \
    --cc=hsinyi@chromium.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-media@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=mark.rutland@arm.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.