linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Linus Walleij <linus.walleij@linaro.org>,
	Alexandre Courbot <gnurou@gmail.com>,
	linux-gpio@vger.kernel.org, Jiang Liu <jiang.liu@linux.intel.com>
Subject: [patch 13/19] gpio: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
Date: Mon, 13 Jul 2015 20:41:35 -0000	[thread overview]
Message-ID: <20150712232405.813240119@linutronix.de> (raw)
In-Reply-To: 20150712232317.244138485@linutronix.de

[-- Attachment #1: gpio-Use-irq_desc_get_xxx-to-avoid-redundant-lookup-.patch --]
[-- Type: text/plain, Size: 6741 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.

Preparatory patch for the removal of the 'irq' argument from irq flow
handlers.

Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Cc: Alexandre Courbot <gnurou@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/gpio/gpio-bcm-kona.c   |    2 +-
 drivers/gpio/gpio-dwapb.c      |    2 +-
 drivers/gpio/gpio-mvebu.c      |    2 +-
 drivers/gpio/gpio-mxc.c        |    6 +++---
 drivers/gpio/gpio-mxs.c        |    2 +-
 drivers/gpio/gpio-omap.c       |    2 +-
 drivers/gpio/gpio-tegra.c      |    4 +---
 drivers/gpio/gpio-timberdale.c |    5 +++--
 drivers/gpio/gpio-vf610.c      |    2 +-
 drivers/gpio/gpio-zynq.c       |    2 +-
 10 files changed, 14 insertions(+), 15 deletions(-)

Index: tip/drivers/gpio/gpio-bcm-kona.c
===================================================================
--- tip.orig/drivers/gpio/gpio-bcm-kona.c
+++ tip/drivers/gpio/gpio-bcm-kona.c
@@ -438,7 +438,7 @@ static void bcm_kona_gpio_irq_handler(un
 	void __iomem *reg_base;
 	int bit, bank_id;
 	unsigned long sta;
-	struct bcm_kona_gpio_bank *bank = irq_get_handler_data(irq);
+	struct bcm_kona_gpio_bank *bank = irq_desc_get_handler_data(desc);
 	struct irq_chip *chip = irq_desc_get_chip(desc);
 
 	chained_irq_enter(chip, desc);
Index: tip/drivers/gpio/gpio-dwapb.c
===================================================================
--- tip.orig/drivers/gpio/gpio-dwapb.c
+++ tip/drivers/gpio/gpio-dwapb.c
@@ -149,7 +149,7 @@ static u32 dwapb_do_irq(struct dwapb_gpi
 
 static void dwapb_irq_handler(u32 irq, struct irq_desc *desc)
 {
-	struct dwapb_gpio *gpio = irq_get_handler_data(irq);
+	struct dwapb_gpio *gpio = irq_desc_get_handler_data(desc);
 	struct irq_chip *chip = irq_desc_get_chip(desc);
 
 	dwapb_do_irq(gpio);
Index: tip/drivers/gpio/gpio-mvebu.c
===================================================================
--- tip.orig/drivers/gpio/gpio-mvebu.c
+++ tip/drivers/gpio/gpio-mvebu.c
@@ -460,7 +460,7 @@ static int mvebu_gpio_irq_set_type(struc
 
 static void mvebu_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
 {
-	struct mvebu_gpio_chip *mvchip = irq_get_handler_data(irq);
+	struct mvebu_gpio_chip *mvchip = irq_desc_get_handler_data(desc);
 	struct irq_chip *chip = irq_desc_get_chip(desc);
 	u32 cause, type;
 	int i;
Index: tip/drivers/gpio/gpio-mxc.c
===================================================================
--- tip.orig/drivers/gpio/gpio-mxc.c
+++ tip/drivers/gpio/gpio-mxc.c
@@ -275,8 +275,8 @@ static void mxc_gpio_irq_handler(struct
 static void mx3_gpio_irq_handler(u32 irq, struct irq_desc *desc)
 {
 	u32 irq_stat;
-	struct mxc_gpio_port *port = irq_get_handler_data(irq);
-	struct irq_chip *chip = irq_get_chip(irq);
+	struct mxc_gpio_port *port = irq_desc_get_handler_data(desc);
+	struct irq_chip *chip = irq_desc_get_chip(desc);
 
 	chained_irq_enter(chip, desc);
 
@@ -292,7 +292,7 @@ static void mx2_gpio_irq_handler(u32 irq
 {
 	u32 irq_msk, irq_stat;
 	struct mxc_gpio_port *port;
-	struct irq_chip *chip = irq_get_chip(irq);
+	struct irq_chip *chip = irq_desc_get_chip(desc);
 
 	chained_irq_enter(chip, desc);
 
Index: tip/drivers/gpio/gpio-mxs.c
===================================================================
--- tip.orig/drivers/gpio/gpio-mxs.c
+++ tip/drivers/gpio/gpio-mxs.c
@@ -157,7 +157,7 @@ static void mxs_flip_edge(struct mxs_gpi
 static void mxs_gpio_irq_handler(u32 irq, struct irq_desc *desc)
 {
 	u32 irq_stat;
-	struct mxs_gpio_port *port = irq_get_handler_data(irq);
+	struct mxs_gpio_port *port = irq_desc_get_handler_data(desc);
 
 	desc->irq_data.chip->irq_ack(&desc->irq_data);
 
Index: tip/drivers/gpio/gpio-omap.c
===================================================================
--- tip.orig/drivers/gpio/gpio-omap.c
+++ tip/drivers/gpio/gpio-omap.c
@@ -714,7 +714,7 @@ static void omap_gpio_irq_handler(unsign
 	struct gpio_bank *bank;
 	int unmasked = 0;
 	struct irq_chip *irqchip = irq_desc_get_chip(desc);
-	struct gpio_chip *chip = irq_get_handler_data(irq);
+	struct gpio_chip *chip = irq_desc_get_handler_data(desc);
 
 	chained_irq_enter(irqchip, desc);
 
Index: tip/drivers/gpio/gpio-tegra.c
===================================================================
--- tip.orig/drivers/gpio/gpio-tegra.c
+++ tip/drivers/gpio/gpio-tegra.c
@@ -268,16 +268,14 @@ static void tegra_gpio_irq_shutdown(stru
 
 static void tegra_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
 {
-	struct tegra_gpio_bank *bank;
 	int port;
 	int pin;
 	int unmasked = 0;
 	struct irq_chip *chip = irq_desc_get_chip(desc);
+	struct tegra_gpio_bank *bank = irq_desc_get_handler_data(desc);
 
 	chained_irq_enter(chip, desc);
 
-	bank = irq_get_handler_data(irq);
-
 	for (port = 0; port < 4; port++) {
 		int gpio = tegra_gpio_compose(bank->bank, port, 0);
 		unsigned long sta = tegra_gpio_readl(GPIO_INT_STA(gpio)) &
Index: tip/drivers/gpio/gpio-timberdale.c
===================================================================
--- tip.orig/drivers/gpio/gpio-timberdale.c
+++ tip/drivers/gpio/gpio-timberdale.c
@@ -194,11 +194,12 @@ out:
 
 static void timbgpio_irq(unsigned int irq, struct irq_desc *desc)
 {
-	struct timbgpio *tgpio = irq_get_handler_data(irq);
+	struct timbgpio *tgpio = irq_desc_get_handler_data(desc);
+	struct irq_data *data = irq_desc_get_irq_data(desc);
 	unsigned long ipr;
 	int offset;
 
-	desc->irq_data.chip->irq_ack(irq_get_irq_data(irq));
+	data->chip->irq_ack(data);
 	ipr = ioread32(tgpio->membase + TGPIO_IPR);
 	iowrite32(ipr, tgpio->membase + TGPIO_ICR);
 
Index: tip/drivers/gpio/gpio-vf610.c
===================================================================
--- tip.orig/drivers/gpio/gpio-vf610.c
+++ tip/drivers/gpio/gpio-vf610.c
@@ -120,7 +120,7 @@ static int vf610_gpio_direction_output(s
 
 static void vf610_gpio_irq_handler(u32 irq, struct irq_desc *desc)
 {
-	struct vf610_gpio_port *port = irq_get_handler_data(irq);
+	struct vf610_gpio_port *port = irq_desc_get_handler_data(desc);
 	struct irq_chip *chip = irq_desc_get_chip(desc);
 	int pin;
 	unsigned long irq_isfr;
Index: tip/drivers/gpio/gpio-zynq.c
===================================================================
--- tip.orig/drivers/gpio/gpio-zynq.c
+++ tip/drivers/gpio/gpio-zynq.c
@@ -518,7 +518,7 @@ static void zynq_gpio_irqhandler(unsigne
 {
 	u32 int_sts, int_enb;
 	unsigned int bank_num;
-	struct zynq_gpio *gpio = irq_get_handler_data(irq);
+	struct zynq_gpio *gpio = irq_desc_get_handler_data(desc);
 	struct irq_chip *irqchip = irq_desc_get_chip(desc);
 
 	chained_irq_enter(irqchip, desc);



  parent reply	other threads:[~2015-07-13 20:41 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-13 20:41 [patch 00/19] gpio: Interrupt cleanups and API change preparation Thomas Gleixner
2015-07-13 20:41 ` [patch 01/19] gpio/mpc8xxx: Consolidate chained IRQ handler install/remove Thomas Gleixner
2015-07-13 20:41 ` [patch 02/19] gpio/mvebu: " Thomas Gleixner
2015-07-13 20:41 ` [patch 03/19] gpio/timberdale: " Thomas Gleixner
2015-07-13 20:41 ` [patch 04/19] gpio/tz1090: " Thomas Gleixner
2015-07-13 20:41 ` [patch 05/19] gpiolib: " Thomas Gleixner
2015-07-13 20:41 ` [patch 06/19] gpio/zynq: Use irq_set_chip_handler_name_locked() Thomas Gleixner
2015-07-13 20:41 ` [patch 07/19] gpio/ep93xx: Use irq_set_handler_locked() Thomas Gleixner
2015-07-13 20:41 ` [patch 08/19] gpio/msm-v2: " Thomas Gleixner
2015-07-13 20:41 ` [patch 09/19] gpio/omap: " Thomas Gleixner
2015-07-13 20:41 ` [patch 10/19] gpio/pch: " Thomas Gleixner
2015-07-13 20:41 ` [patch 11/19] gpio/gpio-tegra: " Thomas Gleixner
2015-07-13 20:41 ` [patch 12/19] gpio/davinci: Use accessor function irq_data_get_irq_handler_data() Thomas Gleixner
2015-07-13 20:41 ` Thomas Gleixner [this message]
2015-07-13 20:41 ` [patch 14/19] gpio/davinci: Prepare gpio_irq_handler for irq argument removal Thomas Gleixner
2015-07-13 20:41 ` [patch 15/19] gpio/ep93xx: Prepare ep93xx_gpio_f_irq_handler " Thomas Gleixner
2015-07-13 20:41 ` [patch 16/19] gpio/mvebu: Prepare mvebu_gpio_irq_handler " Thomas Gleixner
2015-07-13 20:41 ` [patch 17/19] gpio/sa1100: Prepare sa1100_gpio_handler " Thomas Gleixner
2015-07-13 20:41 ` [patch 18/19] gpio/msm-v2: Avoid redundant lookup of irq_data Thomas Gleixner
     [not found]   ` <CAKb7UviaGO2a=B7_4CbirQU=JLS5D_bNAe-PWzL-8Sp621rkYQ@mail.gmail.com>
2015-07-14  5:39     ` Jiang Liu
2015-07-14 10:14     ` Thomas Gleixner
2015-07-13 20:41 ` [patch 19/19] gpio/davinci: " Thomas Gleixner
2015-07-14 10:16   ` Thomas Gleixner
2015-07-16 13:55 ` [patch 00/19] gpio: Interrupt cleanups and API change preparation Linus Walleij
2015-07-16 14:13   ` Thomas Gleixner
2015-07-17 12:47     ` Linus Walleij

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=20150712232405.813240119@linutronix.de \
    --to=tglx@linutronix.de \
    --cc=gnurou@gmail.com \
    --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).