From: Tony Lindgren <tony@atomide.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: linux-arm-kernel@lists.infradead.org,
Tero Kristo <t-kristo@ti.com>,
paul@pwsan.com, linux-omap@vger.kernel.org,
mturquette@linaro.org
Subject: Re: [PATCH 00/11] ARM: OMAP3: legacy clock data move under clk driver
Date: Tue, 3 Feb 2015 11:04:00 -0800 [thread overview]
Message-ID: <20150203190359.GB25235@atomide.com> (raw)
In-Reply-To: <201502031759.32261.arnd@arndb.de>
* Arnd Bergmann <arnd@arndb.de> [150203 09:03]:
> On Thursday 08 January 2015, Tony Lindgren wrote:
>
> > Great, hopefully this will finally allow Mike to make the
> > generic struct clk private to drivers/clk :)
> >
> > Seems to boot just fine based on a quick legacy booting test
> > on n900.
> >
> > Mike, assuming no other issues, can you please apply these into a
> > immutable branch against v3.19-rc1 that Paul and I can also merge
> > in as needed?
> >
> > Please also feel free to add:
> >
> > Acked-by: Tony Lindgren <tony@atomide.com>
>
> The series has arrived in linux-next and promptly triggered a few
> randconfig build errors. Here is a patch that fixes it. Feel free
> to replace it with a different patch if you don't like this version.
>
> 8<--------
> Subject: clk: omap: compile legacy omap3 clocks conditionally
>
> The 'ARM: OMAP3: legacy clock data move under clk driver' patch series
> causes build errors when CONFIG_OMAP3 is not set:
>
> drivers/clk/ti/dpll.c: In function 'ti_clk_register_dpll':
> drivers/clk/ti/dpll.c:199:31: error: 'omap3_dpll_ck_ops' undeclared (first use in this function)
> const struct clk_ops *ops = &omap3_dpll_ck_ops;
> ^
> drivers/clk/ti/dpll.c:199:31: note: each undeclared identifier is reported only once for each function it appears in
> drivers/clk/ti/dpll.c:259:10: error: 'omap3_dpll_per_ck_ops' undeclared (first use in this function)
> ops = &omap3_dpll_per_ck_ops;
> ^
>
> drivers/built-in.o: In function `ti_clk_register_gate':
> drivers/clk/ti/gate.c:179: undefined reference to `clkhwops_omap3430es2_dss_usbhost_wait'
> drivers/clk/ti/gate.c:179: undefined reference to `clkhwops_am35xx_ipss_module_wait'
> -in.o: In function `ti_clk_register_interface':
> drivers/clk/ti/interface.c:100: undefined reference to `clkhwops_omap3430es2_iclk_hsotgusb_wait'
> drivers/clk/ti/interface.c:100: undefined reference to `clkhwops_omap3430es2_iclk_dss_usbhost_wait'
> drivers/clk/ti/interface.c:100: undefined reference to `clkhwops_omap3430es2_iclk_ssi_wait'
> drivers/clk/ti/interface.c:100: undefined reference to `clkhwops_am35xx_ipss_wait'
> drivers/built-in.o: In function `ti_clk_register_composite':
> :(.text+0x3da768): undefined reference to `ti_clk_build_component_gate'
>
> In order to fix that problem, this patch makes the omap3 legacy code
> compiled only when both CONFIG_OMAP3 and CONFIG_ATAGS are set.
Looks OK to me:
Acked-by: Tony Lindgren <tony@atomide.com>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ----
> diff --git a/drivers/clk/ti/Makefile b/drivers/clk/ti/Makefile
> index 14e6686a5eea..105ffd0f5e79 100644
> --- a/drivers/clk/ti/Makefile
> +++ b/drivers/clk/ti/Makefile
> @@ -1,4 +1,3 @@
> -ifneq ($(CONFIG_OF),)
> obj-y += clk.o autoidle.o clockdomain.o
> clk-common = dpll.o composite.o divider.o gate.o \
> fixed-factor.o mux.o apll.o
> @@ -6,10 +5,13 @@ obj-$(CONFIG_SOC_AM33XX) += $(clk-common) clk-33xx.o
> obj-$(CONFIG_SOC_TI81XX) += $(clk-common) fapll.o clk-816x.o
> obj-$(CONFIG_ARCH_OMAP2) += $(clk-common) interface.o clk-2xxx.o
> obj-$(CONFIG_ARCH_OMAP3) += $(clk-common) interface.o \
> - clk-3xxx.o clk-3xxx-legacy.o
> + clk-3xxx.o
> obj-$(CONFIG_ARCH_OMAP4) += $(clk-common) clk-44xx.o
> obj-$(CONFIG_SOC_OMAP5) += $(clk-common) clk-54xx.o
> obj-$(CONFIG_SOC_DRA7XX) += $(clk-common) clk-7xx.o \
> clk-dra7-atl.o
> obj-$(CONFIG_SOC_AM43XX) += $(clk-common) clk-43xx.o
> +
> +ifdef CONFIG_ATAGS
> +obj-$(CONFIG_ARCH_OMAP3) += clk-3xxx-legacy.o
> endif
> diff --git a/drivers/clk/ti/clk.c b/drivers/clk/ti/clk.c
> index 546dae405402..e22b95646e09 100644
> --- a/drivers/clk/ti/clk.c
> +++ b/drivers/clk/ti/clk.c
> @@ -186,6 +186,7 @@ void ti_dt_clk_init_retry_clks(void)
> }
> }
>
> +#if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_ATAGS)
> void __init ti_clk_patch_legacy_clks(struct ti_clk **patch)
> {
> while (*patch) {
> @@ -308,3 +309,4 @@ int __init ti_clk_register_legacy_clks(struct ti_clk_alias *clks)
>
> return 0;
> }
> +#endif
> diff --git a/drivers/clk/ti/composite.c b/drivers/clk/ti/composite.c
> index 3a9665fce041..3654f61912eb 100644
> --- a/drivers/clk/ti/composite.c
> +++ b/drivers/clk/ti/composite.c
> @@ -118,6 +118,7 @@ static inline struct clk_hw *_get_hw(struct clk_hw_omap_comp *clk, int idx)
>
> #define to_clk_hw_comp(_hw) container_of(_hw, struct clk_hw_omap_comp, hw)
>
> +#if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_ATAGS)
> struct clk *ti_clk_register_composite(struct ti_clk *setup)
> {
> struct ti_clk_composite *comp;
> @@ -153,6 +154,7 @@ struct clk *ti_clk_register_composite(struct ti_clk *setup)
>
> return clk;
> }
> +#endif
>
> static void __init _register_composite(struct clk_hw *hw,
> struct device_node *node)
> diff --git a/drivers/clk/ti/dpll.c b/drivers/clk/ti/dpll.c
> index 47ebff772b13..81dc4698dc41 100644
> --- a/drivers/clk/ti/dpll.c
> +++ b/drivers/clk/ti/dpll.c
> @@ -176,6 +176,7 @@ cleanup:
> kfree(clk_hw);
> }
>
> +#if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_ATAGS)
> void __iomem *_get_reg(u8 module, u16 offset)
> {
> u32 reg;
> @@ -271,6 +272,7 @@ cleanup:
> kfree(clk_hw);
> return clk;
> }
> +#endif
>
> #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) || \
> defined(CONFIG_SOC_DRA7XX) || defined(CONFIG_SOC_AM33XX) || \
> diff --git a/drivers/clk/ti/gate.c b/drivers/clk/ti/gate.c
> index d4f6cb20e16e..d493307b73f4 100644
> --- a/drivers/clk/ti/gate.c
> +++ b/drivers/clk/ti/gate.c
> @@ -130,6 +130,7 @@ static struct clk *_register_gate(struct device *dev, const char *name,
> return clk;
> }
>
> +#if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_ATAGS)
> struct clk *ti_clk_register_gate(struct ti_clk *setup)
> {
> const struct clk_ops *ops = &omap_gate_clk_ops;
> @@ -208,6 +209,7 @@ struct clk_hw *ti_clk_build_component_gate(struct ti_clk_gate *setup)
>
> return &gate->hw;
> }
> +#endif
>
> static void __init _of_ti_gate_clk_setup(struct device_node *node,
> const struct clk_ops *ops,
> diff --git a/drivers/clk/ti/interface.c b/drivers/clk/ti/interface.c
> index d71cd9b5de46..265d91f071c5 100644
> --- a/drivers/clk/ti/interface.c
> +++ b/drivers/clk/ti/interface.c
> @@ -68,6 +68,7 @@ static struct clk *_register_interface(struct device *dev, const char *name,
> return clk;
> }
>
> +#if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_ATAGS)
> struct clk *ti_clk_register_interface(struct ti_clk *setup)
> {
> const struct clk_hw_omap_ops *ops = &clkhwops_iclk_wait;
> @@ -98,6 +99,7 @@ struct clk *ti_clk_register_interface(struct ti_clk *setup)
> return _register_interface(NULL, setup->name, gate->parent,
> (void __iomem *)reg, gate->bit_shift, ops);
> }
> +#endif
>
> static void __init _of_ti_interface_clk_setup(struct device_node *node,
> const struct clk_hw_omap_ops *ops)
> diff --git a/include/linux/clk/ti.h b/include/linux/clk/ti.h
> index 0eac65054283..67844003493d 100644
> --- a/include/linux/clk/ti.h
> +++ b/include/linux/clk/ti.h
> @@ -360,9 +360,17 @@ extern const struct clk_hw_omap_ops clkhwops_omap3430es2_iclk_ssi_wait;
> extern const struct clk_hw_omap_ops clkhwops_omap3430es2_iclk_dss_usbhost_wait;
> extern const struct clk_hw_omap_ops clkhwops_omap3430es2_iclk_hsotgusb_wait;
>
> +#ifdef CONFIG_ATAGS
> int omap3430_clk_legacy_init(void);
> int omap3430es1_clk_legacy_init(void);
> int omap36xx_clk_legacy_init(void);
> int am35xx_clk_legacy_init(void);
> +#else
> +static inline int omap3430_clk_legacy_init(void) { return -ENXIO; }
> +static inline int omap3430es1_clk_legacy_init(void) { return -ENXIO; }
> +static inline int omap36xx_clk_legacy_init(void) { return -ENXIO; }
> +static inline int am35xx_clk_legacy_init(void) { return -ENXIO; }
> +#endif
> +
>
> #endif
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 00/11] ARM: OMAP3: legacy clock data move under clk driver
Date: Tue, 3 Feb 2015 11:04:00 -0800 [thread overview]
Message-ID: <20150203190359.GB25235@atomide.com> (raw)
In-Reply-To: <201502031759.32261.arnd@arndb.de>
* Arnd Bergmann <arnd@arndb.de> [150203 09:03]:
> On Thursday 08 January 2015, Tony Lindgren wrote:
>
> > Great, hopefully this will finally allow Mike to make the
> > generic struct clk private to drivers/clk :)
> >
> > Seems to boot just fine based on a quick legacy booting test
> > on n900.
> >
> > Mike, assuming no other issues, can you please apply these into a
> > immutable branch against v3.19-rc1 that Paul and I can also merge
> > in as needed?
> >
> > Please also feel free to add:
> >
> > Acked-by: Tony Lindgren <tony@atomide.com>
>
> The series has arrived in linux-next and promptly triggered a few
> randconfig build errors. Here is a patch that fixes it. Feel free
> to replace it with a different patch if you don't like this version.
>
> 8<--------
> Subject: clk: omap: compile legacy omap3 clocks conditionally
>
> The 'ARM: OMAP3: legacy clock data move under clk driver' patch series
> causes build errors when CONFIG_OMAP3 is not set:
>
> drivers/clk/ti/dpll.c: In function 'ti_clk_register_dpll':
> drivers/clk/ti/dpll.c:199:31: error: 'omap3_dpll_ck_ops' undeclared (first use in this function)
> const struct clk_ops *ops = &omap3_dpll_ck_ops;
> ^
> drivers/clk/ti/dpll.c:199:31: note: each undeclared identifier is reported only once for each function it appears in
> drivers/clk/ti/dpll.c:259:10: error: 'omap3_dpll_per_ck_ops' undeclared (first use in this function)
> ops = &omap3_dpll_per_ck_ops;
> ^
>
> drivers/built-in.o: In function `ti_clk_register_gate':
> drivers/clk/ti/gate.c:179: undefined reference to `clkhwops_omap3430es2_dss_usbhost_wait'
> drivers/clk/ti/gate.c:179: undefined reference to `clkhwops_am35xx_ipss_module_wait'
> -in.o: In function `ti_clk_register_interface':
> drivers/clk/ti/interface.c:100: undefined reference to `clkhwops_omap3430es2_iclk_hsotgusb_wait'
> drivers/clk/ti/interface.c:100: undefined reference to `clkhwops_omap3430es2_iclk_dss_usbhost_wait'
> drivers/clk/ti/interface.c:100: undefined reference to `clkhwops_omap3430es2_iclk_ssi_wait'
> drivers/clk/ti/interface.c:100: undefined reference to `clkhwops_am35xx_ipss_wait'
> drivers/built-in.o: In function `ti_clk_register_composite':
> :(.text+0x3da768): undefined reference to `ti_clk_build_component_gate'
>
> In order to fix that problem, this patch makes the omap3 legacy code
> compiled only when both CONFIG_OMAP3 and CONFIG_ATAGS are set.
Looks OK to me:
Acked-by: Tony Lindgren <tony@atomide.com>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ----
> diff --git a/drivers/clk/ti/Makefile b/drivers/clk/ti/Makefile
> index 14e6686a5eea..105ffd0f5e79 100644
> --- a/drivers/clk/ti/Makefile
> +++ b/drivers/clk/ti/Makefile
> @@ -1,4 +1,3 @@
> -ifneq ($(CONFIG_OF),)
> obj-y += clk.o autoidle.o clockdomain.o
> clk-common = dpll.o composite.o divider.o gate.o \
> fixed-factor.o mux.o apll.o
> @@ -6,10 +5,13 @@ obj-$(CONFIG_SOC_AM33XX) += $(clk-common) clk-33xx.o
> obj-$(CONFIG_SOC_TI81XX) += $(clk-common) fapll.o clk-816x.o
> obj-$(CONFIG_ARCH_OMAP2) += $(clk-common) interface.o clk-2xxx.o
> obj-$(CONFIG_ARCH_OMAP3) += $(clk-common) interface.o \
> - clk-3xxx.o clk-3xxx-legacy.o
> + clk-3xxx.o
> obj-$(CONFIG_ARCH_OMAP4) += $(clk-common) clk-44xx.o
> obj-$(CONFIG_SOC_OMAP5) += $(clk-common) clk-54xx.o
> obj-$(CONFIG_SOC_DRA7XX) += $(clk-common) clk-7xx.o \
> clk-dra7-atl.o
> obj-$(CONFIG_SOC_AM43XX) += $(clk-common) clk-43xx.o
> +
> +ifdef CONFIG_ATAGS
> +obj-$(CONFIG_ARCH_OMAP3) += clk-3xxx-legacy.o
> endif
> diff --git a/drivers/clk/ti/clk.c b/drivers/clk/ti/clk.c
> index 546dae405402..e22b95646e09 100644
> --- a/drivers/clk/ti/clk.c
> +++ b/drivers/clk/ti/clk.c
> @@ -186,6 +186,7 @@ void ti_dt_clk_init_retry_clks(void)
> }
> }
>
> +#if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_ATAGS)
> void __init ti_clk_patch_legacy_clks(struct ti_clk **patch)
> {
> while (*patch) {
> @@ -308,3 +309,4 @@ int __init ti_clk_register_legacy_clks(struct ti_clk_alias *clks)
>
> return 0;
> }
> +#endif
> diff --git a/drivers/clk/ti/composite.c b/drivers/clk/ti/composite.c
> index 3a9665fce041..3654f61912eb 100644
> --- a/drivers/clk/ti/composite.c
> +++ b/drivers/clk/ti/composite.c
> @@ -118,6 +118,7 @@ static inline struct clk_hw *_get_hw(struct clk_hw_omap_comp *clk, int idx)
>
> #define to_clk_hw_comp(_hw) container_of(_hw, struct clk_hw_omap_comp, hw)
>
> +#if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_ATAGS)
> struct clk *ti_clk_register_composite(struct ti_clk *setup)
> {
> struct ti_clk_composite *comp;
> @@ -153,6 +154,7 @@ struct clk *ti_clk_register_composite(struct ti_clk *setup)
>
> return clk;
> }
> +#endif
>
> static void __init _register_composite(struct clk_hw *hw,
> struct device_node *node)
> diff --git a/drivers/clk/ti/dpll.c b/drivers/clk/ti/dpll.c
> index 47ebff772b13..81dc4698dc41 100644
> --- a/drivers/clk/ti/dpll.c
> +++ b/drivers/clk/ti/dpll.c
> @@ -176,6 +176,7 @@ cleanup:
> kfree(clk_hw);
> }
>
> +#if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_ATAGS)
> void __iomem *_get_reg(u8 module, u16 offset)
> {
> u32 reg;
> @@ -271,6 +272,7 @@ cleanup:
> kfree(clk_hw);
> return clk;
> }
> +#endif
>
> #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) || \
> defined(CONFIG_SOC_DRA7XX) || defined(CONFIG_SOC_AM33XX) || \
> diff --git a/drivers/clk/ti/gate.c b/drivers/clk/ti/gate.c
> index d4f6cb20e16e..d493307b73f4 100644
> --- a/drivers/clk/ti/gate.c
> +++ b/drivers/clk/ti/gate.c
> @@ -130,6 +130,7 @@ static struct clk *_register_gate(struct device *dev, const char *name,
> return clk;
> }
>
> +#if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_ATAGS)
> struct clk *ti_clk_register_gate(struct ti_clk *setup)
> {
> const struct clk_ops *ops = &omap_gate_clk_ops;
> @@ -208,6 +209,7 @@ struct clk_hw *ti_clk_build_component_gate(struct ti_clk_gate *setup)
>
> return &gate->hw;
> }
> +#endif
>
> static void __init _of_ti_gate_clk_setup(struct device_node *node,
> const struct clk_ops *ops,
> diff --git a/drivers/clk/ti/interface.c b/drivers/clk/ti/interface.c
> index d71cd9b5de46..265d91f071c5 100644
> --- a/drivers/clk/ti/interface.c
> +++ b/drivers/clk/ti/interface.c
> @@ -68,6 +68,7 @@ static struct clk *_register_interface(struct device *dev, const char *name,
> return clk;
> }
>
> +#if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_ATAGS)
> struct clk *ti_clk_register_interface(struct ti_clk *setup)
> {
> const struct clk_hw_omap_ops *ops = &clkhwops_iclk_wait;
> @@ -98,6 +99,7 @@ struct clk *ti_clk_register_interface(struct ti_clk *setup)
> return _register_interface(NULL, setup->name, gate->parent,
> (void __iomem *)reg, gate->bit_shift, ops);
> }
> +#endif
>
> static void __init _of_ti_interface_clk_setup(struct device_node *node,
> const struct clk_hw_omap_ops *ops)
> diff --git a/include/linux/clk/ti.h b/include/linux/clk/ti.h
> index 0eac65054283..67844003493d 100644
> --- a/include/linux/clk/ti.h
> +++ b/include/linux/clk/ti.h
> @@ -360,9 +360,17 @@ extern const struct clk_hw_omap_ops clkhwops_omap3430es2_iclk_ssi_wait;
> extern const struct clk_hw_omap_ops clkhwops_omap3430es2_iclk_dss_usbhost_wait;
> extern const struct clk_hw_omap_ops clkhwops_omap3430es2_iclk_hsotgusb_wait;
>
> +#ifdef CONFIG_ATAGS
> int omap3430_clk_legacy_init(void);
> int omap3430es1_clk_legacy_init(void);
> int omap36xx_clk_legacy_init(void);
> int am35xx_clk_legacy_init(void);
> +#else
> +static inline int omap3430_clk_legacy_init(void) { return -ENXIO; }
> +static inline int omap3430es1_clk_legacy_init(void) { return -ENXIO; }
> +static inline int omap36xx_clk_legacy_init(void) { return -ENXIO; }
> +static inline int am35xx_clk_legacy_init(void) { return -ENXIO; }
> +#endif
> +
>
> #endif
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-02-03 19:07 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-16 16:20 [PATCH 00/11] ARM: OMAP3: legacy clock data move under clk driver Tero Kristo
2014-12-16 16:20 ` Tero Kristo
2014-12-16 16:20 ` [PATCH 01/11] clk: ti: add core support for initializing legacy clocks Tero Kristo
2014-12-16 16:20 ` Tero Kristo
2014-12-16 16:20 ` [PATCH 02/11] clk: ti: mux: add support for legacy mux init Tero Kristo
2014-12-16 16:20 ` Tero Kristo
2014-12-16 16:20 ` [PATCH 03/11] clk: ti: gate: add support for legacy gate init Tero Kristo
2014-12-16 16:20 ` Tero Kristo
2014-12-16 16:20 ` [PATCH 04/11] clk: ti: interface: add support for legacy interface clock init Tero Kristo
2014-12-16 16:20 ` Tero Kristo
2014-12-16 16:20 ` [PATCH 05/11] clk: ti: divider: add support for legacy divider init Tero Kristo
2014-12-16 16:20 ` Tero Kristo
2014-12-16 16:20 ` [PATCH 06/11] clk: ti: dpll: add support for legacy DPLL init Tero Kristo
2014-12-16 16:20 ` Tero Kristo
2014-12-16 16:20 ` [PATCH 07/11] clk: ti: composite: add support for legacy composite clock init Tero Kristo
2014-12-16 16:20 ` Tero Kristo
2014-12-16 16:20 ` [PATCH 09/11] ARM: OMAP3: PRM: add support for legacy iomapping init Tero Kristo
2014-12-16 16:20 ` Tero Kristo
2014-12-16 16:20 ` [PATCH 10/11] ARM: OMAP3: use clock data from TI clock driver for legacy boot Tero Kristo
2014-12-16 16:20 ` Tero Kristo
2015-01-07 23:00 ` [PATCH 00/11] ARM: OMAP3: legacy clock data move under clk driver Tony Lindgren
2015-01-07 23:00 ` Tony Lindgren
2015-01-29 20:19 ` Tero Kristo
2015-01-29 20:19 ` Tero Kristo
2015-01-30 0:42 ` Mike Turquette
2015-01-30 0:42 ` Mike Turquette
2015-01-30 15:20 ` Tero Kristo
2015-01-30 15:20 ` Tero Kristo
2015-01-30 18:45 ` Mike Turquette
2015-01-30 18:45 ` Mike Turquette
2015-02-03 16:59 ` Arnd Bergmann
2015-02-03 16:59 ` Arnd Bergmann
2015-02-03 19:04 ` Tony Lindgren [this message]
2015-02-03 19:04 ` Tony Lindgren
2015-02-03 19:11 ` Mike Turquette
2015-02-03 19:11 ` Mike Turquette
2015-01-29 20:24 ` [PATCHv2 06/11] clk: ti: dpll: add support for legacy DPLL init Tero Kristo
2015-01-29 20:24 ` Tero Kristo
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=20150203190359.GB25235@atomide.com \
--to=tony@atomide.com \
--cc=arnd@arndb.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=mturquette@linaro.org \
--cc=paul@pwsan.com \
--cc=t-kristo@ti.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.