aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2011-03-24 17:27:35 -0400
committerThomas Gleixner <tglx@linutronix.de>2011-03-24 19:02:51 -0400
commitb15f052cb8c1ba2a55998707f29dc8a8e5cc40ca (patch)
tree20f5105d58ecb0412300cb41219d106c5af9e315
parent47a5d9dcbb595b1bef54f59ba3846170e13be32a (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.c39
-rw-r--r--arch/arm/plat-nomadik/gpio.c45
-rw-r--r--drivers/gpio/gpiolib.c45
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}