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);
next prev 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).