aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio
diff options
context:
space:
mode:
authorJiang Liu <jiang.liu@linux.intel.com>2015-06-04 00:13:15 -0400
committerThomas Gleixner <tglx@linutronix.de>2015-07-14 06:12:20 -0400
commit476f8b4c94a90d1167961d90a5ed68dbe87c62da (patch)
tree2b60b492c8bc55630041c6c7975074ac2be09c7c /drivers/gpio
parentc16edb8b3a070be758a97bc6cd00855c7bbccec4 (diff)
gpio: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
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>
Diffstat (limited to 'drivers/gpio')
-rw-r--r--drivers/gpio/gpio-bcm-kona.c2
-rw-r--r--drivers/gpio/gpio-dwapb.c2
-rw-r--r--drivers/gpio/gpio-mvebu.c2
-rw-r--r--drivers/gpio/gpio-mxc.c6
-rw-r--r--drivers/gpio/gpio-mxs.c2
-rw-r--r--drivers/gpio/gpio-omap.c2
-rw-r--r--drivers/gpio/gpio-tegra.c4
-rw-r--r--drivers/gpio/gpio-timberdale.c5
-rw-r--r--drivers/gpio/gpio-vf610.c2
-rw-r--r--drivers/gpio/gpio-zynq.c2
10 files changed, 14 insertions, 15 deletions
diff --git a/drivers/gpio/gpio-bcm-kona.c b/drivers/gpio/gpio-bcm-kona.c
index 40343fa92c7b..109083f65248 100644
--- a/drivers/gpio/gpio-bcm-kona.c
+++ b/drivers/gpio/gpio-bcm-kona.c
@@ -438,7 +438,7 @@ static void bcm_kona_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
438 void __iomem *reg_base; 438 void __iomem *reg_base;
439 int bit, bank_id; 439 int bit, bank_id;
440 unsigned long sta; 440 unsigned long sta;
441 struct bcm_kona_gpio_bank *bank = irq_get_handler_data(irq); 441 struct bcm_kona_gpio_bank *bank = irq_desc_get_handler_data(desc);
442 struct irq_chip *chip = irq_desc_get_chip(desc); 442 struct irq_chip *chip = irq_desc_get_chip(desc);
443 443
444 chained_irq_enter(chip, desc); 444 chained_irq_enter(chip, desc);
diff --git a/drivers/gpio/gpio-dwapb.c b/drivers/gpio/gpio-dwapb.c
index 55fa9853a7f2..c5be4b9b8baf 100644
--- a/drivers/gpio/gpio-dwapb.c
+++ b/drivers/gpio/gpio-dwapb.c
@@ -149,7 +149,7 @@ static u32 dwapb_do_irq(struct dwapb_gpio *gpio)
149 149
150static void dwapb_irq_handler(u32 irq, struct irq_desc *desc) 150static void dwapb_irq_handler(u32 irq, struct irq_desc *desc)
151{ 151{
152 struct dwapb_gpio *gpio = irq_get_handler_data(irq); 152 struct dwapb_gpio *gpio = irq_desc_get_handler_data(desc);
153 struct irq_chip *chip = irq_desc_get_chip(desc); 153 struct irq_chip *chip = irq_desc_get_chip(desc);
154 154
155 dwapb_do_irq(gpio); 155 dwapb_do_irq(gpio);
diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c
index ab660e44a672..b65d2b8d3b95 100644
--- a/drivers/gpio/gpio-mvebu.c
+++ b/drivers/gpio/gpio-mvebu.c
@@ -460,7 +460,7 @@ static int mvebu_gpio_irq_set_type(struct irq_data *d, unsigned int type)
460 460
461static void mvebu_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) 461static void mvebu_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
462{ 462{
463 struct mvebu_gpio_chip *mvchip = irq_get_handler_data(irq); 463 struct mvebu_gpio_chip *mvchip = irq_desc_get_handler_data(desc);
464 struct irq_chip *chip = irq_desc_get_chip(desc); 464 struct irq_chip *chip = irq_desc_get_chip(desc);
465 u32 cause, type; 465 u32 cause, type;
466 int i; 466 int i;
diff --git a/drivers/gpio/gpio-mxc.c b/drivers/gpio/gpio-mxc.c
index ec1eb1b7250f..0f740276ed2b 100644
--- a/drivers/gpio/gpio-mxc.c
+++ b/drivers/gpio/gpio-mxc.c
@@ -275,8 +275,8 @@ static void mxc_gpio_irq_handler(struct mxc_gpio_port *port, u32 irq_stat)
275static void mx3_gpio_irq_handler(u32 irq, struct irq_desc *desc) 275static void mx3_gpio_irq_handler(u32 irq, struct irq_desc *desc)
276{ 276{
277 u32 irq_stat; 277 u32 irq_stat;
278 struct mxc_gpio_port *port = irq_get_handler_data(irq); 278 struct mxc_gpio_port *port = irq_desc_get_handler_data(desc);
279 struct irq_chip *chip = irq_get_chip(irq); 279 struct irq_chip *chip = irq_desc_get_chip(desc);
280 280
281 chained_irq_enter(chip, desc); 281 chained_irq_enter(chip, desc);
282 282
@@ -292,7 +292,7 @@ static void mx2_gpio_irq_handler(u32 irq, struct irq_desc *desc)
292{ 292{
293 u32 irq_msk, irq_stat; 293 u32 irq_msk, irq_stat;
294 struct mxc_gpio_port *port; 294 struct mxc_gpio_port *port;
295 struct irq_chip *chip = irq_get_chip(irq); 295 struct irq_chip *chip = irq_desc_get_chip(desc);
296 296
297 chained_irq_enter(chip, desc); 297 chained_irq_enter(chip, desc);
298 298
diff --git a/drivers/gpio/gpio-mxs.c b/drivers/gpio/gpio-mxs.c
index 551d15d7c369..b7f383eb18d9 100644
--- a/drivers/gpio/gpio-mxs.c
+++ b/drivers/gpio/gpio-mxs.c
@@ -157,7 +157,7 @@ static void mxs_flip_edge(struct mxs_gpio_port *port, u32 gpio)
157static void mxs_gpio_irq_handler(u32 irq, struct irq_desc *desc) 157static void mxs_gpio_irq_handler(u32 irq, struct irq_desc *desc)
158{ 158{
159 u32 irq_stat; 159 u32 irq_stat;
160 struct mxs_gpio_port *port = irq_get_handler_data(irq); 160 struct mxs_gpio_port *port = irq_desc_get_handler_data(desc);
161 161
162 desc->irq_data.chip->irq_ack(&desc->irq_data); 162 desc->irq_data.chip->irq_ack(&desc->irq_data);
163 163
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
index 1a7c2ded9d6f..04ea23ba37cc 100644
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -714,7 +714,7 @@ static void omap_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
714 struct gpio_bank *bank; 714 struct gpio_bank *bank;
715 int unmasked = 0; 715 int unmasked = 0;
716 struct irq_chip *irqchip = irq_desc_get_chip(desc); 716 struct irq_chip *irqchip = irq_desc_get_chip(desc);
717 struct gpio_chip *chip = irq_get_handler_data(irq); 717 struct gpio_chip *chip = irq_desc_get_handler_data(desc);
718 718
719 chained_irq_enter(irqchip, desc); 719 chained_irq_enter(irqchip, desc);
720 720
diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c
index 271c4cf5e0cc..530b27f9d66f 100644
--- a/drivers/gpio/gpio-tegra.c
+++ b/drivers/gpio/gpio-tegra.c
@@ -268,16 +268,14 @@ static void tegra_gpio_irq_shutdown(struct irq_data *d)
268 268
269static void tegra_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) 269static void tegra_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
270{ 270{
271 struct tegra_gpio_bank *bank;
272 int port; 271 int port;
273 int pin; 272 int pin;
274 int unmasked = 0; 273 int unmasked = 0;
275 struct irq_chip *chip = irq_desc_get_chip(desc); 274 struct irq_chip *chip = irq_desc_get_chip(desc);
275 struct tegra_gpio_bank *bank = irq_desc_get_handler_data(desc);
276 276
277 chained_irq_enter(chip, desc); 277 chained_irq_enter(chip, desc);
278 278
279 bank = irq_get_handler_data(irq);
280
281 for (port = 0; port < 4; port++) { 279 for (port = 0; port < 4; port++) {
282 int gpio = tegra_gpio_compose(bank->bank, port, 0); 280 int gpio = tegra_gpio_compose(bank->bank, port, 0);
283 unsigned long sta = tegra_gpio_readl(GPIO_INT_STA(gpio)) & 281 unsigned long sta = tegra_gpio_readl(GPIO_INT_STA(gpio)) &
diff --git a/drivers/gpio/gpio-timberdale.c b/drivers/gpio/gpio-timberdale.c
index fd1970ed15e6..ac53ff0a8086 100644
--- a/drivers/gpio/gpio-timberdale.c
+++ b/drivers/gpio/gpio-timberdale.c
@@ -194,11 +194,12 @@ out:
194 194
195static void timbgpio_irq(unsigned int irq, struct irq_desc *desc) 195static void timbgpio_irq(unsigned int irq, struct irq_desc *desc)
196{ 196{
197 struct timbgpio *tgpio = irq_get_handler_data(irq); 197 struct timbgpio *tgpio = irq_desc_get_handler_data(desc);
198 struct irq_data *data = irq_desc_get_irq_data(desc);
198 unsigned long ipr; 199 unsigned long ipr;
199 int offset; 200 int offset;
200 201
201 desc->irq_data.chip->irq_ack(irq_get_irq_data(irq)); 202 data->chip->irq_ack(data);
202 ipr = ioread32(tgpio->membase + TGPIO_IPR); 203 ipr = ioread32(tgpio->membase + TGPIO_IPR);
203 iowrite32(ipr, tgpio->membase + TGPIO_ICR); 204 iowrite32(ipr, tgpio->membase + TGPIO_ICR);
204 205
diff --git a/drivers/gpio/gpio-vf610.c b/drivers/gpio/gpio-vf610.c
index 7bd9f209ffa8..fa344388f4da 100644
--- a/drivers/gpio/gpio-vf610.c
+++ b/drivers/gpio/gpio-vf610.c
@@ -120,7 +120,7 @@ static int vf610_gpio_direction_output(struct gpio_chip *chip, unsigned gpio,
120 120
121static void vf610_gpio_irq_handler(u32 irq, struct irq_desc *desc) 121static void vf610_gpio_irq_handler(u32 irq, struct irq_desc *desc)
122{ 122{
123 struct vf610_gpio_port *port = irq_get_handler_data(irq); 123 struct vf610_gpio_port *port = irq_desc_get_handler_data(desc);
124 struct irq_chip *chip = irq_desc_get_chip(desc); 124 struct irq_chip *chip = irq_desc_get_chip(desc);
125 int pin; 125 int pin;
126 unsigned long irq_isfr; 126 unsigned long irq_isfr;
diff --git a/drivers/gpio/gpio-zynq.c b/drivers/gpio/gpio-zynq.c
index 53b297473724..db8a61b8ca0c 100644
--- a/drivers/gpio/gpio-zynq.c
+++ b/drivers/gpio/gpio-zynq.c
@@ -518,7 +518,7 @@ static void zynq_gpio_irqhandler(unsigned int irq, struct irq_desc *desc)
518{ 518{
519 u32 int_sts, int_enb; 519 u32 int_sts, int_enb;
520 unsigned int bank_num; 520 unsigned int bank_num;
521 struct zynq_gpio *gpio = irq_get_handler_data(irq); 521 struct zynq_gpio *gpio = irq_desc_get_handler_data(desc);
522 struct irq_chip *irqchip = irq_desc_get_chip(desc); 522 struct irq_chip *irqchip = irq_desc_get_chip(desc);
523 523
524 chained_irq_enter(irqchip, desc); 524 chained_irq_enter(irqchip, desc);