From: Jagan Teki <jagan@amarulasolutions.com>
To: Maxime Ripard <maxime.ripard@free-electrons.com>,
Chen-Yu Tsai <wens@csie.org>, Icenowy Zheng <icenowy@aosc.io>,
Jernej Skrabec <jernej.skrabec@siol.net>,
Vasily Khoruzhick <anarsoul@gmail.com>,
Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will.deacon@arm.com>,
David Airlie <airlied@linux.ie>,
dri-devel@lists.freedesktop.org,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>,
linux-clk@vger.kernel.org,
Michael Trimarchi <michael@amarulasolutions.com>,
linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com
Cc: Jagan Teki <jagan@amarulasolutions.com>
Subject: [PATCH 02/12] drm/sun4i: sun6i_mipi_dsi: Add Allwinner A64 MIPI DSI support
Date: Thu, 27 Sep 2018 17:18:40 +0530 [thread overview]
Message-ID: <20180927114850.24565-3-jagan@amarulasolutions.com> (raw)
In-Reply-To: <20180927114850.24565-1-jagan@amarulasolutions.com>
The MIPI DSI controller on Allwinner A64 is similar to
Allwinner A31 without support of DSI mod clock(CLK_DSI_SCLK)
So, alter has_mod_clk bool via driver data for respective
SoC's compatible.
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 47 ++++++++++++++++++++------
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h | 5 +++
2 files changed, 41 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
index e3b34a345546..8e9c76febca2 100644
--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
+++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
@@ -10,6 +10,7 @@
#include <linux/component.h>
#include <linux/crc-ccitt.h>
#include <linux/of_address.h>
+#include <linux/of_device.h>
#include <linux/pm_runtime.h>
#include <linux/regmap.h>
#include <linux/reset.h>
@@ -981,6 +982,8 @@ static int sun6i_dsi_probe(struct platform_device *pdev)
dsi->host.ops = &sun6i_dsi_host_ops;
dsi->host.dev = dev;
+ dsi->variant = of_device_get_match_data(dev);
+
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
base = devm_ioremap_resource(dev, res);
if (IS_ERR(base)) {
@@ -1001,17 +1004,20 @@ static int sun6i_dsi_probe(struct platform_device *pdev)
return PTR_ERR(dsi->reset);
}
- dsi->mod_clk = devm_clk_get(dev, "mod");
- if (IS_ERR(dsi->mod_clk)) {
- dev_err(dev, "Couldn't get the DSI mod clock\n");
- return PTR_ERR(dsi->mod_clk);
+ if (dsi->variant->has_mod_clk) {
+ dsi->mod_clk = devm_clk_get(dev, "mod");
+ if (IS_ERR(dsi->mod_clk)) {
+ dev_err(dev, "Couldn't get the DSI mod clock\n");
+ return PTR_ERR(dsi->mod_clk);
+ }
}
/*
* In order to operate properly, that clock seems to be always
* set to 297MHz.
*/
- clk_set_rate_exclusive(dsi->mod_clk, 297000000);
+ if (dsi->variant->has_mod_clk)
+ clk_set_rate_exclusive(dsi->mod_clk, 297000000);
dphy_node = of_parse_phandle(dev->of_node, "phys", 0);
ret = sun6i_dphy_probe(dsi, dphy_node);
@@ -1043,7 +1049,8 @@ static int sun6i_dsi_probe(struct platform_device *pdev)
pm_runtime_disable(dev);
sun6i_dphy_remove(dsi);
err_unprotect_clk:
- clk_rate_exclusive_put(dsi->mod_clk);
+ if (dsi->variant->has_mod_clk)
+ clk_rate_exclusive_put(dsi->mod_clk);
return ret;
}
@@ -1056,7 +1063,8 @@ static int sun6i_dsi_remove(struct platform_device *pdev)
mipi_dsi_host_unregister(&dsi->host);
pm_runtime_disable(dev);
sun6i_dphy_remove(dsi);
- clk_rate_exclusive_put(dsi->mod_clk);
+ if (dsi->variant->has_mod_clk)
+ clk_rate_exclusive_put(dsi->mod_clk);
return 0;
}
@@ -1066,7 +1074,8 @@ static int __maybe_unused sun6i_dsi_runtime_resume(struct device *dev)
struct sun6i_dsi *dsi = dev_get_drvdata(dev);
reset_control_deassert(dsi->reset);
- clk_prepare_enable(dsi->mod_clk);
+ if (dsi->variant->has_mod_clk)
+ clk_prepare_enable(dsi->mod_clk);
/*
* Enable the DSI block.
@@ -1094,7 +1103,8 @@ static int __maybe_unused sun6i_dsi_runtime_suspend(struct device *dev)
{
struct sun6i_dsi *dsi = dev_get_drvdata(dev);
- clk_disable_unprepare(dsi->mod_clk);
+ if (dsi->variant->has_mod_clk)
+ clk_disable_unprepare(dsi->mod_clk);
reset_control_assert(dsi->reset);
return 0;
@@ -1106,9 +1116,24 @@ static const struct dev_pm_ops sun6i_dsi_pm_ops = {
NULL)
};
+static const struct sun6i_dsi_variant sun6i_a31_dsi = {
+ .has_mod_clk = true,
+};
+
+static const struct sun6i_dsi_variant sun50i_a64_dsi = {
+ .has_mod_clk = false,
+};
+
static const struct of_device_id sun6i_dsi_of_table[] = {
- { .compatible = "allwinner,sun6i-a31-mipi-dsi" },
- { }
+ {
+ .compatible = "allwinner,sun6i-a31-mipi-dsi",
+ .data = &sun6i_a31_dsi,
+ },
+ {
+ .compatible = "allwinner,sun50i-a64-mipi-dsi",
+ .data = &sun50i_a64_dsi,
+ },
+ { /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, sun6i_dsi_of_table);
diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h
index dbbc5b3ecbda..597b62227019 100644
--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h
+++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h
@@ -20,6 +20,10 @@ struct sun6i_dphy {
struct reset_control *reset;
};
+struct sun6i_dsi_variant {
+ bool has_mod_clk;
+};
+
struct sun6i_dsi {
struct drm_connector connector;
struct drm_encoder encoder;
@@ -35,6 +39,7 @@ struct sun6i_dsi {
struct sun4i_drv *drv;
struct mipi_dsi_device *device;
struct drm_panel *panel;
+ const struct sun6i_dsi_variant *variant;
};
static inline struct sun6i_dsi *host_to_sun6i_dsi(struct mipi_dsi_host *host)
--
2.18.0.321.gffc6fa0e3
WARNING: multiple messages have this Message-ID (diff)
From: jagan@amarulasolutions.com (Jagan Teki)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 02/12] drm/sun4i: sun6i_mipi_dsi: Add Allwinner A64 MIPI DSI support
Date: Thu, 27 Sep 2018 17:18:40 +0530 [thread overview]
Message-ID: <20180927114850.24565-3-jagan@amarulasolutions.com> (raw)
In-Reply-To: <20180927114850.24565-1-jagan@amarulasolutions.com>
The MIPI DSI controller on Allwinner A64 is similar to
Allwinner A31 without support of DSI mod clock(CLK_DSI_SCLK)
So, alter has_mod_clk bool via driver data for respective
SoC's compatible.
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 47 ++++++++++++++++++++------
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h | 5 +++
2 files changed, 41 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
index e3b34a345546..8e9c76febca2 100644
--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
+++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
@@ -10,6 +10,7 @@
#include <linux/component.h>
#include <linux/crc-ccitt.h>
#include <linux/of_address.h>
+#include <linux/of_device.h>
#include <linux/pm_runtime.h>
#include <linux/regmap.h>
#include <linux/reset.h>
@@ -981,6 +982,8 @@ static int sun6i_dsi_probe(struct platform_device *pdev)
dsi->host.ops = &sun6i_dsi_host_ops;
dsi->host.dev = dev;
+ dsi->variant = of_device_get_match_data(dev);
+
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
base = devm_ioremap_resource(dev, res);
if (IS_ERR(base)) {
@@ -1001,17 +1004,20 @@ static int sun6i_dsi_probe(struct platform_device *pdev)
return PTR_ERR(dsi->reset);
}
- dsi->mod_clk = devm_clk_get(dev, "mod");
- if (IS_ERR(dsi->mod_clk)) {
- dev_err(dev, "Couldn't get the DSI mod clock\n");
- return PTR_ERR(dsi->mod_clk);
+ if (dsi->variant->has_mod_clk) {
+ dsi->mod_clk = devm_clk_get(dev, "mod");
+ if (IS_ERR(dsi->mod_clk)) {
+ dev_err(dev, "Couldn't get the DSI mod clock\n");
+ return PTR_ERR(dsi->mod_clk);
+ }
}
/*
* In order to operate properly, that clock seems to be always
* set to 297MHz.
*/
- clk_set_rate_exclusive(dsi->mod_clk, 297000000);
+ if (dsi->variant->has_mod_clk)
+ clk_set_rate_exclusive(dsi->mod_clk, 297000000);
dphy_node = of_parse_phandle(dev->of_node, "phys", 0);
ret = sun6i_dphy_probe(dsi, dphy_node);
@@ -1043,7 +1049,8 @@ static int sun6i_dsi_probe(struct platform_device *pdev)
pm_runtime_disable(dev);
sun6i_dphy_remove(dsi);
err_unprotect_clk:
- clk_rate_exclusive_put(dsi->mod_clk);
+ if (dsi->variant->has_mod_clk)
+ clk_rate_exclusive_put(dsi->mod_clk);
return ret;
}
@@ -1056,7 +1063,8 @@ static int sun6i_dsi_remove(struct platform_device *pdev)
mipi_dsi_host_unregister(&dsi->host);
pm_runtime_disable(dev);
sun6i_dphy_remove(dsi);
- clk_rate_exclusive_put(dsi->mod_clk);
+ if (dsi->variant->has_mod_clk)
+ clk_rate_exclusive_put(dsi->mod_clk);
return 0;
}
@@ -1066,7 +1074,8 @@ static int __maybe_unused sun6i_dsi_runtime_resume(struct device *dev)
struct sun6i_dsi *dsi = dev_get_drvdata(dev);
reset_control_deassert(dsi->reset);
- clk_prepare_enable(dsi->mod_clk);
+ if (dsi->variant->has_mod_clk)
+ clk_prepare_enable(dsi->mod_clk);
/*
* Enable the DSI block.
@@ -1094,7 +1103,8 @@ static int __maybe_unused sun6i_dsi_runtime_suspend(struct device *dev)
{
struct sun6i_dsi *dsi = dev_get_drvdata(dev);
- clk_disable_unprepare(dsi->mod_clk);
+ if (dsi->variant->has_mod_clk)
+ clk_disable_unprepare(dsi->mod_clk);
reset_control_assert(dsi->reset);
return 0;
@@ -1106,9 +1116,24 @@ static const struct dev_pm_ops sun6i_dsi_pm_ops = {
NULL)
};
+static const struct sun6i_dsi_variant sun6i_a31_dsi = {
+ .has_mod_clk = true,
+};
+
+static const struct sun6i_dsi_variant sun50i_a64_dsi = {
+ .has_mod_clk = false,
+};
+
static const struct of_device_id sun6i_dsi_of_table[] = {
- { .compatible = "allwinner,sun6i-a31-mipi-dsi" },
- { }
+ {
+ .compatible = "allwinner,sun6i-a31-mipi-dsi",
+ .data = &sun6i_a31_dsi,
+ },
+ {
+ .compatible = "allwinner,sun50i-a64-mipi-dsi",
+ .data = &sun50i_a64_dsi,
+ },
+ { /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, sun6i_dsi_of_table);
diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h
index dbbc5b3ecbda..597b62227019 100644
--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h
+++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h
@@ -20,6 +20,10 @@ struct sun6i_dphy {
struct reset_control *reset;
};
+struct sun6i_dsi_variant {
+ bool has_mod_clk;
+};
+
struct sun6i_dsi {
struct drm_connector connector;
struct drm_encoder encoder;
@@ -35,6 +39,7 @@ struct sun6i_dsi {
struct sun4i_drv *drv;
struct mipi_dsi_device *device;
struct drm_panel *panel;
+ const struct sun6i_dsi_variant *variant;
};
static inline struct sun6i_dsi *host_to_sun6i_dsi(struct mipi_dsi_host *host)
--
2.18.0.321.gffc6fa0e3
next prev parent reply other threads:[~2018-09-27 11:48 UTC|newest]
Thread overview: 136+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-27 11:48 [PATCH 00/12] drm/sun4i: Allwinner A64 MIPI-DSI support Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 11:48 ` [PATCH 01/12] clk: sunxi-ng: a64: Fix gate bit of DSI DPHY Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 11:48 ` Jagan Teki [this message]
2018-09-27 11:48 ` [PATCH 02/12] drm/sun4i: sun6i_mipi_dsi: Add Allwinner A64 MIPI DSI support Jagan Teki
2018-09-27 11:48 ` [PATCH 03/12] dt-bindings: sun6i-dsi: Add compatible for A64 MIPI DSI Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-10-15 18:24 ` Rob Herring
2018-10-15 18:24 ` Rob Herring
2018-10-15 18:24 ` Rob Herring
2018-09-27 11:48 ` [PATCH 04/12] drm/sun4i: sun6i_mipi_dsi: Enable missing DSI bus clock Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 12:42 ` Chen-Yu Tsai
2018-09-27 12:42 ` Chen-Yu Tsai
2018-09-27 12:42 ` Chen-Yu Tsai
2018-09-27 13:44 ` Jagan Teki
2018-09-27 13:44 ` Jagan Teki
2018-09-27 13:44 ` Jagan Teki
2018-09-27 14:16 ` [linux-sunxi] " Chen-Yu Tsai
2018-09-27 14:16 ` Chen-Yu Tsai
2018-09-27 14:16 ` [linux-sunxi] " Chen-Yu Tsai
2018-09-27 16:26 ` Jagan Teki
2018-09-27 16:26 ` Jagan Teki
2018-09-27 16:26 ` [linux-sunxi] " Jagan Teki
2018-09-27 16:33 ` Chen-Yu Tsai
2018-09-27 16:33 ` Chen-Yu Tsai
2018-09-27 16:33 ` [linux-sunxi] " Chen-Yu Tsai
2018-09-27 11:48 ` [PATCH 05/12] drm/sun4i: sun6i_mipi_dsi: Add DSI Generic short write 2 param transfer Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 17:18 ` Maxime Ripard
2018-09-27 17:18 ` Maxime Ripard
2018-09-27 17:18 ` Maxime Ripard
2018-09-27 17:18 ` Maxime Ripard
2018-09-27 17:36 ` Jagan Teki
2018-09-27 17:36 ` Jagan Teki
2018-09-29 13:47 ` Maxime Ripard
2018-09-29 13:47 ` Maxime Ripard
2018-09-29 13:47 ` Maxime Ripard
2018-09-27 11:48 ` [PATCH 06/12] drm/sun4i: sun6i_mipi_dsi: Fix VBP size calculation Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 15:21 ` Maxime Ripard
2018-09-27 15:21 ` Maxime Ripard
2018-09-27 15:21 ` Maxime Ripard
2018-09-27 16:20 ` Jagan Teki
2018-09-27 16:20 ` Jagan Teki
2018-09-27 16:20 ` Jagan Teki
2018-09-29 13:53 ` Maxime Ripard
2018-09-29 13:53 ` Maxime Ripard
2018-09-29 13:53 ` Maxime Ripard
2018-10-01 8:09 ` [linux-sunxi] " Jagan Teki
2018-10-01 8:09 ` Jagan Teki
2018-10-08 15:05 ` Maxime Ripard
2018-10-08 15:05 ` Maxime Ripard
2018-10-08 15:05 ` [linux-sunxi] " Maxime Ripard
2018-09-27 11:48 ` [PATCH 07/12] drm/sun4i: sun6i_mipi_dsi: Fix TCON DRQ set bits Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 16:58 ` Maxime Ripard
2018-09-27 16:58 ` Maxime Ripard
2018-09-27 16:58 ` Maxime Ripard
2018-09-27 16:58 ` Maxime Ripard
2018-09-27 17:45 ` Jagan Teki
2018-09-27 17:45 ` Jagan Teki
2018-09-27 17:45 ` Jagan Teki
2018-10-02 13:20 ` Maxime Ripard
2018-10-02 13:20 ` Maxime Ripard
2018-10-02 13:20 ` Maxime Ripard
2018-10-03 3:22 ` [linux-sunxi] " Jagan Teki
2018-10-03 3:22 ` Jagan Teki
2018-10-03 3:22 ` [linux-sunxi] " Jagan Teki
2018-10-08 15:05 ` Maxime Ripard
2018-10-08 15:05 ` Maxime Ripard
2018-10-08 15:05 ` [linux-sunxi] " Maxime Ripard
2018-09-27 11:48 ` [PATCH 08/12] drm/sun4i: sun6i_mipi_dsi: Refactor vertical video start delay Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 17:14 ` Maxime Ripard
2018-09-27 17:14 ` Maxime Ripard
2018-09-27 17:14 ` Maxime Ripard
2018-09-27 17:33 ` Jagan Teki
2018-09-27 17:33 ` Jagan Teki
2018-09-27 17:33 ` Jagan Teki
2018-09-29 15:27 ` Maxime Ripard
2018-09-29 15:27 ` Maxime Ripard
2018-09-29 15:27 ` Maxime Ripard
2018-10-01 7:55 ` [linux-sunxi] " Jagan Teki
2018-10-01 7:55 ` Jagan Teki
2018-10-01 7:55 ` [linux-sunxi] " Jagan Teki
2018-10-02 13:29 ` Maxime Ripard
2018-10-02 13:29 ` Maxime Ripard
2018-10-02 13:29 ` Maxime Ripard
2018-09-27 11:48 ` [PATCH 09/12] dt-bindings: panel: Add Bananapi S070WV20-CT16 MIPI-DSI panel bindings Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-10-15 18:24 ` Rob Herring
2018-10-15 18:24 ` Rob Herring
2018-10-15 18:24 ` Rob Herring
2018-10-22 10:22 ` Chen-Yu Tsai
2018-10-22 10:22 ` Chen-Yu Tsai
2018-10-22 10:22 ` Chen-Yu Tsai
2018-10-23 15:11 ` Rob Herring
2018-10-23 15:11 ` Rob Herring
2018-10-23 15:11 ` Rob Herring
2018-10-24 20:22 ` Chen-Yu Tsai
2018-10-24 20:22 ` Chen-Yu Tsai
2018-09-27 11:48 ` [PATCH 10/12] drm/panel: Add Bananapi S070WV20-CT16 MIPI-DSI panel driver Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-28 4:32 ` Chen-Yu Tsai
2018-09-28 4:32 ` Chen-Yu Tsai
2018-09-28 4:32 ` Chen-Yu Tsai
2018-10-04 16:06 ` Jagan Teki
2018-10-04 16:06 ` Jagan Teki
2018-10-04 16:06 ` Jagan Teki
2018-09-27 11:48 ` [PATCH 11/12] arm64: dts: allwinner: a64: Add DSI pipeline Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 17:16 ` Maxime Ripard
2018-09-27 17:16 ` Maxime Ripard
2018-09-27 17:16 ` Maxime Ripard
2018-09-27 17:16 ` Maxime Ripard
2018-09-27 11:48 ` [PATCH 12/12] arm64: dts: allwinner: bananapi-m64: Bananapi S070WV20-CT16 DSI panel Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 11:48 ` Jagan Teki
2018-09-27 17:17 ` Maxime Ripard
2018-09-27 17:17 ` Maxime Ripard
2018-09-27 17:17 ` Maxime Ripard
2018-09-27 17:17 ` Maxime Ripard
2018-10-04 16:03 ` Jagan Teki
2018-10-04 16:03 ` Jagan Teki
2018-10-04 16:03 ` Jagan Teki
2018-10-05 15:31 ` Maxime Ripard
2018-10-05 15:31 ` Maxime Ripard
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=20180927114850.24565-3-jagan@amarulasolutions.com \
--to=jagan@amarulasolutions.com \
--cc=airlied@linux.ie \
--cc=anarsoul@gmail.com \
--cc=catalin.marinas@arm.com \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=icenowy@aosc.io \
--cc=jernej.skrabec@siol.net \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sunxi@googlegroups.com \
--cc=mark.rutland@arm.com \
--cc=maxime.ripard@free-electrons.com \
--cc=michael@amarulasolutions.com \
--cc=mturquette@baylibre.com \
--cc=robh+dt@kernel.org \
--cc=sboyd@kernel.org \
--cc=wens@csie.org \
--cc=will.deacon@arm.com \
/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.