diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2011-03-24 17:27:35 -0400 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2011-03-24 19:02:51 -0400 |
| commit | b15f052cb8c1ba2a55998707f29dc8a8e5cc40ca (patch) | |
| tree | 20f5105d58ecb0412300cb41219d106c5af9e315 | |
| parent | 47a5d9dcbb595b1bef54f59ba3846170e13be32a (diff) | |
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>
| -rw-r--r-- | arch/arm/mach-ep93xx/gpio.c | 39 | ||||
| -rw-r--r-- | arch/arm/plat-nomadik/gpio.c | 45 | ||||
| -rw-r--r-- | drivers/gpio/gpiolib.c | 45 |
3 files changed, 0 insertions, 129 deletions
diff --git a/arch/arm/mach-ep93xx/gpio.c b/arch/arm/mach-ep93xx/gpio.c index a889fa7c3ba1..e327fd107c3f 100644 --- a/arch/arm/mach-ep93xx/gpio.c +++ b/arch/arm/mach-ep93xx/gpio.c | |||
| @@ -366,45 +366,6 @@ static void ep93xx_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) | |||
| 366 | gpiochip_is_requested(chip, i) ? : "", | 366 | gpiochip_is_requested(chip, i) ? : "", |
| 367 | is_out ? "out" : "in ", | 367 | is_out ? "out" : "in ", |
| 368 | (data_reg & (1 << i)) ? "hi" : "lo"); | 368 | (data_reg & (1 << i)) ? "hi" : "lo"); |
| 369 | |||
| 370 | if (!is_out) { | ||
| 371 | int irq = gpio_to_irq(gpio); | ||
| 372 | struct irq_desc *desc = irq_desc + irq; | ||
| 373 | |||
| 374 | if (irq >= 0 && desc->action) { | ||
| 375 | char *trigger; | ||
| 376 | |||
| 377 | switch (desc->status & IRQ_TYPE_SENSE_MASK) { | ||
| 378 | case IRQ_TYPE_NONE: | ||
| 379 | trigger = "(default)"; | ||
| 380 | break; | ||
| 381 | case IRQ_TYPE_EDGE_FALLING: | ||
| 382 | trigger = "edge-falling"; | ||
| 383 | break; | ||
| 384 | case IRQ_TYPE_EDGE_RISING: | ||
| 385 | trigger = "edge-rising"; | ||
| 386 | break; | ||
| 387 | case IRQ_TYPE_EDGE_BOTH: | ||
| 388 | trigger = "edge-both"; | ||
| 389 | break; | ||
| 390 | case IRQ_TYPE_LEVEL_HIGH: | ||
| 391 | trigger = "level-high"; | ||
| 392 | break; | ||
| 393 | case IRQ_TYPE_LEVEL_LOW: | ||
| 394 | trigger = "level-low"; | ||
| 395 | break; | ||
| 396 | default: | ||
| 397 | trigger = "?trigger?"; | ||
| 398 | break; | ||
| 399 | } | ||
| 400 | |||
| 401 | seq_printf(s, " irq-%d %s%s", | ||
| 402 | irq, trigger, | ||
| 403 | (desc->status & IRQ_WAKEUP) | ||
| 404 | ? " wakeup" : ""); | ||
| 405 | } | ||
| 406 | } | ||
| 407 | |||
| 408 | seq_printf(s, "\n"); | 369 | seq_printf(s, "\n"); |
| 409 | } | 370 | } |
| 410 | } | 371 | } |
diff --git a/arch/arm/plat-nomadik/gpio.c b/arch/arm/plat-nomadik/gpio.c index 70620426ee55..80643bc38e10 100644 --- a/arch/arm/plat-nomadik/gpio.c +++ b/arch/arm/plat-nomadik/gpio.c | |||
| @@ -832,51 +832,6 @@ static void nmk_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip) | |||
| 832 | : "? ", | 832 | : "? ", |
| 833 | (mode < 0) ? "unknown" : modes[mode], | 833 | (mode < 0) ? "unknown" : modes[mode], |
| 834 | pull ? "pull" : "none"); | 834 | pull ? "pull" : "none"); |
| 835 | |||
| 836 | if (!is_out) { | ||
| 837 | int irq = gpio_to_irq(gpio); | ||
| 838 | struct irq_desc *desc = irq_to_desc(irq); | ||
| 839 | |||
| 840 | /* This races with request_irq(), set_irq_type(), | ||
| 841 | * and set_irq_wake() ... but those are "rare". | ||
| 842 | * | ||
| 843 | * More significantly, trigger type flags aren't | ||
| 844 | * currently maintained by genirq. | ||
| 845 | */ | ||
| 846 | if (irq >= 0 && desc->action) { | ||
| 847 | char *trigger; | ||
| 848 | |||
| 849 | switch (desc->status & IRQ_TYPE_SENSE_MASK) { | ||
| 850 | case IRQ_TYPE_NONE: | ||
| 851 | trigger = "(default)"; | ||
| 852 | break; | ||
| 853 | case IRQ_TYPE_EDGE_FALLING: | ||
| 854 | trigger = "edge-falling"; | ||
| 855 | break; | ||
| 856 | case IRQ_TYPE_EDGE_RISING: | ||
| 857 | trigger = "edge-rising"; | ||
| 858 | break; | ||
| 859 | case IRQ_TYPE_EDGE_BOTH: | ||
| 860 | trigger = "edge-both"; | ||
| 861 | break; | ||
| 862 | case IRQ_TYPE_LEVEL_HIGH: | ||
| 863 | trigger = "level-high"; | ||
| 864 | break; | ||
| 865 | case IRQ_TYPE_LEVEL_LOW: | ||
| 866 | trigger = "level-low"; | ||
| 867 | break; | ||
| 868 | default: | ||
| 869 | trigger = "?trigger?"; | ||
| 870 | break; | ||
| 871 | } | ||
| 872 | |||
| 873 | seq_printf(s, " irq-%d %s%s", | ||
| 874 | irq, trigger, | ||
| 875 | (desc->status & IRQ_WAKEUP) | ||
| 876 | ? " wakeup" : ""); | ||
| 877 | } | ||
| 878 | } | ||
| 879 | |||
| 880 | seq_printf(s, "\n"); | 835 | seq_printf(s, "\n"); |
| 881 | } | 836 | } |
| 882 | } | 837 | } |
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 649550e2cae9..36a2974815b7 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c | |||
| @@ -1656,51 +1656,6 @@ static void gpiolib_dbg_show(struct seq_file *s, struct gpio_chip *chip) | |||
| 1656 | chip->get | 1656 | chip->get |
| 1657 | ? (chip->get(chip, i) ? "hi" : "lo") | 1657 | ? (chip->get(chip, i) ? "hi" : "lo") |
| 1658 | : "? "); | 1658 | : "? "); |
| 1659 | |||
| 1660 | if (!is_out) { | ||
| 1661 | int irq = gpio_to_irq(gpio); | ||
| 1662 | struct irq_desc *desc = irq_to_desc(irq); | ||
| 1663 | |||
| 1664 | /* This races with request_irq(), set_irq_type(), | ||
| 1665 | * and set_irq_wake() ... but those are "rare". | ||
| 1666 | * | ||
| 1667 | * More significantly, trigger type flags aren't | ||
| 1668 | * currently maintained by genirq. | ||
| 1669 | */ | ||
| 1670 | if (irq >= 0 && desc->action) { | ||
| 1671 | char *trigger; | ||
| 1672 | |||
| 1673 | switch (desc->status & IRQ_TYPE_SENSE_MASK) { | ||
| 1674 | case IRQ_TYPE_NONE: | ||
| 1675 | trigger = "(default)"; | ||
| 1676 | break; | ||
| 1677 | case IRQ_TYPE_EDGE_FALLING: | ||
| 1678 | trigger = "edge-falling"; | ||
| 1679 | break; | ||
| 1680 | case IRQ_TYPE_EDGE_RISING: | ||
| 1681 | trigger = "edge-rising"; | ||
| 1682 | break; | ||
| 1683 | case IRQ_TYPE_EDGE_BOTH: | ||
| 1684 | trigger = "edge-both"; | ||
| 1685 | break; | ||
| 1686 | case IRQ_TYPE_LEVEL_HIGH: | ||
| 1687 | trigger = "level-high"; | ||
| 1688 | break; | ||
| 1689 | case IRQ_TYPE_LEVEL_LOW: | ||
| 1690 | trigger = "level-low"; | ||
| 1691 | break; | ||
| 1692 | default: | ||
| 1693 | trigger = "?trigger?"; | ||
| 1694 | break; | ||
| 1695 | } | ||
| 1696 | |||
| 1697 | seq_printf(s, " irq-%d %s%s", | ||
| 1698 | irq, trigger, | ||
| 1699 | (desc->status & IRQ_WAKEUP) | ||
| 1700 | ? " wakeup" : ""); | ||
| 1701 | } | ||
| 1702 | } | ||
| 1703 | |||
| 1704 | seq_printf(s, "\n"); | 1659 | seq_printf(s, "\n"); |
| 1705 | } | 1660 | } |
| 1706 | } | 1661 | } |
