All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Turquette <mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
To: open list <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Cc: "Andrzej Hajda <a.hajda-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
	Marek Szyprowski
	<m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
	Greg Kroah-Hartman
	<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
	Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
	Linus Walleij
	<linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	Alexandre Courbot
	<gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Thierry Reding
	<thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Inki Dae <inki.dae-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
	Kishon Vijay Abraham I <kishon-l0cyMroinI0@public.gmane.org>,
	Liam Girdwood <lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Grant Likely
	<grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	moderated list:ARM/CLKDEV SUPPORT
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
	, open list:GPIO SUBSYSTEM
	<linux-gpio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	open list:DRM PANEL DRIVERS
	<dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>,
	moderated list:ARM/S5P EXYNOS AR...
	<linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	open list:OPEN FIRMWARE AND..."
	<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org,
	sboyd@co
Subject: Re: [RFC 08/15] clk: add restrack support
Date: Tue, 13 Jan 2015 11:25:17 -0800	[thread overview]
Message-ID: <20150113192517.20842.4777@quantum> (raw)
In-Reply-To: <1418226513-14105-9-git-send-email-a.hajda-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>

+Stephen Boyd

Quoting Andrzej Hajda (2014-12-10 07:48:26)
> Clocks supports different methods of lookup.
> The patch adds restrack support only to DT based clocks.
> 
> Signed-off-by: Andrzej Hajda <a.hajda-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> ---
>  drivers/clk/clk.c        |  6 ++++
>  drivers/clk/clkdev.c     | 74 ++++++++++++++++++++++++++++++++++++++++++++++++
>  include/linux/clk.h      |  3 ++
>  include/linux/restrack.h |  1 +
>  4 files changed, 84 insertions(+)
> 
> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
> index 4896ae9..2c50204 100644
> --- a/drivers/clk/clk.c
> +++ b/drivers/clk/clk.c
> @@ -16,6 +16,7 @@
>  #include <linux/spinlock.h>
>  #include <linux/err.h>
>  #include <linux/list.h>
> +#include <linux/restrack.h>
>  #include <linux/slab.h>
>  #include <linux/of.h>
>  #include <linux/device.h>
> @@ -2476,6 +2477,9 @@ int of_clk_add_provider(struct device_node *np,
>         ret = of_clk_set_defaults(np, true);
>         if (ret < 0)
>                 of_clk_del_provider(np);
> +       else
> +               restrack_up(RESTRACK_TYPE_CLOCK, cp->node, cp);
> +
>  
>         return ret;
>  }
> @@ -2489,6 +2493,8 @@ void of_clk_del_provider(struct device_node *np)
>  {
>         struct of_clk_provider *cp;
>  
> +       restrack_down(RESTRACK_TYPE_CLOCK, np, NULL);
> +
>         mutex_lock(&of_clk_mutex);
>         list_for_each_entry(cp, &of_clk_providers, link) {
>                 if (cp->node == np) {
> diff --git a/drivers/clk/clkdev.c b/drivers/clk/clkdev.c
> index bd22750..2532ea1 100644
> --- a/drivers/clk/clkdev.c
> +++ b/drivers/clk/clkdev.c
> @@ -20,6 +20,7 @@
>  #include <linux/clk.h>
>  #include <linux/clkdev.h>
>  #include <linux/of.h>
> +#include <linux/restrack.h>
>  
>  #include "clk.h"
>  
> @@ -143,6 +144,79 @@ static int of_get_clock_spec(struct device *dev, const char *name,
>  
>         return -ENOENT;
>  }
> +
> +struct clk_restrack_desc {
> +       struct clk **ptr;
> +       const char *name;
> +       struct of_phandle_args spec;
> +       struct restrack_desc desc;
> +};
> +
> +static int clk_restrack_init(struct device *dev,
> +               struct restrack_desc *desc)
> +{
> +       struct clk_restrack_desc *rd = restrack_desc_to_rd(rd, desc);
> +       int ret;
> +
> +       ret = of_get_clock_spec(dev, rd->name, &rd->spec);
> +       if (!ret)
> +               desc->if_id = rd->spec.np;
> +       return ret;
> +}
> +
> +static void clk_restrack_destroy(struct device *dev,
> +               struct restrack_desc *desc)
> +{
> +       struct clk_restrack_desc *rd = restrack_desc_to_rd(rd, desc);
> +
> +       of_node_put(desc->if_id);
> +       kfree(rd);
> +}
> +
> +static int clk_restrack_ifup(struct device *dev,
> +               struct restrack_desc *desc, void *data)
> +{
> +       struct clk_restrack_desc *rd = restrack_desc_to_rd(rd, desc);
> +
> +       *rd->ptr = of_clk_get_by_clkspec(&rd->spec);
> +       return PTR_ERR_OR_ZERO(*rd->ptr);
> +}
> +
> +static void clk_restrack_ifdown(struct device *dev,
> +               struct restrack_desc *desc, void *data)
> +{
> +       struct clk_restrack_desc *rd = restrack_desc_to_rd(rd, desc);
> +
> +       clk_put(*rd->ptr);
> +       *rd->ptr = ERR_PTR(-EPROBE_DEFER);
> +}
> +
> +static const struct restrack_ops clk_restrack_ops = {
> +       .if_type = RESTRACK_TYPE_CLOCK,
> +       .init = clk_restrack_init,
> +       .destroy = clk_restrack_destroy,
> +       .if_up = clk_restrack_ifup,
> +       .if_down = clk_restrack_ifdown,
> +};
> +
> +/**
> + * clk_restrack_desc - clock resource descriptor allocator
> + * @clk: pointer to variable which will be set to clock handle
> + * @name: name of clock
> + *
> + * The function creates resource description for clock, which shall be used
> + * by *restrack_register functions.
> + */
> +struct restrack_desc *clk_restrack_desc(struct clk **clock, const char *name)
> +{
> +       struct clk_restrack_desc *rd;
> +
> +       RESTRACK_DESC_ALLOC(rd, clk_restrack_ops, clock, name);
> +
> +       return rd ? &rd->desc : ERR_PTR(-ENOMEM);
> +}
> +EXPORT_SYMBOL_GPL(clk_restrack_desc);
> +
>  #endif
>  
>  /*
> diff --git a/include/linux/clk.h b/include/linux/clk.h
> index c7f258a..28bad95 100644
> --- a/include/linux/clk.h
> +++ b/include/linux/clk.h
> @@ -428,6 +428,9 @@ struct of_phandle_args;
>  struct clk *of_clk_get(struct device_node *np, int index);
>  struct clk *of_clk_get_by_name(struct device_node *np, const char *name);
>  struct clk *of_clk_get_from_provider(struct of_phandle_args *clkspec);
> +
> +struct restrack_desc;
> +struct restrack_desc *clk_restrack_desc(struct clk **clock, const char *name);
>  #else
>  static inline struct clk *of_clk_get(struct device_node *np, int index)
>  {
> diff --git a/include/linux/restrack.h b/include/linux/restrack.h
> index e1aded0..6707dce 100644
> --- a/include/linux/restrack.h
> +++ b/include/linux/restrack.h
> @@ -6,6 +6,7 @@
>  #define RESTRACK_TYPE_DRM_PANEL 1
>  #define RESTRACK_TYPE_REGULATOR 2
>  #define RESTRACK_TYPE_GPIO 3
> +#define RESTRACK_TYPE_CLOCK 4
>  
>  struct device;
>  struct restrack_ctx;
> -- 
> 1.9.1
> 
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Mike Turquette <mturquette@linaro.org>
To: Andrzej Hajda <a.hajda@samsung.com>,
	"open list" <linux-kernel@vger.kernel.org>
Cc: "Andrzej Hajda <a.hajda@samsung.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Russell King <linux@arm.linux.org.uk>,
	Linus Walleij <linus.walleij@linaro.org>,
	Alexandre Courbot <gnurou@gmail.com>,
	Thierry Reding <thierry.reding@gmail.com>,
	Inki Dae <inki.dae@samsung.com>,
	Kishon Vijay Abraham I <kishon@ti.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Grant Likely <grant.likely@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	moderated list:ARM/CLKDEV SUPPORT
	<linux-arm-kernel@lists.infradead.org> ,
	open list:GPIO SUBSYSTEM <linux-gpio@vger.kernel.org>,
	open list:DRM PANEL DRIVERS <dri-devel@lists.freedesktop.org>,
	moderated list:ARM/S5P EXYNOS AR...
	<linux-samsung-soc@vger.kernel.org>,
	open list:OPEN FIRMWARE AND...", <devicetree@vger.kernel.org>,
	boris.brezillon@free-electrons.com, sboyd@codeaurora.org
Subject: Re: [RFC 08/15] clk: add restrack support
Date: Tue, 13 Jan 2015 11:25:17 -0800	[thread overview]
Message-ID: <20150113192517.20842.4777@quantum> (raw)
In-Reply-To: <1418226513-14105-9-git-send-email-a.hajda@samsung.com>

+Stephen Boyd

Quoting Andrzej Hajda (2014-12-10 07:48:26)
> Clocks supports different methods of lookup.
> The patch adds restrack support only to DT based clocks.
> 
> Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
> ---
>  drivers/clk/clk.c        |  6 ++++
>  drivers/clk/clkdev.c     | 74 ++++++++++++++++++++++++++++++++++++++++++++++++
>  include/linux/clk.h      |  3 ++
>  include/linux/restrack.h |  1 +
>  4 files changed, 84 insertions(+)
> 
> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
> index 4896ae9..2c50204 100644
> --- a/drivers/clk/clk.c
> +++ b/drivers/clk/clk.c
> @@ -16,6 +16,7 @@
>  #include <linux/spinlock.h>
>  #include <linux/err.h>
>  #include <linux/list.h>
> +#include <linux/restrack.h>
>  #include <linux/slab.h>
>  #include <linux/of.h>
>  #include <linux/device.h>
> @@ -2476,6 +2477,9 @@ int of_clk_add_provider(struct device_node *np,
>         ret = of_clk_set_defaults(np, true);
>         if (ret < 0)
>                 of_clk_del_provider(np);
> +       else
> +               restrack_up(RESTRACK_TYPE_CLOCK, cp->node, cp);
> +
>  
>         return ret;
>  }
> @@ -2489,6 +2493,8 @@ void of_clk_del_provider(struct device_node *np)
>  {
>         struct of_clk_provider *cp;
>  
> +       restrack_down(RESTRACK_TYPE_CLOCK, np, NULL);
> +
>         mutex_lock(&of_clk_mutex);
>         list_for_each_entry(cp, &of_clk_providers, link) {
>                 if (cp->node == np) {
> diff --git a/drivers/clk/clkdev.c b/drivers/clk/clkdev.c
> index bd22750..2532ea1 100644
> --- a/drivers/clk/clkdev.c
> +++ b/drivers/clk/clkdev.c
> @@ -20,6 +20,7 @@
>  #include <linux/clk.h>
>  #include <linux/clkdev.h>
>  #include <linux/of.h>
> +#include <linux/restrack.h>
>  
>  #include "clk.h"
>  
> @@ -143,6 +144,79 @@ static int of_get_clock_spec(struct device *dev, const char *name,
>  
>         return -ENOENT;
>  }
> +
> +struct clk_restrack_desc {
> +       struct clk **ptr;
> +       const char *name;
> +       struct of_phandle_args spec;
> +       struct restrack_desc desc;
> +};
> +
> +static int clk_restrack_init(struct device *dev,
> +               struct restrack_desc *desc)
> +{
> +       struct clk_restrack_desc *rd = restrack_desc_to_rd(rd, desc);
> +       int ret;
> +
> +       ret = of_get_clock_spec(dev, rd->name, &rd->spec);
> +       if (!ret)
> +               desc->if_id = rd->spec.np;
> +       return ret;
> +}
> +
> +static void clk_restrack_destroy(struct device *dev,
> +               struct restrack_desc *desc)
> +{
> +       struct clk_restrack_desc *rd = restrack_desc_to_rd(rd, desc);
> +
> +       of_node_put(desc->if_id);
> +       kfree(rd);
> +}
> +
> +static int clk_restrack_ifup(struct device *dev,
> +               struct restrack_desc *desc, void *data)
> +{
> +       struct clk_restrack_desc *rd = restrack_desc_to_rd(rd, desc);
> +
> +       *rd->ptr = of_clk_get_by_clkspec(&rd->spec);
> +       return PTR_ERR_OR_ZERO(*rd->ptr);
> +}
> +
> +static void clk_restrack_ifdown(struct device *dev,
> +               struct restrack_desc *desc, void *data)
> +{
> +       struct clk_restrack_desc *rd = restrack_desc_to_rd(rd, desc);
> +
> +       clk_put(*rd->ptr);
> +       *rd->ptr = ERR_PTR(-EPROBE_DEFER);
> +}
> +
> +static const struct restrack_ops clk_restrack_ops = {
> +       .if_type = RESTRACK_TYPE_CLOCK,
> +       .init = clk_restrack_init,
> +       .destroy = clk_restrack_destroy,
> +       .if_up = clk_restrack_ifup,
> +       .if_down = clk_restrack_ifdown,
> +};
> +
> +/**
> + * clk_restrack_desc - clock resource descriptor allocator
> + * @clk: pointer to variable which will be set to clock handle
> + * @name: name of clock
> + *
> + * The function creates resource description for clock, which shall be used
> + * by *restrack_register functions.
> + */
> +struct restrack_desc *clk_restrack_desc(struct clk **clock, const char *name)
> +{
> +       struct clk_restrack_desc *rd;
> +
> +       RESTRACK_DESC_ALLOC(rd, clk_restrack_ops, clock, name);
> +
> +       return rd ? &rd->desc : ERR_PTR(-ENOMEM);
> +}
> +EXPORT_SYMBOL_GPL(clk_restrack_desc);
> +
>  #endif
>  
>  /*
> diff --git a/include/linux/clk.h b/include/linux/clk.h
> index c7f258a..28bad95 100644
> --- a/include/linux/clk.h
> +++ b/include/linux/clk.h
> @@ -428,6 +428,9 @@ struct of_phandle_args;
>  struct clk *of_clk_get(struct device_node *np, int index);
>  struct clk *of_clk_get_by_name(struct device_node *np, const char *name);
>  struct clk *of_clk_get_from_provider(struct of_phandle_args *clkspec);
> +
> +struct restrack_desc;
> +struct restrack_desc *clk_restrack_desc(struct clk **clock, const char *name);
>  #else
>  static inline struct clk *of_clk_get(struct device_node *np, int index)
>  {
> diff --git a/include/linux/restrack.h b/include/linux/restrack.h
> index e1aded0..6707dce 100644
> --- a/include/linux/restrack.h
> +++ b/include/linux/restrack.h
> @@ -6,6 +6,7 @@
>  #define RESTRACK_TYPE_DRM_PANEL 1
>  #define RESTRACK_TYPE_REGULATOR 2
>  #define RESTRACK_TYPE_GPIO 3
> +#define RESTRACK_TYPE_CLOCK 4
>  
>  struct device;
>  struct restrack_ctx;
> -- 
> 1.9.1
> 

  parent reply	other threads:[~2015-01-13 19:25 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-10 15:48 [RFC 00/15] Resource tracking/allocation framework Andrzej Hajda
2014-12-10 15:48 ` Andrzej Hajda
2014-12-10 15:48 ` Andrzej Hajda
2014-12-10 15:48 ` [RFC 01/15] drivers/base: add track framework Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-12 16:36   ` Mark Brown
2014-12-12 16:36     ` Mark Brown
2014-12-12 16:36     ` Mark Brown
2014-12-12 23:12     ` AH
2014-12-12 23:12       ` AH
2014-12-15 12:55       ` Mark Brown
2014-12-15 12:55         ` Mark Brown
2014-12-15 14:00         ` Andrzej Hajda
2014-12-15 14:00           ` Andrzej Hajda
2014-12-15 14:00           ` Andrzej Hajda
2014-12-10 15:48 ` [RFC 02/15] drivers/base: add restrack framework Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-12 16:52   ` Mark Brown
2014-12-12 16:52     ` Mark Brown
2014-12-12 16:52     ` Mark Brown
2014-12-15  8:28     ` Andrzej Hajda
2014-12-15  8:28       ` Andrzej Hajda
2014-12-15  8:28       ` Andrzej Hajda
2014-12-15 11:38       ` Mark Brown
2014-12-15 11:38         ` Mark Brown
2014-12-15 11:38         ` Mark Brown
2014-12-10 15:48 ` [RFC 03/15] drm/panel: add restrack support Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48 ` [RFC 04/15] regulator: " Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
     [not found]   ` <1418226513-14105-5-git-send-email-a.hajda-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-12-10 16:07     ` Mark Brown
2014-12-10 16:07       ` Mark Brown
2014-12-10 16:07       ` Mark Brown
2014-12-11 10:49       ` Andrzej Hajda
2014-12-11 10:49         ` Andrzej Hajda
2014-12-11 10:49         ` Andrzej Hajda
2014-12-11 12:58         ` Mark Brown
2014-12-11 12:58           ` Mark Brown
2014-12-11 12:58           ` Mark Brown
2014-12-11 13:43           ` Russell King - ARM Linux
2014-12-11 13:43             ` Russell King - ARM Linux
2014-12-11 13:43             ` Russell King - ARM Linux
2014-12-12  8:21             ` Andrzej Hajda
2014-12-12  8:22             ` Andrzej Hajda
2014-12-12  8:22               ` Andrzej Hajda
2014-12-12  8:22               ` Andrzej Hajda
2014-12-10 15:48 ` [RFC 05/15] gpio: move DT parsing code to separate functions Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2015-01-13  6:17   ` Linus Walleij
2015-01-13  6:17     ` Linus Walleij
2015-01-13  6:17     ` Linus Walleij
2014-12-10 15:48 ` [RFC 06/15] gpio: add restrack support Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48 ` [RFC 07/15] clk: add DT parsing function Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
     [not found]   ` <1418226513-14105-8-git-send-email-a.hajda-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2015-01-13 19:24     ` Mike Turquette
2015-01-13 19:24       ` Mike Turquette
2014-12-10 15:48 ` [RFC 08/15] clk: add restrack support Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
     [not found]   ` <1418226513-14105-9-git-send-email-a.hajda-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2015-01-13 19:25     ` Mike Turquette [this message]
2015-01-13 19:25       ` Mike Turquette
2014-12-10 15:48 ` [RFC 09/15] phy: " Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48 ` [RFC 10/15] drm/exynos/dsi: simplify hotplug code Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48 ` [RFC 11/15] drm/exynos/dsi: convert to restrack API Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48 ` [RFC 12/15] drm/exynos/dpi: use common of_graph functions Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48 ` [RFC 13/15] drm/exynos/dpi: convert to restrack API Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48 ` [RFC 14/15] drm/panel/ld9040: do not power off panel on removal Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48 ` [RFC 15/15] drm/panel/ld9040: convert to restrack API Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 15:48   ` Andrzej Hajda
2014-12-10 16:16 ` [RFC 00/15] Resource tracking/allocation framework Russell King - ARM Linux
2014-12-10 16:16   ` Russell King - ARM Linux
2014-12-10 16:16   ` Russell King - ARM Linux
2014-12-10 17:23   ` A H
2014-12-10 17:39     ` Russell King - ARM Linux
2014-12-10 17:39       ` Russell King - ARM Linux
2014-12-10 17:39       ` Russell King - ARM Linux

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=20150113192517.20842.4777@quantum \
    --to=mturquette-qsej5fyqhm4dnm+yrofe0a@public.gmane.org \
    --cc=boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=sboyd@co \
    /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.