Merge branch 'irq-cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'irq-cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (23 commits) genirq: Expand generic show_interrupts() gpio: Fold irq_set_chip/irq_set_handler to irq_set_chip_and_handler gpio: Cleanup genirq namespace arm: ep93xx: Add basic interrupt info arm/gpio: Remove three copies of broken and racy debug code xtensa: Use generic show_interrupts() xtensa: Convert genirq namespace xtensa: Use generic IRQ Kconfig and set GENERIC_HARDIRQS_NO_DEPRECATED xtensa: Convert s6000 gpio irq_chip to new functions xtensa: Convert main irq_chip to new functions um: Use generic show_interrupts() um: Convert genirq namespace m32r: Use generic show_interrupts() m32r: Convert genirq namespace h8300: Use generic show_interrupts() h8300: Convert genirq namespace avr32: Cleanup eic_set_irq_type() avr32: Use generic show_interrupts() avr: Cleanup genirq namespace avr32: Use generic IRQ config, enable GENERIC_HARDIRQS_NO_DEPRECATED ... Fix up trivial conflict in drivers/gpio/timbgpio.c
This commit is contained in:
@@ -289,10 +289,10 @@ static int adp5588_irq_setup(struct adp5588_gpio *dev)
|
||||
|
||||
for (gpio = 0; gpio < dev->gpio_chip.ngpio; gpio++) {
|
||||
int irq = gpio + dev->irq_base;
|
||||
set_irq_chip_data(irq, dev);
|
||||
set_irq_chip_and_handler(irq, &adp5588_irq_chip,
|
||||
irq_set_chip_data(irq, dev);
|
||||
irq_set_chip_and_handler(irq, &adp5588_irq_chip,
|
||||
handle_level_irq);
|
||||
set_irq_nested_thread(irq, 1);
|
||||
irq_set_nested_thread(irq, 1);
|
||||
#ifdef CONFIG_ARM
|
||||
/*
|
||||
* ARM needs us to explicitly flag the IRQ as VALID,
|
||||
@@ -300,7 +300,7 @@ static int adp5588_irq_setup(struct adp5588_gpio *dev)
|
||||
*/
|
||||
set_irq_flags(irq, IRQF_VALID);
|
||||
#else
|
||||
set_irq_noprobe(irq);
|
||||
irq_set_noprobe(irq);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@@ -1656,51 +1656,6 @@ static void gpiolib_dbg_show(struct seq_file *s, struct gpio_chip *chip)
|
||||
chip->get
|
||||
? (chip->get(chip, i) ? "hi" : "lo")
|
||||
: "? ");
|
||||
|
||||
if (!is_out) {
|
||||
int irq = gpio_to_irq(gpio);
|
||||
struct irq_desc *desc = irq_to_desc(irq);
|
||||
|
||||
/* This races with request_irq(), set_irq_type(),
|
||||
* and set_irq_wake() ... but those are "rare".
|
||||
*
|
||||
* More significantly, trigger type flags aren't
|
||||
* currently maintained by genirq.
|
||||
*/
|
||||
if (irq >= 0 && desc->action) {
|
||||
char *trigger;
|
||||
|
||||
switch (desc->status & IRQ_TYPE_SENSE_MASK) {
|
||||
case IRQ_TYPE_NONE:
|
||||
trigger = "(default)";
|
||||
break;
|
||||
case IRQ_TYPE_EDGE_FALLING:
|
||||
trigger = "edge-falling";
|
||||
break;
|
||||
case IRQ_TYPE_EDGE_RISING:
|
||||
trigger = "edge-rising";
|
||||
break;
|
||||
case IRQ_TYPE_EDGE_BOTH:
|
||||
trigger = "edge-both";
|
||||
break;
|
||||
case IRQ_TYPE_LEVEL_HIGH:
|
||||
trigger = "level-high";
|
||||
break;
|
||||
case IRQ_TYPE_LEVEL_LOW:
|
||||
trigger = "level-low";
|
||||
break;
|
||||
default:
|
||||
trigger = "?trigger?";
|
||||
break;
|
||||
}
|
||||
|
||||
seq_printf(s, " irq-%d %s%s",
|
||||
irq, trigger,
|
||||
(desc->status & IRQ_WAKEUP)
|
||||
? " wakeup" : "");
|
||||
}
|
||||
}
|
||||
|
||||
seq_printf(s, "\n");
|
||||
}
|
||||
}
|
||||
|
@@ -470,14 +470,14 @@ static int max732x_irq_setup(struct max732x_chip *chip,
|
||||
if (!(chip->dir_input & (1 << lvl)))
|
||||
continue;
|
||||
|
||||
set_irq_chip_data(irq, chip);
|
||||
set_irq_chip_and_handler(irq, &max732x_irq_chip,
|
||||
irq_set_chip_data(irq, chip);
|
||||
irq_set_chip_and_handler(irq, &max732x_irq_chip,
|
||||
handle_edge_irq);
|
||||
set_irq_nested_thread(irq, 1);
|
||||
irq_set_nested_thread(irq, 1);
|
||||
#ifdef CONFIG_ARM
|
||||
set_irq_flags(irq, IRQF_VALID);
|
||||
#else
|
||||
set_irq_noprobe(irq);
|
||||
irq_set_noprobe(irq);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@@ -395,13 +395,13 @@ static int pca953x_irq_setup(struct pca953x_chip *chip,
|
||||
for (lvl = 0; lvl < chip->gpio_chip.ngpio; lvl++) {
|
||||
int irq = lvl + chip->irq_base;
|
||||
|
||||
set_irq_chip_data(irq, chip);
|
||||
set_irq_chip_and_handler(irq, &pca953x_irq_chip,
|
||||
irq_set_chip_data(irq, chip);
|
||||
irq_set_chip_and_handler(irq, &pca953x_irq_chip,
|
||||
handle_edge_irq);
|
||||
#ifdef CONFIG_ARM
|
||||
set_irq_flags(irq, IRQF_VALID);
|
||||
#else
|
||||
set_irq_noprobe(irq);
|
||||
irq_set_noprobe(irq);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@@ -210,7 +210,7 @@ static struct irq_chip pl061_irqchip = {
|
||||
|
||||
static void pl061_irq_handler(unsigned irq, struct irq_desc *desc)
|
||||
{
|
||||
struct list_head *chip_list = get_irq_data(irq);
|
||||
struct list_head *chip_list = irq_get_handler_data(irq);
|
||||
struct list_head *ptr;
|
||||
struct pl061_gpio *chip;
|
||||
|
||||
@@ -294,7 +294,7 @@ static int pl061_probe(struct amba_device *dev, const struct amba_id *id)
|
||||
ret = -ENODEV;
|
||||
goto iounmap;
|
||||
}
|
||||
set_irq_chained_handler(irq, pl061_irq_handler);
|
||||
irq_set_chained_handler(irq, pl061_irq_handler);
|
||||
if (!test_and_set_bit(irq, init_irq)) { /* list initialized? */
|
||||
chip_list = kmalloc(sizeof(*chip_list), GFP_KERNEL);
|
||||
if (chip_list == NULL) {
|
||||
@@ -303,9 +303,9 @@ static int pl061_probe(struct amba_device *dev, const struct amba_id *id)
|
||||
goto iounmap;
|
||||
}
|
||||
INIT_LIST_HEAD(chip_list);
|
||||
set_irq_data(irq, chip_list);
|
||||
irq_set_handler_data(irq, chip_list);
|
||||
} else
|
||||
chip_list = get_irq_data(irq);
|
||||
chip_list = irq_get_handler_data(irq);
|
||||
list_add(&chip->list, chip_list);
|
||||
|
||||
for (i = 0; i < PL061_GPIO_NR; i++) {
|
||||
@@ -315,10 +315,10 @@ static int pl061_probe(struct amba_device *dev, const struct amba_id *id)
|
||||
else
|
||||
pl061_direction_input(&chip->gc, i);
|
||||
|
||||
set_irq_chip(i+chip->irq_base, &pl061_irqchip);
|
||||
set_irq_handler(i+chip->irq_base, handle_simple_irq);
|
||||
irq_set_chip_and_handler(i + chip->irq_base, &pl061_irqchip,
|
||||
handle_simple_irq);
|
||||
set_irq_flags(i+chip->irq_base, IRQF_VALID);
|
||||
set_irq_chip_data(i+chip->irq_base, chip);
|
||||
irq_set_chip_data(i + chip->irq_base, chip);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@@ -254,14 +254,14 @@ static int __devinit stmpe_gpio_irq_init(struct stmpe_gpio *stmpe_gpio)
|
||||
int irq;
|
||||
|
||||
for (irq = base; irq < base + stmpe_gpio->chip.ngpio; irq++) {
|
||||
set_irq_chip_data(irq, stmpe_gpio);
|
||||
set_irq_chip_and_handler(irq, &stmpe_gpio_irq_chip,
|
||||
irq_set_chip_data(irq, stmpe_gpio);
|
||||
irq_set_chip_and_handler(irq, &stmpe_gpio_irq_chip,
|
||||
handle_simple_irq);
|
||||
set_irq_nested_thread(irq, 1);
|
||||
irq_set_nested_thread(irq, 1);
|
||||
#ifdef CONFIG_ARM
|
||||
set_irq_flags(irq, IRQF_VALID);
|
||||
#else
|
||||
set_irq_noprobe(irq);
|
||||
irq_set_noprobe(irq);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -277,8 +277,8 @@ static void stmpe_gpio_irq_remove(struct stmpe_gpio *stmpe_gpio)
|
||||
#ifdef CONFIG_ARM
|
||||
set_irq_flags(irq, 0);
|
||||
#endif
|
||||
set_irq_chip_and_handler(irq, NULL, NULL);
|
||||
set_irq_chip_data(irq, NULL);
|
||||
irq_set_chip_and_handler(irq, NULL, NULL);
|
||||
irq_set_chip_data(irq, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -551,12 +551,12 @@ static int sx150x_install_irq_chip(struct sx150x_chip *chip,
|
||||
|
||||
for (n = 0; n < chip->dev_cfg->ngpios; ++n) {
|
||||
irq = irq_base + n;
|
||||
set_irq_chip_and_handler(irq, &chip->irq_chip, handle_edge_irq);
|
||||
set_irq_nested_thread(irq, 1);
|
||||
irq_set_chip_and_handler(irq, &chip->irq_chip, handle_edge_irq);
|
||||
irq_set_nested_thread(irq, 1);
|
||||
#ifdef CONFIG_ARM
|
||||
set_irq_flags(irq, IRQF_VALID);
|
||||
#else
|
||||
set_irq_noprobe(irq);
|
||||
irq_set_noprobe(irq);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -583,8 +583,7 @@ static void sx150x_remove_irq_chip(struct sx150x_chip *chip)
|
||||
|
||||
for (n = 0; n < chip->dev_cfg->ngpios; ++n) {
|
||||
irq = chip->irq_base + n;
|
||||
set_irq_handler(irq, NULL);
|
||||
set_irq_chip(irq, NULL);
|
||||
irq_set_chip_and_handler(irq, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -239,14 +239,14 @@ static int tc3589x_gpio_irq_init(struct tc3589x_gpio *tc3589x_gpio)
|
||||
int irq;
|
||||
|
||||
for (irq = base; irq < base + tc3589x_gpio->chip.ngpio; irq++) {
|
||||
set_irq_chip_data(irq, tc3589x_gpio);
|
||||
set_irq_chip_and_handler(irq, &tc3589x_gpio_irq_chip,
|
||||
irq_set_chip_data(irq, tc3589x_gpio);
|
||||
irq_set_chip_and_handler(irq, &tc3589x_gpio_irq_chip,
|
||||
handle_simple_irq);
|
||||
set_irq_nested_thread(irq, 1);
|
||||
irq_set_nested_thread(irq, 1);
|
||||
#ifdef CONFIG_ARM
|
||||
set_irq_flags(irq, IRQF_VALID);
|
||||
#else
|
||||
set_irq_noprobe(irq);
|
||||
irq_set_noprobe(irq);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -262,8 +262,8 @@ static void tc3589x_gpio_irq_remove(struct tc3589x_gpio *tc3589x_gpio)
|
||||
#ifdef CONFIG_ARM
|
||||
set_irq_flags(irq, 0);
|
||||
#endif
|
||||
set_irq_chip_and_handler(irq, NULL, NULL);
|
||||
set_irq_chip_data(irq, NULL);
|
||||
irq_set_chip_and_handler(irq, NULL, NULL);
|
||||
irq_set_chip_data(irq, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -196,7 +196,7 @@ out:
|
||||
|
||||
static void timbgpio_irq(unsigned int irq, struct irq_desc *desc)
|
||||
{
|
||||
struct timbgpio *tgpio = get_irq_data(irq);
|
||||
struct timbgpio *tgpio = irq_get_handler_data(irq);
|
||||
unsigned long ipr;
|
||||
int offset;
|
||||
|
||||
@@ -292,16 +292,16 @@ static int __devinit timbgpio_probe(struct platform_device *pdev)
|
||||
return 0;
|
||||
|
||||
for (i = 0; i < pdata->nr_pins; i++) {
|
||||
set_irq_chip_and_handler_name(tgpio->irq_base + i,
|
||||
irq_set_chip_and_handler_name(tgpio->irq_base + i,
|
||||
&timbgpio_irqchip, handle_simple_irq, "mux");
|
||||
set_irq_chip_data(tgpio->irq_base + i, tgpio);
|
||||
irq_set_chip_data(tgpio->irq_base + i, tgpio);
|
||||
#ifdef CONFIG_ARM
|
||||
set_irq_flags(tgpio->irq_base + i, IRQF_VALID | IRQF_PROBE);
|
||||
#endif
|
||||
}
|
||||
|
||||
set_irq_data(irq, tgpio);
|
||||
set_irq_chained_handler(irq, timbgpio_irq);
|
||||
irq_set_handler_data(irq, tgpio);
|
||||
irq_set_chained_handler(irq, timbgpio_irq);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -327,12 +327,12 @@ static int __devexit timbgpio_remove(struct platform_device *pdev)
|
||||
if (irq >= 0 && tgpio->irq_base > 0) {
|
||||
int i;
|
||||
for (i = 0; i < tgpio->gpio.ngpio; i++) {
|
||||
set_irq_chip(tgpio->irq_base + i, NULL);
|
||||
set_irq_chip_data(tgpio->irq_base + i, NULL);
|
||||
irq_set_chip(tgpio->irq_base + i, NULL);
|
||||
irq_set_chip_data(tgpio->irq_base + i, NULL);
|
||||
}
|
||||
|
||||
set_irq_handler(irq, NULL);
|
||||
set_irq_data(irq, NULL);
|
||||
irq_set_handler(irq, NULL);
|
||||
irq_set_handler_data(irq, NULL);
|
||||
}
|
||||
|
||||
err = gpiochip_remove(&tgpio->gpio);
|
||||
|
@@ -238,13 +238,13 @@ void vr41xx_set_irq_trigger(unsigned int pin, irq_trigger_t trigger,
|
||||
break;
|
||||
}
|
||||
}
|
||||
set_irq_chip_and_handler(GIU_IRQ(pin),
|
||||
irq_set_chip_and_handler(GIU_IRQ(pin),
|
||||
&giuint_low_irq_chip,
|
||||
handle_edge_irq);
|
||||
} else {
|
||||
giu_clear(GIUINTTYPL, mask);
|
||||
giu_clear(GIUINTHTSELL, mask);
|
||||
set_irq_chip_and_handler(GIU_IRQ(pin),
|
||||
irq_set_chip_and_handler(GIU_IRQ(pin),
|
||||
&giuint_low_irq_chip,
|
||||
handle_level_irq);
|
||||
}
|
||||
@@ -273,13 +273,13 @@ void vr41xx_set_irq_trigger(unsigned int pin, irq_trigger_t trigger,
|
||||
break;
|
||||
}
|
||||
}
|
||||
set_irq_chip_and_handler(GIU_IRQ(pin),
|
||||
irq_set_chip_and_handler(GIU_IRQ(pin),
|
||||
&giuint_high_irq_chip,
|
||||
handle_edge_irq);
|
||||
} else {
|
||||
giu_clear(GIUINTTYPH, mask);
|
||||
giu_clear(GIUINTHTSELH, mask);
|
||||
set_irq_chip_and_handler(GIU_IRQ(pin),
|
||||
irq_set_chip_and_handler(GIU_IRQ(pin),
|
||||
&giuint_high_irq_chip,
|
||||
handle_level_irq);
|
||||
}
|
||||
@@ -539,9 +539,9 @@ static int __devinit giu_probe(struct platform_device *pdev)
|
||||
chip = &giuint_high_irq_chip;
|
||||
|
||||
if (trigger & (1 << pin))
|
||||
set_irq_chip_and_handler(i, chip, handle_edge_irq);
|
||||
irq_set_chip_and_handler(i, chip, handle_edge_irq);
|
||||
else
|
||||
set_irq_chip_and_handler(i, chip, handle_level_irq);
|
||||
irq_set_chip_and_handler(i, chip, handle_level_irq);
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user