Merge branch 'irqchip/gic-vic-move' of git://git.kernel.org/pub/scm/linux/kernel...
Will Deacon [Sat, 2 Feb 2013 15:03:10 +0000 (15:03 +0000)]
1  2 
MAINTAINERS
arch/arm/kernel/smp.c
arch/arm/mach-imx/common.h
arch/arm/mach-imx/platsmp.c
arch/arm/mach-omap2/board-omap4panda.c
drivers/mfd/db8500-prcmu.c

diff --combined MAINTAINERS
@@@ -228,7 -228,7 +228,7 @@@ S: Maintaine
  F:    drivers/platform/x86/acerhdf.c
  
  ACER WMI LAPTOP EXTRAS
 -M:    Joey Lee <jlee@novell.com>
 +M:    "Lee, Chun-Yi" <jlee@suse.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/acer-wmi.c
@@@ -648,7 -648,7 +648,7 @@@ F: arch/arm
  
  ARM SUB-ARCHITECTURES
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 -S:    MAINTAINED
 +S:    Maintained
  F:    arch/arm/mach-*/
  F:    arch/arm/plat-*/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git
@@@ -1351,14 -1351,6 +1351,14 @@@ W:    http://wireless.kernel.org/en/users/
  S:    Supported
  F:    drivers/net/wireless/ath/ath9k/
  
 +WILOCITY WIL6210 WIRELESS DRIVER
 +M:    Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
 +L:    linux-wireless@vger.kernel.org
 +L:    wil6210@qca.qualcomm.com
 +S:    Supported
 +W:    http://wireless.kernel.org/en/users/Drivers/wil6210
 +F:    drivers/net/wireless/ath/wil6210/
 +
  CARL9170 LINUX COMMUNITY WIRELESS DRIVER
  M:    Christian Lamparter <chunkeey@googlemail.com>
  L:    linux-wireless@vger.kernel.org
@@@ -1972,9 -1964,9 +1972,9 @@@ S:      Maintaine
  F:    drivers/usb/host/ohci-ep93xx.c
  
  CIRRUS LOGIC CS4270 SOUND DRIVER
 -M:    Timur Tabi <timur@freescale.com>
 +M:    Timur Tabi <timur@tabi.org>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
 -S:    Supported
 +S:    Odd Fixes
  F:    sound/soc/codecs/cs4270*
  
  CLEANCACHE API
@@@ -2966,7 -2958,7 +2966,7 @@@ S:      Maintaine
  F:    drivers/net/ethernet/i825xx/eexpress.*
  
  ETHERNET BRIDGE
 -M:    Stephen Hemminger <shemminger@vyatta.com>
 +M:    Stephen Hemminger <stephen@networkplumber.org>
  L:    bridge@lists.linux-foundation.org
  L:    netdev@vger.kernel.org
  W:    http://www.linuxfoundation.org/en/Net:Bridge
@@@ -3191,9 -3183,9 +3191,9 @@@ F:      include/uapi/video
  F:    include/uapi/linux/fb.h
  
  FREESCALE DIU FRAMEBUFFER DRIVER
 -M:    Timur Tabi <timur@freescale.com>
 +M:    Timur Tabi <timur@tabi.org>
  L:    linux-fbdev@vger.kernel.org
 -S:    Supported
 +S:    Maintained
  F:    drivers/video/fsl-diu-fb.*
  
  FREESCALE DMA DRIVER
@@@ -3228,8 -3220,9 +3228,8 @@@ F:      drivers/net/ethernet/freescale/fs_en
  F:    include/linux/fs_enet_pd.h
  
  FREESCALE QUICC ENGINE LIBRARY
 -M:    Timur Tabi <timur@freescale.com>
  L:    linuxppc-dev@lists.ozlabs.org
 -S:    Supported
 +S:    Orphan
  F:    arch/powerpc/sysdev/qe_lib/
  F:    arch/powerpc/include/asm/*qe.h
  
@@@ -3248,16 -3241,16 +3248,16 @@@ S:   Maintaine
  F:    drivers/net/ethernet/freescale/ucc_geth*
  
  FREESCALE QUICC ENGINE UCC UART DRIVER
 -M:    Timur Tabi <timur@freescale.com>
 +M:    Timur Tabi <timur@tabi.org>
  L:    linuxppc-dev@lists.ozlabs.org
 -S:    Supported
 +S:    Maintained
  F:    drivers/tty/serial/ucc_uart.c
  
  FREESCALE SOC SOUND DRIVERS
 -M:    Timur Tabi <timur@freescale.com>
 +M:    Timur Tabi <timur@tabi.org>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  L:    linuxppc-dev@lists.ozlabs.org
 -S:    Supported
 +S:    Maintained
  F:    sound/soc/fsl/fsl*
  F:    sound/soc/fsl/mpc8610_hpcd.c
  
@@@ -4216,6 -4209,7 +4216,7 @@@ M:      Thomas Gleixner <tglx@linutronix.de
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
  F:    kernel/irq/
+ F:    drivers/irqchip/
  
  IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY)
  M:    Benjamin Herrenschmidt <benh@kernel.crashing.org>
@@@ -4905,7 -4899,7 +4906,7 @@@ S:      Maintaine
  
  MARVELL GIGABIT ETHERNET DRIVERS (skge/sky2)
  M:    Mirko Lindner <mlindner@marvell.com>
 -M:    Stephen Hemminger <shemminger@vyatta.com>
 +M:    Stephen Hemminger <stephen@networkplumber.org>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ethernet/marvell/sk*
@@@ -5084,7 -5078,7 +5085,7 @@@ S:      Maintaine
  F:    drivers/media/radio/radio-mr800.c
  
  MSI LAPTOP SUPPORT
 -M:    "Lee, Chun-Yi" <jlee@novell.com>
 +M:    "Lee, Chun-Yi" <jlee@suse.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    drivers/platform/x86/msi-laptop.c
@@@ -5180,7 -5174,7 +5181,7 @@@ S:      Supporte
  F:    drivers/infiniband/hw/nes/
  
  NETEM NETWORK EMULATOR
 -M:    Stephen Hemminger <shemminger@vyatta.com>
 +M:    Stephen Hemminger <stephen@networkplumber.org>
  L:    netem@lists.linux-foundation.org
  S:    Maintained
  F:    net/sched/sch_netem.c
@@@ -5514,7 -5508,8 +5515,7 @@@ M:      Benoît Cousson <b-cousson@ti.com
  M:    Paul Walmsley <paul@pwsan.com>
  L:    linux-omap@vger.kernel.org
  S:    Maintained
 -F:    arch/arm/mach-omap2/omap_hwmod.c
 -F:    arch/arm/plat-omap/include/plat/omap_hwmod.h
 +F:    arch/arm/mach-omap2/omap_hwmod.*
  
  OMAP HWMOD DATA FOR OMAP4-BASED DEVICES
  M:    Benoît Cousson <b-cousson@ti.com>
@@@ -6585,7 -6580,7 +6586,7 @@@ F:      drivers/media/platform/s3c-camif
  F:    include/media/s3c_camif.h
  
  SERIAL DRIVERS
 -M:    Alan Cox <alan@linux.intel.com>
 +M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  L:    linux-serial@vger.kernel.org
  S:    Maintained
  F:    drivers/tty/serial
@@@ -7088,7 -7083,7 +7089,7 @@@ F:      include/uapi/sound
  F:    sound/
  
  SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEMENT (ASoC)
 -M:    Liam Girdwood <lrg@ti.com>
 +M:    Liam Girdwood <lgirdwood@gmail.com>
  M:    Mark Brown <broonie@opensource.wolfsonmicro.com>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
@@@ -7340,7 -7335,7 +7341,7 @@@ S:      Odd Fixe
  F:    drivers/staging/speakup/
  
  STAGING - TI DSP BRIDGE DRIVERS
 -M:    Omar Ramirez Luna <omar.ramirez@ti.com>
 +M:    Omar Ramirez Luna <omar.ramirez@copitl.com>
  S:    Odd Fixes
  F:    drivers/staging/tidspbridge/
  
@@@ -8532,7 -8527,7 +8533,7 @@@ F:      Documentation/x86
  F:    arch/x86/
  
  X86 PLATFORM DRIVERS
 -M:    Matthew Garrett <mjg@redhat.com>
 +M:    Matthew Garrett <matthew.garrett@nebula.com>
  L:    platform-driver-x86@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86.git
  S:    Maintained
diff --combined arch/arm/kernel/smp.c
@@@ -416,7 -416,8 +416,8 @@@ static void (*smp_cross_call)(const str
  
  void __init set_smp_cross_call(void (*fn)(const struct cpumask *, unsigned int))
  {
-       smp_cross_call = fn;
+       if (!smp_cross_call)
+               smp_cross_call = fn;
  }
  
  void arch_send_call_function_ipi_mask(const struct cpumask *mask)
@@@ -475,8 -476,14 +476,8 @@@ u64 smp_irq_stat_cpu(unsigned int cpu
   */
  static DEFINE_PER_CPU(struct clock_event_device, percpu_clockevent);
  
 -static void ipi_timer(void)
 -{
 -      struct clock_event_device *evt = &__get_cpu_var(percpu_clockevent);
 -      evt->event_handler(evt);
 -}
 -
  #ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
 -static void smp_timer_broadcast(const struct cpumask *mask)
 +void tick_broadcast(const struct cpumask *mask)
  {
        smp_cross_call(mask, IPI_TIMER);
  }
@@@ -524,6 -531,7 +525,6 @@@ static void __cpuinit percpu_timer_setu
        struct clock_event_device *evt = &per_cpu(percpu_clockevent, cpu);
  
        evt->cpumask = cpumask_of(cpu);
 -      evt->broadcast = smp_timer_broadcast;
  
        if (!lt_ops || lt_ops->setup(evt))
                broadcast_timer_setup(evt);
@@@ -589,13 -597,11 +590,13 @@@ void handle_IPI(int ipinr, struct pt_re
        case IPI_WAKEUP:
                break;
  
 +#ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
        case IPI_TIMER:
                irq_enter();
 -              ipi_timer();
 +              tick_receive_broadcast();
                irq_exit();
                break;
 +#endif
  
        case IPI_RESCHEDULE:
                scheduler_ipi();
@@@ -112,7 -112,6 +112,6 @@@ void tzic_handle_irq(struct pt_regs *)
  #define imx50_handle_irq tzic_handle_irq
  #define imx51_handle_irq tzic_handle_irq
  #define imx53_handle_irq tzic_handle_irq
- #define imx6q_handle_irq gic_handle_irq
  
  extern void imx_enable_cpu(int cpu, bool enable);
  extern void imx_set_cpu_jump(int cpu, void *jump_addr);
@@@ -142,7 -141,6 +141,7 @@@ extern int imx6q_set_lpm(enum mxc_cpu_p
  extern void imx6q_clock_map_io(void);
  
  extern void imx_cpu_die(unsigned int cpu);
 +extern int imx_cpu_kill(unsigned int cpu);
  
  #ifdef CONFIG_PM
  extern void imx6q_pm_init(void);
@@@ -12,9 -12,9 +12,9 @@@
  
  #include <linux/init.h>
  #include <linux/smp.h>
+ #include <linux/irqchip/arm-gic.h>
  #include <asm/page.h>
  #include <asm/smp_scu.h>
- #include <asm/hardware/gic.h>
  #include <asm/mach/map.h>
  
  #include "common.h"
@@@ -71,8 -71,6 +71,6 @@@ static void __init imx_smp_init_cpus(vo
  
        for (i = 0; i < ncores; i++)
                set_cpu_possible(i, true);
-       set_smp_cross_call(gic_raise_softirq);
  }
  
  void imx_smp_prepare(void)
@@@ -92,6 -90,5 +90,6 @@@ struct smp_operations  imx_smp_ops __in
        .smp_boot_secondary     = imx_boot_secondary,
  #ifdef CONFIG_HOTPLUG_CPU
        .cpu_die                = imx_cpu_die,
 +      .cpu_kill               = imx_cpu_kill,
  #endif
  };
@@@ -31,9 -31,9 +31,9 @@@
  #include <linux/ti_wilink_st.h>
  #include <linux/usb/musb.h>
  #include <linux/wl12xx.h>
+ #include <linux/irqchip/arm-gic.h>
  #include <linux/platform_data/omap-abe-twl6040.h>
  
- #include <asm/hardware/gic.h>
  #include <asm/mach-types.h>
  #include <asm/mach/arch.h>
  #include <asm/mach/map.h>
@@@ -397,12 -397,6 +397,12 @@@ static struct omap_board_mux board_mux[
                  OMAP_PULL_ENA),
        OMAP4_MUX(ABE_MCBSP1_FSX, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
  
 +      /* UART2 - BT/FM/GPS shared transport */
 +      OMAP4_MUX(UART2_CTS,    OMAP_PIN_INPUT  | OMAP_MUX_MODE0),
 +      OMAP4_MUX(UART2_RTS,    OMAP_PIN_OUTPUT | OMAP_MUX_MODE0),
 +      OMAP4_MUX(UART2_RX,     OMAP_PIN_INPUT  | OMAP_MUX_MODE0),
 +      OMAP4_MUX(UART2_TX,     OMAP_PIN_OUTPUT | OMAP_MUX_MODE0),
 +
        { .reg_offset = OMAP_MUX_TERMINATOR },
  };
  
@@@ -459,7 -453,6 +459,6 @@@ MACHINE_START(OMAP4_PANDA, "OMAP4 Pand
        .map_io         = omap4_map_io,
        .init_early     = omap4430_init_early,
        .init_irq       = gic_init_irq,
-       .handle_irq     = gic_handle_irq,
        .init_machine   = omap4_panda_init,
        .init_late      = omap4430_init_late,
        .timer          = &omap4_timer,
  #include <linux/fs.h>
  #include <linux/platform_device.h>
  #include <linux/uaccess.h>
+ #include <linux/irqchip/arm-gic.h>
  #include <linux/mfd/core.h>
  #include <linux/mfd/dbx500-prcmu.h>
  #include <linux/mfd/abx500/ab8500.h>
  #include <linux/regulator/db8500-prcmu.h>
  #include <linux/regulator/machine.h>
  #include <linux/cpufreq.h>
- #include <asm/hardware/gic.h>
  #include <mach/hardware.h>
  #include <mach/irqs.h>
  #include <mach/db8500-regs.h>
@@@ -2524,7 -2524,7 +2524,7 @@@ static bool read_mailbox_0(void
  
                for (n = 0; n < NUM_PRCMU_WAKEUPS; n++) {
                        if (ev & prcmu_irq_bit[n])
 -                              generic_handle_irq(IRQ_PRCMU_BASE + n);
 +                              generic_handle_irq(irq_find_mapping(db8500_irq_domain, n));
                }
                r = true;
                break;
@@@ -2737,14 -2737,13 +2737,14 @@@ static int db8500_irq_map(struct irq_do
  }
  
  static struct irq_domain_ops db8500_irq_ops = {
 -        .map    = db8500_irq_map,
 -        .xlate  = irq_domain_xlate_twocell,
 +      .map    = db8500_irq_map,
 +      .xlate  = irq_domain_xlate_twocell,
  };
  
  static int db8500_irq_init(struct device_node *np)
  {
 -      int irq_base = -1;
 +      int irq_base = 0;
 +      int i;
  
        /* In the device tree case, just take some IRQs */
        if (!np)
                return -ENOSYS;
        }
  
 +      /* All wakeups will be used, so create mappings for all */
 +      for (i = 0; i < NUM_PRCMU_WAKEUPS; i++)
 +              irq_create_mapping(db8500_irq_domain, i);
 +
        return 0;
  }