]> git.karo-electronics.de Git - linux-beck.git/commitdiff
Merge tag 'omap-for-v3.9/usb-signed' of git://git.kernel.org/pub/scm/linux/kernel...
authorArnd Bergmann <arnd@arndb.de>
Tue, 19 Feb 2013 19:54:15 +0000 (20:54 +0100)
committerArnd Bergmann <arnd@arndb.de>
Tue, 19 Feb 2013 19:54:25 +0000 (20:54 +0100)
These changes contain the OMAP USB related platform data changes
that were dropped from linux next because of the merge conflicts
as requested by me and Olof. The reason was that at this point
we really should be able to do the arch/arm related changes
separately from driver changes to avoid dependencies between
branches.

These patches were initially part of the USB related MFD patches.
Based on our comments, Roger Quadros quickly reworked these
patches into a shared branch between ARM SoC tree and the MFD
tree, then separate patches for the OMAP platform data and
MFD driver.

Note that this branch will conflict with c1d1cd597fc7
("ARM: OMAP2+: omap_device: remove obsolete pm_lats and
early_device code"). Please see http://lkml.org/lkml/2013/2/11/16
for the merge resolution.

[arnd - resolved the merge conflict]

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
19 files changed:
1  2 
MAINTAINERS
arch/arm/mach-omap2/board-3430sdp.c
arch/arm/mach-omap2/board-3630sdp.c
arch/arm/mach-omap2/board-am3517crane.c
arch/arm/mach-omap2/board-am3517evm.c
arch/arm/mach-omap2/board-cm-t35.c
arch/arm/mach-omap2/board-cm-t3517.c
arch/arm/mach-omap2/board-devkit8000.c
arch/arm/mach-omap2/board-igep0020.c
arch/arm/mach-omap2/board-omap3beagle.c
arch/arm/mach-omap2/board-omap3evm.c
arch/arm/mach-omap2/board-omap3pandora.c
arch/arm/mach-omap2/board-omap3stalker.c
arch/arm/mach-omap2/board-omap3touchbook.c
arch/arm/mach-omap2/board-omap4panda.c
arch/arm/mach-omap2/board-overo.c
arch/arm/mach-omap2/board-zoom.c
arch/arm/mach-omap2/usb-host.c
drivers/irqchip/irq-gic.c

diff --combined MAINTAINERS
index 43dbae19838b9281125a518a0a72c2df6a3ab9b6,35a56bcd5e75c0502d01eb2c2e863b044088a972..d8a212e3a7f7b41aedb4c1be64a6440258e49824
@@@ -1489,7 -1489,7 +1489,7 @@@ AVR32 ARCHITECTUR
  M:    Haavard Skinnemoen <hskinnemoen@gmail.com>
  M:    Hans-Christian Egtvedt <egtvedt@samfundet.no>
  W:    http://www.atmel.com/products/AVR32/
- W:    http://avr32linux.org/
+ W:    http://mirror.egtvedt.no/avr32linux.org/
  W:    http://avrfreaks.net/
  S:    Maintained
  F:    arch/avr32/
@@@ -4216,7 -4216,6 +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>
index 8e2513f6a282cc0cb18bbd68a49ac48e82eb2bcf,46147c88781fd0d830f059163402a6d6880d76e8..c22a981086f7f80e7b1176627c92abd756e71984
@@@ -424,7 -424,7 +424,7 @@@ static void enable_board_wakeup_source(
                OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP);
  }
  
- static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
+ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
  
        .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY,
        .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY,
@@@ -597,6 -597,6 +597,6 @@@ MACHINE_START(OMAP_3430SDP, "OMAP3430 3
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = omap_3430sdp_init,
        .init_late      = omap3430_init_late,
 -      .timer          = &omap3_timer,
 +      .init_time      = omap3_sync32k_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
index 33846274bb8a282b592126d411a9d06adf35ad92,78b17247f1a622d6eb589869a04929995b2eb280..67447bd4564fbd05c5956ebed41a5de3e10ac3f6
@@@ -53,7 -53,7 +53,7 @@@ static void enable_board_wakeup_source(
                OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP);
  }
  
- static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
+ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
  
        .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY,
        .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY,
@@@ -211,6 -211,6 +211,6 @@@ MACHINE_START(OMAP_3630SDP, "OMAP 3630S
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = omap_sdp_init,
        .init_late      = omap3630_init_late,
 -      .timer          = &omap3_timer,
 +      .init_time      = omap3_sync32k_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
index 07f0be24a5d18eceacac4573aca9a8d1748b2dfb,26f19168be7a8671787c66a89bb53c4290d815ab..52cc2c59731466b4438eaf4b950fb98845f72b60
@@@ -40,7 -40,7 +40,7 @@@ static struct omap_board_mux board_mux[
  };
  #endif
  
- static struct usbhs_omap_board_data usbhs_bdata __initdata = {
+ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
        .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY,
        .port_mode[1] = OMAP_USBHS_PORT_MODE_UNUSED,
        .port_mode[2] = OMAP_USBHS_PORT_MODE_UNUSED,
@@@ -92,6 -92,6 +92,6 @@@ MACHINE_START(CRANEBOARD, "AM3517/05 CR
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = am3517_crane_init,
        .init_late      = am35xx_init_late,
 -      .timer          = &omap3_timer,
 +      .init_time      = omap3_sync32k_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
index 6f5b2a05f4b2fdf5b33320982f7e71573c5d5e0c,c76725d21b029359fd67634b3bef11e9a12ed58c..9fb85908a61e498a7ae7ec27f18fe2f7b45756db
@@@ -274,7 -274,7 +274,7 @@@ static __init void am3517_evm_mcbsp1_in
        omap_ctrl_writel(devconf0, OMAP2_CONTROL_DEVCONF0);
  }
  
- static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
+ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
        .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY,
  #if defined(CONFIG_PANEL_SHARP_LQ043T1DG01) || \
                defined(CONFIG_PANEL_SHARP_LQ043T1DG01_MODULE)
@@@ -393,6 -393,6 +393,6 @@@ MACHINE_START(OMAP3517EVM, "OMAP3517/AM
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = am3517_evm_init,
        .init_late      = am35xx_init_late,
 -      .timer          = &omap3_timer,
 +      .init_time      = omap3_sync32k_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
index 68647c3891901022a6afa378b104bf7b2759d524,cdf1d6e70bdbb903c676c734205512d50ff7229b..343130c02bb036df5647dd6322bc6f50d1cdb4b6
@@@ -418,7 -418,7 +418,7 @@@ static struct omap2_hsmmc_info mmc[] = 
        {}      /* Terminator */
  };
  
- static struct usbhs_omap_board_data usbhs_bdata __initdata = {
+ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
        .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY,
        .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY,
        .port_mode[2] = OMAP_USBHS_PORT_MODE_UNUSED,
@@@ -751,7 -751,7 +751,7 @@@ MACHINE_START(CM_T35, "Compulab CM-T35"
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = cm_t35_init,
        .init_late      = omap35xx_init_late,
 -      .timer          = &omap3_timer,
 +      .init_time      = omap3_sync32k_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
  
@@@ -764,6 -764,6 +764,6 @@@ MACHINE_START(CM_T3730, "Compulab CM-T3
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = cm_t3730_init,
        .init_late     = omap3630_init_late,
 -      .timer          = &omap3_timer,
 +      .init_time      = omap3_sync32k_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
index 6a9529ab95cd1c2fbb21917a75ba96e15d37be65,cfa9098c007b20e32ea91362fb0c21753a0b08f5..5e54f565a2946ea61f714cea05b4be226777a23c
@@@ -166,7 -166,7 +166,7 @@@ static inline void cm_t3517_init_rtc(vo
  #define HSUSB2_RESET_GPIO     (147)
  #define USB_HUB_RESET_GPIO    (152)
  
- static struct usbhs_omap_board_data cm_t3517_ehci_pdata __initdata = {
+ static struct usbhs_omap_platform_data cm_t3517_ehci_pdata __initdata = {
        .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY,
        .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY,
        .port_mode[2] = OMAP_USBHS_PORT_MODE_UNUSED,
@@@ -297,6 -297,6 +297,6 @@@ MACHINE_START(CM_T3517, "Compulab CM-T3
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = cm_t3517_init,
        .init_late      = am35xx_init_late,
 -      .timer          = &omap3_gp_timer,
 +      .init_time      = omap3_gp_gptimer_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
index 0b1d8f75808812fdd9b6c60cfb8606173e997348,051ec0d867d59bb31cc66b34d6e4601faa9633ae..f3a59c79caeb4c37f55acd17bd296ad1b27a5227
@@@ -435,7 -435,7 +435,7 @@@ static struct platform_device *devkit80
        &omap_dm9000_dev,
  };
  
- static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
+ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
  
        .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY,
        .port_mode[1] = OMAP_USBHS_PORT_MODE_UNUSED,
@@@ -643,6 -643,6 +643,6 @@@ MACHINE_START(DEVKIT8000, "OMAP3 Devkit
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = devkit8000_init,
        .init_late      = omap35xx_init_late,
 -      .timer          = &omap3_secure_timer,
 +      .init_time      = omap3_secure_sync32k_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
index 5b447649f5a0017d6e04cd4181c22fe4258d42db,cfba790a29aa856572104ae693e683732cbfa1e4..8022f563074a3848d1649a21e0093996bef6ec71
@@@ -526,7 -526,7 +526,7 @@@ static void __init igep_i2c_init(void
        omap3_pmic_init("twl4030", &igep_twldata);
  }
  
- static const struct usbhs_omap_board_data igep2_usbhs_bdata __initconst = {
+ static struct usbhs_omap_platform_data igep2_usbhs_bdata __initdata = {
        .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY,
        .port_mode[1] = OMAP_USBHS_PORT_MODE_UNUSED,
        .port_mode[2] = OMAP_USBHS_PORT_MODE_UNUSED,
        .reset_gpio_port[2] = -EINVAL,
  };
  
- static const struct usbhs_omap_board_data igep3_usbhs_bdata __initconst = {
+ static struct usbhs_omap_platform_data igep3_usbhs_bdata __initdata = {
        .port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED,
        .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY,
        .port_mode[2] = OMAP_USBHS_PORT_MODE_UNUSED,
@@@ -655,7 -655,7 +655,7 @@@ MACHINE_START(IGEP0020, "IGEP v2 board"
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = igep_init,
        .init_late      = omap35xx_init_late,
 -      .timer          = &omap3_timer,
 +      .init_time      = omap3_sync32k_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
  
@@@ -668,6 -668,6 +668,6 @@@ MACHINE_START(IGEP0030, "IGEP OMAP3 mod
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = igep_init,
        .init_late      = omap35xx_init_late,
 -      .timer          = &omap3_timer,
 +      .init_time      = omap3_sync32k_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
index b81b4585f46ff7904035698c1bb19ee45ea7761a,1cb114e6fa711a03b7f7cb42479fffd3d5eea95f..67769ef6d184d27918fda84bd22281ae1c114be0
@@@ -430,7 -430,7 +430,7 @@@ static struct platform_device *omap3_be
        &madc_hwmon,
  };
  
- static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
+ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
  
        .port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED,
        .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY,
@@@ -544,6 -544,6 +544,6 @@@ MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beag
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = omap3_beagle_init,
        .init_late      = omap3_init_late,
 -      .timer          = &omap3_secure_timer,
 +      .init_time      = omap3_secure_sync32k_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
index f2f636b19762706e3e631adb4f56d7ed07a015fe,7bdc8a4c0d411a0c77a6857f169bc782908b8c25..b13459bee8cbdde483fb4b41fc2c238733e13170
@@@ -538,7 -538,7 +538,7 @@@ static int __init omap3_evm_i2c_init(vo
        return 0;
  }
  
- static struct usbhs_omap_board_data usbhs_bdata __initdata = {
+ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
  
        .port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED,
        .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY,
@@@ -757,6 -757,6 +757,6 @@@ MACHINE_START(OMAP3EVM, "OMAP3 EVM"
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = omap3_evm_init,
        .init_late      = omap35xx_init_late,
 -      .timer          = &omap3_timer,
 +      .init_time      = omap3_sync32k_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
index 12e181689340970acf8f0dfe4d13a627f5f2e74d,145a6f87b71aac8027e149a7dcf990defff7d560..39806754c87553439e213162066fdb02479cab44
@@@ -567,7 -567,7 +567,7 @@@ static struct platform_device *omap3pan
        &pandora_backlight,
  };
  
- static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
+ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
  
        .port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED,
        .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY,
@@@ -618,6 -618,6 +618,6 @@@ MACHINE_START(OMAP3_PANDORA, "Pandora H
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = omap3pandora_init,
        .init_late      = omap35xx_init_late,
 -      .timer          = &omap3_timer,
 +      .init_time      = omap3_sync32k_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
index 13ee40545604cd7c1f9f171f88de7012f21377ef,278ae9546e3900061bf8ef3bc25847e3f116dbb3..73417474b08c003a3c48e05cba68cf4b466fd103
@@@ -361,7 -361,7 +361,7 @@@ static struct platform_device *omap3_st
        &keys_gpio,
  };
  
- static struct usbhs_omap_board_data usbhs_bdata __initconst = {
+ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
        .port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED,
        .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY,
        .port_mode[2] = OMAP_USBHS_PORT_MODE_UNUSED,
@@@ -427,6 -427,6 +427,6 @@@ MACHINE_START(SBC3530, "OMAP3 STALKER"
        .handle_irq             = omap3_intc_handle_irq,
        .init_machine           = omap3_stalker_init,
        .init_late              = omap35xx_init_late,
 -      .timer                  = &omap3_secure_timer,
 +      .init_time              = omap3_secure_sync32k_timer_init,
        .restart                = omap3xxx_restart,
  MACHINE_END
index 36c455c85ed926a30c8ad0a6db057e31ce3f527b,65a285ffeb7b7ba29e4f67c48d4488976e7e1e7b..fc83c963ba9353e6db5a7865ed2d7ae4ad5056bd
@@@ -309,7 -309,7 +309,7 @@@ static struct platform_device *omap3_to
        &keys_gpio,
  };
  
- static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
+ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
  
        .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY,
        .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY,
@@@ -386,6 -386,6 +386,6 @@@ MACHINE_START(TOUCHBOOK, "OMAP3 touchbo
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = omap3_touchbook_init,
        .init_late      = omap3430_init_late,
 -      .timer          = &omap3_secure_timer,
 +      .init_time      = omap3_secure_sync32k_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
index b62317906b39f539baf394afe2b27308619353c9,135148995dcc46b36edd41966e8adba84bea9de2..824cdffb129ff25257ebd4d17e54d17f2d30e98c
@@@ -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>
@@@ -139,7 -139,7 +139,7 @@@ static struct platform_device *panda_de
        &btwilink_device,
  };
  
- static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
+ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
        .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY,
        .port_mode[1] = OMAP_USBHS_PORT_MODE_UNUSED,
        .port_mode[2] = OMAP_USBHS_PORT_MODE_UNUSED,
@@@ -459,8 -459,9 +459,8 @@@ 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,
 +      .init_time      = omap4_local_timer_init,
        .restart        = omap44xx_restart,
  MACHINE_END
index 233a37d541c3118749dc5a2609548712160080e6,b1b0f09263180305601e1d8ff69f6e47466be254..e425d53212c74763e804fc996db9ccd3d6758461
@@@ -457,7 -457,7 +457,7 @@@ static int __init overo_spi_init(void
        return 0;
  }
  
- static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
+ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
        .port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED,
        .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY,
        .port_mode[2] = OMAP_USBHS_PORT_MODE_UNUSED,
@@@ -551,6 -551,6 +551,6 @@@ MACHINE_START(OVERO, "Gumstix Overo"
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = overo_init,
        .init_late      = omap35xx_init_late,
 -      .timer          = &omap3_timer,
 +      .init_time      = omap3_sync32k_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
index d257cf1e0abec2191d9b54898e2a96d976301702,2d7a45747f406a2a1745b843cc54600846d4428b..5e4d4c9fe61a4fd6c036e4447bb67d268ff82c8a
@@@ -92,7 -92,7 +92,7 @@@ static struct mtd_partition zoom_nand_p
        },
  };
  
- static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
+ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
        .port_mode[0]           = OMAP_USBHS_PORT_MODE_UNUSED,
        .port_mode[1]           = OMAP_EHCI_PORT_MODE_PHY,
        .port_mode[2]           = OMAP_USBHS_PORT_MODE_UNUSED,
@@@ -137,7 -137,7 +137,7 @@@ MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 b
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = omap_zoom_init,
        .init_late      = omap3430_init_late,
 -      .timer          = &omap3_timer,
 +      .init_time      = omap3_sync32k_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
  
@@@ -150,6 -150,6 +150,6 @@@ MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 b
        .handle_irq     = omap3_intc_handle_irq,
        .init_machine   = omap_zoom_init,
        .init_late      = omap3630_init_late,
 -      .timer          = &omap3_timer,
 +      .init_time      = omap3_sync32k_timer_init,
        .restart        = omap3xxx_restart,
  MACHINE_END
index 99f04deb4c7fe4497b24b37b077a117b48fc7308,940aad401279afa23681623c8ca2cd01818f149e..5706bdccf45ee34b643141337b38222fbaf5f63a
  #define       USBHS_UHH_HWMODNAME     "usb_host_hs"
  #define USBHS_TLL_HWMODNAME   "usb_tll_hs"
  
- static struct usbhs_omap_platform_data                usbhs_data;
- static struct usbtll_omap_platform_data               usbtll_data;
- static struct ehci_hcd_omap_platform_data     ehci_data;
- static struct ohci_hcd_omap_platform_data     ohci_data;
 -static struct omap_device_pm_latency omap_uhhtll_latency[] = {
 -        {
 -              .deactivate_func = omap_device_idle_hwmods,
 -              .activate_func   = omap_device_enable_hwmods,
 -              .flags = OMAP_DEVICE_LATENCY_AUTO_ADJUST,
 -        },
 -};
--
  /* MUX settings for EHCI pins */
  /*
   * setup_ehci_io_mux - initialize IO pad mux for USBHOST
@@@ -477,32 -480,18 +472,18 @@@ void __init setup_4430ohci_io_mux(cons
        }
  }
  
- void __init usbhs_init(const struct usbhs_omap_board_data *pdata)
+ void __init usbhs_init(struct usbhs_omap_platform_data *pdata)
  {
        struct omap_hwmod       *uhh_hwm, *tll_hwm;
        struct platform_device  *pdev;
        int                     bus_id = -1;
-       int                     i;
-       for (i = 0; i < OMAP3_HS_USB_PORTS; i++) {
-               usbhs_data.port_mode[i] = pdata->port_mode[i];
-               usbtll_data.port_mode[i] = pdata->port_mode[i];
-               ohci_data.port_mode[i] = pdata->port_mode[i];
-               ehci_data.port_mode[i] = pdata->port_mode[i];
-               ehci_data.reset_gpio_port[i] = pdata->reset_gpio_port[i];
-               ehci_data.regulator[i] = pdata->regulator[i];
-       }
-       ehci_data.phy_reset = pdata->phy_reset;
-       ohci_data.es2_compatibility = pdata->es2_compatibility;
-       usbhs_data.ehci_data = &ehci_data;
-       usbhs_data.ohci_data = &ohci_data;
  
        if (cpu_is_omap34xx()) {
                setup_ehci_io_mux(pdata->port_mode);
                setup_ohci_io_mux(pdata->port_mode);
  
                if (omap_rev() <= OMAP3430_REV_ES2_1)
-                       usbhs_data.single_ulpi_bypass = true;
+                       pdata->single_ulpi_bypass = true;
  
        } else if (cpu_is_omap44xx()) {
                setup_4430ehci_io_mux(pdata->port_mode);
        }
  
        pdev = omap_device_build(OMAP_USBTLL_DEVICE, bus_id, tll_hwm,
-                                &usbtll_data, sizeof(usbtll_data));
 -                              pdata, sizeof(*pdata),
 -                              omap_uhhtll_latency,
 -                              ARRAY_SIZE(omap_uhhtll_latency), false);
++                              pdata, sizeof(*pdata));
        if (IS_ERR(pdev)) {
                pr_err("Could not build hwmod device %s\n",
                       USBHS_TLL_HWMODNAME);
        }
  
        pdev = omap_device_build(OMAP_USBHS_DEVICE, bus_id, uhh_hwm,
-                               &usbhs_data, sizeof(usbhs_data));
 -                              pdata, sizeof(*pdata),
 -                              omap_uhhtll_latency,
 -                              ARRAY_SIZE(omap_uhhtll_latency), false);
++                              pdata, sizeof(*pdata));
        if (IS_ERR(pdev)) {
                pr_err("Could not build hwmod devices %s\n",
                       USBHS_UHH_HWMODNAME);
  
  #else
  
- void __init usbhs_init(const struct usbhs_omap_board_data *pdata)
+ void __init usbhs_init(struct usbhs_omap_platform_data *pdata)
  {
  }
  
index 69d9a395d54c671e0e1068c710cca76b92a2a5f5,87dfa9026c5bdcb1ba9d57d718d00da671c8fe21..644d724684232d9b389fcc056f78aaab1e155817
  #include <linux/interrupt.h>
  #include <linux/percpu.h>
  #include <linux/slab.h>
 +#include <linux/irqchip/arm-gic.h>
  
  #include <asm/irq.h>
  #include <asm/exception.h>
  #include <asm/smp_plat.h>
  #include <asm/mach/irq.h>
 -#include <asm/hardware/gic.h>
 +
 +#include "irqchip.h"
  
  union gic_base {
        void __iomem *common_base;
@@@ -278,7 -276,7 +278,7 @@@ static int gic_set_wake(struct irq_dat
  #define gic_set_wake  NULL
  #endif
  
 -asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs)
 +static asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs)
  {
        u32 irqstat, irqnr;
        struct gic_chip_data *gic = &gic_data[0];
@@@ -353,6 -351,25 +353,25 @@@ void __init gic_cascade_irq(unsigned in
        irq_set_chained_handler(irq, gic_handle_cascade_irq);
  }
  
+ static u8 gic_get_cpumask(struct gic_chip_data *gic)
+ {
+       void __iomem *base = gic_data_dist_base(gic);
+       u32 mask, i;
+       for (i = mask = 0; i < 32; i += 4) {
+               mask = readl_relaxed(base + GIC_DIST_TARGET + i);
+               mask |= mask >> 16;
+               mask |= mask >> 8;
+               if (mask)
+                       break;
+       }
+       if (!mask)
+               pr_crit("GIC CPU mask not found - kernel will fail to boot.\n");
+       return mask;
+ }
  static void __init gic_dist_init(struct gic_chip_data *gic)
  {
        unsigned int i;
        /*
         * Set all global interrupts to this CPU only.
         */
-       cpumask = readl_relaxed(base + GIC_DIST_TARGET + 0);
+       cpumask = gic_get_cpumask(gic);
+       cpumask |= cpumask << 8;
+       cpumask |= cpumask << 16;
        for (i = 32; i < gic_irqs; i += 4)
                writel_relaxed(cpumask, base + GIC_DIST_TARGET + i * 4 / 4);
  
@@@ -402,7 -421,7 +423,7 @@@ static void __cpuinit gic_cpu_init(stru
         * Get what the GIC says our CPU mask is.
         */
        BUG_ON(cpu >= NR_GIC_CPU_IF);
-       cpu_mask = readl_relaxed(dist_base + GIC_DIST_TARGET + 0);
+       cpu_mask = gic_get_cpumask(gic);
        gic_cpu_map[cpu] = cpu_mask;
  
        /*
@@@ -619,27 -638,6 +640,27 @@@ static void __init gic_pm_init(struct g
  }
  #endif
  
 +#ifdef CONFIG_SMP
 +void gic_raise_softirq(const struct cpumask *mask, unsigned int irq)
 +{
 +      int cpu;
 +      unsigned long map = 0;
 +
 +      /* Convert our logical CPU mask into a physical one. */
 +      for_each_cpu(cpu, mask)
 +              map |= 1 << cpu_logical_map(cpu);
 +
 +      /*
 +       * Ensure that stores to Normal memory are visible to the
 +       * other CPUs before issuing the IPI.
 +       */
 +      dsb();
 +
 +      /* this always happens on GIC0 */
 +      writel_relaxed(map << 16 | irq, gic_data_dist_base(&gic_data[0]) + GIC_DIST_SOFTINT);
 +}
 +#endif
 +
  static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq,
                                irq_hw_number_t hw)
  {
@@@ -766,12 -764,6 +787,12 @@@ void __init gic_init_bases(unsigned in
        if (WARN_ON(!gic->domain))
                return;
  
 +#ifdef CONFIG_SMP
 +      set_smp_cross_call(gic_raise_softirq);
 +#endif
 +
 +      set_handle_irq(gic_handle_irq);
 +
        gic_chip.flags |= gic_arch_extn.flags;
        gic_dist_init(gic);
        gic_cpu_init(gic);
@@@ -785,6 -777,27 +806,6 @@@ void __cpuinit gic_secondary_init(unsig
        gic_cpu_init(&gic_data[gic_nr]);
  }
  
 -#ifdef CONFIG_SMP
 -void gic_raise_softirq(const struct cpumask *mask, unsigned int irq)
 -{
 -      int cpu;
 -      unsigned long map = 0;
 -
 -      /* Convert our logical CPU mask into a physical one. */
 -      for_each_cpu(cpu, mask)
 -              map |= gic_cpu_map[cpu];
 -
 -      /*
 -       * Ensure that stores to Normal memory are visible to the
 -       * other CPUs before issuing the IPI.
 -       */
 -      dsb();
 -
 -      /* this always happens on GIC0 */
 -      writel_relaxed(map << 16 | irq, gic_data_dist_base(&gic_data[0]) + GIC_DIST_SOFTINT);
 -}
 -#endif
 -
  #ifdef CONFIG_OF
  static int gic_cnt __initdata = 0;
  
@@@ -816,9 -829,4 +837,9 @@@ int __init gic_of_init(struct device_no
        gic_cnt++;
        return 0;
  }
 +IRQCHIP_DECLARE(cortex_a15_gic, "arm,cortex-a15-gic", gic_of_init);
 +IRQCHIP_DECLARE(cortex_a9_gic, "arm,cortex-a9-gic", gic_of_init);
 +IRQCHIP_DECLARE(msm_8660_qgic, "qcom,msm-8660-qgic", gic_of_init);
 +IRQCHIP_DECLARE(msm_qgic2, "qcom,msm-qgic2", gic_of_init);
 +
  #endif