]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'mips/mips-for-linux-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Mon, 7 Nov 2011 00:03:54 +0000 (11:03 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Mon, 7 Nov 2011 00:03:54 +0000 (11:03 +1100)
Conflicts:
arch/mips/alchemy/common/dbdma.c
arch/mips/kernel/perf_event.c

1  2 
arch/mips/alchemy/common/dbdma.c
arch/mips/alchemy/devboards/db1200/platform.c
arch/mips/include/asm/mach-bcm47xx/gpio.h
arch/mips/sgi-ip27/ip27-irq.c

index 0e63ee487d6d1315b6f06c069631cb383c932eb7,4025d77b3601c82f8a7cb1cd96f01bdfc748414f..9ba407b4fc975a59fdab1877382d2ba786f05237
@@@ -1019,8 -1037,19 +1019,7 @@@ static int __init dbdma_setup(unsigned 
        dbdma_gptr->ddma_inten = 0xffff;
        au_sync();
  
-       ret = request_irq(irq, dbdma_interrupt, IRQF_DISABLED, "dbdma",
-                         (void *)dbdma_gptr);
 -      switch (alchemy_get_cputype()) {
 -      case ALCHEMY_CPU_AU1550:
 -              irq_nr = AU1550_DDMA_INT;
 -              break;
 -      case ALCHEMY_CPU_AU1200:
 -              irq_nr = AU1200_DDMA_INT;
 -              break;
 -      default:
 -              return -ENODEV;
 -      }
 -
 -      ret = request_irq(irq_nr, dbdma_interrupt, 0,
 -                      "Au1xxx dbdma", (void *)dbdma_gptr);
++      ret = request_irq(irq, dbdma_interrupt, 0, "dbdma", (void *)dbdma_gptr);
        if (ret)
                printk(KERN_ERR "Cannot grab DBDMA interrupt!\n");
        else {
index 76961cabeedfe1cdac4caaef7e9989ca04a345be,ea2c4e8135a18b157b12311481c0d276f30ad616..2ef17e8df40346f07aea6e01431186686214a1f7
@@@ -22,54 -21,33 +22,69 @@@ extern int gpio_to_irq(unsigned gpio)
  
  static inline int gpio_get_value(unsigned gpio)
  {
 -      return ssb_gpio_in(&ssb_bcm47xx, 1 << gpio);
 +      switch (bcm47xx_bus_type) {
 +#ifdef CONFIG_BCM47XX_SSB
 +      case BCM47XX_BUS_TYPE_SSB:
 +              return ssb_gpio_in(&bcm47xx_bus.ssb, 1 << gpio);
 +#endif
 +#ifdef CONFIG_BCM47XX_BCMA
 +      case BCM47XX_BUS_TYPE_BCMA:
 +              return bcma_chipco_gpio_in(&bcm47xx_bus.bcma.bus.drv_cc,
 +                                         1 << gpio);
 +#endif
 +      }
 +      return -EINVAL;
  }
  
+ #define gpio_get_value_cansleep       gpio_get_value
  static inline void gpio_set_value(unsigned gpio, int value)
  {
 -      ssb_gpio_out(&ssb_bcm47xx, 1 << gpio, value ? 1 << gpio : 0);
 +      switch (bcm47xx_bus_type) {
 +#ifdef CONFIG_BCM47XX_SSB
 +      case BCM47XX_BUS_TYPE_SSB:
 +              ssb_gpio_out(&bcm47xx_bus.ssb, 1 << gpio,
 +                           value ? 1 << gpio : 0);
 +              return;
 +#endif
 +#ifdef CONFIG_BCM47XX_BCMA
 +      case BCM47XX_BUS_TYPE_BCMA:
 +              bcma_chipco_gpio_out(&bcm47xx_bus.bcma.bus.drv_cc, 1 << gpio,
 +                                   value ? 1 << gpio : 0);
 +              return;
 +#endif
 +      }
  }
  
+ #define gpio_set_value_cansleep gpio_set_value
+ static inline int gpio_cansleep(unsigned gpio)
+ {
+       return 0;
+ }
+ static inline int gpio_is_valid(unsigned gpio)
+ {
+       return gpio < (BCM47XX_EXTIF_GPIO_LINES + BCM47XX_CHIPCO_GPIO_LINES);
+ }
  static inline int gpio_direction_input(unsigned gpio)
  {
 -      ssb_gpio_outen(&ssb_bcm47xx, 1 << gpio, 0);
 -      return 0;
 +      switch (bcm47xx_bus_type) {
 +#ifdef CONFIG_BCM47XX_SSB
 +      case BCM47XX_BUS_TYPE_SSB:
 +              ssb_gpio_outen(&bcm47xx_bus.ssb, 1 << gpio, 0);
 +              return 0;
 +#endif
 +#ifdef CONFIG_BCM47XX_BCMA
 +      case BCM47XX_BUS_TYPE_BCMA:
 +              bcma_chipco_gpio_outen(&bcm47xx_bus.bcma.bus.drv_cc, 1 << gpio,
 +                                     0);
 +              return 0;
 +#endif
 +      }
 +      return -EINVAL;
  }
  
  static inline int gpio_direction_output(unsigned gpio, int value)
Simple merge