From: Eduardo Valentin <edubezval@gmail.com>
To: Caesar Wang <wxt@rock-chips.com>
Cc: Heiko Stuebner <heiko@sntech.de>,
dianders@chromium.org, briannorris@google.com,
smbarber@google.com, linux-rockchip@lists.infradead.org,
Zhang Rui <rui.zhang@intel.com>,
linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/9] thermal: rockchip: handle the power sequence for tsadc controller
Date: Wed, 27 Apr 2016 16:48:19 -0700 [thread overview]
Message-ID: <20160427234818.GB2590@localhost.localdomain> (raw)
In-Reply-To: <1460950562-20652-5-git-send-email-wxt@rock-chips.com>
On Mon, Apr 18, 2016 at 11:35:56AM +0800, Caesar Wang wrote:
> This adds the grf property to handle the tsadc power sequence on
> rockchip some SoCs.
>
> Verified on rk3399 can work with this patch on now.
>
> while true; do grep "" /sys/class/thermal/thermal_zone[0-1]/temp
> sleep .5; done
> /sys/class/thermal/thermal_zone0/temp:40555
> /sys/class/thermal/thermal_zone1/temp:41111
> /sys/class/thermal/thermal_zone0/temp:40555
> /sys/class/thermal/thermal_zone1/temp:41111
> /sys/class/thermal/thermal_zone0/temp:40555
> /sys/class/thermal/thermal_zone1/temp:41666
> /sys/class/thermal/thermal_zone0/temp:40555
> /sys/class/thermal/thermal_zone1/temp:41111
> /sys/class/thermal/thermal_zone0/temp:40555
> /sys/class/thermal/thermal_zone1/temp:41111
> /sys/class/thermal/thermal_zone0/temp:40555
>
> Signed-off-by: Caesar Wang <wxt@rock-chips.com>
> Cc: Zhang Rui <rui.zhang@intel.com>
> Cc: Eduardo Valentin <edubezval@gmail.com>
> Cc: Heiko Stuebner <heiko@sntech.de>
> ---
>
> drivers/thermal/rockchip_thermal.c | 87 +++++++++++++++++++++++++++++++++++---
> 1 file changed, 82 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/thermal/rockchip_thermal.c b/drivers/thermal/rockchip_thermal.c
> index e5064d7..3cb2e94 100644
> --- a/drivers/thermal/rockchip_thermal.c
> +++ b/drivers/thermal/rockchip_thermal.c
> @@ -23,8 +23,10 @@
> #include <linux/of_address.h>
> #include <linux/of_irq.h>
> #include <linux/platform_device.h>
> +#include <linux/regmap.h>
> #include <linux/reset.h>
> #include <linux/thermal.h>
> +#include <linux/mfd/syscon.h>
> #include <linux/pinctrl/consumer.h>
>
> /**
> @@ -97,7 +99,8 @@ struct rockchip_tsadc_chip {
> enum tshut_polarity tshut_polarity;
>
> /* Chip-wide methods */
> - void (*initialize)(void __iomem *reg, enum tshut_polarity p);
> + void (*initialize)(struct regmap *grf,
> + void __iomem *reg, enum tshut_polarity p);
> void (*irq_ack)(void __iomem *reg);
> void (*control)(void __iomem *reg, bool on);
>
> @@ -128,6 +131,7 @@ struct rockchip_thermal_data {
> struct clk *clk;
> struct clk *pclk;
>
> + struct regmap *grf;
> void __iomem *regs;
>
> int tshut_temp;
> @@ -142,6 +146,7 @@ struct rockchip_thermal_data {
> * TSADCV3_* are used for newer SoCs than RK3288. (e.g: RK3228, RK3399)
> *
> */
> +#define TSADCV2_USER_CON 0x00
> #define TSADCV2_AUTO_CON 0x04
> #define TSADCV2_INT_EN 0x08
> #define TSADCV2_INT_PD 0x0c
> @@ -177,6 +182,16 @@ struct rockchip_thermal_data {
> #define TSADCV2_HIGHT_TSHUT_DEBOUNCE_COUNT 4
> #define TSADCV2_AUTO_PERIOD_TIME 250 /* msec */
> #define TSADCV2_AUTO_PERIOD_HT_TIME 50 /* msec */
> +#define TSADCV2_USER_INTER_PD_SOC 0x340 /* 13 clocks */
> +
> +#define GRF_SARADC_TESTBIT 0x0e644
> +#define GRF_TSADC_TESTBIT_L 0x0e648
> +#define GRF_TSADC_TESTBIT_H 0x0e64c
> +
> +#define GRF_TSADC_TSEN_PD_ON (0x30003 << 0)
> +#define GRF_TSADC_TSEN_PD_OFF (0x30000 << 0)
> +#define GRF_SARADC_TESTBIT_ON (0x10001 << 2)
> +#define GRF_TSADC_TESTBIT_H_ON (0x10001 << 2)
>
> struct tsadc_table {
> u32 code;
> @@ -449,7 +464,7 @@ static int rk_tsadcv2_code_to_temp(struct chip_tsadc_table table, u32 code,
> * If the temperature is higher than COMP_INT or COMP_SHUT for
> * "debounce" times, TSADC controller will generate interrupt or TSHUT.
> */
> -static void rk_tsadcv2_initialize(void __iomem *regs,
> +static void rk_tsadcv2_initialize(struct regmap *grf, void __iomem *regs,
> enum tshut_polarity tshut_polarity)
> {
> if (tshut_polarity == TSHUT_HIGH_ACTIVE)
> @@ -466,6 +481,61 @@ static void rk_tsadcv2_initialize(void __iomem *regs,
> regs + TSADCV2_AUTO_PERIOD_HT);
> writel_relaxed(TSADCV2_HIGHT_TSHUT_DEBOUNCE_COUNT,
> regs + TSADCV2_HIGHT_TSHUT_DEBOUNCE);
> +
> + if (IS_ERR(grf)) {
> + pr_warn("%s: Missing rockchip,grf property\n", __func__);
> + return;
> + }
> +}
> +
> +/**
> + * rk_tsadcv3_initialize - initialize TASDC Controller.
> + * (1) The tsadc control power sequence.
> + *
> + * (2) Set TSADC_V2_AUTO_PERIOD:
> + * Configure the interleave between every two accessing of
> + * TSADC in normal operation.
> + *
> + * (2) Set TSADCV2_AUTO_PERIOD_HT:
> + * Configure the interleave between every two accessing of
> + * TSADC after the temperature is higher than COM_SHUT or COM_INT.
> + *
> + * (3) Set TSADCV2_HIGH_INT_DEBOUNCE and TSADC_HIGHT_TSHUT_DEBOUNCE:
> + * If the temperature is higher than COMP_INT or COMP_SHUT for
> + * "debounce" times, TSADC controller will generate interrupt or TSHUT.
> + */
> +static void rk_tsadcv3_initialize(struct regmap *grf, void __iomem *regs,
> + enum tshut_polarity tshut_polarity)
> +{
> + /* The tsadc control power sequence */
> + if (IS_ERR(grf)) {
> + /* Set interleave value to workround ic time sync issue */
> + writel_relaxed(TSADCV2_USER_INTER_PD_SOC, regs +
> + TSADCV2_USER_CON);
> + } else {
> + regmap_write(grf, GRF_TSADC_TESTBIT_L, GRF_TSADC_TSEN_PD_ON);
> + mdelay(10);
> + regmap_write(grf, GRF_TSADC_TESTBIT_L, GRF_TSADC_TSEN_PD_OFF);
> + udelay(100); /* The spec note says at least 15 us */
> + regmap_write(grf, GRF_SARADC_TESTBIT, GRF_SARADC_TESTBIT_ON);
> + regmap_write(grf, GRF_TSADC_TESTBIT_H, GRF_TSADC_TESTBIT_H_ON);
> + udelay(200); /* The spec note says at least 90 us */
Does it make sense to use usleep_range() instead?
> + }
> +
> + if (tshut_polarity == TSHUT_HIGH_ACTIVE)
> + writel_relaxed(0U | TSADCV2_AUTO_TSHUT_POLARITY_HIGH,
> + regs + TSADCV2_AUTO_CON);
> + else
> + writel_relaxed(0U & ~TSADCV2_AUTO_TSHUT_POLARITY_HIGH,
> + regs + TSADCV2_AUTO_CON);
> +
> + writel_relaxed(TSADCV2_AUTO_PERIOD_TIME, regs + TSADCV2_AUTO_PERIOD);
> + writel_relaxed(TSADCV2_HIGHT_INT_DEBOUNCE_COUNT,
> + regs + TSADCV2_HIGHT_INT_DEBOUNCE);
> + writel_relaxed(TSADCV2_AUTO_PERIOD_HT_TIME,
> + regs + TSADCV2_AUTO_PERIOD_HT);
> + writel_relaxed(TSADCV2_HIGHT_TSHUT_DEBOUNCE_COUNT,
> + regs + TSADCV2_HIGHT_TSHUT_DEBOUNCE);
> }
>
> static void rk_tsadcv2_irq_ack(void __iomem *regs)
> @@ -636,7 +706,7 @@ static const struct rockchip_tsadc_chip rk3399_tsadc_data = {
> .tshut_polarity = TSHUT_LOW_ACTIVE, /* default TSHUT LOW ACTIVE */
> .tshut_temp = 95000,
>
> - .initialize = rk_tsadcv2_initialize,
> + .initialize = rk_tsadcv3_initialize,
> .irq_ack = rk_tsadcv3_irq_ack,
> .control = rk_tsadcv3_control,
> .get_temp = rk_tsadcv2_get_temp,
> @@ -768,6 +838,11 @@ static int rockchip_configure_from_dt(struct device *dev,
> return -EINVAL;
> }
>
> + /* The tsadc wont to handle the error in here since some SoCs didn't
> + * need this property.
> + */
> + thermal->grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf");
> +
> return 0;
> }
>
> @@ -888,7 +963,8 @@ static int rockchip_thermal_probe(struct platform_device *pdev)
> goto err_disable_pclk;
> }
>
> - thermal->chip->initialize(thermal->regs, thermal->tshut_polarity);
> + thermal->chip->initialize(thermal->grf, thermal->regs,
> + thermal->tshut_polarity);
>
> for (i = 0; i < thermal->chip->chn_num; i++) {
> error = rockchip_thermal_register_sensor(pdev, thermal,
> @@ -986,7 +1062,8 @@ static int __maybe_unused rockchip_thermal_resume(struct device *dev)
>
> rockchip_thermal_reset_controller(thermal->reset);
>
> - thermal->chip->initialize(thermal->regs, thermal->tshut_polarity);
> + thermal->chip->initialize(thermal->grf, thermal->regs,
> + thermal->tshut_polarity);
>
> for (i = 0; i < thermal->chip->chn_num; i++) {
> int id = thermal->sensors[i].id;
> --
> 1.9.1
>
WARNING: multiple messages have this Message-ID (diff)
From: edubezval@gmail.com (Eduardo Valentin)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4/9] thermal: rockchip: handle the power sequence for tsadc controller
Date: Wed, 27 Apr 2016 16:48:19 -0700 [thread overview]
Message-ID: <20160427234818.GB2590@localhost.localdomain> (raw)
In-Reply-To: <1460950562-20652-5-git-send-email-wxt@rock-chips.com>
On Mon, Apr 18, 2016 at 11:35:56AM +0800, Caesar Wang wrote:
> This adds the grf property to handle the tsadc power sequence on
> rockchip some SoCs.
>
> Verified on rk3399 can work with this patch on now.
>
> while true; do grep "" /sys/class/thermal/thermal_zone[0-1]/temp
> sleep .5; done
> /sys/class/thermal/thermal_zone0/temp:40555
> /sys/class/thermal/thermal_zone1/temp:41111
> /sys/class/thermal/thermal_zone0/temp:40555
> /sys/class/thermal/thermal_zone1/temp:41111
> /sys/class/thermal/thermal_zone0/temp:40555
> /sys/class/thermal/thermal_zone1/temp:41666
> /sys/class/thermal/thermal_zone0/temp:40555
> /sys/class/thermal/thermal_zone1/temp:41111
> /sys/class/thermal/thermal_zone0/temp:40555
> /sys/class/thermal/thermal_zone1/temp:41111
> /sys/class/thermal/thermal_zone0/temp:40555
>
> Signed-off-by: Caesar Wang <wxt@rock-chips.com>
> Cc: Zhang Rui <rui.zhang@intel.com>
> Cc: Eduardo Valentin <edubezval@gmail.com>
> Cc: Heiko Stuebner <heiko@sntech.de>
> ---
>
> drivers/thermal/rockchip_thermal.c | 87 +++++++++++++++++++++++++++++++++++---
> 1 file changed, 82 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/thermal/rockchip_thermal.c b/drivers/thermal/rockchip_thermal.c
> index e5064d7..3cb2e94 100644
> --- a/drivers/thermal/rockchip_thermal.c
> +++ b/drivers/thermal/rockchip_thermal.c
> @@ -23,8 +23,10 @@
> #include <linux/of_address.h>
> #include <linux/of_irq.h>
> #include <linux/platform_device.h>
> +#include <linux/regmap.h>
> #include <linux/reset.h>
> #include <linux/thermal.h>
> +#include <linux/mfd/syscon.h>
> #include <linux/pinctrl/consumer.h>
>
> /**
> @@ -97,7 +99,8 @@ struct rockchip_tsadc_chip {
> enum tshut_polarity tshut_polarity;
>
> /* Chip-wide methods */
> - void (*initialize)(void __iomem *reg, enum tshut_polarity p);
> + void (*initialize)(struct regmap *grf,
> + void __iomem *reg, enum tshut_polarity p);
> void (*irq_ack)(void __iomem *reg);
> void (*control)(void __iomem *reg, bool on);
>
> @@ -128,6 +131,7 @@ struct rockchip_thermal_data {
> struct clk *clk;
> struct clk *pclk;
>
> + struct regmap *grf;
> void __iomem *regs;
>
> int tshut_temp;
> @@ -142,6 +146,7 @@ struct rockchip_thermal_data {
> * TSADCV3_* are used for newer SoCs than RK3288. (e.g: RK3228, RK3399)
> *
> */
> +#define TSADCV2_USER_CON 0x00
> #define TSADCV2_AUTO_CON 0x04
> #define TSADCV2_INT_EN 0x08
> #define TSADCV2_INT_PD 0x0c
> @@ -177,6 +182,16 @@ struct rockchip_thermal_data {
> #define TSADCV2_HIGHT_TSHUT_DEBOUNCE_COUNT 4
> #define TSADCV2_AUTO_PERIOD_TIME 250 /* msec */
> #define TSADCV2_AUTO_PERIOD_HT_TIME 50 /* msec */
> +#define TSADCV2_USER_INTER_PD_SOC 0x340 /* 13 clocks */
> +
> +#define GRF_SARADC_TESTBIT 0x0e644
> +#define GRF_TSADC_TESTBIT_L 0x0e648
> +#define GRF_TSADC_TESTBIT_H 0x0e64c
> +
> +#define GRF_TSADC_TSEN_PD_ON (0x30003 << 0)
> +#define GRF_TSADC_TSEN_PD_OFF (0x30000 << 0)
> +#define GRF_SARADC_TESTBIT_ON (0x10001 << 2)
> +#define GRF_TSADC_TESTBIT_H_ON (0x10001 << 2)
>
> struct tsadc_table {
> u32 code;
> @@ -449,7 +464,7 @@ static int rk_tsadcv2_code_to_temp(struct chip_tsadc_table table, u32 code,
> * If the temperature is higher than COMP_INT or COMP_SHUT for
> * "debounce" times, TSADC controller will generate interrupt or TSHUT.
> */
> -static void rk_tsadcv2_initialize(void __iomem *regs,
> +static void rk_tsadcv2_initialize(struct regmap *grf, void __iomem *regs,
> enum tshut_polarity tshut_polarity)
> {
> if (tshut_polarity == TSHUT_HIGH_ACTIVE)
> @@ -466,6 +481,61 @@ static void rk_tsadcv2_initialize(void __iomem *regs,
> regs + TSADCV2_AUTO_PERIOD_HT);
> writel_relaxed(TSADCV2_HIGHT_TSHUT_DEBOUNCE_COUNT,
> regs + TSADCV2_HIGHT_TSHUT_DEBOUNCE);
> +
> + if (IS_ERR(grf)) {
> + pr_warn("%s: Missing rockchip,grf property\n", __func__);
> + return;
> + }
> +}
> +
> +/**
> + * rk_tsadcv3_initialize - initialize TASDC Controller.
> + * (1) The tsadc control power sequence.
> + *
> + * (2) Set TSADC_V2_AUTO_PERIOD:
> + * Configure the interleave between every two accessing of
> + * TSADC in normal operation.
> + *
> + * (2) Set TSADCV2_AUTO_PERIOD_HT:
> + * Configure the interleave between every two accessing of
> + * TSADC after the temperature is higher than COM_SHUT or COM_INT.
> + *
> + * (3) Set TSADCV2_HIGH_INT_DEBOUNCE and TSADC_HIGHT_TSHUT_DEBOUNCE:
> + * If the temperature is higher than COMP_INT or COMP_SHUT for
> + * "debounce" times, TSADC controller will generate interrupt or TSHUT.
> + */
> +static void rk_tsadcv3_initialize(struct regmap *grf, void __iomem *regs,
> + enum tshut_polarity tshut_polarity)
> +{
> + /* The tsadc control power sequence */
> + if (IS_ERR(grf)) {
> + /* Set interleave value to workround ic time sync issue */
> + writel_relaxed(TSADCV2_USER_INTER_PD_SOC, regs +
> + TSADCV2_USER_CON);
> + } else {
> + regmap_write(grf, GRF_TSADC_TESTBIT_L, GRF_TSADC_TSEN_PD_ON);
> + mdelay(10);
> + regmap_write(grf, GRF_TSADC_TESTBIT_L, GRF_TSADC_TSEN_PD_OFF);
> + udelay(100); /* The spec note says at least 15 us */
> + regmap_write(grf, GRF_SARADC_TESTBIT, GRF_SARADC_TESTBIT_ON);
> + regmap_write(grf, GRF_TSADC_TESTBIT_H, GRF_TSADC_TESTBIT_H_ON);
> + udelay(200); /* The spec note says at least 90 us */
Does it make sense to use usleep_range() instead?
> + }
> +
> + if (tshut_polarity == TSHUT_HIGH_ACTIVE)
> + writel_relaxed(0U | TSADCV2_AUTO_TSHUT_POLARITY_HIGH,
> + regs + TSADCV2_AUTO_CON);
> + else
> + writel_relaxed(0U & ~TSADCV2_AUTO_TSHUT_POLARITY_HIGH,
> + regs + TSADCV2_AUTO_CON);
> +
> + writel_relaxed(TSADCV2_AUTO_PERIOD_TIME, regs + TSADCV2_AUTO_PERIOD);
> + writel_relaxed(TSADCV2_HIGHT_INT_DEBOUNCE_COUNT,
> + regs + TSADCV2_HIGHT_INT_DEBOUNCE);
> + writel_relaxed(TSADCV2_AUTO_PERIOD_HT_TIME,
> + regs + TSADCV2_AUTO_PERIOD_HT);
> + writel_relaxed(TSADCV2_HIGHT_TSHUT_DEBOUNCE_COUNT,
> + regs + TSADCV2_HIGHT_TSHUT_DEBOUNCE);
> }
>
> static void rk_tsadcv2_irq_ack(void __iomem *regs)
> @@ -636,7 +706,7 @@ static const struct rockchip_tsadc_chip rk3399_tsadc_data = {
> .tshut_polarity = TSHUT_LOW_ACTIVE, /* default TSHUT LOW ACTIVE */
> .tshut_temp = 95000,
>
> - .initialize = rk_tsadcv2_initialize,
> + .initialize = rk_tsadcv3_initialize,
> .irq_ack = rk_tsadcv3_irq_ack,
> .control = rk_tsadcv3_control,
> .get_temp = rk_tsadcv2_get_temp,
> @@ -768,6 +838,11 @@ static int rockchip_configure_from_dt(struct device *dev,
> return -EINVAL;
> }
>
> + /* The tsadc wont to handle the error in here since some SoCs didn't
> + * need this property.
> + */
> + thermal->grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf");
> +
> return 0;
> }
>
> @@ -888,7 +963,8 @@ static int rockchip_thermal_probe(struct platform_device *pdev)
> goto err_disable_pclk;
> }
>
> - thermal->chip->initialize(thermal->regs, thermal->tshut_polarity);
> + thermal->chip->initialize(thermal->grf, thermal->regs,
> + thermal->tshut_polarity);
>
> for (i = 0; i < thermal->chip->chn_num; i++) {
> error = rockchip_thermal_register_sensor(pdev, thermal,
> @@ -986,7 +1062,8 @@ static int __maybe_unused rockchip_thermal_resume(struct device *dev)
>
> rockchip_thermal_reset_controller(thermal->reset);
>
> - thermal->chip->initialize(thermal->regs, thermal->tshut_polarity);
> + thermal->chip->initialize(thermal->grf, thermal->regs,
> + thermal->tshut_polarity);
>
> for (i = 0; i < thermal->chip->chn_num; i++) {
> int id = thermal->sensors[i].id;
> --
> 1.9.1
>
next prev parent reply other threads:[~2016-04-27 23:48 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-18 3:35 [PATCH 0/9] thermal: rockchip: Support rk3366/rk3399 SoCS and fixes the driver Caesar Wang
2016-04-18 3:35 ` Caesar Wang
2016-04-18 3:35 ` Caesar Wang
2016-04-18 3:35 ` [PATCH 1/9] thermal: rockchip: disable thermal->clk in err case Caesar Wang
2016-04-18 3:35 ` Caesar Wang
2016-04-18 3:35 ` [PATCH 2/9] thermal: rockchip: fixes the code_to_temp for tsadc driver Caesar Wang
2016-04-18 3:35 ` Caesar Wang
2016-04-18 3:35 ` [PATCH 3/9] thermal: rockchip: update the tsadc table for rk3399 Caesar Wang
2016-04-18 3:35 ` Caesar Wang
2016-04-18 3:35 ` [PATCH 4/9] thermal: rockchip: handle the power sequence for tsadc controller Caesar Wang
2016-04-18 3:35 ` Caesar Wang
2016-04-27 23:48 ` Eduardo Valentin [this message]
2016-04-27 23:48 ` Eduardo Valentin
[not found] ` <57216C65.5040501@gmail.com>
2016-04-28 15:04 ` Eduardo Valentin
2016-04-28 15:04 ` Eduardo Valentin
2016-05-03 2:27 ` Caesar Wang
2016-05-03 2:27 ` Caesar Wang
2016-04-18 3:35 ` [PATCH 5/9] thermal: rockchip: Support RK3366 SoCs in the thermal driver Caesar Wang
2016-04-18 3:35 ` Caesar Wang
2016-04-18 3:35 ` [PATCH 6/9] thermal: rockchip: add the notes for better reading Caesar Wang
2016-04-18 3:35 ` Caesar Wang
2016-04-18 3:35 ` [PATCH 7/9] thermal: of: Add support for hardware-tracked trip points Caesar Wang
2016-04-20 23:48 ` Eduardo Valentin
2016-04-21 1:12 ` Brian Norris
2016-04-22 1:54 ` Caesar Wang
2016-04-22 5:41 ` Sascha Hauer
2016-04-22 10:17 ` Caesar Wang
2016-04-27 21:50 ` Eduardo Valentin
2016-04-18 3:36 ` [PATCH 8/9] thermal: rockchip: add the set_trips function Caesar Wang
2016-04-18 3:36 ` Caesar Wang
2016-04-18 3:36 ` [PATCH 9/9] arm64: dts: rockchip: move the rk3368 thermal data into rk3368.dtsi Caesar Wang
2016-04-18 3:36 ` Caesar Wang
[not found] ` <1460950562-20652-10-git-send-email-wxt-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2016-04-22 8:18 ` Heiko Stübner
2016-04-22 8:18 ` Heiko Stübner
2016-04-22 8:18 ` Heiko Stübner
2016-04-27 23:52 ` [PATCH 0/9] thermal: rockchip: Support rk3366/rk3399 SoCS and fixes the driver Eduardo Valentin
2016-04-27 23:52 ` Eduardo Valentin
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=20160427234818.GB2590@localhost.localdomain \
--to=edubezval@gmail.com \
--cc=briannorris@google.com \
--cc=dianders@chromium.org \
--cc=heiko@sntech.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=rui.zhang@intel.com \
--cc=smbarber@google.com \
--cc=wxt@rock-chips.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.