History

Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (45 commits) ARM: ux500: update defconfig ARM: u300: update defconfig ARM: at91: enable additional boards in existing soc defconfig files ARM: at91: refresh soc defconfig files for 3.2 ARM: at91: rename defconfig files appropriately ARM: OMAP2+: Fix Compilation error when omap_l3_noc built as module ARM: OMAP2+: Remove empty io.h ARM: OMAP2: select ARM_AMBA if OMAP3_EMU is defined ARM: OMAP: smartreflex: fix IRQ handling bug ARM: OMAP: PM: only register TWL with voltage layer when device is present ARM: OMAP: hwmod: Fix the addr space, irq, dma count APIs arm: mx28: fix bit operation in clock setting ARM: imx: export imx_ioremap ARM: imx/mm-imx3: conditionally compile i.MX31 and i.MX35 code ARM: mx5: Fix checkpatch warnings in cpu-imx5.c MAINTAINERS: Add missing directory ARM: imx: drop 'ARCH_MX31' and 'ARCH_MX35' ARM: imx6q: move clock register map to machine_desc.map_io ARM: pxa168/gplugd: add the correct SSP device ARM: Update mach-types to fix mxs build breakage ...

Linus Torvalds committed 14 years ago

Commit cd5b49b2 parents 8cd7920 98014be71 files · +517 −270Browse files

Unified · Split

71 files
  1. MAINTAINERS +8 −0
  2. arch/arm/configs/at91cap9_defconfig +0 −7
  3. arch/arm/configs/at91rm9200_defconfig +14 −33
  4. arch/arm/configs/at91sam9260_defconfig +12 −4
  5. arch/arm/configs/at91sam9g20_defconfig +12 −11
  6. arch/arm/configs/at91sam9g45_defconfig +2 −5
  7. arch/arm/configs/at91sam9rl_defconfig +0 −5
  8. arch/arm/configs/ezx_defconfig +1 −1
  9. arch/arm/configs/imote2_defconfig +1 −1
  10. arch/arm/configs/magician_defconfig +1 −1
  11. arch/arm/configs/omap1_defconfig +0 −1
  12. arch/arm/configs/u300_defconfig +6 −7
  13. arch/arm/configs/u8500_defconfig +5 −9
  14. arch/arm/configs/zeus_defconfig +1 −1
  15. arch/arm/mach-exynos/cpuidle.c +2 −0
  16. arch/arm/mach-highbank/highbank.c +4 −0
  17. arch/arm/mach-imx/Kconfig +0 −13
  18. arch/arm/mach-imx/clock-imx6q.c +5 −2
  19. arch/arm/mach-imx/mach-imx6q.c +1 −0
  20. arch/arm/mach-imx/mm-imx3.c +58 −51
  21. arch/arm/mach-imx/src.c +7 −0
  22. arch/arm/mach-mmp/gplugd.c +1 −1
  23. arch/arm/mach-mmp/include/mach/gpio-pxa.h +1 −1
  24. arch/arm/mach-mx5/cpu.c +3 −2
  25. arch/arm/mach-mx5/mm.c +4 −2
  26. arch/arm/mach-mxs/clock-mx28.c +1 −1
  27. arch/arm/mach-omap1/Kconfig +0 −8
  28. arch/arm/mach-omap1/board-ams-delta.c +7 −3
  29. arch/arm/mach-omap1/clock.h +2 −1
  30. arch/arm/mach-omap1/clock_data.c +34 −19
  31. arch/arm/mach-omap1/devices.c +3 −0
  32. arch/arm/mach-omap2/Kconfig +1 −0
  33. arch/arm/mach-omap2/Makefile +1 −4
  34. arch/arm/mach-omap2/cpuidle34xx.c +1 −0
  35. arch/arm/mach-omap2/display.c +159 −0
  36. arch/arm/mach-omap2/display.h +29 −0
  37. arch/arm/mach-omap2/io.h +0 −0
  38. arch/arm/mach-omap2/omap_hwmod.c +3 −3
  39. arch/arm/mach-omap2/omap_hwmod_2420_data.c +14 −3
  40. arch/arm/mach-omap2/omap_hwmod_2430_data.c +14 −3
  41. arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c +4 −1
  42. arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +32 −5
  43. arch/arm/mach-omap2/omap_hwmod_44xx_data.c +12 −12
  44. arch/arm/mach-omap2/omap_hwmod_common_data.c +4 −0
  45. arch/arm/mach-omap2/omap_hwmod_common_data.h +4 −0
  46. arch/arm/mach-omap2/omap_l3_noc.c +1 −1
  47. arch/arm/mach-omap2/pm.c +2 −4
  48. arch/arm/mach-omap2/smartreflex.c +1 −1
  49. arch/arm/mach-omap2/twl-common.c +11 −0
  50. arch/arm/mach-omap2/twl-common.h +3 −0
  51. arch/arm/mach-pxa/balloon3.c +1 −1
  52. arch/arm/mach-pxa/colibri-pxa320.c +1 −1
  53. arch/arm/mach-pxa/gumstix.c +1 −1
  54. arch/arm/mach-pxa/include/mach/palm27x.h +2 −2
  55. arch/arm/mach-pxa/palm27x.c +2 −2
  56. arch/arm/mach-pxa/palmtc.c +1 −1
  57. arch/arm/mach-pxa/vpac270.c +1 −1
  58. arch/arm/mach-s3c64xx/mach-crag6410-module.c +1 −1
  59. arch/arm/plat-mxc/include/mach/common.h +1 −1
  60. arch/arm/plat-mxc/include/mach/mxc.h +0 −14
  61. arch/arm/plat-mxc/include/mach/system.h +1 −6
  62. arch/arm/plat-mxc/system.c +2 −1
  63. arch/arm/plat-omap/include/plat/clock.h +1 −1
  64. arch/arm/plat-omap/include/plat/common.h +3 −0
  65. arch/arm/plat-s3c24xx/cpu-freq-debugfs.c +1 −1
  66. arch/arm/plat-s5p/sysmmu.c +1 −0
  67. arch/arm/plat-samsung/include/plat/gpio-cfg.h +2 −0
  68. arch/arm/plat-samsung/pd.c +1 −1
  69. arch/arm/plat-samsung/pwm.c +1 −1
  70. arch/arm/tools/mach-types +1 −0
  71. include/video/omapdss.h +0 −7
MAINTAINERS+8−0
@@ -789,6 +789,7 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) · 788 unmodified lines
789789 S: Maintained
790790 T: git git://git.pengutronix.de/git/imx/linux-2.6.git
791791 F: arch/arm/mach-mx*/
792+F: arch/arm/mach-imx/
792793 F: arch/arm/plat-mxc/
793794
794795 ARM/FREESCALE IMX51
@@ -804,6 +805,13 @@ S: Maintained · 9 unmodified lines
804805 T: git git://git.linaro.org/people/shawnguo/linux-2.6.git
805806 F: arch/arm/mach-imx/*imx6*
806807
808+ARM/FREESCALE MXS ARM ARCHITECTURE
809+M: Shawn Guo <shawn.guo@linaro.org>
810+L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
811+S: Maintained
812+T: git git://git.linaro.org/people/shawnguo/linux-2.6.git
813+F: arch/arm/mach-mxs/
814+
807815 ARM/GLOMATION GESBC9312SX MACHINE SUPPORT
808816 M: Lennert Buytenhek <kernel@wantstofly.org>
809817 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
arch/arm/configs/at91cap9_defconfigrenamed from arch/arm/configs/at91cap9adk_defconfig+0−7
@@ -38,7 +38,6 @@ CONFIG_IP_PNP_RARP=y · 37 unmodified lines
3838 # CONFIG_IPV6 is not set
3939 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
4040 CONFIG_MTD=y
41−CONFIG_MTD_PARTITIONS=y
4241 CONFIG_MTD_CMDLINE_PARTS=y
4342 CONFIG_MTD_CHAR=y
4443 CONFIG_MTD_BLOCK=y
@@ -52,16 +51,12 @@ CONFIG_MTD_NAND_ATMEL=y · 7 unmodified lines
5251 CONFIG_BLK_DEV_LOOP=y
5352 CONFIG_BLK_DEV_RAM=y
5453 CONFIG_BLK_DEV_RAM_SIZE=8192
55−CONFIG_ATMEL_SSC=y
5654 CONFIG_SCSI=y
5755 CONFIG_BLK_DEV_SD=y
5856 CONFIG_SCSI_MULTI_LUN=y
5957 CONFIG_NETDEVICES=y
60−CONFIG_NET_ETHERNET=y
6158 CONFIG_MII=y
6259 CONFIG_MACB=y
63−# CONFIG_NETDEV_1000 is not set
64−# CONFIG_NETDEV_10000 is not set
6560 # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
6661 CONFIG_INPUT_EVDEV=y
6762 # CONFIG_INPUT_KEYBOARD is not set
@@ -81,7 +76,6 @@ CONFIG_WATCHDOG=y · 13 unmodified lines
8176 CONFIG_WATCHDOG_NOWAYOUT=y
8277 CONFIG_FB=y
8378 CONFIG_FB_ATMEL=y
84−# CONFIG_VGA_CONSOLE is not set
8579 CONFIG_LOGO=y
8680 # CONFIG_LOGO_LINUX_MONO is not set
8781 # CONFIG_LOGO_LINUX_CLUT224 is not set
@@ -99,7 +93,6 @@ CONFIG_MMC_AT91=m · 11 unmodified lines
9993 CONFIG_RTC_CLASS=y
10094 CONFIG_RTC_DRV_AT91SAM9=y
10195 CONFIG_EXT2_FS=y
102−CONFIG_INOTIFY=y
10396 CONFIG_VFAT_FS=y
10497 CONFIG_TMPFS=y
10598 CONFIG_JFFS2_FS=y
arch/arm/configs/at91rm9200_defconfig+14−33
@@ -5,7 +5,6 @@ CONFIG_SYSVIPC=y · 4 unmodified lines
55 CONFIG_IKCONFIG=y
66 CONFIG_IKCONFIG_PROC=y
77 CONFIG_LOG_BUF_SHIFT=14
8−CONFIG_SYSFS_DEPRECATED_V2=y
98 CONFIG_BLK_DEV_INITRD=y
109 CONFIG_MODULES=y
1110 CONFIG_MODULE_FORCE_LOAD=y
@@ -56,7 +55,6 @@ CONFIG_IP_PNP=y · 44 unmodified lines
5655 CONFIG_IP_PNP_DHCP=y
5756 CONFIG_IP_PNP_BOOTP=y
5857 CONFIG_NET_IPIP=m
59−CONFIG_NET_IPGRE=m
6058 CONFIG_INET_AH=m
6159 CONFIG_INET_ESP=m
6260 CONFIG_INET_IPCOMP=m
@@ -75,18 +73,8 @@ CONFIG_IPV6_TUNNEL=m · 12 unmodified lines
7573 CONFIG_BRIDGE=m
7674 CONFIG_VLAN_8021Q=m
7775 CONFIG_BT=m
78−CONFIG_BT_L2CAP=m
79−CONFIG_BT_SCO=m
80−CONFIG_BT_RFCOMM=m
81−CONFIG_BT_RFCOMM_TTY=y
82−CONFIG_BT_BNEP=m
83−CONFIG_BT_BNEP_MC_FILTER=y
84−CONFIG_BT_BNEP_PROTO_FILTER=y
85−CONFIG_BT_HIDP=m
8676 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
8777 CONFIG_MTD=y
88−CONFIG_MTD_CONCAT=y
89−CONFIG_MTD_PARTITIONS=y
9078 CONFIG_MTD_CMDLINE_PARTS=y
9179 CONFIG_MTD_AFS_PARTS=y
9280 CONFIG_MTD_CHAR=y
@@ -108,8 +96,6 @@ CONFIG_BLK_DEV_LOOP=y · 15 unmodified lines
10896 CONFIG_BLK_DEV_NBD=y
10997 CONFIG_BLK_DEV_RAM=y
11098 CONFIG_BLK_DEV_RAM_SIZE=8192
111−CONFIG_ATMEL_TCLIB=y
112−CONFIG_EEPROM_LEGACY=m
11399 CONFIG_SCSI=y
114100 CONFIG_BLK_DEV_SD=y
115101 CONFIG_BLK_DEV_SR=m
@@ -119,14 +105,23 @@ CONFIG_SCSI_MULTI_LUN=y · 3 unmodified lines
119105 # CONFIG_SCSI_LOWLEVEL is not set
120106 CONFIG_NETDEVICES=y
121107 CONFIG_TUN=m
108+CONFIG_ARM_AT91_ETHER=y
122109 CONFIG_PHYLIB=y
123110 CONFIG_DAVICOM_PHY=y
124111 CONFIG_SMSC_PHY=y
125112 CONFIG_MICREL_PHY=y
126−CONFIG_NET_ETHERNET=y
127−CONFIG_ARM_AT91_ETHER=y
128−# CONFIG_NETDEV_1000 is not set
129−# CONFIG_NETDEV_10000 is not set
113+CONFIG_PPP=y
114+CONFIG_PPP_BSDCOMP=y
115+CONFIG_PPP_DEFLATE=y
116+CONFIG_PPP_FILTER=y
117+CONFIG_PPP_MPPE=m
118+CONFIG_PPP_MULTILINK=y
119+CONFIG_PPPOE=m
120+CONFIG_PPP_ASYNC=y
121+CONFIG_SLIP=m
122+CONFIG_SLIP_COMPRESSED=y
123+CONFIG_SLIP_SMART=y
124+CONFIG_SLIP_MODE_SLIP6=y
130125 CONFIG_USB_CATC=m
131126 CONFIG_USB_KAWETH=m
132127 CONFIG_USB_PEGASUS=m
@@ -139,18 +134,6 @@ CONFIG_USB_NET_RNDIS_HOST=m · 6 unmodified lines
139134 CONFIG_USB_ALI_M5632=y
140135 CONFIG_USB_AN2720=y
141136 CONFIG_USB_EPSON2888=y
142−CONFIG_PPP=y
143−CONFIG_PPP_MULTILINK=y
144−CONFIG_PPP_FILTER=y
145−CONFIG_PPP_ASYNC=y
146−CONFIG_PPP_DEFLATE=y
147−CONFIG_PPP_BSDCOMP=y
148−CONFIG_PPP_MPPE=m
149−CONFIG_PPPOE=m
150−CONFIG_SLIP=m
151−CONFIG_SLIP_COMPRESSED=y
152−CONFIG_SLIP_SMART=y
153−CONFIG_SLIP_MODE_SLIP6=y
154137 # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
155138 CONFIG_INPUT_MOUSEDEV_SCREEN_X=640
156139 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480
@@ -158,9 +141,9 @@ CONFIG_INPUT_EVDEV=y · 1 unmodified line
158141 CONFIG_KEYBOARD_GPIO=y
159142 # CONFIG_INPUT_MOUSE is not set
160143 CONFIG_INPUT_TOUCHSCREEN=y
144+CONFIG_LEGACY_PTY_COUNT=32
161145 CONFIG_SERIAL_ATMEL=y
162146 CONFIG_SERIAL_ATMEL_CONSOLE=y
163−CONFIG_LEGACY_PTY_COUNT=32
164147 CONFIG_HW_RANDOM=y
165148 CONFIG_I2C=y
166149 CONFIG_I2C_CHARDEV=y
@@ -290,7 +273,6 @@ CONFIG_NFS_V3_ACL=y · 123 unmodified lines
290273 CONFIG_NFS_V4=y
291274 CONFIG_ROOT_NFS=y
292275 CONFIG_NFSD=y
293−CONFIG_SMB_FS=m
294276 CONFIG_CIFS=m
295277 CONFIG_PARTITION_ADVANCED=y
296278 CONFIG_MAC_PARTITION=y
@@ -335,7 +317,6 @@ CONFIG_NLS_UTF8=y · 38 unmodified lines
335317 CONFIG_MAGIC_SYSRQ=y
336318 CONFIG_DEBUG_FS=y
337319 CONFIG_DEBUG_KERNEL=y
338−# CONFIG_RCU_CPU_STALL_DETECTOR is not set
339320 # CONFIG_FTRACE is not set
340321 CONFIG_CRYPTO_PCBC=y
341322 CONFIG_CRYPTO_SHA1=y
arch/arm/configs/at91sam9260_defconfigrenamed from arch/arm/configs/at91sam9260ek_defconfig+12−4
@@ -12,11 +12,23 @@ CONFIG_MODULE_UNLOAD=y · 11 unmodified lines
1212 # CONFIG_IOSCHED_CFQ is not set
1313 CONFIG_ARCH_AT91=y
1414 CONFIG_ARCH_AT91SAM9260=y
15+CONFIG_ARCH_AT91SAM9260_SAM9XE=y
1516 CONFIG_MACH_AT91SAM9260EK=y
17+CONFIG_MACH_CAM60=y
18+CONFIG_MACH_SAM9_L9260=y
19+CONFIG_MACH_AFEB9260=y
20+CONFIG_MACH_USB_A9260=y
21+CONFIG_MACH_QIL_A9260=y
22+CONFIG_MACH_CPU9260=y
23+CONFIG_MACH_FLEXIBITY=y
24+CONFIG_MACH_SNAPPER_9260=y
25+CONFIG_MACH_AT91SAM_DT=y
1626 CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
1727 # CONFIG_ARM_THUMB is not set
1828 CONFIG_ZBOOT_ROM_TEXT=0x0
1929 CONFIG_ZBOOT_ROM_BSS=0x0
30+CONFIG_ARM_APPENDED_DTB=y
31+CONFIG_ARM_ATAG_DTB_COMPAT=y
2032 CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw"
2133 CONFIG_FPE_NWFPE=y
2234 CONFIG_NET=y
@@ -33,12 +45,10 @@ CONFIG_IP_PNP_BOOTP=y · 10 unmodified lines
3345 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
3446 CONFIG_BLK_DEV_RAM=y
3547 CONFIG_BLK_DEV_RAM_SIZE=8192
36−CONFIG_ATMEL_SSC=y
3748 CONFIG_SCSI=y
3849 CONFIG_BLK_DEV_SD=y
3950 CONFIG_SCSI_MULTI_LUN=y
4051 CONFIG_NETDEVICES=y
41−CONFIG_NET_ETHERNET=y
4252 CONFIG_MII=y
4353 CONFIG_MACB=y
4454 # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
@@ -55,7 +65,6 @@ CONFIG_I2C_GPIO=y · 10 unmodified lines
5565 CONFIG_WATCHDOG=y
5666 CONFIG_WATCHDOG_NOWAYOUT=y
5767 CONFIG_AT91SAM9X_WATCHDOG=y
58−# CONFIG_VGA_CONSOLE is not set
5968 # CONFIG_USB_HID is not set
6069 CONFIG_USB=y
6170 CONFIG_USB_DEVICEFS=y
@@ -71,7 +80,6 @@ CONFIG_USB_G_SERIAL=m · 9 unmodified lines
7180 CONFIG_RTC_CLASS=y
7281 CONFIG_RTC_DRV_AT91SAM9=y
7382 CONFIG_EXT2_FS=y
74−CONFIG_INOTIFY=y
7583 CONFIG_VFAT_FS=y
7684 CONFIG_TMPFS=y
7785 CONFIG_CRAMFS=y
arch/arm/configs/at91sam9g20_defconfigrenamed from arch/arm/configs/at91sam9g20ek_defconfig+12−11
@@ -14,6 +14,15 @@ CONFIG_ARCH_AT91=y · 13 unmodified lines
1414 CONFIG_ARCH_AT91SAM9G20=y
1515 CONFIG_MACH_AT91SAM9G20EK=y
1616 CONFIG_MACH_AT91SAM9G20EK_2MMC=y
17+CONFIG_MACH_CPU9G20=y
18+CONFIG_MACH_ACMENETUSFOXG20=y
19+CONFIG_MACH_PORTUXG20=y
20+CONFIG_MACH_STAMP9G20=y
21+CONFIG_MACH_PCONTROL_G20=y
22+CONFIG_MACH_GSIA18S=y
23+CONFIG_MACH_USB_A9G20=y
24+CONFIG_MACH_SNAPPER_9260=y
25+CONFIG_MACH_AT91SAM_DT=y
1726 CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
1827 # CONFIG_ARM_THUMB is not set
1928 CONFIG_AEABI=y
@@ -21,9 +30,10 @@ CONFIG_LEDS=y · 1 unmodified line
2130 CONFIG_LEDS_CPU=y
2231 CONFIG_ZBOOT_ROM_TEXT=0x0
2332 CONFIG_ZBOOT_ROM_BSS=0x0
33+CONFIG_ARM_APPENDED_DTB=y
34+CONFIG_ARM_ATAG_DTB_COMPAT=y
2435 CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw"
2536 CONFIG_FPE_NWFPE=y
26−CONFIG_PM=y
2737 CONFIG_NET=y
2838 CONFIG_PACKET=y
2939 CONFIG_UNIX=y
@@ -37,8 +47,6 @@ CONFIG_IP_PNP_BOOTP=y · 7 unmodified lines
3747 # CONFIG_IPV6 is not set
3848 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
3949 CONFIG_MTD=y
40−CONFIG_MTD_CONCAT=y
41−CONFIG_MTD_PARTITIONS=y
4250 CONFIG_MTD_CMDLINE_PARTS=y
4351 CONFIG_MTD_CHAR=y
4452 CONFIG_MTD_BLOCK=y
@@ -48,17 +56,13 @@ CONFIG_MTD_NAND_ATMEL=y · 3 unmodified lines
4856 CONFIG_BLK_DEV_LOOP=y
4957 CONFIG_BLK_DEV_RAM=y
5058 CONFIG_BLK_DEV_RAM_SIZE=8192
51−CONFIG_ATMEL_SSC=y
5259 CONFIG_SCSI=y
5360 CONFIG_BLK_DEV_SD=y
5461 CONFIG_SCSI_MULTI_LUN=y
5562 # CONFIG_SCSI_LOWLEVEL is not set
5663 CONFIG_NETDEVICES=y
57−CONFIG_NET_ETHERNET=y
5864 CONFIG_MII=y
5965 CONFIG_MACB=y
60−# CONFIG_NETDEV_1000 is not set
61−# CONFIG_NETDEV_10000 is not set
6266 # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
6367 CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
6468 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
@@ -66,15 +70,14 @@ CONFIG_INPUT_EVDEV=y · 1 unmodified line
6670 # CONFIG_KEYBOARD_ATKBD is not set
6771 CONFIG_KEYBOARD_GPIO=y
6872 # CONFIG_INPUT_MOUSE is not set
73+CONFIG_LEGACY_PTY_COUNT=16
6974 CONFIG_SERIAL_ATMEL=y
7075 CONFIG_SERIAL_ATMEL_CONSOLE=y
71−CONFIG_LEGACY_PTY_COUNT=16
7276 CONFIG_HW_RANDOM=y
7377 CONFIG_SPI=y
7478 CONFIG_SPI_ATMEL=y
7579 CONFIG_SPI_SPIDEV=y
7680 # CONFIG_HWMON is not set
77−# CONFIG_VGA_CONSOLE is not set
7881 CONFIG_SOUND=y
7982 CONFIG_SND=y
8083 CONFIG_SND_SEQUENCER=y
@@ -82,7 +85,6 @@ CONFIG_SND_MIXER_OSS=y · 1 unmodified line
8285 CONFIG_SND_PCM_OSS=y
8386 CONFIG_SND_SEQUENCER_OSS=y
8487 # CONFIG_SND_VERBOSE_PROCFS is not set
85−CONFIG_SND_AT73C213=y
8688 CONFIG_USB=y
8789 CONFIG_USB_DEVICEFS=y
8890 # CONFIG_USB_DEVICE_CLASS is not set
@@ -105,7 +107,6 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y · 16 unmodified lines
105107 CONFIG_RTC_CLASS=y
106108 CONFIG_RTC_DRV_AT91SAM9=y
107109 CONFIG_EXT2_FS=y
108−CONFIG_INOTIFY=y
109110 CONFIG_MSDOS_FS=y
110111 CONFIG_VFAT_FS=y
111112 CONFIG_TMPFS=y
arch/arm/configs/at91sam9g45_defconfig+2−5
@@ -18,6 +18,7 @@ CONFIG_MODULE_UNLOAD=y · 17 unmodified lines
1818 CONFIG_ARCH_AT91=y
1919 CONFIG_ARCH_AT91SAM9G45=y
2020 CONFIG_MACH_AT91SAM9M10G45EK=y
21+CONFIG_MACH_AT91SAM_DT=y
2122 CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
2223 CONFIG_AT91_SLOW_CLOCK=y
2324 CONFIG_AEABI=y
@@ -73,11 +74,8 @@ CONFIG_SCSI_MULTI_LUN=y · 49 unmodified lines
7374 # CONFIG_SCSI_LOWLEVEL is not set
7475 CONFIG_NETDEVICES=y
7576 CONFIG_MII=y
76−CONFIG_DAVICOM_PHY=y
77−CONFIG_NET_ETHERNET=y
7877 CONFIG_MACB=y
79−# CONFIG_NETDEV_1000 is not set
80−# CONFIG_NETDEV_10000 is not set
78+CONFIG_DAVICOM_PHY=y
8179 CONFIG_LIBERTAS_THINFIRM=m
8280 CONFIG_LIBERTAS_THINFIRM_USB=m
8381 CONFIG_AT76C50X_USB=m
@@ -131,7 +129,6 @@ CONFIG_I2C_GPIO=y · 47 unmodified lines
131129 CONFIG_SPI=y
132130 CONFIG_SPI_ATMEL=y
133131 # CONFIG_HWMON is not set
134−# CONFIG_MFD_SUPPORT is not set
135132 CONFIG_FB=y
136133 CONFIG_FB_ATMEL=y
137134 CONFIG_FB_UDL=m
arch/arm/configs/at91sam9rl_defconfigrenamed from arch/arm/configs/at91sam9rlek_defconfig+0−5
@@ -23,8 +23,6 @@ CONFIG_NET=y · 22 unmodified lines
2323 CONFIG_UNIX=y
2424 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
2525 CONFIG_MTD=y
26−CONFIG_MTD_CONCAT=y
27−CONFIG_MTD_PARTITIONS=y
2826 CONFIG_MTD_CMDLINE_PARTS=y
2927 CONFIG_MTD_CHAR=y
3028 CONFIG_MTD_BLOCK=y
@@ -35,7 +33,6 @@ CONFIG_BLK_DEV_LOOP=y · 4 unmodified lines
3533 CONFIG_BLK_DEV_RAM=y
3634 CONFIG_BLK_DEV_RAM_COUNT=4
3735 CONFIG_BLK_DEV_RAM_SIZE=24576
38−CONFIG_ATMEL_SSC=y
3936 CONFIG_SCSI=y
4037 CONFIG_BLK_DEV_SD=y
4138 CONFIG_SCSI_MULTI_LUN=y
@@ -62,13 +59,11 @@ CONFIG_WATCHDOG_NOWAYOUT=y · 20 unmodified lines
6259 CONFIG_AT91SAM9X_WATCHDOG=y
6360 CONFIG_FB=y
6461 CONFIG_FB_ATMEL=y
65−# CONFIG_VGA_CONSOLE is not set
6662 CONFIG_MMC=y
6763 CONFIG_MMC_AT91=m
6864 CONFIG_RTC_CLASS=y
6965 CONFIG_RTC_DRV_AT91SAM9=y
7066 CONFIG_EXT2_FS=y
71−CONFIG_INOTIFY=y
7267 CONFIG_MSDOS_FS=y
7368 CONFIG_VFAT_FS=y
7469 CONFIG_TMPFS=y
arch/arm/configs/ezx_defconfig+1−1
@@ -287,7 +287,7 @@ CONFIG_USB=y · 286 unmodified lines
287287 # CONFIG_USB_DEVICE_CLASS is not set
288288 CONFIG_USB_OHCI_HCD=y
289289 CONFIG_USB_GADGET=y
290−CONFIG_USB_GADGET_PXA27X=y
290+CONFIG_USB_PXA27X=y
291291 CONFIG_USB_ETH=m
292292 # CONFIG_USB_ETH_RNDIS is not set
293293 CONFIG_MMC=y
arch/arm/configs/imote2_defconfig+1−1
@@ -263,7 +263,7 @@ CONFIG_USB=y · 262 unmodified lines
263263 # CONFIG_USB_DEVICE_CLASS is not set
264264 CONFIG_USB_OHCI_HCD=y
265265 CONFIG_USB_GADGET=y
266−CONFIG_USB_GADGET_PXA27X=y
266+CONFIG_USB_PXA27X=y
267267 CONFIG_USB_ETH=m
268268 # CONFIG_USB_ETH_RNDIS is not set
269269 CONFIG_MMC=y
arch/arm/configs/magician_defconfig+1−1
@@ -132,7 +132,7 @@ CONFIG_USB_MON=m · 131 unmodified lines
132132 CONFIG_USB_OHCI_HCD=y
133133 CONFIG_USB_GADGET=y
134134 CONFIG_USB_GADGET_VBUS_DRAW=500
135−CONFIG_USB_GADGET_PXA27X=y
135+CONFIG_USB_PXA27X=y
136136 CONFIG_USB_ETH=m
137137 # CONFIG_USB_ETH_RNDIS is not set
138138 CONFIG_USB_GADGETFS=m
arch/arm/configs/omap1_defconfig+0−1
@@ -48,7 +48,6 @@ CONFIG_MACH_SX1=y · 47 unmodified lines
4848 CONFIG_MACH_NOKIA770=y
4949 CONFIG_MACH_AMS_DELTA=y
5050 CONFIG_MACH_OMAP_GENERIC=y
51−CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
5251 CONFIG_OMAP_ARM_216MHZ=y
5352 CONFIG_OMAP_ARM_195MHZ=y
5453 CONFIG_OMAP_ARM_192MHZ=y
arch/arm/configs/u300_defconfig+6−7
@@ -14,8 +14,6 @@ CONFIG_MODULE_UNLOAD=y · 13 unmodified lines
1414 CONFIG_ARCH_U300=y
1515 CONFIG_MACH_U300=y
1616 CONFIG_MACH_U300_BS335=y
17−CONFIG_MACH_U300_DUAL_RAM=y
18−CONFIG_U300_DEBUG=y
1917 CONFIG_MACH_U300_SPIDUMMY=y
2018 CONFIG_NO_HZ=y
2119 CONFIG_HIGH_RES_TIMERS=y
@@ -26,19 +24,21 @@ CONFIG_ZBOOT_ROM_BSS=0x0 · 4 unmodified lines
2624 CONFIG_CMDLINE="root=/dev/ram0 rw rootfstype=rootfs console=ttyAMA0,115200n8 lpj=515072"
2725 CONFIG_CPU_IDLE=y
2826 CONFIG_FPE_NWFPE=y
29−CONFIG_PM=y
3027 # CONFIG_SUSPEND is not set
3128 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
3229 # CONFIG_PREVENT_FIRMWARE_BUILD is not set
33−# CONFIG_MISC_DEVICES is not set
30+CONFIG_MTD=y
31+CONFIG_MTD_CMDLINE_PARTS=y
32+CONFIG_MTD_NAND=y
33+CONFIG_MTD_NAND_FSMC=y
3434 # CONFIG_INPUT_MOUSEDEV is not set
3535 CONFIG_INPUT_EVDEV=y
3636 # CONFIG_KEYBOARD_ATKBD is not set
3737 # CONFIG_INPUT_MOUSE is not set
3838 # CONFIG_SERIO is not set
39+CONFIG_LEGACY_PTY_COUNT=16
3940 CONFIG_SERIAL_AMBA_PL011=y
4041 CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
41−CONFIG_LEGACY_PTY_COUNT=16
4242 # CONFIG_HW_RANDOM is not set
4343 CONFIG_I2C=y
4444 # CONFIG_HWMON is not set
@@ -51,6 +51,7 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y · 6 unmodified lines
5151 # CONFIG_HID_SUPPORT is not set
5252 # CONFIG_USB_SUPPORT is not set
5353 CONFIG_MMC=y
54+CONFIG_MMC_CLKGATE=y
5455 CONFIG_MMC_ARMMMCI=y
5556 CONFIG_RTC_CLASS=y
5657 # CONFIG_RTC_HCTOSYS is not set
@@ -65,10 +66,8 @@ CONFIG_NLS_CODEPAGE_437=y · 8 unmodified lines
6566 CONFIG_NLS_ISO8859_1=y
6667 CONFIG_PRINTK_TIME=y
6768 CONFIG_DEBUG_FS=y
68−CONFIG_DEBUG_KERNEL=y
6969 # CONFIG_SCHED_DEBUG is not set
7070 CONFIG_TIMER_STATS=y
7171 # CONFIG_DEBUG_PREEMPT is not set
7272 CONFIG_DEBUG_INFO=y
73−# CONFIG_RCU_CPU_STALL_DETECTOR is not set
7473 # CONFIG_CRC32 is not set
arch/arm/configs/u8500_defconfig+5−9
@@ -10,7 +10,7 @@ CONFIG_MODULE_UNLOAD=y · 9 unmodified lines
1010 CONFIG_ARCH_U8500=y
1111 CONFIG_UX500_SOC_DB5500=y
1212 CONFIG_UX500_SOC_DB8500=y
13−CONFIG_MACH_U8500=y
13+CONFIG_MACH_HREFV60=y
1414 CONFIG_MACH_SNOWBALL=y
1515 CONFIG_MACH_U5500=y
1616 CONFIG_NO_HZ=y
@@ -24,6 +24,7 @@ CONFIG_CPU_FREQ=y · 7 unmodified lines
2424 CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
2525 CONFIG_VFP=y
2626 CONFIG_NEON=y
27+CONFIG_PM_RUNTIME=y
2728 CONFIG_NET=y
2829 CONFIG_PACKET=y
2930 CONFIG_UNIX=y
@@ -41,11 +42,8 @@ CONFIG_MISC_DEVICES=y · 11 unmodified lines
4142 CONFIG_AB8500_PWM=y
4243 CONFIG_SENSORS_BH1780=y
4344 CONFIG_NETDEVICES=y
44−CONFIG_SMSC_PHY=y
45−CONFIG_NET_ETHERNET=y
4645 CONFIG_SMSC911X=y
47−# CONFIG_NETDEV_1000 is not set
48−# CONFIG_NETDEV_10000 is not set
46+CONFIG_SMSC_PHY=y
4947 # CONFIG_WLAN is not set
5048 # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
5149 CONFIG_INPUT_EVDEV=y
@@ -72,15 +70,12 @@ CONFIG_SPI=y · 20 unmodified lines
7270 CONFIG_SPI_PL022=y
7371 CONFIG_GPIO_STMPE=y
7472 CONFIG_GPIO_TC3589X=y
75−# CONFIG_HWMON is not set
7673 CONFIG_MFD_STMPE=y
7774 CONFIG_MFD_TC3589X=y
75+CONFIG_AB5500_CORE=y
7876 CONFIG_AB8500_CORE=y
7977 CONFIG_REGULATOR_AB8500=y
8078 # CONFIG_HID_SUPPORT is not set
81−CONFIG_USB_MUSB_HDRC=y
82−CONFIG_USB_GADGET_MUSB_HDRC=y
83−CONFIG_MUSB_PIO_ONLY=y
8479 CONFIG_USB_GADGET=y
8580 CONFIG_AB8500_USB=y
8681 CONFIG_MMC=y
@@ -97,6 +92,7 @@ CONFIG_DMADEVICES=y · 10 unmodified lines
9792 CONFIG_STE_DMA40=y
9893 CONFIG_STAGING=y
9994 CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=y
95+CONFIG_HSEM_U8500=y
10096 CONFIG_EXT2_FS=y
10197 CONFIG_EXT2_FS_XATTR=y
10298 CONFIG_EXT2_FS_POSIX_ACL=y
arch/arm/configs/zeus_defconfig+1−1
@@ -140,7 +140,7 @@ CONFIG_USB_SERIAL=m · 139 unmodified lines
140140 CONFIG_USB_SERIAL_GENERIC=y
141141 CONFIG_USB_SERIAL_MCT_U232=m
142142 CONFIG_USB_GADGET=m
143−CONFIG_USB_GADGET_PXA27X=y
143+CONFIG_USB_PXA27X=y
144144 CONFIG_USB_ETH=m
145145 CONFIG_USB_GADGETFS=m
146146 CONFIG_USB_FILE_STORAGE=m
arch/arm/mach-exynos/cpuidle.c+2−0
@@ -12,6 +12,8 @@ · 11 unmodified lines
1212 #include <linux/init.h>
1313 #include <linux/cpuidle.h>
1414 #include <linux/io.h>
15+#include <linux/export.h>
16+#include <linux/time.h>
1517
1618 #include <asm/proc-fns.h>
1719
arch/arm/mach-highbank/highbank.c+4−0
@@ -22,6 +22,7 @@ · 21 unmodified lines
2222 #include <linux/of_irq.h>
2323 #include <linux/of_platform.h>
2424 #include <linux/of_address.h>
25+#include <linux/smp.h>
2526
2627 #include <asm/cacheflush.h>
2728 #include <asm/unified.h>
@@ -72,6 +73,9 @@ static void __init highbank_map_io(void) · 44 unmodified lines
7273
7374 void highbank_set_cpu_jump(int cpu, void *jump_addr)
7475 {
76+#ifdef CONFIG_SMP
77+ cpu = cpu_logical_map(cpu);
78+#endif
7579 writel(BSYM(virt_to_phys(jump_addr)), HB_JUMP_TABLE_VIRT(cpu));
7680 __cpuc_flush_dcache_area(HB_JUMP_TABLE_VIRT(cpu), 16);
7781 outer_clean_range(HB_JUMP_TABLE_PHYS(cpu),
arch/arm/mach-imx/Kconfig+0−13
@@ -10,11 +10,6 @@ config HAVE_IMX_MMDC · 9 unmodified lines
1010 config HAVE_IMX_SRC
1111 bool
1212
13−#
14−# ARCH_MX31 and ARCH_MX35 are left for compatibility
15−# Some usages assume that having one of them implies not having (e.g.) ARCH_MX2.
16−# To easily distinguish good and reviewed from unreviewed usages new (and IMHO
17−# more sensible) names are used: SOC_IMX31 and SOC_IMX35
1813 config ARCH_MX1
1914 bool
2015
@@ -27,12 +22,6 @@ config ARCH_MX25 · 6 unmodified lines
2722 config MACH_MX27
2823 bool
2924
30−config ARCH_MX31
31− bool
32−
33−config ARCH_MX35
34− bool
35−
3625 config SOC_IMX1
3726 bool
3827 select ARCH_MX1
@@ -72,7 +61,6 @@ config SOC_IMX31 · 33 unmodified lines
7261 select CPU_V6
7362 select IMX_HAVE_PLATFORM_MXC_RNGA
7463 select ARCH_MXC_AUDMUX_V2
75− select ARCH_MX31
7664 select MXC_AVIC
7765 select SMP_ON_UP if SMP
7866
@@ -82,7 +70,6 @@ config SOC_IMX35 · 3 unmodified lines
8270 select ARCH_MXC_IOMUX_V3
8371 select ARCH_MXC_AUDMUX_V2
8472 select HAVE_EPIT
85− select ARCH_MX35
8673 select MXC_AVIC
8774 select SMP_ON_UP if SMP
8875
arch/arm/mach-imx/clock-imx6q.c+5−2
@@ -1953,14 +1953,17 @@ static struct map_desc imx6q_clock_desc[] = { · 1952 unmodified lines
19531953 imx_map_entry(MX6Q, ANATOP, MT_DEVICE),
19541954 };
19551955
1956+void __init imx6q_clock_map_io(void)
1957+{
1958+ iotable_init(imx6q_clock_desc, ARRAY_SIZE(imx6q_clock_desc));
1959+}
1960+
19561961 int __init mx6q_clocks_init(void)
19571962 {
19581963 struct device_node *np;
19591964 void __iomem *base;
19601965 int i, irq;
19611966
1962− iotable_init(imx6q_clock_desc, ARRAY_SIZE(imx6q_clock_desc));
1963−
19641967 /* retrieve the freqency of fixed clocks from device tree */
19651968 for_each_compatible_node(np, NULL, "fixed-clock") {
19661969 u32 rate;
arch/arm/mach-imx/mach-imx6q.c+1−0
@@ -34,6 +34,7 @@ static void __init imx6q_map_io(void) · 33 unmodified lines
3434 {
3535 imx_lluart_map_io();
3636 imx_scu_map_io();
37+ imx6q_clock_map_io();
3738 }
3839
3940 static void __init imx6q_gpio_add_irq_domain(struct device_node *np,
arch/arm/mach-imx/mm-imx3.c+58−51
@@ -33,29 +33,32 @@ · 32 unmodified lines
3333 static void imx3_idle(void)
3434 {
3535 unsigned long reg = 0;
36− __asm__ __volatile__(
37− /* disable I and D cache */
38− "mrc p15, 0, %0, c1, c0, 0\n"
39− "bic %0, %0, #0x00001000\n"
40− "bic %0, %0, #0x00000004\n"
41− "mcr p15, 0, %0, c1, c0, 0\n"
42− /* invalidate I cache */
43− "mov %0, #0\n"
44− "mcr p15, 0, %0, c7, c5, 0\n"
45− /* clear and invalidate D cache */
46− "mov %0, #0\n"
47− "mcr p15, 0, %0, c7, c14, 0\n"
48− /* WFI */
49− "mov %0, #0\n"
50− "mcr p15, 0, %0, c7, c0, 4\n"
51− "nop\n" "nop\n" "nop\n" "nop\n"
52− "nop\n" "nop\n" "nop\n"
53− /* enable I and D cache */
54− "mrc p15, 0, %0, c1, c0, 0\n"
55− "orr %0, %0, #0x00001000\n"
56− "orr %0, %0, #0x00000004\n"
57− "mcr p15, 0, %0, c1, c0, 0\n"
58− : "=r" (reg));
36+
37+ if (!need_resched())
38+ __asm__ __volatile__(
39+ /* disable I and D cache */
40+ "mrc p15, 0, %0, c1, c0, 0\n"
41+ "bic %0, %0, #0x00001000\n"
42+ "bic %0, %0, #0x00000004\n"
43+ "mcr p15, 0, %0, c1, c0, 0\n"
44+ /* invalidate I cache */
45+ "mov %0, #0\n"
46+ "mcr p15, 0, %0, c7, c5, 0\n"
47+ /* clear and invalidate D cache */
48+ "mov %0, #0\n"
49+ "mcr p15, 0, %0, c7, c14, 0\n"
50+ /* WFI */
51+ "mov %0, #0\n"
52+ "mcr p15, 0, %0, c7, c0, 4\n"
53+ "nop\n" "nop\n" "nop\n" "nop\n"
54+ "nop\n" "nop\n" "nop\n"
55+ /* enable I and D cache */
56+ "mrc p15, 0, %0, c1, c0, 0\n"
57+ "orr %0, %0, #0x00001000\n"
58+ "orr %0, %0, #0x00000004\n"
59+ "mcr p15, 0, %0, c1, c0, 0\n"
60+ : "=r" (reg));
61+ local_irq_enable();
5962 }
6063
6164 static void __iomem *imx3_ioremap(unsigned long phys_addr, size_t size,
@@ -108,6 +111,7 @@ void imx3_init_l2x0(void) · 46 unmodified lines
108111 l2x0_init(l2x0_base, 0x00030024, 0x00000000);
109112 }
110113
114+#ifdef CONFIG_SOC_IMX31
111115 static struct map_desc mx31_io_desc[] __initdata = {
112116 imx_map_entry(MX31, X_MEMC, MT_DEVICE),
113117 imx_map_entry(MX31, AVIC, MT_DEVICE_NONSHARED),
@@ -126,33 +130,11 @@ void __init mx31_map_io(void) · 12 unmodified lines
126130 iotable_init(mx31_io_desc, ARRAY_SIZE(mx31_io_desc));
127131 }
128132
129−static struct map_desc mx35_io_desc[] __initdata = {
130− imx_map_entry(MX35, X_MEMC, MT_DEVICE),
131− imx_map_entry(MX35, AVIC, MT_DEVICE_NONSHARED),
132− imx_map_entry(MX35, AIPS1, MT_DEVICE_NONSHARED),
133− imx_map_entry(MX35, AIPS2, MT_DEVICE_NONSHARED),
134− imx_map_entry(MX35, SPBA0, MT_DEVICE_NONSHARED),
135−};
136−
137−void __init mx35_map_io(void)
138−{
139− iotable_init(mx35_io_desc, ARRAY_SIZE(mx35_io_desc));
140−}
141−
142133 void __init imx31_init_early(void)
143134 {
144135 mxc_set_cpu_type(MXC_CPU_MX31);
145136 mxc_arch_reset_init(MX31_IO_ADDRESS(MX31_WDOG_BASE_ADDR));
146− imx_idle = imx3_idle;
147− imx_ioremap = imx3_ioremap;
148−}
149−
150−void __init imx35_init_early(void)
151−{
152− mxc_set_cpu_type(MXC_CPU_MX35);
153− mxc_iomux_v3_init(MX35_IO_ADDRESS(MX35_IOMUXC_BASE_ADDR));
154− mxc_arch_reset_init(MX35_IO_ADDRESS(MX35_WDOG_BASE_ADDR));
155− imx_idle = imx3_idle;
137+ pm_idle = imx3_idle;
156138 imx_ioremap = imx3_ioremap;
157139 }
158140
@@ -161,11 +143,6 @@ void __init mx31_init_irq(void) · 2 unmodified lines
161143 mxc_init_irq(MX31_IO_ADDRESS(MX31_AVIC_BASE_ADDR));
162144 }
163145
164−void __init mx35_init_irq(void)
165−{
166− mxc_init_irq(MX35_IO_ADDRESS(MX35_AVIC_BASE_ADDR));
167−}
168−
169146 static struct sdma_script_start_addrs imx31_to1_sdma_script __initdata = {
170147 .per_2_per_addr = 1677,
171148 };
@@ -199,6 +176,35 @@ void __init imx31_soc_init(void) · 27 unmodified lines
199176
200177 imx_add_imx_sdma("imx31-sdma", MX31_SDMA_BASE_ADDR, MX31_INT_SDMA, &imx31_sdma_pdata);
201178 }
179+#endif /* ifdef CONFIG_SOC_IMX31 */
180+
181+#ifdef CONFIG_SOC_IMX35
182+static struct map_desc mx35_io_desc[] __initdata = {
183+ imx_map_entry(MX35, X_MEMC, MT_DEVICE),
184+ imx_map_entry(MX35, AVIC, MT_DEVICE_NONSHARED),
185+ imx_map_entry(MX35, AIPS1, MT_DEVICE_NONSHARED),
186+ imx_map_entry(MX35, AIPS2, MT_DEVICE_NONSHARED),
187+ imx_map_entry(MX35, SPBA0, MT_DEVICE_NONSHARED),
188+};
189+
190+void __init mx35_map_io(void)
191+{
192+ iotable_init(mx35_io_desc, ARRAY_SIZE(mx35_io_desc));
193+}
194+
195+void __init imx35_init_early(void)
196+{
197+ mxc_set_cpu_type(MXC_CPU_MX35);
198+ mxc_iomux_v3_init(MX35_IO_ADDRESS(MX35_IOMUXC_BASE_ADDR));
199+ mxc_arch_reset_init(MX35_IO_ADDRESS(MX35_WDOG_BASE_ADDR));
200+ pm_idle = imx3_idle;
201+ imx_ioremap = imx3_ioremap;
202+}
203+
204+void __init mx35_init_irq(void)
205+{
206+ mxc_init_irq(MX35_IO_ADDRESS(MX35_AVIC_BASE_ADDR));
207+}
202208
203209 static struct sdma_script_start_addrs imx35_to1_sdma_script __initdata = {
204210 .ap_2_ap_addr = 642,
@@ -254,3 +260,4 @@ void __init imx35_soc_init(void) · 49 unmodified lines
254260
255261 imx_add_imx_sdma("imx35-sdma", MX35_SDMA_BASE_ADDR, MX35_INT_SDMA, &imx35_sdma_pdata);
256262 }
263+#endif /* ifdef CONFIG_SOC_IMX35 */
arch/arm/mach-imx/src.c+7−0
@@ -14,6 +14,7 @@ · 13 unmodified lines
1414 #include <linux/io.h>
1515 #include <linux/of.h>
1616 #include <linux/of_address.h>
17+#include <linux/smp.h>
1718 #include <asm/unified.h>
1819
1920 #define SRC_SCR 0x000
@@ -23,10 +24,15 @@ · 3 unmodified lines
2324
2425 static void __iomem *src_base;
2526
27+#ifndef CONFIG_SMP
28+#define cpu_logical_map(cpu) 0
29+#endif
30+
2631 void imx_enable_cpu(int cpu, bool enable)
2732 {
2833 u32 mask, val;
2934
35+ cpu = cpu_logical_map(cpu);
3036 mask = 1 << (BP_SRC_SCR_CORE1_ENABLE + cpu - 1);
3137 val = readl_relaxed(src_base + SRC_SCR);
3238 val = enable ? val | mask : val & ~mask;
@@ -35,6 +41,7 @@ void imx_enable_cpu(int cpu, bool enable) · 2 unmodified lines
3541
3642 void imx_set_cpu_jump(int cpu, void *jump_addr)
3743 {
44+ cpu = cpu_logical_map(cpu);
3845 writel_relaxed(BSYM(virt_to_phys(jump_addr)),
3946 src_base + SRC_GPR1 + cpu * 8);
4047 }
arch/arm/mach-mmp/gplugd.c+1−1
@@ -182,7 +182,7 @@ static void __init gplugd_init(void) · 181 unmodified lines
182182
183183 /* on-chip devices */
184184 pxa168_add_uart(3);
185− pxa168_add_ssp(0);
185+ pxa168_add_ssp(1);
186186 pxa168_add_twsi(0, NULL, ARRAY_AND_SIZE(gplugd_i2c_board_info));
187187
188188 pxa168_add_eth(&gplugd_eth_platform_data);
arch/arm/mach-mmp/include/mach/gpio-pxa.h+1−1
@@ -7,7 +7,7 @@ · 6 unmodified lines
77 #define GPIO_REGS_VIRT (APB_VIRT_BASE + 0x19000)
88
99 #define BANK_OFF(n) (((n) < 3) ? (n) << 2 : 0x100 + (((n) - 3) << 2))
10−#define GPIO_REG(x) (GPIO_REGS_VIRT + (x))
10+#define GPIO_REG(x) (*(volatile u32 *)(GPIO_REGS_VIRT + (x)))
1111
1212 #define NR_BUILTIN_GPIO IRQ_GPIO_NUM
1313
arch/arm/mach-mx5/cpu.c+3−2
@@ -16,7 +16,7 @@ · 15 unmodified lines
1616 #include <linux/init.h>
1717 #include <linux/module.h>
1818 #include <mach/hardware.h>
19−#include <asm/io.h>
19+#include <linux/io.h>
2020
2121 static int mx5_cpu_rev = -1;
2222
@@ -67,7 +67,8 @@ static int __init mx51_neon_fixup(void) · 44 unmodified lines
6767 if (!cpu_is_mx51())
6868 return 0;
6969
70− if (mx51_revision() < IMX_CHIP_REVISION_3_0 && (elf_hwcap & HWCAP_NEON)) {
70+ if (mx51_revision() < IMX_CHIP_REVISION_3_0 &&
71+ (elf_hwcap & HWCAP_NEON)) {
7172 elf_hwcap &= ~HWCAP_NEON;
7273 pr_info("Turning off NEON support, detected broken NEON implementation\n");
7374 }
arch/arm/mach-mx5/mm.c+4−2
@@ -23,7 +23,9 @@ · 22 unmodified lines
2323
2424 static void imx5_idle(void)
2525 {
26− mx5_cpu_lp_set(WAIT_UNCLOCKED_POWER_OFF);
26+ if (!need_resched())
27+ mx5_cpu_lp_set(WAIT_UNCLOCKED_POWER_OFF);
28+ local_irq_enable();
2729 }
2830
2931 /*
@@ -89,7 +91,7 @@ void __init imx51_init_early(void) · 59 unmodified lines
8991 mxc_set_cpu_type(MXC_CPU_MX51);
9092 mxc_iomux_v3_init(MX51_IO_ADDRESS(MX51_IOMUXC_BASE_ADDR));
9193 mxc_arch_reset_init(MX51_IO_ADDRESS(MX51_WDOG1_BASE_ADDR));
92− imx_idle = imx5_idle;
94+ pm_idle = imx5_idle;
9395 }
9496
9597 void __init imx53_init_early(void)
arch/arm/mach-mxs/clock-mx28.c+1−1
@@ -404,7 +404,7 @@ static int name##_set_rate(struct clk *clk, unsigned long rate) \ · 403 unmodified lines
404404 reg = __raw_readl(CLKCTRL_BASE_ADDR + HW_CLKCTRL_##dr); \
405405 reg &= ~BM_CLKCTRL_##dr##_DIV; \
406406 reg |= div << BP_CLKCTRL_##dr##_DIV; \
407− if (reg | (1 << clk->enable_shift)) { \
407+ if (reg & (1 << clk->enable_shift)) { \
408408 pr_err("%s: clock is gated\n", __func__); \
409409 return -EINVAL; \
410410 } \
arch/arm/mach-omap1/Kconfig+0−8
@@ -171,14 +171,6 @@ config MACH_OMAP_GENERIC · 170 unmodified lines
171171 comment "OMAP CPU Speed"
172172 depends on ARCH_OMAP1
173173
174−config OMAP_CLOCKS_SET_BY_BOOTLOADER
175− bool "OMAP clocks set by bootloader"
176− depends on ARCH_OMAP1
177− help
178− Enable this option to prevent the kernel from overriding the clock
179− frequencies programmed by bootloader for MPU, DSP, MMUs, TC,
180− internal LCD controller and MPU peripherals.
181−
182174 config OMAP_ARM_216MHZ
183175 bool "OMAP ARM 216 MHz CPU (1710 only)"
184176 depends on ARCH_OMAP1 && ARCH_OMAP16XX
arch/arm/mach-omap1/board-ams-delta.c+7−3
@@ -302,8 +302,6 @@ static void __init ams_delta_init(void) · 301 unmodified lines
302302 omap_cfg_reg(J19_1610_CAM_D6);
303303 omap_cfg_reg(J18_1610_CAM_D7);
304304
305− iotable_init(ams_delta_io_desc, ARRAY_SIZE(ams_delta_io_desc));
306−
307305 omap_board_config = ams_delta_config;
308306 omap_board_config_size = ARRAY_SIZE(ams_delta_config);
309307 omap_serial_init();
@@ -373,10 +371,16 @@ static int __init ams_delta_modem_init(void) · 63 unmodified lines
373371 }
374372 arch_initcall(ams_delta_modem_init);
375373
374+static void __init ams_delta_map_io(void)
375+{
376+ omap15xx_map_io();
377+ iotable_init(ams_delta_io_desc, ARRAY_SIZE(ams_delta_io_desc));
378+}
379+
376380 MACHINE_START(AMS_DELTA, "Amstrad E3 (Delta)")
377381 /* Maintainer: Jonathan McDowell <noodles@earth.li> */
378382 .atag_offset = 0x100,
379− .map_io = omap15xx_map_io,
383+ .map_io = ams_delta_map_io,
380384 .init_early = omap1_init_early,
381385 .reserve = omap_reserve,
382386 .init_irq = omap1_init_irq,
arch/arm/mach-omap1/clock.h+2−1
@@ -17,7 +17,8 @@ · 16 unmodified lines
1717
1818 #include <plat/clock.h>
1919
20−extern int __init omap1_clk_init(void);
20+int omap1_clk_init(void);
21+void omap1_clk_late_init(void);
2122 extern int omap1_clk_enable(struct clk *clk);
2223 extern void omap1_clk_disable(struct clk *clk);
2324 extern long omap1_clk_round_rate(struct clk *clk, unsigned long rate);
arch/arm/mach-omap1/clock_data.c+34−19
@@ -767,6 +767,15 @@ static struct clk_functions omap1_clk_functions = { · 766 unmodified lines
767767 .clk_disable_unused = omap1_clk_disable_unused,
768768 };
769769
770+static void __init omap1_show_rates(void)
771+{
772+ pr_notice("Clocking rate (xtal/DPLL1/MPU): "
773+ "%ld.%01ld/%ld.%01ld/%ld.%01ld MHz\n",
774+ ck_ref.rate / 1000000, (ck_ref.rate / 100000) % 10,
775+ ck_dpll1.rate / 1000000, (ck_dpll1.rate / 100000) % 10,
776+ arm_ck.rate / 1000000, (arm_ck.rate / 100000) % 10);
777+}
778+
770779 int __init omap1_clk_init(void)
771780 {
772781 struct omap_clk *c;
@@ -835,9 +844,12 @@ int __init omap1_clk_init(void) · 62 unmodified lines
835844 /* We want to be in syncronous scalable mode */
836845 omap_writew(0x1000, ARM_SYSST);
837846
838−#ifdef CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER
839− /* Use values set by bootloader. Determine PLL rate and recalculate
840− * dependent clocks as if kernel had changed PLL or divisors.
847+
848+ /*
849+ * Initially use the values set by bootloader. Determine PLL rate and
850+ * recalculate dependent clocks as if kernel had changed PLL or
851+ * divisors. See also omap1_clk_late_init() that can reprogram dpll1
852+ * after the SRAM is initialized.
841853 */
842854 {
843855 unsigned pll_ctl_val = omap_readw(DPLL_CTL);
@@ -862,25 +874,10 @@ int __init omap1_clk_init(void) · 18 unmodified lines
862874 }
863875 }
864876 }
865−#else
866− /* Find the highest supported frequency and enable it */
867− if (omap1_select_table_rate(&virtual_ck_mpu, ~0)) {
868− printk(KERN_ERR "System frequencies not set. Check your config.\n");
869− /* Guess sane values (60MHz) */
870− omap_writew(0x2290, DPLL_CTL);
871− omap_writew(cpu_is_omap7xx() ? 0x3005 : 0x1005, ARM_CKCTL);
872− ck_dpll1.rate = 60000000;
873− }
874−#endif
875877 propagate_rate(&ck_dpll1);
876878 /* Cache rates for clocks connected to ck_ref (not dpll1) */
877879 propagate_rate(&ck_ref);
878− printk(KERN_INFO "Clocking rate (xtal/DPLL1/MPU): "
879− "%ld.%01ld/%ld.%01ld/%ld.%01ld MHz\n",
880− ck_ref.rate / 1000000, (ck_ref.rate / 100000) % 10,
881− ck_dpll1.rate / 1000000, (ck_dpll1.rate / 100000) % 10,
882− arm_ck.rate / 1000000, (arm_ck.rate / 100000) % 10);
883−
880+ omap1_show_rates();
884881 if (machine_is_omap_perseus2() || machine_is_omap_fsample()) {
885882 /* Select slicer output as OMAP input clock */
886883 omap_writew(omap_readw(OMAP7XX_PCC_UPLD_CTRL) & ~0x1,
@@ -925,3 +922,21 @@ int __init omap1_clk_init(void) · 38 unmodified lines
925922
926923 return 0;
927924 }
925+
926+#define OMAP1_DPLL1_SANE_VALUE 60000000
927+
928+void __init omap1_clk_late_init(void)
929+{
930+ if (ck_dpll1.rate >= OMAP1_DPLL1_SANE_VALUE)
931+ return;
932+
933+ /* Find the highest supported frequency and enable it */
934+ if (omap1_select_table_rate(&virtual_ck_mpu, ~0)) {
935+ pr_err("System frequencies not set, using default. Check your config.\n");
936+ omap_writew(0x2290, DPLL_CTL);
937+ omap_writew(cpu_is_omap7xx() ? 0x3005 : 0x1005, ARM_CKCTL);
938+ ck_dpll1.rate = OMAP1_DPLL1_SANE_VALUE;
939+ }
940+ propagate_rate(&ck_dpll1);
941+ omap1_show_rates();
942+}
arch/arm/mach-omap1/devices.c+3−0
@@ -30,6 +30,8 @@ · 29 unmodified lines
3030 #include <plat/omap7xx.h>
3131 #include <plat/mcbsp.h>
3232
33+#include "clock.h"
34+
3335 /*-------------------------------------------------------------------------*/
3436
3537 #if defined(CONFIG_RTC_DRV_OMAP) || defined(CONFIG_RTC_DRV_OMAP_MODULE)
@@ -293,6 +295,7 @@ static int __init omap1_init_devices(void) · 257 unmodified lines
293295 return -ENODEV;
294296
295297 omap_sram_init();
298+ omap1_clk_late_init();
296299
297300 /* please keep these calls, and their implementations above,
298301 * in alphabetical order so they're easier to sort through.
arch/arm/mach-omap2/Kconfig+1−0
@@ -334,6 +334,7 @@ config MACH_OMAP4_PANDA · 333 unmodified lines
334334 config OMAP3_EMU
335335 bool "OMAP3 debugging peripherals"
336336 depends on ARCH_OMAP3
337+ select ARM_AMBA
337338 select OC_ETM
338339 help
339340 Say Y here to enable debugging hardware of omap3
arch/arm/mach-omap2/Makefile+1−4
@@ -4,7 +4,7 @@ · 3 unmodified lines
44
55 # Common support
66 obj-y := id.o io.o control.o mux.o devices.o serial.o gpmc.o timer.o pm.o \
7− common.o gpio.o dma.o wd_timer.o
7+ common.o gpio.o dma.o wd_timer.o display.o
88
99 omap-2-3-common = irq.o sdrc.o
1010 hwmod-common = omap_hwmod.o \
@@ -264,7 +264,4 @@ smsc911x-$(CONFIG_SMSC911X) := gpmc-smsc911x.o · 253 unmodified lines
264264 obj-y += $(smsc911x-m) $(smsc911x-y)
265265 obj-$(CONFIG_ARCH_OMAP4) += hwspinlock.o
266266
267−disp-$(CONFIG_OMAP2_DSS) := display.o
268−obj-y += $(disp-m) $(disp-y)
269−
270267 obj-y += common-board-devices.o twl-common.o
arch/arm/mach-omap2/cpuidle34xx.c+1−0
@@ -24,6 +24,7 @@ · 23 unmodified lines
2424
2525 #include <linux/sched.h>
2626 #include <linux/cpuidle.h>
27+#include <linux/export.h>
2728
2829 #include <plat/prcm.h>
2930 #include <plat/irqs.h>
arch/arm/mach-omap2/display.c+159−0
@@ -27,8 +27,35 @@ · 26 unmodified lines
2727 #include <plat/omap_hwmod.h>
2828 #include <plat/omap_device.h>
2929 #include <plat/omap-pm.h>
30+#include <plat/common.h>
3031
3132 #include "control.h"
33+#include "display.h"
34+
35+#define DISPC_CONTROL 0x0040
36+#define DISPC_CONTROL2 0x0238
37+#define DISPC_IRQSTATUS 0x0018
38+
39+#define DSS_SYSCONFIG 0x10
40+#define DSS_SYSSTATUS 0x14
41+#define DSS_CONTROL 0x40
42+#define DSS_SDI_CONTROL 0x44
43+#define DSS_PLL_CONTROL 0x48
44+
45+#define LCD_EN_MASK (0x1 << 0)
46+#define DIGIT_EN_MASK (0x1 << 1)
47+
48+#define FRAMEDONE_IRQ_SHIFT 0
49+#define EVSYNC_EVEN_IRQ_SHIFT 2
50+#define EVSYNC_ODD_IRQ_SHIFT 3
51+#define FRAMEDONE2_IRQ_SHIFT 22
52+#define FRAMEDONETV_IRQ_SHIFT 24
53+
54+/*
55+ * FRAMEDONE_IRQ_TIMEOUT: how long (in milliseconds) to wait during DISPC
56+ * reset before deciding that something has gone wrong
57+ */
58+#define FRAMEDONE_IRQ_TIMEOUT 100
3259
3360 static struct platform_device omap_display_device = {
3461 .name = "omapdss",
@@ -172,3 +199,135 @@ int __init omap_display_init(struct omap_dss_board_info *board_data) · 137 unmodified lines
172199
173200 return r;
174201 }
202+
203+static void dispc_disable_outputs(void)
204+{
205+ u32 v, irq_mask = 0;
206+ bool lcd_en, digit_en, lcd2_en = false;
207+ int i;
208+ struct omap_dss_dispc_dev_attr *da;
209+ struct omap_hwmod *oh;
210+
211+ oh = omap_hwmod_lookup("dss_dispc");
212+ if (!oh) {
213+ WARN(1, "display: could not disable outputs during reset - could not find dss_dispc hwmod\n");
214+ return;
215+ }
216+
217+ if (!oh->dev_attr) {
218+ pr_err("display: could not disable outputs during reset due to missing dev_attr\n");
219+ return;
220+ }
221+
222+ da = (struct omap_dss_dispc_dev_attr *)oh->dev_attr;
223+
224+ /* store value of LCDENABLE and DIGITENABLE bits */
225+ v = omap_hwmod_read(oh, DISPC_CONTROL);
226+ lcd_en = v & LCD_EN_MASK;
227+ digit_en = v & DIGIT_EN_MASK;
228+
229+ /* store value of LCDENABLE for LCD2 */
230+ if (da->manager_count > 2) {
231+ v = omap_hwmod_read(oh, DISPC_CONTROL2);
232+ lcd2_en = v & LCD_EN_MASK;
233+ }
234+
235+ if (!(lcd_en | digit_en | lcd2_en))
236+ return; /* no managers currently enabled */
237+
238+ /*
239+ * If any manager was enabled, we need to disable it before
240+ * DSS clocks are disabled or DISPC module is reset
241+ */
242+ if (lcd_en)
243+ irq_mask |= 1 << FRAMEDONE_IRQ_SHIFT;
244+
245+ if (digit_en) {
246+ if (da->has_framedonetv_irq) {
247+ irq_mask |= 1 << FRAMEDONETV_IRQ_SHIFT;
248+ } else {
249+ irq_mask |= 1 << EVSYNC_EVEN_IRQ_SHIFT |
250+ 1 << EVSYNC_ODD_IRQ_SHIFT;
251+ }
252+ }
253+
254+ if (lcd2_en)
255+ irq_mask |= 1 << FRAMEDONE2_IRQ_SHIFT;
256+
257+ /*
258+ * clear any previous FRAMEDONE, FRAMEDONETV,
259+ * EVSYNC_EVEN/ODD or FRAMEDONE2 interrupts
260+ */
261+ omap_hwmod_write(irq_mask, oh, DISPC_IRQSTATUS);
262+
263+ /* disable LCD and TV managers */
264+ v = omap_hwmod_read(oh, DISPC_CONTROL);
265+ v &= ~(LCD_EN_MASK | DIGIT_EN_MASK);
266+ omap_hwmod_write(v, oh, DISPC_CONTROL);
267+
268+ /* disable LCD2 manager */
269+ if (da->manager_count > 2) {
270+ v = omap_hwmod_read(oh, DISPC_CONTROL2);
271+ v &= ~LCD_EN_MASK;
272+ omap_hwmod_write(v, oh, DISPC_CONTROL2);
273+ }
274+
275+ i = 0;
276+ while ((omap_hwmod_read(oh, DISPC_IRQSTATUS) & irq_mask) !=
277+ irq_mask) {
278+ i++;
279+ if (i > FRAMEDONE_IRQ_TIMEOUT) {
280+ pr_err("didn't get FRAMEDONE1/2 or TV interrupt\n");
281+ break;
282+ }
283+ mdelay(1);
284+ }
285+}
286+
287+#define MAX_MODULE_SOFTRESET_WAIT 10000
288+int omap_dss_reset(struct omap_hwmod *oh)
289+{
290+ struct omap_hwmod_opt_clk *oc;
291+ int c = 0;
292+ int i, r;
293+
294+ if (!(oh->class->sysc->sysc_flags & SYSS_HAS_RESET_STATUS)) {
295+ pr_err("dss_core: hwmod data doesn't contain reset data\n");
296+ return -EINVAL;
297+ }
298+
299+ for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++)
300+ if (oc->_clk)
301+ clk_enable(oc->_clk);
302+
303+ dispc_disable_outputs();
304+
305+ /* clear SDI registers */
306+ if (cpu_is_omap3430()) {
307+ omap_hwmod_write(0x0, oh, DSS_SDI_CONTROL);
308+ omap_hwmod_write(0x0, oh, DSS_PLL_CONTROL);
309+ }
310+
311+ /*
312+ * clear DSS_CONTROL register to switch DSS clock sources to
313+ * PRCM clock, if any
314+ */
315+ omap_hwmod_write(0x0, oh, DSS_CONTROL);
316+
317+ omap_test_timeout((omap_hwmod_read(oh, oh->class->sysc->syss_offs)
318+ & SYSS_RESETDONE_MASK),
319+ MAX_MODULE_SOFTRESET_WAIT, c);
320+
321+ if (c == MAX_MODULE_SOFTRESET_WAIT)
322+ pr_warning("dss_core: waiting for reset to finish failed\n");
323+ else
324+ pr_debug("dss_core: softreset done\n");
325+
326+ for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++)
327+ if (oc->_clk)
328+ clk_disable(oc->_clk);
329+
330+ r = (c == MAX_MODULE_SOFTRESET_WAIT) ? -ETIMEDOUT : 0;
331+
332+ return r;
333+}
arch/arm/mach-omap2/display.h+29−0
@@ -0,0 +1,29 @@
1+/*
2+ * display.h - OMAP2+ integration-specific DSS header
3+ *
4+ * Copyright (C) 2011 Texas Instruments, Inc.
5+ *
6+ * This program is free software; you can redistribute it and/or modify it
7+ * under the terms of the GNU General Public License version 2 as published by
8+ * the Free Software Foundation.
9+ *
10+ * This program is distributed in the hope that it will be useful, but WITHOUT
11+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13+ * more details.
14+ *
15+ * You should have received a copy of the GNU General Public License along with
16+ * this program. If not, see <http://www.gnu.org/licenses/>.
17+ */
18+
19+#ifndef __ARCH_ARM_MACH_OMAP2_DISPLAY_H
20+#define __ARCH_ARM_MACH_OMAP2_DISPLAY_H
21+
22+#include <linux/kernel.h>
23+
24+struct omap_dss_dispc_dev_attr {
25+ u8 manager_count;
26+ bool has_framedonetv_irq;
27+};
28+
29+#endif
arch/arm/mach-omap2/io.h+0−0

Empty file deleted.

arch/arm/mach-omap2/omap_hwmod.c+3−3
@@ -749,7 +749,7 @@ static int _count_mpu_irqs(struct omap_hwmod *oh) · 748 unmodified lines
749749 ohii = &oh->mpu_irqs[i++];
750750 } while (ohii->irq != -1);
751751
752− return i;
752+ return i-1;
753753 }
754754
755755 /**
@@ -772,7 +772,7 @@ static int _count_sdma_reqs(struct omap_hwmod *oh) · 16 unmodified lines
772772 ohdi = &oh->sdma_reqs[i++];
773773 } while (ohdi->dma_req != -1);
774774
775− return i;
775+ return i-1;
776776 }
777777
778778 /**
@@ -795,7 +795,7 @@ static int _count_ocp_if_addr_spaces(struct omap_hwmod_ocp_if *os) · 16 unmodified lines
795795 mem = &os->addr[i++];
796796 } while (mem->pa_start != mem->pa_end);
797797
798− return i;
798+ return i-1;
799799 }
800800
801801 /**
arch/arm/mach-omap2/omap_hwmod_2420_data.c+14−3
@@ -875,6 +875,10 @@ static struct omap_hwmod_ocp_if *omap2420_dss_slaves[] = { · 874 unmodified lines
875875 };
876876
877877 static struct omap_hwmod_opt_clk dss_opt_clks[] = {
878+ /*
879+ * The DSS HW needs all DSS clocks enabled during reset. The dss_core
880+ * driver does not use these clocks.
881+ */
878882 { .role = "tv_clk", .clk = "dss_54m_fck" },
879883 { .role = "sys_clk", .clk = "dss2_fck" },
880884 };
@@ -899,7 +903,7 @@ static struct omap_hwmod omap2420_dss_core_hwmod = { · 18 unmodified lines
899903 .slaves_cnt = ARRAY_SIZE(omap2420_dss_slaves),
900904 .masters = omap2420_dss_masters,
901905 .masters_cnt = ARRAY_SIZE(omap2420_dss_masters),
902− .flags = HWMOD_NO_IDLEST,
906+ .flags = HWMOD_NO_IDLEST | HWMOD_CONTROL_OPT_CLKS_IN_RESET,
903907 };
904908
905909 /* l4_core -> dss_dispc */
@@ -939,6 +943,7 @@ static struct omap_hwmod omap2420_dss_dispc_hwmod = { · 33 unmodified lines
939943 .slaves = omap2420_dss_dispc_slaves,
940944 .slaves_cnt = ARRAY_SIZE(omap2420_dss_dispc_slaves),
941945 .flags = HWMOD_NO_IDLEST,
946+ .dev_attr = &omap2_3_dss_dispc_dev_attr
942947 };
943948
944949 /* l4_core -> dss_rfbi */
@@ -961,6 +966,10 @@ static struct omap_hwmod_ocp_if *omap2420_dss_rfbi_slaves[] = { · 16 unmodified lines
961966 &omap2420_l4_core__dss_rfbi,
962967 };
963968
969+static struct omap_hwmod_opt_clk dss_rfbi_opt_clks[] = {
970+ { .role = "ick", .clk = "dss_ick" },
971+};
972+
964973 static struct omap_hwmod omap2420_dss_rfbi_hwmod = {
965974 .name = "dss_rfbi",
966975 .class = &omap2_rfbi_hwmod_class,
@@ -972,6 +981,8 @@ static struct omap_hwmod omap2420_dss_rfbi_hwmod = { · 5 unmodified lines
972981 .module_offs = CORE_MOD,
973982 },
974983 },
984+ .opt_clks = dss_rfbi_opt_clks,
985+ .opt_clks_cnt = ARRAY_SIZE(dss_rfbi_opt_clks),
975986 .slaves = omap2420_dss_rfbi_slaves,
976987 .slaves_cnt = ARRAY_SIZE(omap2420_dss_rfbi_slaves),
977988 .flags = HWMOD_NO_IDLEST,
@@ -981,7 +992,7 @@ static struct omap_hwmod omap2420_dss_rfbi_hwmod = { · 3 unmodified lines
981992 static struct omap_hwmod_ocp_if omap2420_l4_core__dss_venc = {
982993 .master = &omap2420_l4_core_hwmod,
983994 .slave = &omap2420_dss_venc_hwmod,
984− .clk = "dss_54m_fck",
995+ .clk = "dss_ick",
985996 .addr = omap2_dss_venc_addrs,
986997 .fw = {
987998 .omap2 = {
@@ -1001,7 +1012,7 @@ static struct omap_hwmod_ocp_if *omap2420_dss_venc_slaves[] = { · 13 unmodified lines
10011012 static struct omap_hwmod omap2420_dss_venc_hwmod = {
10021013 .name = "dss_venc",
10031014 .class = &omap2_venc_hwmod_class,
1004− .main_clk = "dss1_fck",
1015+ .main_clk = "dss_54m_fck",
10051016 .prcm = {
10061017 .omap2 = {
10071018 .prcm_reg_id = 1,
arch/arm/mach-omap2/omap_hwmod_2430_data.c+14−3
@@ -942,6 +942,10 @@ static struct omap_hwmod_ocp_if *omap2430_dss_slaves[] = { · 941 unmodified lines
942942 };
943943
944944 static struct omap_hwmod_opt_clk dss_opt_clks[] = {
945+ /*
946+ * The DSS HW needs all DSS clocks enabled during reset. The dss_core
947+ * driver does not use these clocks.
948+ */
945949 { .role = "tv_clk", .clk = "dss_54m_fck" },
946950 { .role = "sys_clk", .clk = "dss2_fck" },
947951 };
@@ -966,7 +970,7 @@ static struct omap_hwmod omap2430_dss_core_hwmod = { · 18 unmodified lines
966970 .slaves_cnt = ARRAY_SIZE(omap2430_dss_slaves),
967971 .masters = omap2430_dss_masters,
968972 .masters_cnt = ARRAY_SIZE(omap2430_dss_masters),
969− .flags = HWMOD_NO_IDLEST,
973+ .flags = HWMOD_NO_IDLEST | HWMOD_CONTROL_OPT_CLKS_IN_RESET,
970974 };
971975
972976 /* l4_core -> dss_dispc */
@@ -1000,6 +1004,7 @@ static struct omap_hwmod omap2430_dss_dispc_hwmod = { · 27 unmodified lines
10001004 .slaves = omap2430_dss_dispc_slaves,
10011005 .slaves_cnt = ARRAY_SIZE(omap2430_dss_dispc_slaves),
10021006 .flags = HWMOD_NO_IDLEST,
1007+ .dev_attr = &omap2_3_dss_dispc_dev_attr
10031008 };
10041009
10051010 /* l4_core -> dss_rfbi */
@@ -1016,6 +1021,10 @@ static struct omap_hwmod_ocp_if *omap2430_dss_rfbi_slaves[] = { · 10 unmodified lines
10161021 &omap2430_l4_core__dss_rfbi,
10171022 };
10181023
1024+static struct omap_hwmod_opt_clk dss_rfbi_opt_clks[] = {
1025+ { .role = "ick", .clk = "dss_ick" },
1026+};
1027+
10191028 static struct omap_hwmod omap2430_dss_rfbi_hwmod = {
10201029 .name = "dss_rfbi",
10211030 .class = &omap2_rfbi_hwmod_class,
@@ -1027,6 +1036,8 @@ static struct omap_hwmod omap2430_dss_rfbi_hwmod = { · 5 unmodified lines
10271036 .module_offs = CORE_MOD,
10281037 },
10291038 },
1039+ .opt_clks = dss_rfbi_opt_clks,
1040+ .opt_clks_cnt = ARRAY_SIZE(dss_rfbi_opt_clks),
10301041 .slaves = omap2430_dss_rfbi_slaves,
10311042 .slaves_cnt = ARRAY_SIZE(omap2430_dss_rfbi_slaves),
10321043 .flags = HWMOD_NO_IDLEST,
@@ -1036,7 +1047,7 @@ static struct omap_hwmod omap2430_dss_rfbi_hwmod = { · 3 unmodified lines
10361047 static struct omap_hwmod_ocp_if omap2430_l4_core__dss_venc = {
10371048 .master = &omap2430_l4_core_hwmod,
10381049 .slave = &omap2430_dss_venc_hwmod,
1039− .clk = "dss_54m_fck",
1050+ .clk = "dss_ick",
10401051 .addr = omap2_dss_venc_addrs,
10411052 .flags = OCPIF_SWSUP_IDLE,
10421053 .user = OCP_USER_MPU | OCP_USER_SDMA,
@@ -1050,7 +1061,7 @@ static struct omap_hwmod_ocp_if *omap2430_dss_venc_slaves[] = { · 7 unmodified lines
10501061 static struct omap_hwmod omap2430_dss_venc_hwmod = {
10511062 .name = "dss_venc",
10521063 .class = &omap2_venc_hwmod_class,
1053− .main_clk = "dss1_fck",
1064+ .main_clk = "dss_54m_fck",
10541065 .prcm = {
10551066 .omap2 = {
10561067 .prcm_reg_id = 1,
arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c+4−1
@@ -11,6 +11,7 @@ · 10 unmodified lines
1111 #include <plat/omap_hwmod.h>
1212 #include <plat/serial.h>
1313 #include <plat/dma.h>
14+#include <plat/common.h>
1415
1516 #include <mach/irqs.h>
1617
@@ -43,13 +44,15 @@ static struct omap_hwmod_class_sysconfig omap2_dss_sysc = { · 26 unmodified lines
4344 .rev_offs = 0x0000,
4445 .sysc_offs = 0x0010,
4546 .syss_offs = 0x0014,
46− .sysc_flags = (SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
47+ .sysc_flags = (SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE |
48+ SYSS_HAS_RESET_STATUS),
4749 .sysc_fields = &omap_hwmod_sysc_type1,
4850 };
4951
5052 struct omap_hwmod_class omap2_dss_hwmod_class = {
5153 .name = "dss",
5254 .sysc = &omap2_dss_sysc,
55+ .reset = omap_dss_reset,
5356 };
5457
5558 /*
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c+32−5
@@ -1369,9 +1369,14 @@ static struct omap_hwmod_ocp_if *omap3xxx_dss_slaves[] = { · 1368 unmodified lines
13691369 };
13701370
13711371 static struct omap_hwmod_opt_clk dss_opt_clks[] = {
1372− { .role = "tv_clk", .clk = "dss_tv_fck" },
1373− { .role = "video_clk", .clk = "dss_96m_fck" },
1372+ /*
1373+ * The DSS HW needs all DSS clocks enabled during reset. The dss_core
1374+ * driver does not use these clocks.
1375+ */
13741376 { .role = "sys_clk", .clk = "dss2_alwon_fck" },
1377+ { .role = "tv_clk", .clk = "dss_tv_fck" },
1378+ /* required only on OMAP3430 */
1379+ { .role = "tv_dac_clk", .clk = "dss_96m_fck" },
13751380 };
13761381
13771382 static struct omap_hwmod omap3430es1_dss_core_hwmod = {
@@ -1394,11 +1399,12 @@ static struct omap_hwmod omap3430es1_dss_core_hwmod = { · 16 unmodified lines
13941399 .slaves_cnt = ARRAY_SIZE(omap3430es1_dss_slaves),
13951400 .masters = omap3xxx_dss_masters,
13961401 .masters_cnt = ARRAY_SIZE(omap3xxx_dss_masters),
1397− .flags = HWMOD_NO_IDLEST,
1402+ .flags = HWMOD_NO_IDLEST | HWMOD_CONTROL_OPT_CLKS_IN_RESET,
13981403 };
13991404
14001405 static struct omap_hwmod omap3xxx_dss_core_hwmod = {
14011406 .name = "dss_core",
1407+ .flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
14021408 .class = &omap2_dss_hwmod_class,
14031409 .main_clk = "dss1_alwon_fck", /* instead of dss_fck */
14041410 .sdma_reqs = omap3xxx_dss_sdma_chs,
@@ -1456,6 +1462,7 @@ static struct omap_hwmod omap3xxx_dss_dispc_hwmod = { · 51 unmodified lines
14561462 .slaves = omap3xxx_dss_dispc_slaves,
14571463 .slaves_cnt = ARRAY_SIZE(omap3xxx_dss_dispc_slaves),
14581464 .flags = HWMOD_NO_IDLEST,
1465+ .dev_attr = &omap2_3_dss_dispc_dev_attr
14591466 };
14601467
14611468 /*
@@ -1486,6 +1493,7 @@ static struct omap_hwmod_addr_space omap3xxx_dss_dsi1_addrs[] = { · 24 unmodified lines
14861493 static struct omap_hwmod_ocp_if omap3xxx_l4_core__dss_dsi1 = {
14871494 .master = &omap3xxx_l4_core_hwmod,
14881495 .slave = &omap3xxx_dss_dsi1_hwmod,
1496+ .clk = "dss_ick",
14891497 .addr = omap3xxx_dss_dsi1_addrs,
14901498 .fw = {
14911499 .omap2 = {
@@ -1502,6 +1510,10 @@ static struct omap_hwmod_ocp_if *omap3xxx_dss_dsi1_slaves[] = { · 10 unmodified lines
15021510 &omap3xxx_l4_core__dss_dsi1,
15031511 };
15041512
1513+static struct omap_hwmod_opt_clk dss_dsi1_opt_clks[] = {
1514+ { .role = "sys_clk", .clk = "dss2_alwon_fck" },
1515+};
1516+
15051517 static struct omap_hwmod omap3xxx_dss_dsi1_hwmod = {
15061518 .name = "dss_dsi1",
15071519 .class = &omap3xxx_dsi_hwmod_class,
@@ -1514,6 +1526,8 @@ static struct omap_hwmod omap3xxx_dss_dsi1_hwmod = { · 6 unmodified lines
15141526 .module_offs = OMAP3430_DSS_MOD,
15151527 },
15161528 },
1529+ .opt_clks = dss_dsi1_opt_clks,
1530+ .opt_clks_cnt = ARRAY_SIZE(dss_dsi1_opt_clks),
15171531 .slaves = omap3xxx_dss_dsi1_slaves,
15181532 .slaves_cnt = ARRAY_SIZE(omap3xxx_dss_dsi1_slaves),
15191533 .flags = HWMOD_NO_IDLEST,
@@ -1540,6 +1554,10 @@ static struct omap_hwmod_ocp_if *omap3xxx_dss_rfbi_slaves[] = { · 20 unmodified lines
15401554 &omap3xxx_l4_core__dss_rfbi,
15411555 };
15421556
1557+static struct omap_hwmod_opt_clk dss_rfbi_opt_clks[] = {
1558+ { .role = "ick", .clk = "dss_ick" },
1559+};
1560+
15431561 static struct omap_hwmod omap3xxx_dss_rfbi_hwmod = {
15441562 .name = "dss_rfbi",
15451563 .class = &omap2_rfbi_hwmod_class,
@@ -1551,6 +1569,8 @@ static struct omap_hwmod omap3xxx_dss_rfbi_hwmod = { · 5 unmodified lines
15511569 .module_offs = OMAP3430_DSS_MOD,
15521570 },
15531571 },
1572+ .opt_clks = dss_rfbi_opt_clks,
1573+ .opt_clks_cnt = ARRAY_SIZE(dss_rfbi_opt_clks),
15541574 .slaves = omap3xxx_dss_rfbi_slaves,
15551575 .slaves_cnt = ARRAY_SIZE(omap3xxx_dss_rfbi_slaves),
15561576 .flags = HWMOD_NO_IDLEST,
@@ -1560,7 +1580,7 @@ static struct omap_hwmod omap3xxx_dss_rfbi_hwmod = { · 3 unmodified lines
15601580 static struct omap_hwmod_ocp_if omap3xxx_l4_core__dss_venc = {
15611581 .master = &omap3xxx_l4_core_hwmod,
15621582 .slave = &omap3xxx_dss_venc_hwmod,
1563− .clk = "dss_tv_fck",
1583+ .clk = "dss_ick",
15641584 .addr = omap2_dss_venc_addrs,
15651585 .fw = {
15661586 .omap2 = {
@@ -1578,10 +1598,15 @@ static struct omap_hwmod_ocp_if *omap3xxx_dss_venc_slaves[] = { · 11 unmodified lines
15781598 &omap3xxx_l4_core__dss_venc,
15791599 };
15801600
1601+static struct omap_hwmod_opt_clk dss_venc_opt_clks[] = {
1602+ /* required only on OMAP3430 */
1603+ { .role = "tv_dac_clk", .clk = "dss_96m_fck" },
1604+};
1605+
15811606 static struct omap_hwmod omap3xxx_dss_venc_hwmod = {
15821607 .name = "dss_venc",
15831608 .class = &omap2_venc_hwmod_class,
1584− .main_clk = "dss1_alwon_fck",
1609+ .main_clk = "dss_tv_fck",
15851610 .prcm = {
15861611 .omap2 = {
15871612 .prcm_reg_id = 1,
@@ -1589,6 +1614,8 @@ static struct omap_hwmod omap3xxx_dss_venc_hwmod = { · 1 unmodified line
15891614 .module_offs = OMAP3430_DSS_MOD,
15901615 },
15911616 },
1617+ .opt_clks = dss_venc_opt_clks,
1618+ .opt_clks_cnt = ARRAY_SIZE(dss_venc_opt_clks),
15921619 .slaves = omap3xxx_dss_venc_slaves,
15931620 .slaves_cnt = ARRAY_SIZE(omap3xxx_dss_venc_slaves),
15941621 .flags = HWMOD_NO_IDLEST,
arch/arm/mach-omap2/omap_hwmod_44xx_data.c+12−12
@@ -30,6 +30,7 @@ · 29 unmodified lines
3030 #include <plat/mmc.h>
3131 #include <plat/i2c.h>
3232 #include <plat/dmtimer.h>
33+#include <plat/common.h>
3334
3435 #include "omap_hwmod_common_data.h"
3536
@@ -1187,6 +1188,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_dss_sysc = { · 1151 unmodified lines
11871188 static struct omap_hwmod_class omap44xx_dss_hwmod_class = {
11881189 .name = "dss",
11891190 .sysc = &omap44xx_dss_sysc,
1191+ .reset = omap_dss_reset,
11901192 };
11911193
11921194 /* dss */
@@ -1240,12 +1242,12 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_slaves[] = { · 47 unmodified lines
12401242 static struct omap_hwmod_opt_clk dss_opt_clks[] = {
12411243 { .role = "sys_clk", .clk = "dss_sys_clk" },
12421244 { .role = "tv_clk", .clk = "dss_tv_clk" },
1243− { .role = "dss_clk", .clk = "dss_dss_clk" },
1244− { .role = "video_clk", .clk = "dss_48mhz_clk" },
1245+ { .role = "hdmi_clk", .clk = "dss_48mhz_clk" },
12451246 };
12461247
12471248 static struct omap_hwmod omap44xx_dss_hwmod = {
12481249 .name = "dss_core",
1250+ .flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
12491251 .class = &omap44xx_dss_hwmod_class,
12501252 .clkdm_name = "l3_dss_clkdm",
12511253 .main_clk = "dss_dss_clk",
@@ -1325,6 +1327,11 @@ static struct omap_hwmod_addr_space omap44xx_dss_dispc_addrs[] = { · 73 unmodified lines
13251327 { }
13261328 };
13271329
1330+static struct omap_dss_dispc_dev_attr omap44xx_dss_dispc_dev_attr = {
1331+ .manager_count = 3,
1332+ .has_framedonetv_irq = 1
1333+};
1334+
13281335 /* l4_per -> dss_dispc */
13291336 static struct omap_hwmod_ocp_if omap44xx_l4_per__dss_dispc = {
13301337 .master = &omap44xx_l4_per_hwmod,
@@ -1340,12 +1347,6 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_dispc_slaves[] = { · 9 unmodified lines
13401347 &omap44xx_l4_per__dss_dispc,
13411348 };
13421349
1343−static struct omap_hwmod_opt_clk dss_dispc_opt_clks[] = {
1344− { .role = "sys_clk", .clk = "dss_sys_clk" },
1345− { .role = "tv_clk", .clk = "dss_tv_clk" },
1346− { .role = "hdmi_clk", .clk = "dss_48mhz_clk" },
1347−};
1348−
13491350 static struct omap_hwmod omap44xx_dss_dispc_hwmod = {
13501351 .name = "dss_dispc",
13511352 .class = &omap44xx_dispc_hwmod_class,
@@ -1359,10 +1360,9 @@ static struct omap_hwmod omap44xx_dss_dispc_hwmod = { · 7 unmodified lines
13591360 .context_offs = OMAP4_RM_DSS_DSS_CONTEXT_OFFSET,
13601361 },
13611362 },
1362− .opt_clks = dss_dispc_opt_clks,
1363− .opt_clks_cnt = ARRAY_SIZE(dss_dispc_opt_clks),
13641363 .slaves = omap44xx_dss_dispc_slaves,
13651364 .slaves_cnt = ARRAY_SIZE(omap44xx_dss_dispc_slaves),
1365+ .dev_attr = &omap44xx_dss_dispc_dev_attr
13661366 };
13671367
13681368 /*
@@ -1624,7 +1624,7 @@ static struct omap_hwmod omap44xx_dss_hdmi_hwmod = { · 255 unmodified lines
16241624 .clkdm_name = "l3_dss_clkdm",
16251625 .mpu_irqs = omap44xx_dss_hdmi_irqs,
16261626 .sdma_reqs = omap44xx_dss_hdmi_sdma_reqs,
1627− .main_clk = "dss_dss_clk",
1627+ .main_clk = "dss_48mhz_clk",
16281628 .prcm = {
16291629 .omap4 = {
16301630 .clkctrl_offs = OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET,
@@ -1785,7 +1785,7 @@ static struct omap_hwmod omap44xx_dss_venc_hwmod = { · 154 unmodified lines
17851785 .name = "dss_venc",
17861786 .class = &omap44xx_venc_hwmod_class,
17871787 .clkdm_name = "l3_dss_clkdm",
1788− .main_clk = "dss_dss_clk",
1788+ .main_clk = "dss_tv_clk",
17891789 .prcm = {
17901790 .omap4 = {
17911791 .clkctrl_offs = OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET,
arch/arm/mach-omap2/omap_hwmod_common_data.c+4−0
@@ -49,3 +49,7 @@ struct omap_hwmod_sysc_fields omap_hwmod_sysc_type2 = { · 48 unmodified lines
4949 .srst_shift = SYSC_TYPE2_SOFTRESET_SHIFT,
5050 };
5151
52+struct omap_dss_dispc_dev_attr omap2_3_dss_dispc_dev_attr = {
53+ .manager_count = 2,
54+ .has_framedonetv_irq = 0
55+};
arch/arm/mach-omap2/omap_hwmod_common_data.h+4−0
@@ -16,6 +16,8 @@ · 15 unmodified lines
1616
1717 #include <plat/omap_hwmod.h>
1818
19+#include "display.h"
20+
1921 /* Common address space across OMAP2xxx */
2022 extern struct omap_hwmod_addr_space omap2xxx_uart1_addr_space[];
2123 extern struct omap_hwmod_addr_space omap2xxx_uart2_addr_space[];
@@ -111,4 +113,6 @@ extern struct omap_hwmod_class omap2xxx_dma_hwmod_class; · 89 unmodified lines
111113 extern struct omap_hwmod_class omap2xxx_mailbox_hwmod_class;
112114 extern struct omap_hwmod_class omap2xxx_mcspi_class;
113115
116+extern struct omap_dss_dispc_dev_attr omap2_3_dss_dispc_dev_attr;
117+
114118 #endif
arch/arm/mach-omap2/omap_l3_noc.c+1−1
@@ -237,7 +237,7 @@ static int __devexit omap4_l3_remove(struct platform_device *pdev) · 236 unmodified lines
237237 static const struct of_device_id l3_noc_match[] = {
238238 {.compatible = "ti,omap4-l3-noc", },
239239 {},
240−}
240+};
241241 MODULE_DEVICE_TABLE(of, l3_noc_match);
242242 #else
243243 #define l3_noc_match NULL
arch/arm/mach-omap2/pm.c+2−4
@@ -24,6 +24,7 @@ · 23 unmodified lines
2424 #include "powerdomain.h"
2525 #include "clockdomain.h"
2626 #include "pm.h"
27+#include "twl-common.h"
2728
2829 static struct omap_device_pm_latency *pm_lats;
2930
@@ -226,11 +227,8 @@ postcore_initcall(omap2_common_pm_init); · 196 unmodified lines
226227
227228 static int __init omap2_common_pm_late_init(void)
228229 {
229− /* Init the OMAP TWL parameters */
230− omap3_twl_init();
231− omap4_twl_init();
232−
233230 /* Init the voltage layer */
231+ omap_pmic_late_init();
234232 omap_voltage_late_init();
235233
236234 /* Initialize the voltages */
arch/arm/mach-omap2/smartreflex.c+1−1
@@ -139,7 +139,7 @@ static irqreturn_t sr_interrupt(int irq, void *data) · 138 unmodified lines
139139 sr_write_reg(sr_info, ERRCONFIG_V1, status);
140140 } else if (sr_info->ip_type == SR_TYPE_V2) {
141141 /* Read the status bits */
142− sr_read_reg(sr_info, IRQSTATUS);
142+ status = sr_read_reg(sr_info, IRQSTATUS);
143143
144144 /* Clear them by writing back */
145145 sr_write_reg(sr_info, IRQSTATUS, status);
arch/arm/mach-omap2/twl-common.c+11−0
@@ -30,6 +30,7 @@ · 29 unmodified lines
3030 #include <plat/usb.h>
3131
3232 #include "twl-common.h"
33+#include "pm.h"
3334
3435 static struct i2c_board_info __initdata pmic_i2c_board_info = {
3536 .addr = 0x48,
@@ -48,6 +49,16 @@ void __init omap_pmic_init(int bus, u32 clkrate, · 12 unmodified lines
4849 omap_register_i2c_bus(bus, clkrate, &pmic_i2c_board_info, 1);
4950 }
5051
52+void __init omap_pmic_late_init(void)
53+{
54+ /* Init the OMAP TWL parameters (if PMIC has been registerd) */
55+ if (!pmic_i2c_board_info.irq)
56+ return;
57+
58+ omap3_twl_init();
59+ omap4_twl_init();
60+}
61+
5162 #if defined(CONFIG_ARCH_OMAP3)
5263 static struct twl4030_usb_data omap3_usb_pdata = {
5364 .usb_mode = T2_USB_MODE_ULPI,
arch/arm/mach-omap2/twl-common.h+3−0
@@ -1,6 +1,8 @@
11 #ifndef __OMAP_PMIC_COMMON__
22 #define __OMAP_PMIC_COMMON__
33
4+#include <plat/irqs.h>
5+
46 #define TWL_COMMON_PDATA_USB (1 << 0)
57 #define TWL_COMMON_PDATA_BCI (1 << 1)
68 #define TWL_COMMON_PDATA_MADC (1 << 2)
@@ -30,6 +32,7 @@ struct twl4030_platform_data; · 23 unmodified lines
3032
3133 void omap_pmic_init(int bus, u32 clkrate, const char *pmic_type, int pmic_irq,
3234 struct twl4030_platform_data *pmic_data);
35+void omap_pmic_late_init(void);
3336
3437 static inline void omap2_pmic_init(const char *pmic_type,
3538 struct twl4030_platform_data *pmic_data)
arch/arm/mach-pxa/balloon3.c+1−1
@@ -307,7 +307,7 @@ static inline void balloon3_mmc_init(void) {} · 306 unmodified lines
307307 /******************************************************************************
308308 * USB Gadget
309309 ******************************************************************************/
310−#if defined(CONFIG_USB_GADGET_PXA27X)||defined(CONFIG_USB_GADGET_PXA27X_MODULE)
310+#if defined(CONFIG_USB_PXA27X)||defined(CONFIG_USB_PXA27X_MODULE)
311311 static void balloon3_udc_command(int cmd)
312312 {
313313 if (cmd == PXA2XX_UDC_CMD_CONNECT)
arch/arm/mach-pxa/colibri-pxa320.c+1−1
@@ -146,7 +146,7 @@ static void __init colibri_pxa320_init_eth(void) · 145 unmodified lines
146146 static inline void __init colibri_pxa320_init_eth(void) {}
147147 #endif /* CONFIG_AX88796 */
148148
149−#if defined(CONFIG_USB_GADGET_PXA27X)||defined(CONFIG_USB_GADGET_PXA27X_MODULE)
149+#if defined(CONFIG_USB_PXA27X)||defined(CONFIG_USB_PXA27X_MODULE)
150150 static struct gpio_vbus_mach_info colibri_pxa320_gpio_vbus_info = {
151151 .gpio_vbus = mfp_to_gpio(MFP_PIN_GPIO96),
152152 .gpio_pullup = -1,
arch/arm/mach-pxa/gumstix.c+1−1
@@ -106,7 +106,7 @@ static void __init gumstix_mmc_init(void) · 105 unmodified lines
106106 }
107107 #endif
108108
109−#ifdef CONFIG_USB_GADGET_PXA25X
109+#ifdef CONFIG_USB_PXA25X
110110 static struct gpio_vbus_mach_info gumstix_udc_info = {
111111 .gpio_vbus = GPIO_GUMSTIX_USB_GPIOn,
112112 .gpio_pullup = GPIO_GUMSTIX_USB_GPIOx,
arch/arm/mach-pxa/include/mach/palm27x.h+2−2
@@ -37,8 +37,8 @@ extern void __init palm27x_lcd_init(int power, · 36 unmodified lines
3737 #define palm27x_lcd_init(power, mode) do {} while (0)
3838 #endif
3939
40−#if defined(CONFIG_USB_GADGET_PXA27X) || \
41− defined(CONFIG_USB_GADGET_PXA27X_MODULE)
40+#if defined(CONFIG_USB_PXA27X) || \
41+ defined(CONFIG_USB_PXA27X_MODULE)
4242 extern void __init palm27x_udc_init(int vbus, int pullup,
4343 int vbus_inverted);
4444 #else
arch/arm/mach-pxa/palm27x.c+2−2
@@ -164,8 +164,8 @@ void __init palm27x_lcd_init(int power, struct pxafb_mode_info *mode) · 163 unmodified lines
164164 /******************************************************************************
165165 * USB Gadget
166166 ******************************************************************************/
167−#if defined(CONFIG_USB_GADGET_PXA27X) || \
168− defined(CONFIG_USB_GADGET_PXA27X_MODULE)
167+#if defined(CONFIG_USB_PXA27X) || \
168+ defined(CONFIG_USB_PXA27X_MODULE)
169169 static struct gpio_vbus_mach_info palm27x_udc_info = {
170170 .gpio_vbus_inverted = 1,
171171 };
arch/arm/mach-pxa/palmtc.c+1−1
@@ -338,7 +338,7 @@ static inline void palmtc_mkp_init(void) {} · 337 unmodified lines
338338 /******************************************************************************
339339 * UDC
340340 ******************************************************************************/
341−#if defined(CONFIG_USB_GADGET_PXA25X)||defined(CONFIG_USB_GADGET_PXA25X_MODULE)
341+#if defined(CONFIG_USB_PXA25X)||defined(CONFIG_USB_PXA25X_MODULE)
342342 static struct gpio_vbus_mach_info palmtc_udc_info = {
343343 .gpio_vbus = GPIO_NR_PALMTC_USB_DETECT_N,
344344 .gpio_vbus_inverted = 1,
arch/arm/mach-pxa/vpac270.c+1−1
@@ -343,7 +343,7 @@ static inline void vpac270_uhc_init(void) {} · 342 unmodified lines
343343 /******************************************************************************
344344 * USB Gadget
345345 ******************************************************************************/
346−#if defined(CONFIG_USB_GADGET_PXA27X)||defined(CONFIG_USB_GADGET_PXA27X_MODULE)
346+#if defined(CONFIG_USB_PXA27X)||defined(CONFIG_USB_PXA27X_MODULE)
347347 static struct gpio_vbus_mach_info vpac270_gpio_vbus_info = {
348348 .gpio_vbus = GPIO41_VPAC270_UDC_DETECT,
349349 .gpio_pullup = -1,
arch/arm/mach-s3c64xx/mach-crag6410-module.c+1−1
@@ -8,7 +8,7 @@ · 7 unmodified lines
88 * published by the Free Software Foundation.
99 */
1010
11−#include <linux/module.h>
11+#include <linux/export.h>
1212 #include <linux/interrupt.h>
1313 #include <linux/i2c.h>
1414
arch/arm/plat-mxc/include/mach/common.h+1−1
@@ -85,7 +85,6 @@ enum mxc_cpu_pwr_mode { · 84 unmodified lines
8585 };
8686
8787 extern void mx5_cpu_lp_set(enum mxc_cpu_pwr_mode mode);
88−extern void (*imx_idle)(void);
8988 extern void imx_print_silicon_rev(const char *cpu, int srev);
9089
9190 void avic_handle_irq(struct pt_regs *);
@@ -133,4 +132,5 @@ extern void imx53_qsb_common_init(void); · 41 unmodified lines
133132 extern void imx53_smd_common_init(void);
134133 extern int imx6q_set_lpm(enum mxc_cpu_pwr_mode mode);
135134 extern void imx6q_pm_init(void);
135+extern void imx6q_clock_map_io(void);
136136 #endif
arch/arm/plat-mxc/include/mach/mxc.h+0−14
@@ -50,20 +50,6 @@ · 49 unmodified lines
5050 #define IMX_CHIP_REVISION_3_3 0x33
5151 #define IMX_CHIP_REVISION_UNKNOWN 0xff
5252
53−#define IMX_CHIP_REVISION_1_0_STRING "1.0"
54−#define IMX_CHIP_REVISION_1_1_STRING "1.1"
55−#define IMX_CHIP_REVISION_1_2_STRING "1.2"
56−#define IMX_CHIP_REVISION_1_3_STRING "1.3"
57−#define IMX_CHIP_REVISION_2_0_STRING "2.0"
58−#define IMX_CHIP_REVISION_2_1_STRING "2.1"
59−#define IMX_CHIP_REVISION_2_2_STRING "2.2"
60−#define IMX_CHIP_REVISION_2_3_STRING "2.3"
61−#define IMX_CHIP_REVISION_3_0_STRING "3.0"
62−#define IMX_CHIP_REVISION_3_1_STRING "3.1"
63−#define IMX_CHIP_REVISION_3_2_STRING "3.2"
64−#define IMX_CHIP_REVISION_3_3_STRING "3.3"
65−#define IMX_CHIP_REVISION_UNKNOWN_STRING "unknown"
66−
6753 #ifndef __ASSEMBLY__
6854 extern unsigned int __mxc_cpu_type;
6955 #endif
arch/arm/plat-mxc/include/mach/system.h+1−6
@@ -17,14 +17,9 @@ · 16 unmodified lines
1717 #ifndef __ASM_ARCH_MXC_SYSTEM_H__
1818 #define __ASM_ARCH_MXC_SYSTEM_H__
1919
20−extern void (*imx_idle)(void);
21−
2220 static inline void arch_idle(void)
2321 {
24− if (imx_idle != NULL)
25− (imx_idle)();
26− else
27− cpu_do_idle();
22+ cpu_do_idle();
2823 }
2924
3025 void arch_reset(char mode, const char *cmd);
arch/arm/plat-mxc/system.c+2−1
@@ -21,6 +21,7 @@ · 20 unmodified lines
2121 #include <linux/io.h>
2222 #include <linux/err.h>
2323 #include <linux/delay.h>
24+#include <linux/module.h>
2425
2526 #include <mach/hardware.h>
2627 #include <mach/common.h>
@@ -28,8 +29,8 @@ · 1 unmodified line
2829 #include <asm/system.h>
2930 #include <asm/mach-types.h>
3031
31−void (*imx_idle)(void) = NULL;
3232 void __iomem *(*imx_ioremap)(unsigned long, size_t, unsigned int) = NULL;
33+EXPORT_SYMBOL_GPL(imx_ioremap);
3334
3435 static void __iomem *wdog_base;
3536
arch/arm/plat-omap/include/plat/clock.h+1−1
@@ -165,8 +165,8 @@ struct dpll_data { · 164 unmodified lines
165165 u8 auto_recal_bit;
166166 u8 recal_en_bit;
167167 u8 recal_st_bit;
168− u8 flags;
169168 # endif
169+ u8 flags;
170170 };
171171
172172 #endif
arch/arm/plat-omap/include/plat/common.h+3−0
@@ -30,6 +30,7 @@ · 29 unmodified lines
3030 #include <linux/delay.h>
3131
3232 #include <plat/i2c.h>
33+#include <plat/omap_hwmod.h>
3334
3435 struct sys_timer;
3536
@@ -55,6 +56,8 @@ void am35xx_init_early(void); · 19 unmodified lines
5556 void ti816x_init_early(void);
5657 void omap4430_init_early(void);
5758
59+extern int omap_dss_reset(struct omap_hwmod *);
60+
5861 void omap_sram_init(void);
5962
6063 /*
arch/arm/plat-s3c24xx/cpu-freq-debugfs.c+1−1
@@ -12,7 +12,7 @@ · 11 unmodified lines
1212 */
1313
1414 #include <linux/init.h>
15−#include <linux/module.h>
15+#include <linux/export.h>
1616 #include <linux/interrupt.h>
1717 #include <linux/ioport.h>
1818 #include <linux/cpufreq.h>
arch/arm/plat-s5p/sysmmu.c+1−0
@@ -11,6 +11,7 @@ · 10 unmodified lines
1111 #include <linux/io.h>
1212 #include <linux/interrupt.h>
1313 #include <linux/platform_device.h>
14+#include <linux/export.h>
1415
1516 #include <asm/pgtable.h>
1617
arch/arm/plat-samsung/include/plat/gpio-cfg.h+2−0
@@ -24,6 +24,8 @@ · 23 unmodified lines
2424 #ifndef __PLAT_GPIO_CFG_H
2525 #define __PLAT_GPIO_CFG_H __FILE__
2626
27+#include<linux/types.h>
28+
2729 typedef unsigned int __bitwise__ samsung_gpio_pull_t;
2830 typedef unsigned int __bitwise__ s5p_gpio_drvstr_t;
2931
arch/arm/plat-samsung/pd.c+1−1
@@ -11,7 +11,7 @@ · 10 unmodified lines
1111 */
1212
1313 #include <linux/init.h>
14−#include <linux/module.h>
14+#include <linux/export.h>
1515 #include <linux/platform_device.h>
1616 #include <linux/err.h>
1717 #include <linux/pm_runtime.h>
arch/arm/plat-samsung/pwm.c+1−1
@@ -11,7 +11,7 @@ · 10 unmodified lines
1111 * the Free Software Foundation; either version 2 of the License.
1212 */
1313
14−#include <linux/module.h>
14+#include <linux/export.h>
1515 #include <linux/kernel.h>
1616 #include <linux/platform_device.h>
1717 #include <linux/slab.h>
arch/arm/tools/mach-types+1−0
@@ -1123,5 +1123,6 @@ blissc MACH_BLISSC BLISSC 3491 · 1122 unmodified lines
11231123 thales_adc MACH_THALES_ADC THALES_ADC 3492
11241124 ubisys_p9d_evp MACH_UBISYS_P9D_EVP UBISYS_P9D_EVP 3493
11251125 atdgp318 MACH_ATDGP318 ATDGP318 3494
1126+m28evk MACH_M28EVK M28EVK 3613
11261127 smdk4212 MACH_SMDK4212 SMDK4212 3638
11271128 smdk4412 MACH_SMDK4412 SMDK4412 3765
include/video/omapdss.h+0−7
@@ -307,15 +307,8 @@ struct omap_dss_board_info { · 306 unmodified lines
307307 void (*dsi_disable_pads)(int dsi_id, unsigned lane_mask);
308308 };
309309
310−#if defined(CONFIG_OMAP2_DSS_MODULE) || defined(CONFIG_OMAP2_DSS)
311310 /* Init with the board info */
312311 extern int omap_display_init(struct omap_dss_board_info *board_data);
313−#else
314−static inline int omap_display_init(struct omap_dss_board_info *board_data)
315−{
316− return 0;
317−}
318−#endif
319312
320313 struct omap_display_platform_data {
321314 struct omap_dss_board_info *board_data;