提交 476f8b4c 编写于 作者: J Jiang Liu 提交者: Thomas Gleixner

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: NJiang Liu <jiang.liu@linux.intel.com>
Acked-by: NLinus Walleij <linus.walleij@linaro.org>
Cc: Alexandre Courbot <gnurou@gmail.com>
Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
上级 c16edb8b
...@@ -438,7 +438,7 @@ static void bcm_kona_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) ...@@ -438,7 +438,7 @@ static void bcm_kona_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
void __iomem *reg_base; void __iomem *reg_base;
int bit, bank_id; int bit, bank_id;
unsigned long sta; 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); struct irq_chip *chip = irq_desc_get_chip(desc);
chained_irq_enter(chip, desc); chained_irq_enter(chip, desc);
......
...@@ -149,7 +149,7 @@ static u32 dwapb_do_irq(struct dwapb_gpio *gpio) ...@@ -149,7 +149,7 @@ static u32 dwapb_do_irq(struct dwapb_gpio *gpio)
static void dwapb_irq_handler(u32 irq, struct irq_desc *desc) 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); struct irq_chip *chip = irq_desc_get_chip(desc);
dwapb_do_irq(gpio); dwapb_do_irq(gpio);
......
...@@ -460,7 +460,7 @@ static int mvebu_gpio_irq_set_type(struct irq_data *d, unsigned int type) ...@@ -460,7 +460,7 @@ static int mvebu_gpio_irq_set_type(struct irq_data *d, unsigned int type)
static void mvebu_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) 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); struct irq_chip *chip = irq_desc_get_chip(desc);
u32 cause, type; u32 cause, type;
int i; int i;
......
...@@ -275,8 +275,8 @@ static void mxc_gpio_irq_handler(struct mxc_gpio_port *port, u32 irq_stat) ...@@ -275,8 +275,8 @@ static void mxc_gpio_irq_handler(struct mxc_gpio_port *port, u32 irq_stat)
static void mx3_gpio_irq_handler(u32 irq, struct irq_desc *desc) static void mx3_gpio_irq_handler(u32 irq, struct irq_desc *desc)
{ {
u32 irq_stat; u32 irq_stat;
struct mxc_gpio_port *port = irq_get_handler_data(irq); struct mxc_gpio_port *port = irq_desc_get_handler_data(desc);
struct irq_chip *chip = irq_get_chip(irq); struct irq_chip *chip = irq_desc_get_chip(desc);
chained_irq_enter(chip, desc); chained_irq_enter(chip, desc);
...@@ -292,7 +292,7 @@ static void mx2_gpio_irq_handler(u32 irq, struct irq_desc *desc) ...@@ -292,7 +292,7 @@ static void mx2_gpio_irq_handler(u32 irq, struct irq_desc *desc)
{ {
u32 irq_msk, irq_stat; u32 irq_msk, irq_stat;
struct mxc_gpio_port *port; 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); chained_irq_enter(chip, desc);
......
...@@ -157,7 +157,7 @@ static void mxs_flip_edge(struct mxs_gpio_port *port, u32 gpio) ...@@ -157,7 +157,7 @@ static void mxs_flip_edge(struct mxs_gpio_port *port, u32 gpio)
static void mxs_gpio_irq_handler(u32 irq, struct irq_desc *desc) static void mxs_gpio_irq_handler(u32 irq, struct irq_desc *desc)
{ {
u32 irq_stat; 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); desc->irq_data.chip->irq_ack(&desc->irq_data);
......
...@@ -714,7 +714,7 @@ static void omap_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) ...@@ -714,7 +714,7 @@ static void omap_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
struct gpio_bank *bank; struct gpio_bank *bank;
int unmasked = 0; int unmasked = 0;
struct irq_chip *irqchip = irq_desc_get_chip(desc); 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); chained_irq_enter(irqchip, desc);
......
...@@ -268,16 +268,14 @@ static void tegra_gpio_irq_shutdown(struct irq_data *d) ...@@ -268,16 +268,14 @@ static void tegra_gpio_irq_shutdown(struct irq_data *d)
static void tegra_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) static void tegra_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
{ {
struct tegra_gpio_bank *bank;
int port; int port;
int pin; int pin;
int unmasked = 0; int unmasked = 0;
struct irq_chip *chip = irq_desc_get_chip(desc); 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); chained_irq_enter(chip, desc);
bank = irq_get_handler_data(irq);
for (port = 0; port < 4; port++) { for (port = 0; port < 4; port++) {
int gpio = tegra_gpio_compose(bank->bank, port, 0); int gpio = tegra_gpio_compose(bank->bank, port, 0);
unsigned long sta = tegra_gpio_readl(GPIO_INT_STA(gpio)) & unsigned long sta = tegra_gpio_readl(GPIO_INT_STA(gpio)) &
......
...@@ -194,11 +194,12 @@ static int timbgpio_irq_type(struct irq_data *d, unsigned trigger) ...@@ -194,11 +194,12 @@ static int timbgpio_irq_type(struct irq_data *d, unsigned trigger)
static void timbgpio_irq(unsigned int irq, struct irq_desc *desc) 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; unsigned long ipr;
int offset; int offset;
desc->irq_data.chip->irq_ack(irq_get_irq_data(irq)); data->chip->irq_ack(data);
ipr = ioread32(tgpio->membase + TGPIO_IPR); ipr = ioread32(tgpio->membase + TGPIO_IPR);
iowrite32(ipr, tgpio->membase + TGPIO_ICR); iowrite32(ipr, tgpio->membase + TGPIO_ICR);
......
...@@ -120,7 +120,7 @@ static int vf610_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, ...@@ -120,7 +120,7 @@ static int vf610_gpio_direction_output(struct gpio_chip *chip, unsigned gpio,
static void vf610_gpio_irq_handler(u32 irq, struct irq_desc *desc) 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); struct irq_chip *chip = irq_desc_get_chip(desc);
int pin; int pin;
unsigned long irq_isfr; unsigned long irq_isfr;
......
...@@ -518,7 +518,7 @@ static void zynq_gpio_irqhandler(unsigned int irq, struct irq_desc *desc) ...@@ -518,7 +518,7 @@ static void zynq_gpio_irqhandler(unsigned int irq, struct irq_desc *desc)
{ {
u32 int_sts, int_enb; u32 int_sts, int_enb;
unsigned int bank_num; 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); struct irq_chip *irqchip = irq_desc_get_chip(desc);
chained_irq_enter(irqchip, desc); chained_irq_enter(irqchip, desc);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册