From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Linus Walleij <linus.walleij@linaro.org>,
linux-gpio@vger.kernel.org, Jiang Liu <jiang.liu@linux.intel.com>
Subject: [patch 15/22] pinctrl: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
Date: Mon, 13 Jul 2015 20:47:57 -0000 [thread overview]
Message-ID: <20150713072815.548358316@linutronix.de> (raw)
In-Reply-To: 20150713072703.919712512@linutronix.de
[-- Attachment #1: pinctrl-Use-irq_desc_get_xxx-to-avoid-redundant-look.patch --]
[-- Type: text/plain, Size: 16402 bytes --]
From: Jiang Liu <jiang.liu@linux.intel.com>
Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc while we
already have a pointer to corresponding irq_desc.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: linux-gpio@vger.kernel.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
drivers/pinctrl/intel/pinctrl-cherryview.c | 2 +-
drivers/pinctrl/intel/pinctrl-intel.c | 2 +-
drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 4 ++--
drivers/pinctrl/nomadik/pinctrl-nomadik.c | 12 +++++-------
drivers/pinctrl/pinctrl-amd.c | 2 +-
drivers/pinctrl/pinctrl-at91.c | 2 +-
drivers/pinctrl/pinctrl-coh901.c | 4 ++--
drivers/pinctrl/pinctrl-rockchip.c | 4 ++--
drivers/pinctrl/pinctrl-single.c | 2 +-
drivers/pinctrl/pinctrl-st.c | 6 +++---
drivers/pinctrl/qcom/pinctrl-msm.c | 2 +-
drivers/pinctrl/samsung/pinctrl-exynos.c | 8 ++++----
drivers/pinctrl/samsung/pinctrl-s3c24xx.c | 18 +++++++++---------
drivers/pinctrl/samsung/pinctrl-s3c64xx.c | 22 ++++++++++------------
drivers/pinctrl/sirf/pinctrl-sirf.c | 2 +-
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 4 ++--
16 files changed, 46 insertions(+), 50 deletions(-)
Index: tip/drivers/pinctrl/intel/pinctrl-cherryview.c
===================================================================
--- tip.orig/drivers/pinctrl/intel/pinctrl-cherryview.c
+++ tip/drivers/pinctrl/intel/pinctrl-cherryview.c
@@ -1412,7 +1412,7 @@ static void chv_gpio_irq_handler(unsigne
{
struct gpio_chip *gc = irq_desc_get_handler_data(desc);
struct chv_pinctrl *pctrl = gpiochip_to_pinctrl(gc);
- struct irq_chip *chip = irq_get_chip(irq);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
unsigned long pending;
u32 intr_line;
Index: tip/drivers/pinctrl/intel/pinctrl-intel.c
===================================================================
--- tip.orig/drivers/pinctrl/intel/pinctrl-intel.c
+++ tip/drivers/pinctrl/intel/pinctrl-intel.c
@@ -840,7 +840,7 @@ static void intel_gpio_irq_handler(unsig
{
struct gpio_chip *gc = irq_desc_get_handler_data(desc);
struct intel_pinctrl *pctrl = gpiochip_to_pinctrl(gc);
- struct irq_chip *chip = irq_get_chip(irq);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
int i;
chained_irq_enter(chip, desc);
Index: tip/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
===================================================================
--- tip.orig/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
+++ tip/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
@@ -1118,8 +1118,8 @@ mtk_eint_debounce_process(struct mtk_pin
static void mtk_eint_irq_handler(unsigned irq, struct irq_desc *desc)
{
- struct irq_chip *chip = irq_get_chip(irq);
- struct mtk_pinctrl *pctl = irq_get_handler_data(irq);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+ struct mtk_pinctrl *pctl = irq_desc_get_handler_data(desc);
unsigned int status, eint_num;
int offset, index, virq;
const struct mtk_eint_offsets *eint_offsets =
Index: tip/drivers/pinctrl/nomadik/pinctrl-nomadik.c
===================================================================
--- tip.orig/drivers/pinctrl/nomadik/pinctrl-nomadik.c
+++ tip/drivers/pinctrl/nomadik/pinctrl-nomadik.c
@@ -843,10 +843,9 @@ static void nmk_gpio_irq_shutdown(struct
clk_disable(nmk_chip->clk);
}
-static void __nmk_gpio_irq_handler(unsigned int irq, struct irq_desc *desc,
- u32 status)
+static void __nmk_gpio_irq_handler(struct irq_desc *desc, u32 status)
{
- struct irq_chip *host_chip = irq_get_chip(irq);
+ struct irq_chip *host_chip = irq_desc_get_chip(desc);
struct gpio_chip *chip = irq_desc_get_handler_data(desc);
chained_irq_enter(host_chip, desc);
@@ -871,17 +870,16 @@ static void nmk_gpio_irq_handler(unsigne
status = readl(nmk_chip->addr + NMK_GPIO_IS);
clk_disable(nmk_chip->clk);
- __nmk_gpio_irq_handler(irq, desc, status);
+ __nmk_gpio_irq_handler(desc, status);
}
-static void nmk_gpio_latent_irq_handler(unsigned int irq,
- struct irq_desc *desc)
+static void nmk_gpio_latent_irq_handler(unsigned int irq, struct irq_desc *desc)
{
struct gpio_chip *chip = irq_desc_get_handler_data(desc);
struct nmk_gpio_chip *nmk_chip = container_of(chip, struct nmk_gpio_chip, chip);
u32 status = nmk_chip->get_latent_status(nmk_chip->bank);
- __nmk_gpio_irq_handler(irq, desc, status);
+ __nmk_gpio_irq_handler(desc, status);
}
/* I/O Functions */
Index: tip/drivers/pinctrl/pinctrl-amd.c
===================================================================
--- tip.orig/drivers/pinctrl/pinctrl-amd.c
+++ tip/drivers/pinctrl/pinctrl-amd.c
@@ -501,7 +501,7 @@ static void amd_gpio_irq_handler(unsigne
u64 reg64;
int handled = 0;
unsigned long flags;
- struct irq_chip *chip = irq_get_chip(irq);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
struct gpio_chip *gc = irq_desc_get_handler_data(desc);
struct amd_gpio *gpio_dev = to_amd_gpio(gc);
Index: tip/drivers/pinctrl/pinctrl-at91.c
===================================================================
--- tip.orig/drivers/pinctrl/pinctrl-at91.c
+++ tip/drivers/pinctrl/pinctrl-at91.c
@@ -1596,7 +1596,7 @@ static struct irq_chip gpio_irqchip = {
static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)
{
- struct irq_chip *chip = irq_get_chip(irq);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
struct gpio_chip *gpio_chip = irq_desc_get_handler_data(desc);
struct at91_gpio_chip *at91_gpio = container_of(gpio_chip,
struct at91_gpio_chip, chip);
Index: tip/drivers/pinctrl/pinctrl-coh901.c
===================================================================
--- tip.orig/drivers/pinctrl/pinctrl-coh901.c
+++ tip/drivers/pinctrl/pinctrl-coh901.c
@@ -521,8 +521,8 @@ static struct irq_chip u300_gpio_irqchip
static void u300_gpio_irq_handler(unsigned irq, struct irq_desc *desc)
{
- struct irq_chip *parent_chip = irq_get_chip(irq);
- struct gpio_chip *chip = irq_get_handler_data(irq);
+ struct irq_chip *parent_chip = irq_desc_get_chip(desc);
+ struct gpio_chip *chip = irq_desc_get_handler_data(desc);
struct u300_gpio *gpio = to_u300_gpio(chip);
struct u300_gpio_port *port = &gpio->ports[irq - chip->base];
int pinoffset = port->number << 3; /* get the right stride */
Index: tip/drivers/pinctrl/pinctrl-rockchip.c
===================================================================
--- tip.orig/drivers/pinctrl/pinctrl-rockchip.c
+++ tip/drivers/pinctrl/pinctrl-rockchip.c
@@ -1471,8 +1471,8 @@ static const struct gpio_chip rockchip_g
static void rockchip_irq_demux(unsigned int irq, struct irq_desc *desc)
{
- struct irq_chip *chip = irq_get_chip(irq);
- struct rockchip_pin_bank *bank = irq_get_handler_data(irq);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+ struct rockchip_pin_bank *bank = irq_desc_get_handler_data(desc);
u32 pend;
dev_dbg(bank->drvdata->dev, "got irq for bank %s\n", bank->name);
Index: tip/drivers/pinctrl/pinctrl-single.c
===================================================================
--- tip.orig/drivers/pinctrl/pinctrl-single.c
+++ tip/drivers/pinctrl/pinctrl-single.c
@@ -1684,7 +1684,7 @@ static void pcs_irq_chain_handler(unsign
struct pcs_soc_data *pcs_soc = irq_desc_get_handler_data(desc);
struct irq_chip *chip;
- chip = irq_get_chip(irq);
+ chip = irq_desc_get_chip(desc);
chained_irq_enter(chip, desc);
pcs_irq_handle(pcs_soc);
/* REVISIT: export and add handle_bad_irq(irq, desc)? */
Index: tip/drivers/pinctrl/pinctrl-st.c
===================================================================
--- tip.orig/drivers/pinctrl/pinctrl-st.c
+++ tip/drivers/pinctrl/pinctrl-st.c
@@ -1463,7 +1463,7 @@ static void __gpio_irq_handler(struct st
static void st_gpio_irq_handler(unsigned irq, struct irq_desc *desc)
{
/* interrupt dedicated per bank */
- struct irq_chip *chip = irq_get_chip(irq);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
struct gpio_chip *gc = irq_desc_get_handler_data(desc);
struct st_gpio_bank *bank = gpio_chip_to_bank(gc);
@@ -1474,8 +1474,8 @@ static void st_gpio_irq_handler(unsigned
static void st_gpio_irqmux_handler(unsigned irq, struct irq_desc *desc)
{
- struct irq_chip *chip = irq_get_chip(irq);
- struct st_pinctrl *info = irq_get_handler_data(irq);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+ struct st_pinctrl *info = irq_desc_get_handler_data(desc);
unsigned long status;
int n;
Index: tip/drivers/pinctrl/qcom/pinctrl-msm.c
===================================================================
--- tip.orig/drivers/pinctrl/qcom/pinctrl-msm.c
+++ tip/drivers/pinctrl/qcom/pinctrl-msm.c
@@ -769,7 +769,7 @@ static void msm_gpio_irq_handler(unsigne
struct gpio_chip *gc = irq_desc_get_handler_data(desc);
const struct msm_pingroup *g;
struct msm_pinctrl *pctrl = to_msm_pinctrl(gc);
- struct irq_chip *chip = irq_get_chip(irq);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
int irq_pin;
int handled = 0;
u32 val;
Index: tip/drivers/pinctrl/samsung/pinctrl-exynos.c
===================================================================
--- tip.orig/drivers/pinctrl/samsung/pinctrl-exynos.c
+++ tip/drivers/pinctrl/samsung/pinctrl-exynos.c
@@ -422,9 +422,9 @@ static const struct of_device_id exynos_
/* interrupt handler for wakeup interrupts 0..15 */
static void exynos_irq_eint0_15(unsigned int irq, struct irq_desc *desc)
{
- struct exynos_weint_data *eintd = irq_get_handler_data(irq);
+ struct exynos_weint_data *eintd = irq_desc_get_handler_data(desc);
struct samsung_pin_bank *bank = eintd->bank;
- struct irq_chip *chip = irq_get_chip(irq);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
int eint_irq;
chained_irq_enter(chip, desc);
@@ -454,8 +454,8 @@ static inline void exynos_irq_demux_eint
/* interrupt handler for wakeup interrupt 16 */
static void exynos_irq_demux_eint16_31(unsigned int irq, struct irq_desc *desc)
{
- struct irq_chip *chip = irq_get_chip(irq);
- struct exynos_muxed_weint_data *eintd = irq_get_handler_data(irq);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+ struct exynos_muxed_weint_data *eintd = irq_desc_get_handler_data(desc);
struct samsung_pinctrl_drv_data *d = eintd->banks[0]->drvdata;
unsigned long pend;
unsigned long mask;
Index: tip/drivers/pinctrl/samsung/pinctrl-s3c24xx.c
===================================================================
--- tip.orig/drivers/pinctrl/samsung/pinctrl-s3c24xx.c
+++ tip/drivers/pinctrl/samsung/pinctrl-s3c24xx.c
@@ -243,7 +243,7 @@ static struct irq_chip s3c2410_eint0_3_c
static void s3c2410_demux_eint0_3(unsigned int irq, struct irq_desc *desc)
{
struct irq_data *data = irq_desc_get_irq_data(desc);
- struct s3c24xx_eint_data *eint_data = irq_get_handler_data(irq);
+ struct s3c24xx_eint_data *eint_data = irq_desc_get_handler_data(desc);
unsigned int virq;
/* the first 4 eints have a simple 1 to 1 mapping */
@@ -297,9 +297,9 @@ static struct irq_chip s3c2412_eint0_3_c
static void s3c2412_demux_eint0_3(unsigned int irq, struct irq_desc *desc)
{
- struct irq_chip *chip = irq_get_chip(irq);
+ struct s3c24xx_eint_data *eint_data = irq_desc_get_handler_data(desc);
struct irq_data *data = irq_desc_get_irq_data(desc);
- struct s3c24xx_eint_data *eint_data = irq_get_handler_data(irq);
+ struct irq_chip *chip = irq_data_get_irq_chip(data);
unsigned int virq;
chained_irq_enter(chip, desc);
@@ -357,11 +357,11 @@ static struct irq_chip s3c24xx_eint_chip
.irq_set_type = s3c24xx_eint_type,
};
-static inline void s3c24xx_demux_eint(unsigned int irq, struct irq_desc *desc,
+static inline void s3c24xx_demux_eint(struct irq_desc *desc,
u32 offset, u32 range)
{
- struct irq_chip *chip = irq_get_chip(irq);
- struct s3c24xx_eint_data *data = irq_get_handler_data(irq);
+ struct s3c24xx_eint_data *data = irq_desc_get_handler_data(desc);
+ struct irq_chip *chip = irq_desc_get_irq_chip(desc);
struct samsung_pinctrl_drv_data *d = data->drvdata;
unsigned int pend, mask;
@@ -374,7 +374,7 @@ static inline void s3c24xx_demux_eint(un
pend &= range;
while (pend) {
- unsigned int virq;
+ unsigned int virq, irq;
irq = __ffs(pend);
pend &= ~(1 << irq);
@@ -390,12 +390,12 @@ static inline void s3c24xx_demux_eint(un
static void s3c24xx_demux_eint4_7(unsigned int irq, struct irq_desc *desc)
{
- s3c24xx_demux_eint(irq, desc, 0, 0xf0);
+ s3c24xx_demux_eint(desc, 0, 0xf0);
}
static void s3c24xx_demux_eint8_23(unsigned int irq, struct irq_desc *desc)
{
- s3c24xx_demux_eint(irq, desc, 8, 0xffff00);
+ s3c24xx_demux_eint(desc, 8, 0xffff00);
}
static irq_flow_handler_t s3c2410_eint_handlers[NUM_EINT_IRQ] = {
Index: tip/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
===================================================================
--- tip.orig/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
+++ tip/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
@@ -410,8 +410,8 @@ static const struct irq_domain_ops s3c64
static void s3c64xx_eint_gpio_irq(unsigned int irq, struct irq_desc *desc)
{
- struct irq_chip *chip = irq_get_chip(irq);
- struct s3c64xx_eint_gpio_data *data = irq_get_handler_data(irq);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+ struct s3c64xx_eint_gpio_data *data = irq_desc_get_handler_data(desc);
struct samsung_pinctrl_drv_data *drvdata = data->drvdata;
chained_irq_enter(chip, desc);
@@ -599,11 +599,10 @@ static struct irq_chip s3c64xx_eint0_irq
.irq_set_type = s3c64xx_eint0_irq_set_type,
};
-static inline void s3c64xx_irq_demux_eint(unsigned int irq,
- struct irq_desc *desc, u32 range)
+static inline void s3c64xx_irq_demux_eint(struct irq_desc *desc, u32 range)
{
- struct irq_chip *chip = irq_get_chip(irq);
- struct s3c64xx_eint0_data *data = irq_get_handler_data(irq);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+ struct s3c64xx_eint0_data *data = irq_desc_get_handler_data(desc);
struct samsung_pinctrl_drv_data *drvdata = data->drvdata;
unsigned int pend, mask;
@@ -616,11 +615,10 @@ static inline void s3c64xx_irq_demux_ein
pend &= range;
while (pend) {
- unsigned int virq;
+ unsigned int virq, irq;
irq = fls(pend) - 1;
pend &= ~(1 << irq);
-
virq = irq_linear_revmap(data->domains[irq], data->pins[irq]);
/*
* Something must be really wrong if an unmapped EINT
@@ -636,22 +634,22 @@ static inline void s3c64xx_irq_demux_ein
static void s3c64xx_demux_eint0_3(unsigned int irq, struct irq_desc *desc)
{
- s3c64xx_irq_demux_eint(irq, desc, 0xf);
+ s3c64xx_irq_demux_eint(desc, 0xf);
}
static void s3c64xx_demux_eint4_11(unsigned int irq, struct irq_desc *desc)
{
- s3c64xx_irq_demux_eint(irq, desc, 0xff0);
+ s3c64xx_irq_demux_eint(desc, 0xff0);
}
static void s3c64xx_demux_eint12_19(unsigned int irq, struct irq_desc *desc)
{
- s3c64xx_irq_demux_eint(irq, desc, 0xff000);
+ s3c64xx_irq_demux_eint(desc, 0xff000);
}
static void s3c64xx_demux_eint20_27(unsigned int irq, struct irq_desc *desc)
{
- s3c64xx_irq_demux_eint(irq, desc, 0xff00000);
+ s3c64xx_irq_demux_eint(desc, 0xff00000);
}
static irq_flow_handler_t s3c64xx_eint0_handlers[NUM_EINT0_IRQ] = {
Index: tip/drivers/pinctrl/sirf/pinctrl-sirf.c
===================================================================
--- tip.orig/drivers/pinctrl/sirf/pinctrl-sirf.c
+++ tip/drivers/pinctrl/sirf/pinctrl-sirf.c
@@ -552,7 +552,7 @@ static void sirfsoc_gpio_handle_irq(unsi
struct sirfsoc_gpio_bank *bank;
u32 status, ctrl;
int idx = 0;
- struct irq_chip *chip = irq_get_chip(irq);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
int i;
for (i = 0; i < SIRFSOC_GPIO_NO_OF_BANKS; i++) {
Index: tip/drivers/pinctrl/sunxi/pinctrl-sunxi.c
===================================================================
--- tip.orig/drivers/pinctrl/sunxi/pinctrl-sunxi.c
+++ tip/drivers/pinctrl/sunxi/pinctrl-sunxi.c
@@ -711,8 +711,8 @@ static struct irq_chip sunxi_pinctrl_lev
static void sunxi_pinctrl_irq_handler(unsigned irq, struct irq_desc *desc)
{
- struct irq_chip *chip = irq_get_chip(irq);
- struct sunxi_pinctrl *pctl = irq_get_handler_data(irq);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+ struct sunxi_pinctrl *pctl = irq_desc_get_handler_data(desc);
unsigned long bank, reg, val;
for (bank = 0; bank < pctl->desc->irq_banks; bank++)
next prev parent reply other threads:[~2015-07-13 20:47 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-13 20:47 [patch 00/22] pinctrl: Interrupt cleanups and API change preparation Thomas Gleixner
2015-07-13 20:47 ` [patch 01/22] pinctrl/rockchip: Consolidate chained IRQ handler install/remove Thomas Gleixner
2015-07-13 20:47 ` [patch 02/22] pinctrl: " Thomas Gleixner
2015-07-13 20:47 ` [patch 03/22] pinctrl/exynos: " Thomas Gleixner
2015-07-13 20:47 ` [patch 04/22] pinctrl/bcm2835: Use irq_set_handler_locked() Thomas Gleixner
2015-07-13 20:47 ` [patch 05/22] pinctrl/baytrail: " Thomas Gleixner
2015-07-13 20:47 ` [patch 06/22] pinctrl/cherryview: " Thomas Gleixner
2015-07-13 20:47 ` [patch 07/22] pinctrl/intel: " Thomas Gleixner
2015-07-13 20:47 ` [patch 08/22] pinctrl/adi2: " Thomas Gleixner
2015-07-13 20:47 ` [patch 09/22] pinctrl/amd: " Thomas Gleixner
2015-07-13 20:47 ` [patch 10/22] pinctrl/at91: " Thomas Gleixner
2015-07-13 20:47 ` [patch 11/22] pinctrl/rockchip: " Thomas Gleixner
2015-07-13 20:47 ` [patch 12/22] pinctrl/qcom: " Thomas Gleixner
2015-07-13 20:47 ` [patch 13/22] pinctrl/exynos: " Thomas Gleixner
2015-07-13 20:47 ` [patch 14/22] pinctrl/samsung: " Thomas Gleixner
2015-07-13 21:09 ` Thomas Gleixner
2015-07-13 20:47 ` Thomas Gleixner [this message]
2015-08-31 21:28 ` [patch 15/22] pinctrl: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Paul Gortmaker
2015-09-08 14:00 ` Linus Walleij
2015-09-08 14:10 ` Thomas Gleixner
2015-09-08 14:50 ` Linus Walleij
2015-07-13 20:47 ` [patch 16/22] pinctrl/amd: Prepare amd_gpio_irq_handler for irq argument removal Thomas Gleixner
2015-07-13 20:48 ` [patch 17/22] pinctrl/coh901: Prepare u300_gpio_irq_handler " Thomas Gleixner
2015-07-13 20:48 ` [patch 18/22] pinctrl/pistachio: Prepare pistachio_gpio_irq_handler " Thomas Gleixner
2015-07-13 20:48 ` [patch 19/22] pinctrl/rockchip: Prepare rockchip_irq_demux " Thomas Gleixner
2015-07-13 20:48 ` [patch 20/22] pinctrl/qcom/msm: Prepare msm_gpio_irq_handler " Thomas Gleixner
2015-07-13 20:48 ` [patch 21/22] pinctrl/sirf: Prepare-x-gpio-handle-irq-for-irq-argument-removal.patch Thomas Gleixner
2015-07-13 20:48 ` [patch 22/22] pinctrl/sunxi: Prepare sunxi_pinctrl_irq_handler for irq argument removal Thomas Gleixner
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=20150713072815.548358316@linutronix.de \
--to=tglx@linutronix.de \
--cc=jiang.liu@linux.intel.com \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).