diff options
author | Jiang Liu <jiang.liu@linux.intel.com> | 2015-06-04 00:13:15 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2015-07-14 06:12:20 -0400 |
commit | 476f8b4c94a90d1167961d90a5ed68dbe87c62da (patch) | |
tree | 2b60b492c8bc55630041c6c7975074ac2be09c7c /drivers/gpio | |
parent | c16edb8b3a070be758a97bc6cd00855c7bbccec4 (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.c | 2 | ||||
-rw-r--r-- | drivers/gpio/gpio-dwapb.c | 2 | ||||
-rw-r--r-- | drivers/gpio/gpio-mvebu.c | 2 | ||||
-rw-r--r-- | drivers/gpio/gpio-mxc.c | 6 | ||||
-rw-r--r-- | drivers/gpio/gpio-mxs.c | 2 | ||||
-rw-r--r-- | drivers/gpio/gpio-omap.c | 2 | ||||
-rw-r--r-- | drivers/gpio/gpio-tegra.c | 4 | ||||
-rw-r--r-- | drivers/gpio/gpio-timberdale.c | 5 | ||||
-rw-r--r-- | drivers/gpio/gpio-vf610.c | 2 | ||||
-rw-r--r-- | drivers/gpio/gpio-zynq.c | 2 |
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 | ||
150 | static void dwapb_irq_handler(u32 irq, struct irq_desc *desc) | 150 | static 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 | ||
461 | static void mvebu_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) | 461 | static 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) | |||
275 | static void mx3_gpio_irq_handler(u32 irq, struct irq_desc *desc) | 275 | static 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) | |||
157 | static void mxs_gpio_irq_handler(u32 irq, struct irq_desc *desc) | 157 | static 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 | ||
269 | static void tegra_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) | 269 | static 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 | ||
195 | static void timbgpio_irq(unsigned int irq, struct irq_desc *desc) | 195 | static 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 | ||
121 | static void vf610_gpio_irq_handler(u32 irq, struct irq_desc *desc) | 121 | static 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); |