arm/gpio: Remove three copies of broken and racy debug code
gpiolib plus two gpio implementations in arm fiddle in the guts of irq_desc in a racy and buggy way. Remove the stuff. I already told the gpio folks that we can provide that information in a proper way if necessary. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Grant Likely <grant.likely@secretlab.ca> LKML-Reference: <20110324212508.931638262@linutronix.de>
This commit is contained in:
parent
47a5d9dcbb
commit
b15f052cb8
@ -366,45 +366,6 @@ static void ep93xx_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
|
|||||||
gpiochip_is_requested(chip, i) ? : "",
|
gpiochip_is_requested(chip, i) ? : "",
|
||||||
is_out ? "out" : "in ",
|
is_out ? "out" : "in ",
|
||||||
(data_reg & (1 << i)) ? "hi" : "lo");
|
(data_reg & (1 << i)) ? "hi" : "lo");
|
||||||
|
|
||||||
if (!is_out) {
|
|
||||||
int irq = gpio_to_irq(gpio);
|
|
||||||
struct irq_desc *desc = irq_desc + irq;
|
|
||||||
|
|
||||||
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");
|
seq_printf(s, "\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -832,51 +832,6 @@ static void nmk_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
|
|||||||
: "? ",
|
: "? ",
|
||||||
(mode < 0) ? "unknown" : modes[mode],
|
(mode < 0) ? "unknown" : modes[mode],
|
||||||
pull ? "pull" : "none");
|
pull ? "pull" : "none");
|
||||||
|
|
||||||
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");
|
seq_printf(s, "\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1656,51 +1656,6 @@ static void gpiolib_dbg_show(struct seq_file *s, struct gpio_chip *chip)
|
|||||||
chip->get
|
chip->get
|
||||||
? (chip->get(chip, i) ? "hi" : "lo")
|
? (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");
|
seq_printf(s, "\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user