diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-10 21:21:48 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-10 21:21:48 -0400 |
commit | da06a8d7bed2f3bfc12979384b2d1247ec4873db (patch) | |
tree | ed60bec05c7d69d94ad048d404321ce759a48868 | |
parent | 49999ab27eab6289a8e4f450e148bdab521361b2 (diff) | |
parent | 6bd5dbda2adeabba69c969886511e501a65b6e3c (diff) |
Merge tag 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC fixes from Olof Johansson:
"A series of fixes (and in some cases, some cleanups):
Via Tony Lindgren:
- A collection of OMAP regression fixes, in particular because
firmware no longer sets up all pin states before starting the
kernel.
- cpufreq fixes for OMAP (Rafael is on vacation and this was
pre-agreed).
- A longer series of misc regression fixes and cleanups, warning
removals, etc for OMAP
From Arnd Bergmann:
- A series of warning fixes for various platforms (defconfig builds)
Misc:
- A couple of tegra fixes, one for i.MX, some vt8500 fixes, etc."
* tag 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (73 commits)
ARM: pxa: armcore: fix PCI PIO warnings
ARM: integrator: use __iomem pointers for MMIO, part 2
ARM: assabet: fix bogus warning in get_assabet_scr (again)
ARM: shmobile: mark shmobile_init_late as __init
ARM: integrator_cp: fix build failure
ARM: OMAP4/AM335x: hwmod: fix disable_module regression in hardreset handling
ARM: OMAP3: fix workaround for EMU clockdomain
arm/omap: Replace board_ref_clock with enum values
ARM: OMAP2+: remove duplicated include from board-omap3stalker.c
arch/arm/plat-omap/omap-pm-noop.c: Remove unecessary semicolon
arch/arm/mach-omap2: Remove unecessary semicolon
arch/arm/mach-omap1/devices.c: Remove unecessary semicolon
ARM/dts: omap5-evm: pinmux configuration for audio
ARM/dts: Add pinctrl driver entries for omap5
ARM/dts: omap4-panda: pinmux configuration for audio
ARM/dts: omap4-sdp: pinmux configuration for audio
ARM/dts: omap5-evm: Disable unused McBSP3
ARM/dts: omap4-sdp: Disable unused McBSP3
ARM/dts: omap4-panda: Disable unused audio IPs
ARM: OMAP: board-omap4panda: Pin mux configuration for audio needs
...
75 files changed, 436 insertions, 223 deletions
diff --git a/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt b/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt index 548892c08c59..7da578d72123 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt +++ b/Documentation/devicetree/bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt | |||
@@ -7,7 +7,7 @@ as "armctrl" in the SoC documentation, hence naming of this binding. | |||
7 | 7 | ||
8 | Required properties: | 8 | Required properties: |
9 | 9 | ||
10 | - compatible : should be "brcm,bcm2835-armctrl-ic.txt" | 10 | - compatible : should be "brcm,bcm2835-armctrl-ic" |
11 | - reg : Specifies base physical address and size of the registers. | 11 | - reg : Specifies base physical address and size of the registers. |
12 | - interrupt-controller : Identifies the node as an interrupt controller | 12 | - interrupt-controller : Identifies the node as an interrupt controller |
13 | - #interrupt-cells : Specifies the number of cells needed to encode an | 13 | - #interrupt-cells : Specifies the number of cells needed to encode an |
diff --git a/Documentation/devicetree/bindings/timer/brcm,bcm2835-system-timer.txt b/Documentation/devicetree/bindings/timer/brcm,bcm2835-system-timer.txt index 2de21c2acf55..844bd5fbd04c 100644 --- a/Documentation/devicetree/bindings/timer/brcm,bcm2835-system-timer.txt +++ b/Documentation/devicetree/bindings/timer/brcm,bcm2835-system-timer.txt | |||
@@ -7,7 +7,7 @@ free running counter values, and generates an interrupt. | |||
7 | 7 | ||
8 | Required properties: | 8 | Required properties: |
9 | 9 | ||
10 | - compatible : should be "brcm,bcm2835-system-timer.txt" | 10 | - compatible : should be "brcm,bcm2835-system-timer" |
11 | - reg : Specifies base physical address and size of the registers. | 11 | - reg : Specifies base physical address and size of the registers. |
12 | - interrupts : A list of 4 interrupt sinks; one per timer channel. | 12 | - interrupts : A list of 4 interrupt sinks; one per timer channel. |
13 | - clock-frequency : The frequency of the clock that drives the counter, in Hz. | 13 | - clock-frequency : The frequency of the clock that drives the counter, in Hz. |
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index e40eefb5d32d..767aae8277fa 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -494,7 +494,6 @@ config ARCH_IOP32X | |||
494 | depends on MMU | 494 | depends on MMU |
495 | select CPU_XSCALE | 495 | select CPU_XSCALE |
496 | select NEED_MACH_GPIO_H | 496 | select NEED_MACH_GPIO_H |
497 | select NEED_MACH_IO_H | ||
498 | select NEED_RET_TO_USER | 497 | select NEED_RET_TO_USER |
499 | select PLAT_IOP | 498 | select PLAT_IOP |
500 | select PCI | 499 | select PCI |
@@ -508,7 +507,6 @@ config ARCH_IOP33X | |||
508 | depends on MMU | 507 | depends on MMU |
509 | select CPU_XSCALE | 508 | select CPU_XSCALE |
510 | select NEED_MACH_GPIO_H | 509 | select NEED_MACH_GPIO_H |
511 | select NEED_MACH_IO_H | ||
512 | select NEED_RET_TO_USER | 510 | select NEED_RET_TO_USER |
513 | select PLAT_IOP | 511 | select PLAT_IOP |
514 | select PCI | 512 | select PCI |
@@ -1772,6 +1770,7 @@ source "mm/Kconfig" | |||
1772 | config FORCE_MAX_ZONEORDER | 1770 | config FORCE_MAX_ZONEORDER |
1773 | int "Maximum zone order" if ARCH_SHMOBILE | 1771 | int "Maximum zone order" if ARCH_SHMOBILE |
1774 | range 11 64 if ARCH_SHMOBILE | 1772 | range 11 64 if ARCH_SHMOBILE |
1773 | default "12" if SOC_AM33XX | ||
1775 | default "9" if SA1111 | 1774 | default "9" if SA1111 |
1776 | default "11" | 1775 | default "11" |
1777 | help | 1776 | help |
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 29f541f0e653..c1ce813fcc4a 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -25,14 +25,6 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \ | |||
25 | exynos4210-trats.dtb \ | 25 | exynos4210-trats.dtb \ |
26 | exynos5250-smdk5250.dtb | 26 | exynos5250-smdk5250.dtb |
27 | dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb | 27 | dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb |
28 | dtb-$(CONFIG_ARCH_IMX5) += imx51-babbage.dtb \ | ||
29 | imx53-ard.dtb \ | ||
30 | imx53-evk.dtb \ | ||
31 | imx53-qsb.dtb \ | ||
32 | imx53-smd.dtb | ||
33 | dtb-$(CONFIG_SOC_IMX6Q) += imx6q-arm2.dtb \ | ||
34 | imx6q-sabrelite.dtb \ | ||
35 | imx6q-sabresd.dtb | ||
36 | dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb | 28 | dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb |
37 | dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ | 29 | dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ |
38 | kirkwood-dns325.dtb \ | 30 | kirkwood-dns325.dtb \ |
@@ -76,7 +68,9 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ | |||
76 | omap4-pandaES.dtb \ | 68 | omap4-pandaES.dtb \ |
77 | omap4-var_som.dtb \ | 69 | omap4-var_som.dtb \ |
78 | omap4-sdp.dtb \ | 70 | omap4-sdp.dtb \ |
79 | omap5-evm.dtb | 71 | omap5-evm.dtb \ |
72 | am335x-evm.dtb \ | ||
73 | am335x-bone.dtb | ||
80 | dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb | 74 | dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb |
81 | dtb-$(CONFIG_ARCH_U8500) += snowball.dtb | 75 | dtb-$(CONFIG_ARCH_U8500) += snowball.dtb |
82 | dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ | 76 | dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ |
@@ -104,5 +98,8 @@ dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2p-ca5s.dtb \ | |||
104 | vexpress-v2p-ca15-tc1.dtb \ | 98 | vexpress-v2p-ca15-tc1.dtb \ |
105 | vexpress-v2p-ca15_a7.dtb \ | 99 | vexpress-v2p-ca15_a7.dtb \ |
106 | xenvm-4.2.dtb | 100 | xenvm-4.2.dtb |
101 | dtb-$(CONFIG_ARCH_VT8500) += vt8500-bv07.dtb \ | ||
102 | wm8505-ref.dtb \ | ||
103 | wm8650-mid.dtb | ||
107 | 104 | ||
108 | endif | 105 | endif |
diff --git a/arch/arm/boot/dts/omap4-panda.dts b/arch/arm/boot/dts/omap4-panda.dts index 20b966ee1bb3..e8f927cbb376 100644 --- a/arch/arm/boot/dts/omap4-panda.dts +++ b/arch/arm/boot/dts/omap4-panda.dts | |||
@@ -59,6 +59,41 @@ | |||
59 | }; | 59 | }; |
60 | }; | 60 | }; |
61 | 61 | ||
62 | &omap4_pmx_core { | ||
63 | pinctrl-names = "default"; | ||
64 | pinctrl-0 = < | ||
65 | &twl6040_pins | ||
66 | &mcpdm_pins | ||
67 | &mcbsp1_pins | ||
68 | >; | ||
69 | |||
70 | twl6040_pins: pinmux_twl6040_pins { | ||
71 | pinctrl-single,pins = < | ||
72 | 0xe0 0x3 /* hdq_sio.gpio_127 OUTPUT | MODE3 */ | ||
73 | 0x160 0x100 /* sys_nirq2.sys_nirq2 INPUT | MODE0 */ | ||
74 | >; | ||
75 | }; | ||
76 | |||
77 | mcpdm_pins: pinmux_mcpdm_pins { | ||
78 | pinctrl-single,pins = < | ||
79 | 0xc6 0x108 /* abe_pdm_ul_data.abe_pdm_ul_data INPUT PULLDOWN | MODE0 */ | ||
80 | 0xc8 0x108 /* abe_pdm_dl_data.abe_pdm_dl_data INPUT PULLDOWN | MODE0 */ | ||
81 | 0xca 0x118 /* abe_pdm_frame.abe_pdm_frame INPUT PULLUP | MODE0 */ | ||
82 | 0xcc 0x108 /* abe_pdm_lb_clk.abe_pdm_lb_clk INPUT PULLDOWN | MODE0 */ | ||
83 | 0xce 0x108 /* abe_clks.abe_clks INPUT PULLDOWN | MODE0 */ | ||
84 | >; | ||
85 | }; | ||
86 | |||
87 | mcbsp1_pins: pinmux_mcbsp1_pins { | ||
88 | pinctrl-single,pins = < | ||
89 | 0xbe 0x100 /* abe_mcbsp1_clkx.abe_mcbsp1_clkx INPUT | MODE0 */ | ||
90 | 0xc0 0x108 /* abe_mcbsp1_dr.abe_mcbsp1_dr INPUT PULLDOWN | MODE0 */ | ||
91 | 0xc2 0x8 /* abe_mcbsp1_dx.abe_mcbsp1_dx OUTPUT PULLDOWN | MODE0 */ | ||
92 | 0xc4 0x100 /* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */ | ||
93 | >; | ||
94 | }; | ||
95 | }; | ||
96 | |||
62 | &i2c1 { | 97 | &i2c1 { |
63 | clock-frequency = <400000>; | 98 | clock-frequency = <400000>; |
64 | 99 | ||
@@ -137,3 +172,15 @@ | |||
137 | cs1-used; | 172 | cs1-used; |
138 | device-handle = <&elpida_ECB240ABACN>; | 173 | device-handle = <&elpida_ECB240ABACN>; |
139 | }; | 174 | }; |
175 | |||
176 | &mcbsp2 { | ||
177 | status = "disabled"; | ||
178 | }; | ||
179 | |||
180 | &mcbsp3 { | ||
181 | status = "disabled"; | ||
182 | }; | ||
183 | |||
184 | &dmic { | ||
185 | status = "disabled"; | ||
186 | }; | ||
diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts index 94a23b39033d..5b7e04fbff50 100644 --- a/arch/arm/boot/dts/omap4-sdp.dts +++ b/arch/arm/boot/dts/omap4-sdp.dts | |||
@@ -117,6 +117,15 @@ | |||
117 | }; | 117 | }; |
118 | 118 | ||
119 | &omap4_pmx_core { | 119 | &omap4_pmx_core { |
120 | pinctrl-names = "default"; | ||
121 | pinctrl-0 = < | ||
122 | &twl6040_pins | ||
123 | &mcpdm_pins | ||
124 | &dmic_pins | ||
125 | &mcbsp1_pins | ||
126 | &mcbsp2_pins | ||
127 | >; | ||
128 | |||
120 | uart2_pins: pinmux_uart2_pins { | 129 | uart2_pins: pinmux_uart2_pins { |
121 | pinctrl-single,pins = < | 130 | pinctrl-single,pins = < |
122 | 0xd8 0x118 /* uart2_cts.uart2_cts INPUT_PULLUP | MODE0 */ | 131 | 0xd8 0x118 /* uart2_cts.uart2_cts INPUT_PULLUP | MODE0 */ |
@@ -141,6 +150,50 @@ | |||
141 | 0x11e 0 /* uart4_tx.uart4_tx OUTPUT | MODE0 */ | 150 | 0x11e 0 /* uart4_tx.uart4_tx OUTPUT | MODE0 */ |
142 | >; | 151 | >; |
143 | }; | 152 | }; |
153 | |||
154 | twl6040_pins: pinmux_twl6040_pins { | ||
155 | pinctrl-single,pins = < | ||
156 | 0xe0 0x3 /* hdq_sio.gpio_127 OUTPUT | MODE3 */ | ||
157 | 0x160 0x100 /* sys_nirq2.sys_nirq2 INPUT | MODE0 */ | ||
158 | >; | ||
159 | }; | ||
160 | |||
161 | mcpdm_pins: pinmux_mcpdm_pins { | ||
162 | pinctrl-single,pins = < | ||
163 | 0xc6 0x108 /* abe_pdm_ul_data.abe_pdm_ul_data INPUT PULLDOWN | MODE0 */ | ||
164 | 0xc8 0x108 /* abe_pdm_dl_data.abe_pdm_dl_data INPUT PULLDOWN | MODE0 */ | ||
165 | 0xca 0x118 /* abe_pdm_frame.abe_pdm_frame INPUT PULLUP | MODE0 */ | ||
166 | 0xcc 0x108 /* abe_pdm_lb_clk.abe_pdm_lb_clk INPUT PULLDOWN | MODE0 */ | ||
167 | 0xce 0x108 /* abe_clks.abe_clks INPUT PULLDOWN | MODE0 */ | ||
168 | >; | ||
169 | }; | ||
170 | |||
171 | dmic_pins: pinmux_dmic_pins { | ||
172 | pinctrl-single,pins = < | ||
173 | 0xd0 0 /* abe_dmic_clk1.abe_dmic_clk1 OUTPUT | MODE0 */ | ||
174 | 0xd2 0x100 /* abe_dmic_din1.abe_dmic_din1 INPUT | MODE0 */ | ||
175 | 0xd4 0x100 /* abe_dmic_din2.abe_dmic_din2 INPUT | MODE0 */ | ||
176 | 0xd6 0x100 /* abe_dmic_din3.abe_dmic_din3 INPUT | MODE0 */ | ||
177 | >; | ||
178 | }; | ||
179 | |||
180 | mcbsp1_pins: pinmux_mcbsp1_pins { | ||
181 | pinctrl-single,pins = < | ||
182 | 0xbe 0x100 /* abe_mcbsp1_clkx.abe_mcbsp1_clkx INPUT | MODE0 */ | ||
183 | 0xc0 0x108 /* abe_mcbsp1_dr.abe_mcbsp1_dr INPUT PULLDOWN | MODE0 */ | ||
184 | 0xc2 0x8 /* abe_mcbsp1_dx.abe_mcbsp1_dx OUTPUT PULLDOWN | MODE0 */ | ||
185 | 0xc4 0x100 /* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */ | ||
186 | >; | ||
187 | }; | ||
188 | |||
189 | mcbsp2_pins: pinmux_mcbsp2_pins { | ||
190 | pinctrl-single,pins = < | ||
191 | 0xb6 0x100 /* abe_mcbsp2_clkx.abe_mcbsp2_clkx INPUT | MODE0 */ | ||
192 | 0xb8 0x108 /* abe_mcbsp2_dr.abe_mcbsp2_dr INPUT PULLDOWN | MODE0 */ | ||
193 | 0xba 0x8 /* abe_mcbsp2_dx.abe_mcbsp2_dx OUTPUT PULLDOWN | MODE0 */ | ||
194 | 0xbc 0x100 /* abe_mcbsp2_fsx.abe_mcbsp2_fsx INPUT | MODE0 */ | ||
195 | >; | ||
196 | }; | ||
144 | }; | 197 | }; |
145 | 198 | ||
146 | &i2c1 { | 199 | &i2c1 { |
@@ -349,3 +402,7 @@ | |||
349 | pinctrl-names = "default"; | 402 | pinctrl-names = "default"; |
350 | pinctrl-0 = <&uart4_pins>; | 403 | pinctrl-0 = <&uart4_pins>; |
351 | }; | 404 | }; |
405 | |||
406 | &mcbsp3 { | ||
407 | status = "disabled"; | ||
408 | }; | ||
diff --git a/arch/arm/boot/dts/omap5-evm.dts b/arch/arm/boot/dts/omap5-evm.dts index 9c41a3f311aa..c663eba73168 100644 --- a/arch/arm/boot/dts/omap5-evm.dts +++ b/arch/arm/boot/dts/omap5-evm.dts | |||
@@ -27,6 +27,60 @@ | |||
27 | 27 | ||
28 | }; | 28 | }; |
29 | 29 | ||
30 | &omap5_pmx_core { | ||
31 | pinctrl-names = "default"; | ||
32 | pinctrl-0 = < | ||
33 | &twl6040_pins | ||
34 | &mcpdm_pins | ||
35 | &dmic_pins | ||
36 | &mcbsp1_pins | ||
37 | &mcbsp2_pins | ||
38 | >; | ||
39 | |||
40 | twl6040_pins: pinmux_twl6040_pins { | ||
41 | pinctrl-single,pins = < | ||
42 | 0x18a 0x6 /* perslimbus2_clock.gpio5_145 OUTPUT | MODE6 */ | ||
43 | >; | ||
44 | }; | ||
45 | |||
46 | mcpdm_pins: pinmux_mcpdm_pins { | ||
47 | pinctrl-single,pins = < | ||
48 | 0x142 0x108 /* abe_clks.abe_clks INPUT PULLDOWN | MODE0 */ | ||
49 | 0x15c 0x108 /* abemcpdm_ul_data.abemcpdm_ul_data INPUT PULLDOWN | MODE0 */ | ||
50 | 0x15e 0x108 /* abemcpdm_dl_data.abemcpdm_dl_data INPUT PULLDOWN | MODE0 */ | ||
51 | 0x160 0x118 /* abemcpdm_frame.abemcpdm_frame INPUT PULLUP | MODE0 */ | ||
52 | 0x162 0x108 /* abemcpdm_lb_clk.abemcpdm_lb_clk INPUT PULLDOWN | MODE0 */ | ||
53 | >; | ||
54 | }; | ||
55 | |||
56 | dmic_pins: pinmux_dmic_pins { | ||
57 | pinctrl-single,pins = < | ||
58 | 0x144 0x100 /* abedmic_din1.abedmic_din1 INPUT | MODE0 */ | ||
59 | 0x146 0x100 /* abedmic_din2.abedmic_din2 INPUT | MODE0 */ | ||
60 | 0x148 0x100 /* abedmic_din3.abedmic_din3 INPUT | MODE0 */ | ||
61 | 0x14a 0 /* abedmic_clk1.abedmic_clk1 OUTPUT | MODE0 */ | ||
62 | >; | ||
63 | }; | ||
64 | |||
65 | mcbsp1_pins: pinmux_mcbsp1_pins { | ||
66 | pinctrl-single,pins = < | ||
67 | 0x14c 0x101 /* abedmic_clk2.abemcbsp1_fsx INPUT | MODE1 */ | ||
68 | 0x14e 0x9 /* abedmic_clk3.abemcbsp1_dx OUTPUT PULLDOWN | MODE1 */ | ||
69 | 0x150 0x101 /* abeslimbus1_clock.abemcbsp1_clkx INPUT | MODE0 */ | ||
70 | 0x152 0x109 /* abeslimbus1_data.abemcbsp1_dr INPUT PULLDOWN | MODE1 */ | ||
71 | >; | ||
72 | }; | ||
73 | |||
74 | mcbsp2_pins: pinmux_mcbsp2_pins { | ||
75 | pinctrl-single,pins = < | ||
76 | 0x154 0x108 /* abemcbsp2_dr.abemcbsp2_dr INPUT PULLDOWN | MODE0 */ | ||
77 | 0x156 0x8 /* abemcbsp2_dx.abemcbsp2_dx OUTPUT PULLDOWN | MODE0 */ | ||
78 | 0x158 0x100 /* abemcbsp2_fsx.abemcbsp2_fsx INPUT | MODE0 */ | ||
79 | 0x15a 0x100 /* abemcbsp2_clkx.abemcbsp2_clkx INPUT | MODE0 */ | ||
80 | >; | ||
81 | }; | ||
82 | }; | ||
83 | |||
30 | &mmc1 { | 84 | &mmc1 { |
31 | vmmc-supply = <&vmmcsd_fixed>; | 85 | vmmc-supply = <&vmmcsd_fixed>; |
32 | bus-width = <4>; | 86 | bus-width = <4>; |
@@ -82,3 +136,7 @@ | |||
82 | 0x020700d9>; /* SEARCH */ | 136 | 0x020700d9>; /* SEARCH */ |
83 | linux,input-no-autorepeat; | 137 | linux,input-no-autorepeat; |
84 | }; | 138 | }; |
139 | |||
140 | &mcbsp3 { | ||
141 | status = "disabled"; | ||
142 | }; | ||
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi index 5db33f481a33..42c78beb4fdc 100644 --- a/arch/arm/boot/dts/omap5.dtsi +++ b/arch/arm/boot/dts/omap5.dtsi | |||
@@ -77,6 +77,23 @@ | |||
77 | ranges; | 77 | ranges; |
78 | ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3"; | 78 | ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3"; |
79 | 79 | ||
80 | omap5_pmx_core: pinmux@4a002840 { | ||
81 | compatible = "ti,omap4-padconf", "pinctrl-single"; | ||
82 | reg = <0x4a002840 0x01b6>; | ||
83 | #address-cells = <1>; | ||
84 | #size-cells = <0>; | ||
85 | pinctrl-single,register-width = <16>; | ||
86 | pinctrl-single,function-mask = <0x7fff>; | ||
87 | }; | ||
88 | omap5_pmx_wkup: pinmux@4ae0c840 { | ||
89 | compatible = "ti,omap4-padconf", "pinctrl-single"; | ||
90 | reg = <0x4ae0c840 0x0038>; | ||
91 | #address-cells = <1>; | ||
92 | #size-cells = <0>; | ||
93 | pinctrl-single,register-width = <16>; | ||
94 | pinctrl-single,function-mask = <0x7fff>; | ||
95 | }; | ||
96 | |||
80 | gic: interrupt-controller@48211000 { | 97 | gic: interrupt-controller@48211000 { |
81 | compatible = "arm,cortex-a15-gic"; | 98 | compatible = "arm,cortex-a15-gic"; |
82 | interrupt-controller; | 99 | interrupt-controller; |
diff --git a/arch/arm/boot/dts/tegra20-seaboard.dts b/arch/arm/boot/dts/tegra20-seaboard.dts index e60dc7124e92..f0ba901676ac 100644 --- a/arch/arm/boot/dts/tegra20-seaboard.dts +++ b/arch/arm/boot/dts/tegra20-seaboard.dts | |||
@@ -539,7 +539,7 @@ | |||
539 | nvidia,invert-interrupt; | 539 | nvidia,invert-interrupt; |
540 | }; | 540 | }; |
541 | 541 | ||
542 | memory-controller@0x7000f400 { | 542 | memory-controller@7000f400 { |
543 | emc-table@190000 { | 543 | emc-table@190000 { |
544 | reg = <190000>; | 544 | reg = <190000>; |
545 | compatible = "nvidia,tegra20-emc-table"; | 545 | compatible = "nvidia,tegra20-emc-table"; |
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi index 67a6cd910b96..f3a09d0d45bc 100644 --- a/arch/arm/boot/dts/tegra20.dtsi +++ b/arch/arm/boot/dts/tegra20.dtsi | |||
@@ -170,7 +170,7 @@ | |||
170 | reg = <0x7000e400 0x400>; | 170 | reg = <0x7000e400 0x400>; |
171 | }; | 171 | }; |
172 | 172 | ||
173 | memory-controller@0x7000f000 { | 173 | memory-controller@7000f000 { |
174 | compatible = "nvidia,tegra20-mc"; | 174 | compatible = "nvidia,tegra20-mc"; |
175 | reg = <0x7000f000 0x024 | 175 | reg = <0x7000f000 0x024 |
176 | 0x7000f03c 0x3c4>; | 176 | 0x7000f03c 0x3c4>; |
@@ -183,7 +183,7 @@ | |||
183 | 0x58000000 0x02000000>; /* GART aperture */ | 183 | 0x58000000 0x02000000>; /* GART aperture */ |
184 | }; | 184 | }; |
185 | 185 | ||
186 | memory-controller@0x7000f400 { | 186 | memory-controller@7000f400 { |
187 | compatible = "nvidia,tegra20-emc"; | 187 | compatible = "nvidia,tegra20-emc"; |
188 | reg = <0x7000f400 0x200>; | 188 | reg = <0x7000f400 0x200>; |
189 | #address-cells = <1>; | 189 | #address-cells = <1>; |
diff --git a/arch/arm/common/it8152.c b/arch/arm/common/it8152.c index c4110d1b1f2d..001f4913799c 100644 --- a/arch/arm/common/it8152.c +++ b/arch/arm/common/it8152.c | |||
@@ -284,11 +284,17 @@ int dma_set_coherent_mask(struct device *dev, u64 mask) | |||
284 | 284 | ||
285 | int __init it8152_pci_setup(int nr, struct pci_sys_data *sys) | 285 | int __init it8152_pci_setup(int nr, struct pci_sys_data *sys) |
286 | { | 286 | { |
287 | it8152_io.start = IT8152_IO_BASE + 0x12000; | 287 | /* |
288 | it8152_io.end = IT8152_IO_BASE + 0x12000 + 0x100000; | 288 | * FIXME: use pci_ioremap_io to remap the IO space here and |
289 | * move over to the generic io.h implementation. | ||
290 | * This requires solving the same problem for PXA PCMCIA | ||
291 | * support. | ||
292 | */ | ||
293 | it8152_io.start = (unsigned long)IT8152_IO_BASE + 0x12000; | ||
294 | it8152_io.end = (unsigned long)IT8152_IO_BASE + 0x12000 + 0x100000; | ||
289 | 295 | ||
290 | sys->mem_offset = 0x10000000; | 296 | sys->mem_offset = 0x10000000; |
291 | sys->io_offset = IT8152_IO_BASE; | 297 | sys->io_offset = (unsigned long)IT8152_IO_BASE; |
292 | 298 | ||
293 | if (request_resource(&ioport_resource, &it8152_io)) { | 299 | if (request_resource(&ioport_resource, &it8152_io)) { |
294 | printk(KERN_ERR "PCI: unable to allocate IO region\n"); | 300 | printk(KERN_ERR "PCI: unable to allocate IO region\n"); |
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c index 2c2d86505a54..5315f05896e9 100644 --- a/arch/arm/mach-at91/pm.c +++ b/arch/arm/mach-at91/pm.c | |||
@@ -153,7 +153,9 @@ static int at91_pm_verify_clocks(void) | |||
153 | } | 153 | } |
154 | } | 154 | } |
155 | 155 | ||
156 | #ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS | 156 | if (!IS_ENABLED(CONFIG_AT91_PROGRAMMABLE_CLOCKS)) |
157 | return 1; | ||
158 | |||
157 | /* PCK0..PCK3 must be disabled, or configured to use clk32k */ | 159 | /* PCK0..PCK3 must be disabled, or configured to use clk32k */ |
158 | for (i = 0; i < 4; i++) { | 160 | for (i = 0; i < 4; i++) { |
159 | u32 css; | 161 | u32 css; |
@@ -167,7 +169,6 @@ static int at91_pm_verify_clocks(void) | |||
167 | return 0; | 169 | return 0; |
168 | } | 170 | } |
169 | } | 171 | } |
170 | #endif | ||
171 | 172 | ||
172 | return 1; | 173 | return 1; |
173 | } | 174 | } |
diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c index e6f52de1062f..da9881b161e1 100644 --- a/arch/arm/mach-at91/setup.c +++ b/arch/arm/mach-at91/setup.c | |||
@@ -87,7 +87,7 @@ void __init at91_init_sram(int bank, unsigned long base, unsigned int length) | |||
87 | iotable_init(desc, 1); | 87 | iotable_init(desc, 1); |
88 | } | 88 | } |
89 | 89 | ||
90 | static struct map_desc at91_io_desc __initdata = { | 90 | static struct map_desc at91_io_desc __initdata __maybe_unused = { |
91 | .virtual = (unsigned long)AT91_VA_BASE_SYS, | 91 | .virtual = (unsigned long)AT91_VA_BASE_SYS, |
92 | .pfn = __phys_to_pfn(AT91_BASE_SYS), | 92 | .pfn = __phys_to_pfn(AT91_BASE_SYS), |
93 | .length = SZ_16K, | 93 | .length = SZ_16K, |
diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c index 6676dee7104e..e517e1036b09 100644 --- a/arch/arm/mach-davinci/da850.c +++ b/arch/arm/mach-davinci/da850.c | |||
@@ -939,7 +939,7 @@ static struct platform_device da850_cpufreq_device = { | |||
939 | 939 | ||
940 | unsigned int da850_max_speed = 300000; | 940 | unsigned int da850_max_speed = 300000; |
941 | 941 | ||
942 | int __init da850_register_cpufreq(char *async_clk) | 942 | int da850_register_cpufreq(char *async_clk) |
943 | { | 943 | { |
944 | int i; | 944 | int i; |
945 | 945 | ||
diff --git a/arch/arm/mach-footbridge/include/mach/irqs.h b/arch/arm/mach-footbridge/include/mach/irqs.h index 400551e43e4e..61c714c4920e 100644 --- a/arch/arm/mach-footbridge/include/mach/irqs.h +++ b/arch/arm/mach-footbridge/include/mach/irqs.h | |||
@@ -89,8 +89,6 @@ | |||
89 | #define IRQ_NETWINDER_VGA _ISA_IRQ(11) | 89 | #define IRQ_NETWINDER_VGA _ISA_IRQ(11) |
90 | #define IRQ_NETWINDER_SOUND _ISA_IRQ(12) | 90 | #define IRQ_NETWINDER_SOUND _ISA_IRQ(12) |
91 | 91 | ||
92 | #undef RTC_IRQ | ||
93 | #define RTC_IRQ IRQ_ISA_RTC_ALARM | ||
94 | #define I8042_KBD_IRQ IRQ_ISA_KEYBOARD | 92 | #define I8042_KBD_IRQ IRQ_ISA_KEYBOARD |
95 | #define I8042_AUX_IRQ (machine_is_netwinder() ? IRQ_NETWINDER_PS2MOUSE : IRQ_ISA_PS2MOUSE) | 93 | #define I8042_AUX_IRQ (machine_is_netwinder() ? IRQ_NETWINDER_PS2MOUSE : IRQ_ISA_PS2MOUSE) |
96 | #define IRQ_FLOPPYDISK IRQ_ISA_FLOPPY | 94 | #define IRQ_FLOPPYDISK IRQ_ISA_FLOPPY |
diff --git a/arch/arm/mach-integrator/include/mach/cm.h b/arch/arm/mach-integrator/include/mach/cm.h index 1a78692e32a4..202e6a57f100 100644 --- a/arch/arm/mach-integrator/include/mach/cm.h +++ b/arch/arm/mach-integrator/include/mach/cm.h | |||
@@ -3,7 +3,7 @@ | |||
3 | */ | 3 | */ |
4 | void cm_control(u32, u32); | 4 | void cm_control(u32, u32); |
5 | 5 | ||
6 | #define CM_CTRL IO_ADDRESS(INTEGRATOR_HDR_CTRL) | 6 | #define CM_CTRL __io_address(INTEGRATOR_HDR_CTRL) |
7 | 7 | ||
8 | #define CM_CTRL_LED (1 << 0) | 8 | #define CM_CTRL_LED (1 << 0) |
9 | #define CM_CTRL_nMBDET (1 << 1) | 9 | #define CM_CTRL_nMBDET (1 << 1) |
diff --git a/arch/arm/mach-integrator/include/mach/platform.h b/arch/arm/mach-integrator/include/mach/platform.h index 4c0347526851..efeac5d0bc9e 100644 --- a/arch/arm/mach-integrator/include/mach/platform.h +++ b/arch/arm/mach-integrator/include/mach/platform.h | |||
@@ -324,9 +324,9 @@ | |||
324 | */ | 324 | */ |
325 | #define PHYS_PCI_V3_BASE 0x62000000 | 325 | #define PHYS_PCI_V3_BASE 0x62000000 |
326 | 326 | ||
327 | #define PCI_MEMORY_VADDR 0xe8000000 | 327 | #define PCI_MEMORY_VADDR IOMEM(0xe8000000) |
328 | #define PCI_CONFIG_VADDR 0xec000000 | 328 | #define PCI_CONFIG_VADDR IOMEM(0xec000000) |
329 | #define PCI_V3_VADDR 0xed000000 | 329 | #define PCI_V3_VADDR IOMEM(0xed000000) |
330 | 330 | ||
331 | /* ------------------------------------------------------------------------ | 331 | /* ------------------------------------------------------------------------ |
332 | * Integrator Interrupt Controllers | 332 | * Integrator Interrupt Controllers |
diff --git a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c index d5b5435a09ae..e6617c134faf 100644 --- a/arch/arm/mach-integrator/integrator_ap.c +++ b/arch/arm/mach-integrator/integrator_ap.c | |||
@@ -157,7 +157,7 @@ static struct map_desc ap_io_desc[] __initdata = { | |||
157 | static void __init ap_map_io(void) | 157 | static void __init ap_map_io(void) |
158 | { | 158 | { |
159 | iotable_init(ap_io_desc, ARRAY_SIZE(ap_io_desc)); | 159 | iotable_init(ap_io_desc, ARRAY_SIZE(ap_io_desc)); |
160 | vga_base = PCI_MEMORY_VADDR; | 160 | vga_base = (unsigned long)PCI_MEMORY_VADDR; |
161 | pci_map_io_early(__phys_to_pfn(PHYS_PCI_IO_BASE)); | 161 | pci_map_io_early(__phys_to_pfn(PHYS_PCI_IO_BASE)); |
162 | } | 162 | } |
163 | 163 | ||
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c index 6870a1fbcd78..5b08e8e4cc83 100644 --- a/arch/arm/mach-integrator/integrator_cp.c +++ b/arch/arm/mach-integrator/integrator_cp.c | |||
@@ -261,6 +261,8 @@ static void __init intcp_init_early(void) | |||
261 | #endif | 261 | #endif |
262 | } | 262 | } |
263 | 263 | ||
264 | #ifdef CONFIG_OF | ||
265 | |||
264 | static void __init intcp_timer_init_of(void) | 266 | static void __init intcp_timer_init_of(void) |
265 | { | 267 | { |
266 | struct device_node *node; | 268 | struct device_node *node; |
@@ -297,8 +299,6 @@ static struct sys_timer cp_of_timer = { | |||
297 | .init = intcp_timer_init_of, | 299 | .init = intcp_timer_init_of, |
298 | }; | 300 | }; |
299 | 301 | ||
300 | #ifdef CONFIG_OF | ||
301 | |||
302 | static const struct of_device_id fpga_irq_of_match[] __initconst = { | 302 | static const struct of_device_id fpga_irq_of_match[] __initconst = { |
303 | { .compatible = "arm,versatile-fpga-irq", .data = fpga_irq_of_init, }, | 303 | { .compatible = "arm,versatile-fpga-irq", .data = fpga_irq_of_init, }, |
304 | { /* Sentinel */ } | 304 | { /* Sentinel */ } |
diff --git a/arch/arm/mach-iop13xx/iq81340sc.c b/arch/arm/mach-iop13xx/iq81340sc.c index 060cddde2fd4..e94744111634 100644 --- a/arch/arm/mach-iop13xx/iq81340sc.c +++ b/arch/arm/mach-iop13xx/iq81340sc.c | |||
@@ -30,7 +30,7 @@ | |||
30 | extern int init_atu; | 30 | extern int init_atu; |
31 | 31 | ||
32 | static int __init | 32 | static int __init |
33 | iq81340sc_atux_map_irq(struct pci_dev *dev, u8 idsel, u8 pin) | 33 | iq81340sc_atux_map_irq(const struct pci_dev *dev, u8 idsel, u8 pin) |
34 | { | 34 | { |
35 | WARN_ON(idsel < 1 || idsel > 2); | 35 | WARN_ON(idsel < 1 || idsel > 2); |
36 | 36 | ||
diff --git a/arch/arm/mach-iop13xx/pci.c b/arch/arm/mach-iop13xx/pci.c index 9082b84aeebb..2f28018c4447 100644 --- a/arch/arm/mach-iop13xx/pci.c +++ b/arch/arm/mach-iop13xx/pci.c | |||
@@ -504,7 +504,7 @@ iop13xx_pci_abort(unsigned long addr, unsigned int fsr, struct pt_regs *regs) | |||
504 | 504 | ||
505 | /* Scan an IOP13XX PCI bus. nr selects which ATU we use. | 505 | /* Scan an IOP13XX PCI bus. nr selects which ATU we use. |
506 | */ | 506 | */ |
507 | struct pci_bus *iop13xx_scan_bus(int nr, struct pci_sys_data *sys) | 507 | struct pci_bus * __devinit iop13xx_scan_bus(int nr, struct pci_sys_data *sys) |
508 | { | 508 | { |
509 | int which_atu; | 509 | int which_atu; |
510 | struct pci_bus *bus = NULL; | 510 | struct pci_bus *bus = NULL; |
diff --git a/arch/arm/mach-ks8695/include/mach/memory.h b/arch/arm/mach-ks8695/include/mach/memory.h index f7e1b9bce345..95e731a7ed6a 100644 --- a/arch/arm/mach-ks8695/include/mach/memory.h +++ b/arch/arm/mach-ks8695/include/mach/memory.h | |||
@@ -34,7 +34,8 @@ extern struct bus_type platform_bus_type; | |||
34 | #define __arch_dma_to_virt(dev, x) ({ (void *) (is_lbus_device(dev) ? \ | 34 | #define __arch_dma_to_virt(dev, x) ({ (void *) (is_lbus_device(dev) ? \ |
35 | __phys_to_virt(x) : __bus_to_virt(x)); }) | 35 | __phys_to_virt(x) : __bus_to_virt(x)); }) |
36 | #define __arch_virt_to_dma(dev, x) ({ is_lbus_device(dev) ? \ | 36 | #define __arch_virt_to_dma(dev, x) ({ is_lbus_device(dev) ? \ |
37 | (dma_addr_t)__virt_to_phys(x) : (dma_addr_t)__virt_to_bus(x); }) | 37 | (dma_addr_t)__virt_to_phys((unsigned long)x) \ |
38 | : (dma_addr_t)__virt_to_bus(x); }) | ||
38 | #define __arch_pfn_to_dma(dev, pfn) \ | 39 | #define __arch_pfn_to_dma(dev, pfn) \ |
39 | ({ dma_addr_t __dma = __pfn_to_phys(pfn); \ | 40 | ({ dma_addr_t __dma = __pfn_to_phys(pfn); \ |
40 | if (!is_lbus_device(dev)) \ | 41 | if (!is_lbus_device(dev)) \ |
diff --git a/arch/arm/mach-mv78xx0/addr-map.c b/arch/arm/mach-mv78xx0/addr-map.c index 343c435b4176..26e9876b50e9 100644 --- a/arch/arm/mach-mv78xx0/addr-map.c +++ b/arch/arm/mach-mv78xx0/addr-map.c | |||
@@ -54,7 +54,7 @@ static void __init __iomem *win_cfg_base(const struct orion_addr_map_cfg *cfg, i | |||
54 | /* | 54 | /* |
55 | * Description of the windows needed by the platform code | 55 | * Description of the windows needed by the platform code |
56 | */ | 56 | */ |
57 | static struct __initdata orion_addr_map_cfg addr_map_cfg = { | 57 | static struct orion_addr_map_cfg addr_map_cfg __initdata = { |
58 | .num_wins = 14, | 58 | .num_wins = 14, |
59 | .remappable_wins = 8, | 59 | .remappable_wins = 8, |
60 | .win_cfg_base = win_cfg_base, | 60 | .win_cfg_base = win_cfg_base, |
diff --git a/arch/arm/mach-mv78xx0/common.c b/arch/arm/mach-mv78xx0/common.c index 131cd4883f3d..d0cb4857b4b3 100644 --- a/arch/arm/mach-mv78xx0/common.c +++ b/arch/arm/mach-mv78xx0/common.c | |||
@@ -336,7 +336,7 @@ void __init mv78xx0_init_early(void) | |||
336 | orion_time_set_base(TIMER_VIRT_BASE); | 336 | orion_time_set_base(TIMER_VIRT_BASE); |
337 | } | 337 | } |
338 | 338 | ||
339 | static void mv78xx0_timer_init(void) | 339 | static void __init_refok mv78xx0_timer_init(void) |
340 | { | 340 | { |
341 | orion_time_init(BRIDGE_VIRT_BASE, BRIDGE_INT_TIMER1_CLR, | 341 | orion_time_init(BRIDGE_VIRT_BASE, BRIDGE_INT_TIMER1_CLR, |
342 | IRQ_MV78XX0_TIMER_1, get_tclk()); | 342 | IRQ_MV78XX0_TIMER_1, get_tclk()); |
diff --git a/arch/arm/mach-omap1/devices.c b/arch/arm/mach-omap1/devices.c index 726c02c9c0cd..d3fec92c54cb 100644 --- a/arch/arm/mach-omap1/devices.c +++ b/arch/arm/mach-omap1/devices.c | |||
@@ -231,7 +231,7 @@ void __init omap1_init_mmc(struct omap_mmc_platform_data **mmc_data, | |||
231 | 231 | ||
232 | omap_mmc_add("mmci-omap", i, base, size, irq, | 232 | omap_mmc_add("mmci-omap", i, base, size, irq, |
233 | rx_req, tx_req, mmc_data[i]); | 233 | rx_req, tx_req, mmc_data[i]); |
234 | }; | 234 | } |
235 | } | 235 | } |
236 | 236 | ||
237 | #endif | 237 | #endif |
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index a88809a59ea9..5ff28afbefe7 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c | |||
@@ -830,6 +830,32 @@ static struct omap_board_mux board_mux[] __initdata = { | |||
830 | /* NIRQ2 for twl6040 */ | 830 | /* NIRQ2 for twl6040 */ |
831 | OMAP4_MUX(SYS_NIRQ2, OMAP_MUX_MODE0 | | 831 | OMAP4_MUX(SYS_NIRQ2, OMAP_MUX_MODE0 | |
832 | OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE), | 832 | OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE), |
833 | /* GPIO_127 for twl6040 */ | ||
834 | OMAP4_MUX(HDQ_SIO, OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT), | ||
835 | /* McPDM */ | ||
836 | OMAP4_MUX(ABE_PDM_UL_DATA, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN), | ||
837 | OMAP4_MUX(ABE_PDM_DL_DATA, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN), | ||
838 | OMAP4_MUX(ABE_PDM_FRAME, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP), | ||
839 | OMAP4_MUX(ABE_PDM_LB_CLK, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN), | ||
840 | OMAP4_MUX(ABE_CLKS, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN), | ||
841 | /* DMIC */ | ||
842 | OMAP4_MUX(ABE_DMIC_CLK1, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
843 | OMAP4_MUX(ABE_DMIC_DIN1, OMAP_MUX_MODE0 | OMAP_PIN_INPUT), | ||
844 | OMAP4_MUX(ABE_DMIC_DIN2, OMAP_MUX_MODE0 | OMAP_PIN_INPUT), | ||
845 | OMAP4_MUX(ABE_DMIC_DIN3, OMAP_MUX_MODE0 | OMAP_PIN_INPUT), | ||
846 | /* McBSP1 */ | ||
847 | OMAP4_MUX(ABE_MCBSP1_CLKX, OMAP_MUX_MODE0 | OMAP_PIN_INPUT), | ||
848 | OMAP4_MUX(ABE_MCBSP1_DR, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN), | ||
849 | OMAP4_MUX(ABE_MCBSP1_DX, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT | | ||
850 | OMAP_PULL_ENA), | ||
851 | OMAP4_MUX(ABE_MCBSP1_FSX, OMAP_MUX_MODE0 | OMAP_PIN_INPUT), | ||
852 | /* McBSP2 */ | ||
853 | OMAP4_MUX(ABE_MCBSP2_CLKX, OMAP_MUX_MODE0 | OMAP_PIN_INPUT), | ||
854 | OMAP4_MUX(ABE_MCBSP2_DR, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN), | ||
855 | OMAP4_MUX(ABE_MCBSP2_DX, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT | | ||
856 | OMAP_PULL_ENA), | ||
857 | OMAP4_MUX(ABE_MCBSP2_FSX, OMAP_MUX_MODE0 | OMAP_PIN_INPUT), | ||
858 | |||
833 | { .reg_offset = OMAP_MUX_TERMINATOR }, | 859 | { .reg_offset = OMAP_MUX_TERMINATOR }, |
834 | }; | 860 | }; |
835 | 861 | ||
diff --git a/arch/arm/mach-omap2/board-flash.c b/arch/arm/mach-omap2/board-flash.c index 0cabe61cd507..e642acf9cad0 100644 --- a/arch/arm/mach-omap2/board-flash.c +++ b/arch/arm/mach-omap2/board-flash.c | |||
@@ -218,7 +218,7 @@ void __init board_flash_init(struct flash_partitions partition_info[], | |||
218 | if (onenandcs > GPMC_CS_NUM) | 218 | if (onenandcs > GPMC_CS_NUM) |
219 | onenandcs = cs; | 219 | onenandcs = cs; |
220 | break; | 220 | break; |
221 | }; | 221 | } |
222 | cs++; | 222 | cs++; |
223 | } | 223 | } |
224 | 224 | ||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index a08bebc94ec5..388c431c745a 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c | |||
@@ -461,7 +461,7 @@ static void __init beagle_opp_init(void) | |||
461 | mpu_dev = omap_device_get_by_hwmod_name("mpu"); | 461 | mpu_dev = omap_device_get_by_hwmod_name("mpu"); |
462 | iva_dev = omap_device_get_by_hwmod_name("iva"); | 462 | iva_dev = omap_device_get_by_hwmod_name("iva"); |
463 | 463 | ||
464 | if (!mpu_dev || !iva_dev) { | 464 | if (IS_ERR(mpu_dev) || IS_ERR(iva_dev)) { |
465 | pr_err("%s: Aiee.. no mpu/dsp devices? %p %p\n", | 465 | pr_err("%s: Aiee.. no mpu/dsp devices? %p %p\n", |
466 | __func__, mpu_dev, iva_dev); | 466 | __func__, mpu_dev, iva_dev); |
467 | return; | 467 | return; |
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c index a3959de85e05..b9b776b6c954 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c | |||
@@ -88,11 +88,10 @@ enum { | |||
88 | 88 | ||
89 | static u8 omap3_evm_version; | 89 | static u8 omap3_evm_version; |
90 | 90 | ||
91 | u8 get_omap3_evm_rev(void) | 91 | static u8 get_omap3_evm_rev(void) |
92 | { | 92 | { |
93 | return omap3_evm_version; | 93 | return omap3_evm_version; |
94 | } | 94 | } |
95 | EXPORT_SYMBOL(get_omap3_evm_rev); | ||
96 | 95 | ||
97 | static void __init omap3_evm_get_revision(void) | 96 | static void __init omap3_evm_get_revision(void) |
98 | { | 97 | { |
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c index c7f3d026e6d4..731235eb319e 100644 --- a/arch/arm/mach-omap2/board-omap3stalker.c +++ b/arch/arm/mach-omap2/board-omap3stalker.c | |||
@@ -48,11 +48,6 @@ | |||
48 | #include <video/omap-panel-tfp410.h> | 48 | #include <video/omap-panel-tfp410.h> |
49 | 49 | ||
50 | #include <linux/platform_data/spi-omap2-mcspi.h> | 50 | #include <linux/platform_data/spi-omap2-mcspi.h> |
51 | #include <linux/input/matrix_keypad.h> | ||
52 | #include <linux/spi/spi.h> | ||
53 | #include <linux/interrupt.h> | ||
54 | #include <linux/smsc911x.h> | ||
55 | #include <linux/i2c/at24.h> | ||
56 | 51 | ||
57 | #include "sdram-micron-mt46h32m32lf-6.h" | 52 | #include "sdram-micron-mt46h32m32lf-6.h" |
58 | #include "mux.h" | 53 | #include "mux.h" |
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index 2b012f9d6925..f62b903f3ea1 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c | |||
@@ -247,8 +247,7 @@ static struct platform_device omap_vwlan_device = { | |||
247 | }; | 247 | }; |
248 | 248 | ||
249 | static struct wl12xx_platform_data omap_panda_wlan_data __initdata = { | 249 | static struct wl12xx_platform_data omap_panda_wlan_data __initdata = { |
250 | /* PANDA ref clock is 38.4 MHz */ | 250 | .board_ref_clock = WL12XX_REFCLOCK_38, /* 38.4 MHz */ |
251 | .board_ref_clock = 2, | ||
252 | }; | 251 | }; |
253 | 252 | ||
254 | static struct twl6040_codec_data twl6040_codec = { | 253 | static struct twl6040_codec_data twl6040_codec = { |
@@ -388,6 +387,21 @@ static struct omap_board_mux board_mux[] __initdata = { | |||
388 | /* NIRQ2 for twl6040 */ | 387 | /* NIRQ2 for twl6040 */ |
389 | OMAP4_MUX(SYS_NIRQ2, OMAP_MUX_MODE0 | | 388 | OMAP4_MUX(SYS_NIRQ2, OMAP_MUX_MODE0 | |
390 | OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE), | 389 | OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE), |
390 | /* GPIO_127 for twl6040 */ | ||
391 | OMAP4_MUX(HDQ_SIO, OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT), | ||
392 | /* McPDM */ | ||
393 | OMAP4_MUX(ABE_PDM_UL_DATA, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN), | ||
394 | OMAP4_MUX(ABE_PDM_DL_DATA, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN), | ||
395 | OMAP4_MUX(ABE_PDM_FRAME, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP), | ||
396 | OMAP4_MUX(ABE_PDM_LB_CLK, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN), | ||
397 | OMAP4_MUX(ABE_CLKS, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN), | ||
398 | /* McBSP1 */ | ||
399 | OMAP4_MUX(ABE_MCBSP1_CLKX, OMAP_MUX_MODE0 | OMAP_PIN_INPUT), | ||
400 | OMAP4_MUX(ABE_MCBSP1_DR, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN), | ||
401 | OMAP4_MUX(ABE_MCBSP1_DX, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT | | ||
402 | OMAP_PULL_ENA), | ||
403 | OMAP4_MUX(ABE_MCBSP1_FSX, OMAP_MUX_MODE0 | OMAP_PIN_INPUT), | ||
404 | |||
391 | { .reg_offset = OMAP_MUX_TERMINATOR }, | 405 | { .reg_offset = OMAP_MUX_TERMINATOR }, |
392 | }; | 406 | }; |
393 | 407 | ||
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c index ed85fb898c7f..020e03c95bfe 100644 --- a/arch/arm/mach-omap2/board-rx51-peripherals.c +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c | |||
@@ -748,7 +748,7 @@ static struct radio_si4713_platform_data rx51_si4713_data __initdata_or_module = | |||
748 | .subdev_board_info = &rx51_si4713_board_info, | 748 | .subdev_board_info = &rx51_si4713_board_info, |
749 | }; | 749 | }; |
750 | 750 | ||
751 | static struct platform_device rx51_si4713_dev = { | 751 | static struct platform_device rx51_si4713_dev __initdata_or_module = { |
752 | .name = "radio-si4713", | 752 | .name = "radio-si4713", |
753 | .id = -1, | 753 | .id = -1, |
754 | .dev = { | 754 | .dev = { |
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c index 67f8540c8e07..c166fe1fdff9 100644 --- a/arch/arm/mach-omap2/board-zoom-peripherals.c +++ b/arch/arm/mach-omap2/board-zoom-peripherals.c | |||
@@ -195,8 +195,7 @@ static struct platform_device omap_vwlan_device = { | |||
195 | }; | 195 | }; |
196 | 196 | ||
197 | static struct wl12xx_platform_data omap_zoom_wlan_data __initdata = { | 197 | static struct wl12xx_platform_data omap_zoom_wlan_data __initdata = { |
198 | /* ZOOM ref clock is 26 MHz */ | 198 | .board_ref_clock = WL12XX_REFCLOCK_26, /* 26 MHz */ |
199 | .board_ref_clock = 1, | ||
200 | }; | 199 | }; |
201 | 200 | ||
202 | static struct omap2_hsmmc_info mmc[] = { | 201 | static struct omap2_hsmmc_info mmc[] = { |
diff --git a/arch/arm/mach-omap2/clkt_clksel.c b/arch/arm/mach-omap2/clkt_clksel.c index eaed3900a83c..3ff22114d702 100644 --- a/arch/arm/mach-omap2/clkt_clksel.c +++ b/arch/arm/mach-omap2/clkt_clksel.c | |||
@@ -382,7 +382,7 @@ void omap2_init_clksel_parent(struct clk *clk) | |||
382 | __clk_get_name(parent) : | 382 | __clk_get_name(parent) : |
383 | "NULL")); | 383 | "NULL")); |
384 | clk_reparent(clk, clks->parent); | 384 | clk_reparent(clk, clks->parent); |
385 | }; | 385 | } |
386 | found = 1; | 386 | found = 1; |
387 | } | 387 | } |
388 | } | 388 | } |
diff --git a/arch/arm/mach-omap2/clock33xx_data.c b/arch/arm/mach-omap2/clock33xx_data.c index b87b88c2638b..114ab4b8e0e3 100644 --- a/arch/arm/mach-omap2/clock33xx_data.c +++ b/arch/arm/mach-omap2/clock33xx_data.c | |||
@@ -1035,6 +1035,8 @@ static struct omap_clk am33xx_clks[] = { | |||
1035 | CLK(NULL, "pruss_ocp_gclk", &pruss_ocp_gclk, CK_AM33XX), | 1035 | CLK(NULL, "pruss_ocp_gclk", &pruss_ocp_gclk, CK_AM33XX), |
1036 | CLK("davinci-mcasp.0", NULL, &mcasp0_fck, CK_AM33XX), | 1036 | CLK("davinci-mcasp.0", NULL, &mcasp0_fck, CK_AM33XX), |
1037 | CLK("davinci-mcasp.1", NULL, &mcasp1_fck, CK_AM33XX), | 1037 | CLK("davinci-mcasp.1", NULL, &mcasp1_fck, CK_AM33XX), |
1038 | CLK(NULL, "mcasp0_fck", &mcasp0_fck, CK_AM33XX), | ||
1039 | CLK(NULL, "mcasp1_fck", &mcasp1_fck, CK_AM33XX), | ||
1038 | CLK("NULL", "mmc2_fck", &mmc2_fck, CK_AM33XX), | 1040 | CLK("NULL", "mmc2_fck", &mmc2_fck, CK_AM33XX), |
1039 | CLK(NULL, "mmu_fck", &mmu_fck, CK_AM33XX), | 1041 | CLK(NULL, "mmu_fck", &mmu_fck, CK_AM33XX), |
1040 | CLK(NULL, "smartreflex0_fck", &smartreflex0_fck, CK_AM33XX), | 1042 | CLK(NULL, "smartreflex0_fck", &smartreflex0_fck, CK_AM33XX), |
diff --git a/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c b/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c index 9a7792aec673..70294f54e35a 100644 --- a/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c +++ b/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c | |||
@@ -183,17 +183,6 @@ static int omap2_clkdm_clk_enable(struct clockdomain *clkdm) | |||
183 | if (!clkdm->clktrctrl_mask) | 183 | if (!clkdm->clktrctrl_mask) |
184 | return 0; | 184 | return 0; |
185 | 185 | ||
186 | /* | ||
187 | * The CLKDM_MISSING_IDLE_REPORTING flag documentation has | ||
188 | * more details on the unpleasant problem this is working | ||
189 | * around | ||
190 | */ | ||
191 | if (clkdm->flags & CLKDM_MISSING_IDLE_REPORTING && | ||
192 | !(clkdm->flags & CLKDM_CAN_FORCE_SLEEP)) { | ||
193 | _enable_hwsup(clkdm); | ||
194 | return 0; | ||
195 | } | ||
196 | |||
197 | hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, | 186 | hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, |
198 | clkdm->clktrctrl_mask); | 187 | clkdm->clktrctrl_mask); |
199 | 188 | ||
@@ -217,17 +206,6 @@ static int omap2_clkdm_clk_disable(struct clockdomain *clkdm) | |||
217 | if (!clkdm->clktrctrl_mask) | 206 | if (!clkdm->clktrctrl_mask) |
218 | return 0; | 207 | return 0; |
219 | 208 | ||
220 | /* | ||
221 | * The CLKDM_MISSING_IDLE_REPORTING flag documentation has | ||
222 | * more details on the unpleasant problem this is working | ||
223 | * around | ||
224 | */ | ||
225 | if ((clkdm->flags & CLKDM_MISSING_IDLE_REPORTING) && | ||
226 | (clkdm->flags & CLKDM_CAN_FORCE_WAKEUP)) { | ||
227 | omap3_clkdm_wakeup(clkdm); | ||
228 | return 0; | ||
229 | } | ||
230 | |||
231 | hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, | 209 | hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, |
232 | clkdm->clktrctrl_mask); | 210 | clkdm->clktrctrl_mask); |
233 | 211 | ||
@@ -269,6 +247,17 @@ static int omap3xxx_clkdm_clk_enable(struct clockdomain *clkdm) | |||
269 | if (!clkdm->clktrctrl_mask) | 247 | if (!clkdm->clktrctrl_mask) |
270 | return 0; | 248 | return 0; |
271 | 249 | ||
250 | /* | ||
251 | * The CLKDM_MISSING_IDLE_REPORTING flag documentation has | ||
252 | * more details on the unpleasant problem this is working | ||
253 | * around | ||
254 | */ | ||
255 | if ((clkdm->flags & CLKDM_MISSING_IDLE_REPORTING) && | ||
256 | (clkdm->flags & CLKDM_CAN_FORCE_WAKEUP)) { | ||
257 | omap3_clkdm_wakeup(clkdm); | ||
258 | return 0; | ||
259 | } | ||
260 | |||
272 | hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, | 261 | hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, |
273 | clkdm->clktrctrl_mask); | 262 | clkdm->clktrctrl_mask); |
274 | 263 | ||
@@ -292,6 +281,17 @@ static int omap3xxx_clkdm_clk_disable(struct clockdomain *clkdm) | |||
292 | if (!clkdm->clktrctrl_mask) | 281 | if (!clkdm->clktrctrl_mask) |
293 | return 0; | 282 | return 0; |
294 | 283 | ||
284 | /* | ||
285 | * The CLKDM_MISSING_IDLE_REPORTING flag documentation has | ||
286 | * more details on the unpleasant problem this is working | ||
287 | * around | ||
288 | */ | ||
289 | if (clkdm->flags & CLKDM_MISSING_IDLE_REPORTING && | ||
290 | !(clkdm->flags & CLKDM_CAN_FORCE_SLEEP)) { | ||
291 | _enable_hwsup(clkdm); | ||
292 | return 0; | ||
293 | } | ||
294 | |||
295 | hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, | 295 | hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, |
296 | clkdm->clktrctrl_mask); | 296 | clkdm->clktrctrl_mask); |
297 | 297 | ||
diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c index 7012068ccbf6..a51ece491b91 100644 --- a/arch/arm/mach-omap2/display.c +++ b/arch/arm/mach-omap2/display.c | |||
@@ -221,7 +221,7 @@ static struct platform_device *create_dss_pdev(const char *pdev_name, | |||
221 | 221 | ||
222 | ohs[0] = oh; | 222 | ohs[0] = oh; |
223 | od = omap_device_alloc(pdev, ohs, 1, NULL, 0); | 223 | od = omap_device_alloc(pdev, ohs, 1, NULL, 0); |
224 | if (!od) { | 224 | if (IS_ERR(od)) { |
225 | pr_err("Could not alloc omap_device for %s\n", pdev_name); | 225 | pr_err("Could not alloc omap_device for %s\n", pdev_name); |
226 | r = -ENOMEM; | 226 | r = -ENOMEM; |
227 | goto err; | 227 | goto err; |
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 8ab1e1bde5e9..5ac5cf30406a 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c | |||
@@ -838,7 +838,7 @@ static int gpmc_setup_irq(void) | |||
838 | return request_irq(gpmc_irq, gpmc_handle_irq, 0, "gpmc", NULL); | 838 | return request_irq(gpmc_irq, gpmc_handle_irq, 0, "gpmc", NULL); |
839 | } | 839 | } |
840 | 840 | ||
841 | static __exit int gpmc_free_irq(void) | 841 | static __devexit int gpmc_free_irq(void) |
842 | { | 842 | { |
843 | int i; | 843 | int i; |
844 | 844 | ||
@@ -944,7 +944,7 @@ static __devinit int gpmc_probe(struct platform_device *pdev) | |||
944 | return 0; | 944 | return 0; |
945 | } | 945 | } |
946 | 946 | ||
947 | static __exit int gpmc_remove(struct platform_device *pdev) | 947 | static __devexit int gpmc_remove(struct platform_device *pdev) |
948 | { | 948 | { |
949 | gpmc_free_irq(); | 949 | gpmc_free_irq(); |
950 | gpmc_mem_exit(); | 950 | gpmc_mem_exit(); |
diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c index 03ebf47cfa9a..4d3a6324155f 100644 --- a/arch/arm/mach-omap2/hsmmc.c +++ b/arch/arm/mach-omap2/hsmmc.c | |||
@@ -523,7 +523,7 @@ static void __init omap_hsmmc_init_one(struct omap2_hsmmc_info *hsmmcinfo, | |||
523 | dev_set_name(&pdev->dev, "%s.%d", pdev->name, pdev->id); | 523 | dev_set_name(&pdev->dev, "%s.%d", pdev->name, pdev->id); |
524 | 524 | ||
525 | od = omap_device_alloc(pdev, ohs, 1, NULL, 0); | 525 | od = omap_device_alloc(pdev, ohs, 1, NULL, 0); |
526 | if (!od) { | 526 | if (IS_ERR(od)) { |
527 | pr_err("Could not allocate od for %s\n", name); | 527 | pr_err("Could not allocate od for %s\n", name); |
528 | goto put_pdev; | 528 | goto put_pdev; |
529 | } | 529 | } |
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c index 9fe6829f4c16..701e17cba468 100644 --- a/arch/arm/mach-omap2/mux.c +++ b/arch/arm/mach-omap2/mux.c | |||
@@ -486,7 +486,7 @@ void omap_hwmod_mux(struct omap_hwmod_mux_info *hmux, u8 state) | |||
486 | default: | 486 | default: |
487 | /* Nothing to be done */ | 487 | /* Nothing to be done */ |
488 | break; | 488 | break; |
489 | }; | 489 | } |
490 | 490 | ||
491 | if (val >= 0) { | 491 | if (val >= 0) { |
492 | omap_mux_write(pad->partition, val, | 492 | omap_mux_write(pad->partition, val, |
diff --git a/arch/arm/mach-omap2/omap-secure.c b/arch/arm/mach-omap2/omap-secure.c index a004cb9acf52..e089e4d1ae38 100644 --- a/arch/arm/mach-omap2/omap-secure.c +++ b/arch/arm/mach-omap2/omap-secure.c | |||
@@ -61,8 +61,8 @@ int __init omap_secure_ram_reserve_memblock(void) | |||
61 | { | 61 | { |
62 | u32 size = OMAP_SECURE_RAM_STORAGE; | 62 | u32 size = OMAP_SECURE_RAM_STORAGE; |
63 | 63 | ||
64 | size = ALIGN(size, SZ_1M); | 64 | size = ALIGN(size, SECTION_SIZE); |
65 | omap_secure_memblock_base = arm_memblock_steal(size, SZ_1M); | 65 | omap_secure_memblock_base = arm_memblock_steal(size, SECTION_SIZE); |
66 | 66 | ||
67 | return 0; | 67 | return 0; |
68 | } | 68 | } |
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index 299ca2821ad1..b969ab1d258b 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
@@ -1698,6 +1698,29 @@ static bool _are_all_hardreset_lines_asserted(struct omap_hwmod *oh) | |||
1698 | } | 1698 | } |
1699 | 1699 | ||
1700 | /** | 1700 | /** |
1701 | * _are_any_hardreset_lines_asserted - return true if any part of @oh is | ||
1702 | * hard-reset | ||
1703 | * @oh: struct omap_hwmod * | ||
1704 | * | ||
1705 | * If any hardreset lines associated with @oh are asserted, then | ||
1706 | * return true. Otherwise, if no hardreset lines associated with @oh | ||
1707 | * are asserted, or if @oh has no hardreset lines, then return false. | ||
1708 | * This function is used to avoid executing some parts of the IP block | ||
1709 | * enable/disable sequence if any hardreset line is set. | ||
1710 | */ | ||
1711 | static bool _are_any_hardreset_lines_asserted(struct omap_hwmod *oh) | ||
1712 | { | ||
1713 | int rst_cnt = 0; | ||
1714 | int i; | ||
1715 | |||
1716 | for (i = 0; i < oh->rst_lines_cnt && rst_cnt == 0; i++) | ||
1717 | if (_read_hardreset(oh, oh->rst_lines[i].name) > 0) | ||
1718 | rst_cnt++; | ||
1719 | |||
1720 | return (rst_cnt) ? true : false; | ||
1721 | } | ||
1722 | |||
1723 | /** | ||
1701 | * _omap4_disable_module - enable CLKCTRL modulemode on OMAP4 | 1724 | * _omap4_disable_module - enable CLKCTRL modulemode on OMAP4 |
1702 | * @oh: struct omap_hwmod * | 1725 | * @oh: struct omap_hwmod * |
1703 | * | 1726 | * |
@@ -1715,7 +1738,7 @@ static int _omap4_disable_module(struct omap_hwmod *oh) | |||
1715 | * Since integration code might still be doing something, only | 1738 | * Since integration code might still be doing something, only |
1716 | * disable if all lines are under hardreset. | 1739 | * disable if all lines are under hardreset. |
1717 | */ | 1740 | */ |
1718 | if (!_are_all_hardreset_lines_asserted(oh)) | 1741 | if (_are_any_hardreset_lines_asserted(oh)) |
1719 | return 0; | 1742 | return 0; |
1720 | 1743 | ||
1721 | pr_debug("omap_hwmod: %s: %s\n", oh->name, __func__); | 1744 | pr_debug("omap_hwmod: %s: %s\n", oh->name, __func__); |
@@ -1749,12 +1772,12 @@ static int _am33xx_disable_module(struct omap_hwmod *oh) | |||
1749 | 1772 | ||
1750 | pr_debug("omap_hwmod: %s: %s\n", oh->name, __func__); | 1773 | pr_debug("omap_hwmod: %s: %s\n", oh->name, __func__); |
1751 | 1774 | ||
1775 | if (_are_any_hardreset_lines_asserted(oh)) | ||
1776 | return 0; | ||
1777 | |||
1752 | am33xx_cm_module_disable(oh->clkdm->cm_inst, oh->clkdm->clkdm_offs, | 1778 | am33xx_cm_module_disable(oh->clkdm->cm_inst, oh->clkdm->clkdm_offs, |
1753 | oh->prcm.omap4.clkctrl_offs); | 1779 | oh->prcm.omap4.clkctrl_offs); |
1754 | 1780 | ||
1755 | if (_are_all_hardreset_lines_asserted(oh)) | ||
1756 | return 0; | ||
1757 | |||
1758 | v = _am33xx_wait_target_disable(oh); | 1781 | v = _am33xx_wait_target_disable(oh); |
1759 | if (v) | 1782 | if (v) |
1760 | pr_warn("omap_hwmod: %s: _wait_target_disable failed\n", | 1783 | pr_warn("omap_hwmod: %s: _wait_target_disable failed\n", |
diff --git a/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c b/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c index 35dcdb66a4e0..bd9220ed5ab9 100644 --- a/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c | |||
@@ -219,7 +219,7 @@ struct omap_hwmod omap2xxx_l4_wkup_hwmod = { | |||
219 | 219 | ||
220 | /* MPU */ | 220 | /* MPU */ |
221 | static struct omap_hwmod_irq_info omap2xxx_mpu_irqs[] = { | 221 | static struct omap_hwmod_irq_info omap2xxx_mpu_irqs[] = { |
222 | { .name = "pmu", .irq = 3 }, | 222 | { .name = "pmu", .irq = 3 + OMAP_INTC_START }, |
223 | { .irq = -1 } | 223 | { .irq = -1 } |
224 | }; | 224 | }; |
225 | 225 | ||
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c index 285777241d5a..f67b7ee07dd4 100644 --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | |||
@@ -94,7 +94,7 @@ static struct omap_hwmod omap3xxx_l4_sec_hwmod = { | |||
94 | 94 | ||
95 | /* MPU */ | 95 | /* MPU */ |
96 | static struct omap_hwmod_irq_info omap3xxx_mpu_irqs[] = { | 96 | static struct omap_hwmod_irq_info omap3xxx_mpu_irqs[] = { |
97 | { .name = "pmu", .irq = 3 }, | 97 | { .name = "pmu", .irq = 3 + OMAP_INTC_START }, |
98 | { .irq = -1 } | 98 | { .irq = -1 } |
99 | }; | 99 | }; |
100 | 100 | ||
@@ -3683,6 +3683,7 @@ static struct omap_hwmod_ocp_if *am35xx_hwmod_ocp_ifs[] __initdata = { | |||
3683 | &omap3xxx_l4_core__usb_tll_hs, | 3683 | &omap3xxx_l4_core__usb_tll_hs, |
3684 | &omap3xxx_l4_core__es3plus_mmc1, | 3684 | &omap3xxx_l4_core__es3plus_mmc1, |
3685 | &omap3xxx_l4_core__es3plus_mmc2, | 3685 | &omap3xxx_l4_core__es3plus_mmc2, |
3686 | &omap3xxx_l4_core__hdq1w, | ||
3686 | &am35xx_mdio__l3, | 3687 | &am35xx_mdio__l3, |
3687 | &am35xx_l4_core__mdio, | 3688 | &am35xx_l4_core__mdio, |
3688 | &am35xx_emac__l3, | 3689 | &am35xx_emac__l3, |
@@ -3737,7 +3738,7 @@ int __init omap3xxx_hwmod_init(void) | |||
3737 | } else { | 3738 | } else { |
3738 | WARN(1, "OMAP3 hwmod family init: unknown chip type\n"); | 3739 | WARN(1, "OMAP3 hwmod family init: unknown chip type\n"); |
3739 | return -EINVAL; | 3740 | return -EINVAL; |
3740 | }; | 3741 | } |
3741 | 3742 | ||
3742 | r = omap_hwmod_register_links(h); | 3743 | r = omap_hwmod_register_links(h); |
3743 | if (r < 0) | 3744 | if (r < 0) |
@@ -3754,7 +3755,7 @@ int __init omap3xxx_hwmod_init(void) | |||
3754 | rev == OMAP3430_REV_ES3_0 || rev == OMAP3430_REV_ES3_1 || | 3755 | rev == OMAP3430_REV_ES3_0 || rev == OMAP3430_REV_ES3_1 || |
3755 | rev == OMAP3430_REV_ES3_1_2) { | 3756 | rev == OMAP3430_REV_ES3_1_2) { |
3756 | h = omap3430es2plus_hwmod_ocp_ifs; | 3757 | h = omap3430es2plus_hwmod_ocp_ifs; |
3757 | }; | 3758 | } |
3758 | 3759 | ||
3759 | if (h) { | 3760 | if (h) { |
3760 | r = omap_hwmod_register_links(h); | 3761 | r = omap_hwmod_register_links(h); |
@@ -3769,7 +3770,7 @@ int __init omap3xxx_hwmod_init(void) | |||
3769 | } else if (rev == OMAP3430_REV_ES3_0 || rev == OMAP3430_REV_ES3_1 || | 3770 | } else if (rev == OMAP3430_REV_ES3_0 || rev == OMAP3430_REV_ES3_1 || |
3770 | rev == OMAP3430_REV_ES3_1_2) { | 3771 | rev == OMAP3430_REV_ES3_1_2) { |
3771 | h = omap3430_es3plus_hwmod_ocp_ifs; | 3772 | h = omap3430_es3plus_hwmod_ocp_ifs; |
3772 | }; | 3773 | } |
3773 | 3774 | ||
3774 | if (h) | 3775 | if (h) |
3775 | r = omap_hwmod_register_links(h); | 3776 | r = omap_hwmod_register_links(h); |
diff --git a/arch/arm/mach-omap2/opp.c b/arch/arm/mach-omap2/opp.c index 45ad7f74f356..58e16aef40bb 100644 --- a/arch/arm/mach-omap2/opp.c +++ b/arch/arm/mach-omap2/opp.c | |||
@@ -18,6 +18,7 @@ | |||
18 | */ | 18 | */ |
19 | #include <linux/module.h> | 19 | #include <linux/module.h> |
20 | #include <linux/opp.h> | 20 | #include <linux/opp.h> |
21 | #include <linux/cpu.h> | ||
21 | 22 | ||
22 | #include <plat/omap_device.h> | 23 | #include <plat/omap_device.h> |
23 | 24 | ||
@@ -62,13 +63,23 @@ int __init omap_init_opp_table(struct omap_opp_def *opp_def, | |||
62 | __func__, i); | 63 | __func__, i); |
63 | return -EINVAL; | 64 | return -EINVAL; |
64 | } | 65 | } |
65 | oh = omap_hwmod_lookup(opp_def->hwmod_name); | 66 | |
66 | if (!oh || !oh->od) { | 67 | if (!strncmp(opp_def->hwmod_name, "mpu", 3)) { |
67 | pr_debug("%s: no hwmod or odev for %s, [%d] cannot add OPPs.\n", | 68 | /* |
68 | __func__, opp_def->hwmod_name, i); | 69 | * All current OMAPs share voltage rail and |
69 | continue; | 70 | * clock source, so CPU0 is used to represent |
71 | * the MPU-SS. | ||
72 | */ | ||
73 | dev = get_cpu_device(0); | ||
74 | } else { | ||
75 | oh = omap_hwmod_lookup(opp_def->hwmod_name); | ||
76 | if (!oh || !oh->od) { | ||
77 | pr_debug("%s: no hwmod or odev for %s, [%d] cannot add OPPs.\n", | ||
78 | __func__, opp_def->hwmod_name, i); | ||
79 | continue; | ||
80 | } | ||
81 | dev = &oh->od->pdev->dev; | ||
70 | } | 82 | } |
71 | dev = &oh->od->pdev->dev; | ||
72 | 83 | ||
73 | r = opp_add(dev, opp_def->freq, opp_def->u_volt); | 84 | r = opp_add(dev, opp_def->freq, opp_def->u_volt); |
74 | if (r) { | 85 | if (r) { |
diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c index 3e1345fc0713..46092cd806fa 100644 --- a/arch/arm/mach-omap2/pm-debug.c +++ b/arch/arm/mach-omap2/pm-debug.c | |||
@@ -168,7 +168,7 @@ static int pm_dbg_open(struct inode *inode, struct file *file) | |||
168 | default: | 168 | default: |
169 | return single_open(file, pm_dbg_show_timers, | 169 | return single_open(file, pm_dbg_show_timers, |
170 | &inode->i_private); | 170 | &inode->i_private); |
171 | }; | 171 | } |
172 | } | 172 | } |
173 | 173 | ||
174 | static const struct file_operations debug_fops = { | 174 | static const struct file_operations debug_fops = { |
diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c index abefbc4d8e0b..ea61c32957bd 100644 --- a/arch/arm/mach-omap2/pm.c +++ b/arch/arm/mach-omap2/pm.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/opp.h> | 16 | #include <linux/opp.h> |
17 | #include <linux/export.h> | 17 | #include <linux/export.h> |
18 | #include <linux/suspend.h> | 18 | #include <linux/suspend.h> |
19 | #include <linux/cpu.h> | ||
19 | 20 | ||
20 | #include <asm/system_misc.h> | 21 | #include <asm/system_misc.h> |
21 | 22 | ||
@@ -169,7 +170,15 @@ static int __init omap2_set_init_voltage(char *vdd_name, char *clk_name, | |||
169 | goto exit; | 170 | goto exit; |
170 | } | 171 | } |
171 | 172 | ||
172 | dev = omap_device_get_by_hwmod_name(oh_name); | 173 | if (!strncmp(oh_name, "mpu", 3)) |
174 | /* | ||
175 | * All current OMAPs share voltage rail and clock | ||
176 | * source, so CPU0 is used to represent the MPU-SS. | ||
177 | */ | ||
178 | dev = get_cpu_device(0); | ||
179 | else | ||
180 | dev = omap_device_get_by_hwmod_name(oh_name); | ||
181 | |||
173 | if (IS_ERR(dev)) { | 182 | if (IS_ERR(dev)) { |
174 | pr_err("%s: Unable to get dev pointer for hwmod %s\n", | 183 | pr_err("%s: Unable to get dev pointer for hwmod %s\n", |
175 | __func__, oh_name); | 184 | __func__, oh_name); |
@@ -177,7 +186,7 @@ static int __init omap2_set_init_voltage(char *vdd_name, char *clk_name, | |||
177 | } | 186 | } |
178 | 187 | ||
179 | voltdm = voltdm_lookup(vdd_name); | 188 | voltdm = voltdm_lookup(vdd_name); |
180 | if (IS_ERR(voltdm)) { | 189 | if (!voltdm) { |
181 | pr_err("%s: unable to get vdd pointer for vdd_%s\n", | 190 | pr_err("%s: unable to get vdd pointer for vdd_%s\n", |
182 | __func__, vdd_name); | 191 | __func__, vdd_name); |
183 | goto exit; | 192 | goto exit; |
diff --git a/arch/arm/mach-omap2/sr_device.c b/arch/arm/mach-omap2/sr_device.c index cbeae56b56a9..f8217a5a4a26 100644 --- a/arch/arm/mach-omap2/sr_device.c +++ b/arch/arm/mach-omap2/sr_device.c | |||
@@ -122,7 +122,7 @@ static int __init sr_dev_init(struct omap_hwmod *oh, void *user) | |||
122 | sr_data->senp_mod = 0x1; | 122 | sr_data->senp_mod = 0x1; |
123 | 123 | ||
124 | sr_data->voltdm = voltdm_lookup(sr_dev_attr->sensor_voltdm_name); | 124 | sr_data->voltdm = voltdm_lookup(sr_dev_attr->sensor_voltdm_name); |
125 | if (IS_ERR(sr_data->voltdm)) { | 125 | if (!sr_data->voltdm) { |
126 | pr_err("%s: Unable to get voltage domain pointer for VDD %s\n", | 126 | pr_err("%s: Unable to get voltage domain pointer for VDD %s\n", |
127 | __func__, sr_dev_attr->sensor_voltdm_name); | 127 | __func__, sr_dev_attr->sensor_voltdm_name); |
128 | goto exit; | 128 | goto exit; |
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index 8847d6eb2313..44f9aa7ec0c0 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c | |||
@@ -378,7 +378,7 @@ static void __init realtime_counter_init(void) | |||
378 | return; | 378 | return; |
379 | } | 379 | } |
380 | sys_clk = clk_get(NULL, "sys_clkin_ck"); | 380 | sys_clk = clk_get(NULL, "sys_clkin_ck"); |
381 | if (!sys_clk) { | 381 | if (IS_ERR(sys_clk)) { |
382 | pr_err("%s: failed to get system clock handle\n", __func__); | 382 | pr_err("%s: failed to get system clock handle\n", __func__); |
383 | iounmap(base); | 383 | iounmap(base); |
384 | return; | 384 | return; |
diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c index 18a851959425..d83ae4540b9b 100644 --- a/arch/arm/mach-omap2/twl-common.c +++ b/arch/arm/mach-omap2/twl-common.c | |||
@@ -158,7 +158,7 @@ static struct regulator_init_data omap3_vpll2_idata = { | |||
158 | }; | 158 | }; |
159 | 159 | ||
160 | static struct regulator_consumer_supply omap3_vdd1_supply[] = { | 160 | static struct regulator_consumer_supply omap3_vdd1_supply[] = { |
161 | REGULATOR_SUPPLY("vcc", "mpu.0"), | 161 | REGULATOR_SUPPLY("vcc", "cpu0"), |
162 | }; | 162 | }; |
163 | 163 | ||
164 | static struct regulator_consumer_supply omap3_vdd2_supply[] = { | 164 | static struct regulator_consumer_supply omap3_vdd2_supply[] = { |
diff --git a/arch/arm/mach-pxa/cm-x2xx.c b/arch/arm/mach-pxa/cm-x2xx.c index fc3afc7cd366..a103c8ffea9f 100644 --- a/arch/arm/mach-pxa/cm-x2xx.c +++ b/arch/arm/mach-pxa/cm-x2xx.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <asm/mach/map.h> | 22 | #include <asm/mach/map.h> |
23 | 23 | ||
24 | #include <mach/pxa25x.h> | 24 | #include <mach/pxa25x.h> |
25 | #undef GPIO24_SSP1_SFRM | ||
25 | #include <mach/pxa27x.h> | 26 | #include <mach/pxa27x.h> |
26 | #include <mach/audio.h> | 27 | #include <mach/audio.h> |
27 | #include <linux/platform_data/video-pxafb.h> | 28 | #include <linux/platform_data/video-pxafb.h> |
diff --git a/arch/arm/mach-pxa/palmte2.c b/arch/arm/mach-pxa/palmte2.c index 997e6da9a9c4..32e0d7998355 100644 --- a/arch/arm/mach-pxa/palmte2.c +++ b/arch/arm/mach-pxa/palmte2.c | |||
@@ -105,6 +105,7 @@ static struct pxamci_platform_data palmte2_mci_platform_data = { | |||
105 | .gpio_power = GPIO_NR_PALMTE2_SD_POWER, | 105 | .gpio_power = GPIO_NR_PALMTE2_SD_POWER, |
106 | }; | 106 | }; |
107 | 107 | ||
108 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | ||
108 | /****************************************************************************** | 109 | /****************************************************************************** |
109 | * GPIO keys | 110 | * GPIO keys |
110 | ******************************************************************************/ | 111 | ******************************************************************************/ |
@@ -132,6 +133,7 @@ static struct platform_device palmte2_pxa_keys = { | |||
132 | .platform_data = &palmte2_pxa_keys_data, | 133 | .platform_data = &palmte2_pxa_keys_data, |
133 | }, | 134 | }, |
134 | }; | 135 | }; |
136 | #endif | ||
135 | 137 | ||
136 | /****************************************************************************** | 138 | /****************************************************************************** |
137 | * Backlight | 139 | * Backlight |
diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c index 5a406f794798..ec55c575ed19 100644 --- a/arch/arm/mach-pxa/sharpsl_pm.c +++ b/arch/arm/mach-pxa/sharpsl_pm.c | |||
@@ -55,7 +55,6 @@ | |||
55 | #ifdef CONFIG_PM | 55 | #ifdef CONFIG_PM |
56 | static int sharpsl_off_charge_battery(void); | 56 | static int sharpsl_off_charge_battery(void); |
57 | static int sharpsl_check_battery_voltage(void); | 57 | static int sharpsl_check_battery_voltage(void); |
58 | static int sharpsl_fatal_check(void); | ||
59 | #endif | 58 | #endif |
60 | static int sharpsl_check_battery_temp(void); | 59 | static int sharpsl_check_battery_temp(void); |
61 | static int sharpsl_ac_check(void); | 60 | static int sharpsl_ac_check(void); |
@@ -686,53 +685,6 @@ static int corgi_pxa_pm_enter(suspend_state_t state) | |||
686 | return 0; | 685 | return 0; |
687 | } | 686 | } |
688 | 687 | ||
689 | /* | ||
690 | * Check for fatal battery errors | ||
691 | * Fatal returns -1 | ||
692 | */ | ||
693 | static int sharpsl_fatal_check(void) | ||
694 | { | ||
695 | int buff[5], temp, i, acin; | ||
696 | |||
697 | dev_dbg(sharpsl_pm.dev, "sharpsl_fatal_check entered\n"); | ||
698 | |||
699 | /* Check AC-Adapter */ | ||
700 | acin = sharpsl_pm.machinfo->read_devdata(SHARPSL_STATUS_ACIN); | ||
701 | |||
702 | if (acin && (sharpsl_pm.charge_mode == CHRG_ON)) { | ||
703 | sharpsl_pm.machinfo->charge(0); | ||
704 | udelay(100); | ||
705 | sharpsl_pm.machinfo->discharge(1); /* enable discharge */ | ||
706 | mdelay(SHARPSL_WAIT_DISCHARGE_ON); | ||
707 | } | ||
708 | |||
709 | if (sharpsl_pm.machinfo->discharge1) | ||
710 | sharpsl_pm.machinfo->discharge1(1); | ||
711 | |||
712 | /* Check battery : check inserting battery ? */ | ||
713 | for (i = 0; i < 5; i++) { | ||
714 | buff[i] = sharpsl_pm.machinfo->read_devdata(SHARPSL_BATT_VOLT); | ||
715 | mdelay(SHARPSL_CHECK_BATTERY_WAIT_TIME_VOLT); | ||
716 | } | ||
717 | |||
718 | if (sharpsl_pm.machinfo->discharge1) | ||
719 | sharpsl_pm.machinfo->discharge1(0); | ||
720 | |||
721 | if (acin && (sharpsl_pm.charge_mode == CHRG_ON)) { | ||
722 | udelay(100); | ||
723 | sharpsl_pm.machinfo->charge(1); | ||
724 | sharpsl_pm.machinfo->discharge(0); | ||
725 | } | ||
726 | |||
727 | temp = get_select_val(buff); | ||
728 | dev_dbg(sharpsl_pm.dev, "sharpsl_fatal_check: acin: %d, discharge voltage: %d, no discharge: %ld\n", acin, temp, sharpsl_pm.machinfo->read_devdata(SHARPSL_BATT_VOLT)); | ||
729 | |||
730 | if ((acin && (temp < sharpsl_pm.machinfo->fatal_acin_volt)) || | ||
731 | (!acin && (temp < sharpsl_pm.machinfo->fatal_noacin_volt))) | ||
732 | return -1; | ||
733 | return 0; | ||
734 | } | ||
735 | |||
736 | static int sharpsl_off_charge_error(void) | 688 | static int sharpsl_off_charge_error(void) |
737 | { | 689 | { |
738 | dev_err(sharpsl_pm.dev, "Offline Charger: Error occurred.\n"); | 690 | dev_err(sharpsl_pm.dev, "Offline Charger: Error occurred.\n"); |
diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c index 392412ce4dac..c773e4dded64 100644 --- a/arch/arm/mach-pxa/viper.c +++ b/arch/arm/mach-pxa/viper.c | |||
@@ -768,8 +768,7 @@ static unsigned long viper_tpm; | |||
768 | 768 | ||
769 | static int __init viper_tpm_setup(char *str) | 769 | static int __init viper_tpm_setup(char *str) |
770 | { | 770 | { |
771 | strict_strtoul(str, 10, &viper_tpm); | 771 | return strict_strtoul(str, 10, &viper_tpm) >= 0; |
772 | return 1; | ||
773 | } | 772 | } |
774 | 773 | ||
775 | __setup("tpm=", viper_tpm_setup); | 774 | __setup("tpm=", viper_tpm_setup); |
diff --git a/arch/arm/mach-rpc/ecard.c b/arch/arm/mach-rpc/ecard.c index b91bc87b3dcf..fcb1d59f7aec 100644 --- a/arch/arm/mach-rpc/ecard.c +++ b/arch/arm/mach-rpc/ecard.c | |||
@@ -960,7 +960,9 @@ static int __init ecard_probe(int slot, unsigned irq, card_type_t type) | |||
960 | *ecp = ec; | 960 | *ecp = ec; |
961 | slot_to_expcard[slot] = ec; | 961 | slot_to_expcard[slot] = ec; |
962 | 962 | ||
963 | device_register(&ec->dev); | 963 | rc = device_register(&ec->dev); |
964 | if (rc) | ||
965 | goto nodev; | ||
964 | 966 | ||
965 | return 0; | 967 | return 0; |
966 | 968 | ||
diff --git a/arch/arm/mach-s3c24xx/irq-s3c2416.c b/arch/arm/mach-s3c24xx/irq-s3c2416.c index 23ec97370f32..ff141b0af26b 100644 --- a/arch/arm/mach-s3c24xx/irq-s3c2416.c +++ b/arch/arm/mach-s3c24xx/irq-s3c2416.c | |||
@@ -232,7 +232,7 @@ struct irq_chip s3c2416_irq_second = { | |||
232 | 232 | ||
233 | /* IRQ initialisation code */ | 233 | /* IRQ initialisation code */ |
234 | 234 | ||
235 | static int __init s3c2416_add_sub(unsigned int base, | 235 | static int s3c2416_add_sub(unsigned int base, |
236 | void (*demux)(unsigned int, | 236 | void (*demux)(unsigned int, |
237 | struct irq_desc *), | 237 | struct irq_desc *), |
238 | struct irq_chip *chip, | 238 | struct irq_chip *chip, |
@@ -251,7 +251,7 @@ static int __init s3c2416_add_sub(unsigned int base, | |||
251 | return 0; | 251 | return 0; |
252 | } | 252 | } |
253 | 253 | ||
254 | static void __init s3c2416_irq_add_second(void) | 254 | static void s3c2416_irq_add_second(void) |
255 | { | 255 | { |
256 | unsigned long pend; | 256 | unsigned long pend; |
257 | unsigned long last; | 257 | unsigned long last; |
@@ -287,7 +287,7 @@ static void __init s3c2416_irq_add_second(void) | |||
287 | } | 287 | } |
288 | } | 288 | } |
289 | 289 | ||
290 | static int __init s3c2416_irq_add(struct device *dev, | 290 | static int s3c2416_irq_add(struct device *dev, |
291 | struct subsys_interface *sif) | 291 | struct subsys_interface *sif) |
292 | { | 292 | { |
293 | printk(KERN_INFO "S3C2416: IRQ Support\n"); | 293 | printk(KERN_INFO "S3C2416: IRQ Support\n"); |
diff --git a/arch/arm/mach-s3c24xx/irq-s3c2443.c b/arch/arm/mach-s3c24xx/irq-s3c2443.c index ac2829f56d12..5e69109c0928 100644 --- a/arch/arm/mach-s3c24xx/irq-s3c2443.c +++ b/arch/arm/mach-s3c24xx/irq-s3c2443.c | |||
@@ -222,7 +222,7 @@ static struct irq_chip s3c2443_irq_cam = { | |||
222 | 222 | ||
223 | /* IRQ initialisation code */ | 223 | /* IRQ initialisation code */ |
224 | 224 | ||
225 | static int __init s3c2443_add_sub(unsigned int base, | 225 | static int s3c2443_add_sub(unsigned int base, |
226 | void (*demux)(unsigned int, | 226 | void (*demux)(unsigned int, |
227 | struct irq_desc *), | 227 | struct irq_desc *), |
228 | struct irq_chip *chip, | 228 | struct irq_chip *chip, |
@@ -241,7 +241,7 @@ static int __init s3c2443_add_sub(unsigned int base, | |||
241 | return 0; | 241 | return 0; |
242 | } | 242 | } |
243 | 243 | ||
244 | static int __init s3c2443_irq_add(struct device *dev, | 244 | static int s3c2443_irq_add(struct device *dev, |
245 | struct subsys_interface *sif) | 245 | struct subsys_interface *sif) |
246 | { | 246 | { |
247 | printk("S3C2443: IRQ Support\n"); | 247 | printk("S3C2443: IRQ Support\n"); |
diff --git a/arch/arm/mach-s3c24xx/simtec-usb.c b/arch/arm/mach-s3c24xx/simtec-usb.c index 17f8356177c1..ddf7a3c743ac 100644 --- a/arch/arm/mach-s3c24xx/simtec-usb.c +++ b/arch/arm/mach-s3c24xx/simtec-usb.c | |||
@@ -104,7 +104,7 @@ static struct s3c2410_hcd_info usb_simtec_info __initdata = { | |||
104 | }; | 104 | }; |
105 | 105 | ||
106 | 106 | ||
107 | int usb_simtec_init(void) | 107 | int __init usb_simtec_init(void) |
108 | { | 108 | { |
109 | int ret; | 109 | int ret; |
110 | 110 | ||
diff --git a/arch/arm/mach-sa1100/assabet.c b/arch/arm/mach-sa1100/assabet.c index e1ccda6128eb..6a7ad3c2a3fc 100644 --- a/arch/arm/mach-sa1100/assabet.c +++ b/arch/arm/mach-sa1100/assabet.c | |||
@@ -388,7 +388,7 @@ static void __init map_sa1100_gpio_regs( void ) | |||
388 | */ | 388 | */ |
389 | static void __init get_assabet_scr(void) | 389 | static void __init get_assabet_scr(void) |
390 | { | 390 | { |
391 | unsigned long scr, i; | 391 | unsigned long uninitialized_var(scr), i; |
392 | 392 | ||
393 | GPDR |= 0x3fc; /* Configure GPIO 9:2 as outputs */ | 393 | GPDR |= 0x3fc; /* Configure GPIO 9:2 as outputs */ |
394 | GPSR = 0x3fc; /* Write 0xFF to GPIO 9:2 */ | 394 | GPSR = 0x3fc; /* Write 0xFF to GPIO 9:2 */ |
diff --git a/arch/arm/mach-shark/pci.c b/arch/arm/mach-shark/pci.c index b8b4ab323a3e..6d91a914c1dd 100644 --- a/arch/arm/mach-shark/pci.c +++ b/arch/arm/mach-shark/pci.c | |||
@@ -41,7 +41,7 @@ static struct hw_pci shark_pci __initdata = { | |||
41 | static int __init shark_pci_init(void) | 41 | static int __init shark_pci_init(void) |
42 | { | 42 | { |
43 | if (!machine_is_shark()) | 43 | if (!machine_is_shark()) |
44 | return; | 44 | return -ENODEV; |
45 | 45 | ||
46 | pcibios_min_io = 0x6000; | 46 | pcibios_min_io = 0x6000; |
47 | pcibios_min_mem = 0x50000000; | 47 | pcibios_min_mem = 0x50000000; |
diff --git a/arch/arm/mach-shmobile/include/mach/common.h b/arch/arm/mach-shmobile/include/mach/common.h index ed77ab8c9143..d47e215aca87 100644 --- a/arch/arm/mach-shmobile/include/mach/common.h +++ b/arch/arm/mach-shmobile/include/mach/common.h | |||
@@ -100,7 +100,7 @@ static inline int shmobile_cpu_is_dead(unsigned int cpu) { return 1; } | |||
100 | 100 | ||
101 | extern void shmobile_smp_init_cpus(unsigned int ncores); | 101 | extern void shmobile_smp_init_cpus(unsigned int ncores); |
102 | 102 | ||
103 | static inline void shmobile_init_late(void) | 103 | static inline void __init shmobile_init_late(void) |
104 | { | 104 | { |
105 | shmobile_suspend_init(); | 105 | shmobile_suspend_init(); |
106 | shmobile_cpuidle_init(); | 106 | shmobile_cpuidle_init(); |
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig index 5f3c03b61f8e..11680c532b38 100644 --- a/arch/arm/mach-tegra/Kconfig +++ b/arch/arm/mach-tegra/Kconfig | |||
@@ -16,7 +16,7 @@ config ARCH_TEGRA_2x_SOC | |||
16 | select ARM_ERRATA_742230 | 16 | select ARM_ERRATA_742230 |
17 | select ARM_ERRATA_751472 | 17 | select ARM_ERRATA_751472 |
18 | select ARM_ERRATA_754327 | 18 | select ARM_ERRATA_754327 |
19 | select ARM_ERRATA_764369 | 19 | select ARM_ERRATA_764369 if SMP |
20 | select PL310_ERRATA_727915 if CACHE_L2X0 | 20 | select PL310_ERRATA_727915 if CACHE_L2X0 |
21 | select PL310_ERRATA_769419 if CACHE_L2X0 | 21 | select PL310_ERRATA_769419 if CACHE_L2X0 |
22 | select CPU_FREQ_TABLE if CPU_FREQ | 22 | select CPU_FREQ_TABLE if CPU_FREQ |
@@ -37,7 +37,7 @@ config ARCH_TEGRA_3x_SOC | |||
37 | select ARM_ERRATA_743622 | 37 | select ARM_ERRATA_743622 |
38 | select ARM_ERRATA_751472 | 38 | select ARM_ERRATA_751472 |
39 | select ARM_ERRATA_754322 | 39 | select ARM_ERRATA_754322 |
40 | select ARM_ERRATA_764369 | 40 | select ARM_ERRATA_764369 if SMP |
41 | select PL310_ERRATA_769419 if CACHE_L2X0 | 41 | select PL310_ERRATA_769419 if CACHE_L2X0 |
42 | select CPU_FREQ_TABLE if CPU_FREQ | 42 | select CPU_FREQ_TABLE if CPU_FREQ |
43 | help | 43 | help |
@@ -57,8 +57,6 @@ config TEGRA_AHB | |||
57 | which controls AHB bus master arbitration and some | 57 | which controls AHB bus master arbitration and some |
58 | perfomance parameters(priority, prefech size). | 58 | perfomance parameters(priority, prefech size). |
59 | 59 | ||
60 | comment "Tegra board type" | ||
61 | |||
62 | choice | 60 | choice |
63 | prompt "Default low-level debug console UART" | 61 | prompt "Default low-level debug console UART" |
64 | default TEGRA_DEBUG_UART_NONE | 62 | default TEGRA_DEBUG_UART_NONE |
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig index c77c86c47369..5848206ee9b9 100644 --- a/arch/arm/mach-ux500/Kconfig +++ b/arch/arm/mach-ux500/Kconfig | |||
@@ -5,9 +5,9 @@ config UX500_SOC_COMMON | |||
5 | default y | 5 | default y |
6 | select ARM_GIC | 6 | select ARM_GIC |
7 | select HAS_MTU | 7 | select HAS_MTU |
8 | select PL310_ERRATA_753970 | 8 | select PL310_ERRATA_753970 if CACHE_PL310 |
9 | select ARM_ERRATA_754322 | 9 | select ARM_ERRATA_754322 |
10 | select ARM_ERRATA_764369 | 10 | select ARM_ERRATA_764369 if SMP |
11 | select CACHE_L2X0 | 11 | select CACHE_L2X0 |
12 | select PINCTRL | 12 | select PINCTRL |
13 | select PINCTRL_NOMADIK | 13 | select PINCTRL_NOMADIK |
diff --git a/arch/arm/mach-vt8500/include/mach/uncompress.h b/arch/arm/mach-vt8500/include/mach/uncompress.h index bb9e2d23fee3..e6e81fdaf109 100644 --- a/arch/arm/mach-vt8500/include/mach/uncompress.h +++ b/arch/arm/mach-vt8500/include/mach/uncompress.h | |||
@@ -15,15 +15,15 @@ | |||
15 | * | 15 | * |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #define UART0_PHYS 0xd8200000 | 18 | #define UART0_PHYS 0xd8200000 |
19 | #include <asm/io.h> | 19 | #define UART0_ADDR(x) *(volatile unsigned char *)(UART0_PHYS + x) |
20 | 20 | ||
21 | static void putc(const char c) | 21 | static void putc(const char c) |
22 | { | 22 | { |
23 | while (readb(UART0_PHYS + 0x1c) & 0x2) | 23 | while (UART0_ADDR(0x1c) & 0x2) |
24 | /* Tx busy, wait and poll */; | 24 | /* Tx busy, wait and poll */; |
25 | 25 | ||
26 | writeb(c, UART0_PHYS); | 26 | UART0_ADDR(0) = c; |
27 | } | 27 | } |
28 | 28 | ||
29 | static void flush(void) | 29 | static void flush(void) |
diff --git a/arch/arm/mach-vt8500/vt8500.c b/arch/arm/mach-vt8500/vt8500.c index 587ea950d08b..8d3871f110a5 100644 --- a/arch/arm/mach-vt8500/vt8500.c +++ b/arch/arm/mach-vt8500/vt8500.c | |||
@@ -77,8 +77,11 @@ static void vt8500_power_off(void) | |||
77 | 77 | ||
78 | void __init vt8500_init(void) | 78 | void __init vt8500_init(void) |
79 | { | 79 | { |
80 | struct device_node *np, *fb; | 80 | struct device_node *np; |
81 | #if defined(CONFIG_FB_VT8500) || defined(CONFIG_FB_WM8505) | ||
82 | struct device_node *fb; | ||
81 | void __iomem *gpio_base; | 83 | void __iomem *gpio_base; |
84 | #endif | ||
82 | 85 | ||
83 | #ifdef CONFIG_FB_VT8500 | 86 | #ifdef CONFIG_FB_VT8500 |
84 | fb = of_find_compatible_node(NULL, NULL, "via,vt8500-fb"); | 87 | fb = of_find_compatible_node(NULL, NULL, "via,vt8500-fb"); |
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig index ca83a7659aef..c9d1c3603bbf 100644 --- a/arch/arm/plat-omap/Kconfig +++ b/arch/arm/plat-omap/Kconfig | |||
@@ -43,11 +43,13 @@ config OMAP_DEBUG_DEVICES | |||
43 | 43 | ||
44 | config OMAP_DEBUG_LEDS | 44 | config OMAP_DEBUG_LEDS |
45 | def_bool y if NEW_LEDS | 45 | def_bool y if NEW_LEDS |
46 | select LEDS_CLASS | ||
46 | depends on OMAP_DEBUG_DEVICES | 47 | depends on OMAP_DEBUG_DEVICES |
47 | 48 | ||
48 | config POWER_AVS_OMAP | 49 | config POWER_AVS_OMAP |
49 | bool "AVS(Adaptive Voltage Scaling) support for OMAP IP versions 1&2" | 50 | bool "AVS(Adaptive Voltage Scaling) support for OMAP IP versions 1&2" |
50 | depends on POWER_AVS && (ARCH_OMAP3 || ARCH_OMAP4) && PM | 51 | depends on POWER_AVS && (ARCH_OMAP3 || ARCH_OMAP4) && PM |
52 | select POWER_SUPPLY | ||
51 | help | 53 | help |
52 | Say Y to enable AVS(Adaptive Voltage Scaling) | 54 | Say Y to enable AVS(Adaptive Voltage Scaling) |
53 | support on OMAP containing the version 1 or | 55 | support on OMAP containing the version 1 or |
diff --git a/arch/arm/plat-omap/counter_32k.c b/arch/arm/plat-omap/counter_32k.c index 2e826f1faf7b..87ba8dd0d791 100644 --- a/arch/arm/plat-omap/counter_32k.c +++ b/arch/arm/plat-omap/counter_32k.c | |||
@@ -52,22 +52,29 @@ static u32 notrace omap_32k_read_sched_clock(void) | |||
52 | * nsecs and adds to a monotonically increasing timespec. | 52 | * nsecs and adds to a monotonically increasing timespec. |
53 | */ | 53 | */ |
54 | static struct timespec persistent_ts; | 54 | static struct timespec persistent_ts; |
55 | static cycles_t cycles, last_cycles; | 55 | static cycles_t cycles; |
56 | static unsigned int persistent_mult, persistent_shift; | 56 | static unsigned int persistent_mult, persistent_shift; |
57 | static DEFINE_SPINLOCK(read_persistent_clock_lock); | ||
58 | |||
57 | static void omap_read_persistent_clock(struct timespec *ts) | 59 | static void omap_read_persistent_clock(struct timespec *ts) |
58 | { | 60 | { |
59 | unsigned long long nsecs; | 61 | unsigned long long nsecs; |
60 | cycles_t delta; | 62 | cycles_t last_cycles; |
61 | struct timespec *tsp = &persistent_ts; | 63 | unsigned long flags; |
64 | |||
65 | spin_lock_irqsave(&read_persistent_clock_lock, flags); | ||
62 | 66 | ||
63 | last_cycles = cycles; | 67 | last_cycles = cycles; |
64 | cycles = sync32k_cnt_reg ? __raw_readl(sync32k_cnt_reg) : 0; | 68 | cycles = sync32k_cnt_reg ? __raw_readl(sync32k_cnt_reg) : 0; |
65 | delta = cycles - last_cycles; | ||
66 | 69 | ||
67 | nsecs = clocksource_cyc2ns(delta, persistent_mult, persistent_shift); | 70 | nsecs = clocksource_cyc2ns(cycles - last_cycles, |
71 | persistent_mult, persistent_shift); | ||
72 | |||
73 | timespec_add_ns(&persistent_ts, nsecs); | ||
74 | |||
75 | *ts = persistent_ts; | ||
68 | 76 | ||
69 | timespec_add_ns(tsp, nsecs); | 77 | spin_unlock_irqrestore(&read_persistent_clock_lock, flags); |
70 | *ts = *tsp; | ||
71 | } | 78 | } |
72 | 79 | ||
73 | /** | 80 | /** |
diff --git a/arch/arm/plat-omap/omap-pm-noop.c b/arch/arm/plat-omap/omap-pm-noop.c index 9f6413324df9..9722f418ae1f 100644 --- a/arch/arm/plat-omap/omap-pm-noop.c +++ b/arch/arm/plat-omap/omap-pm-noop.c | |||
@@ -38,7 +38,7 @@ int omap_pm_set_max_mpu_wakeup_lat(struct device *dev, long t) | |||
38 | if (!dev || t < -1) { | 38 | if (!dev || t < -1) { |
39 | WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); | 39 | WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); |
40 | return -EINVAL; | 40 | return -EINVAL; |
41 | }; | 41 | } |
42 | 42 | ||
43 | if (t == -1) | 43 | if (t == -1) |
44 | pr_debug("OMAP PM: remove max MPU wakeup latency constraint: dev %s\n", | 44 | pr_debug("OMAP PM: remove max MPU wakeup latency constraint: dev %s\n", |
@@ -67,7 +67,7 @@ int omap_pm_set_min_bus_tput(struct device *dev, u8 agent_id, unsigned long r) | |||
67 | agent_id != OCP_TARGET_AGENT)) { | 67 | agent_id != OCP_TARGET_AGENT)) { |
68 | WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); | 68 | WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); |
69 | return -EINVAL; | 69 | return -EINVAL; |
70 | }; | 70 | } |
71 | 71 | ||
72 | if (r == 0) | 72 | if (r == 0) |
73 | pr_debug("OMAP PM: remove min bus tput constraint: dev %s for agent_id %d\n", | 73 | pr_debug("OMAP PM: remove min bus tput constraint: dev %s for agent_id %d\n", |
@@ -93,7 +93,7 @@ int omap_pm_set_max_dev_wakeup_lat(struct device *req_dev, struct device *dev, | |||
93 | if (!req_dev || !dev || t < -1) { | 93 | if (!req_dev || !dev || t < -1) { |
94 | WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); | 94 | WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); |
95 | return -EINVAL; | 95 | return -EINVAL; |
96 | }; | 96 | } |
97 | 97 | ||
98 | if (t == -1) | 98 | if (t == -1) |
99 | pr_debug("OMAP PM: remove max device latency constraint: dev %s\n", | 99 | pr_debug("OMAP PM: remove max device latency constraint: dev %s\n", |
@@ -123,7 +123,7 @@ int omap_pm_set_max_sdma_lat(struct device *dev, long t) | |||
123 | if (!dev || t < -1) { | 123 | if (!dev || t < -1) { |
124 | WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); | 124 | WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); |
125 | return -EINVAL; | 125 | return -EINVAL; |
126 | }; | 126 | } |
127 | 127 | ||
128 | if (t == -1) | 128 | if (t == -1) |
129 | pr_debug("OMAP PM: remove max DMA latency constraint: dev %s\n", | 129 | pr_debug("OMAP PM: remove max DMA latency constraint: dev %s\n", |
diff --git a/arch/arm/plat-omap/omap_device.c b/arch/arm/plat-omap/omap_device.c index cee85a55bd82..7a7d1f2a65e9 100644 --- a/arch/arm/plat-omap/omap_device.c +++ b/arch/arm/plat-omap/omap_device.c | |||
@@ -725,7 +725,7 @@ struct platform_device __init *omap_device_build_ss(const char *pdev_name, int p | |||
725 | dev_set_name(&pdev->dev, "%s", pdev->name); | 725 | dev_set_name(&pdev->dev, "%s", pdev->name); |
726 | 726 | ||
727 | od = omap_device_alloc(pdev, ohs, oh_cnt, pm_lats, pm_lats_cnt); | 727 | od = omap_device_alloc(pdev, ohs, oh_cnt, pm_lats, pm_lats_cnt); |
728 | if (!od) | 728 | if (IS_ERR(od)) |
729 | goto odbs_exit1; | 729 | goto odbs_exit1; |
730 | 730 | ||
731 | ret = platform_device_add_data(pdev, pdata, pdata_len); | 731 | ret = platform_device_add_data(pdev, pdata, pdata_len); |
diff --git a/drivers/char/ds1620.c b/drivers/char/ds1620.c index aab9605f0b43..24ffd8cec51e 100644 --- a/drivers/char/ds1620.c +++ b/drivers/char/ds1620.c | |||
@@ -74,21 +74,21 @@ static inline void netwinder_ds1620_reset(void) | |||
74 | 74 | ||
75 | static inline void netwinder_lock(unsigned long *flags) | 75 | static inline void netwinder_lock(unsigned long *flags) |
76 | { | 76 | { |
77 | spin_lock_irqsave(&nw_gpio_lock, *flags); | 77 | raw_spin_lock_irqsave(&nw_gpio_lock, *flags); |
78 | } | 78 | } |
79 | 79 | ||
80 | static inline void netwinder_unlock(unsigned long *flags) | 80 | static inline void netwinder_unlock(unsigned long *flags) |
81 | { | 81 | { |
82 | spin_unlock_irqrestore(&nw_gpio_lock, *flags); | 82 | raw_spin_unlock_irqrestore(&nw_gpio_lock, *flags); |
83 | } | 83 | } |
84 | 84 | ||
85 | static inline void netwinder_set_fan(int i) | 85 | static inline void netwinder_set_fan(int i) |
86 | { | 86 | { |
87 | unsigned long flags; | 87 | unsigned long flags; |
88 | 88 | ||
89 | spin_lock_irqsave(&nw_gpio_lock, flags); | 89 | raw_spin_lock_irqsave(&nw_gpio_lock, flags); |
90 | nw_gpio_modify_op(GPIO_FAN, i ? GPIO_FAN : 0); | 90 | nw_gpio_modify_op(GPIO_FAN, i ? GPIO_FAN : 0); |
91 | spin_unlock_irqrestore(&nw_gpio_lock, flags); | 91 | raw_spin_unlock_irqrestore(&nw_gpio_lock, flags); |
92 | } | 92 | } |
93 | 93 | ||
94 | static inline int netwinder_get_fan(void) | 94 | static inline int netwinder_get_fan(void) |
diff --git a/drivers/char/nwflash.c b/drivers/char/nwflash.c index a0e2f7d70355..e371480d3639 100644 --- a/drivers/char/nwflash.c +++ b/drivers/char/nwflash.c | |||
@@ -583,9 +583,9 @@ static void kick_open(void) | |||
583 | * we want to write a bit pattern XXX1 to Xilinx to enable | 583 | * we want to write a bit pattern XXX1 to Xilinx to enable |
584 | * the write gate, which will be open for about the next 2ms. | 584 | * the write gate, which will be open for about the next 2ms. |
585 | */ | 585 | */ |
586 | spin_lock_irqsave(&nw_gpio_lock, flags); | 586 | raw_spin_lock_irqsave(&nw_gpio_lock, flags); |
587 | nw_cpld_modify(CPLD_FLASH_WR_ENABLE, CPLD_FLASH_WR_ENABLE); | 587 | nw_cpld_modify(CPLD_FLASH_WR_ENABLE, CPLD_FLASH_WR_ENABLE); |
588 | spin_unlock_irqrestore(&nw_gpio_lock, flags); | 588 | raw_spin_unlock_irqrestore(&nw_gpio_lock, flags); |
589 | 589 | ||
590 | /* | 590 | /* |
591 | * let the ISA bus to catch on... | 591 | * let the ISA bus to catch on... |
diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c index 65f8e9a54975..1f3417a8322d 100644 --- a/drivers/cpufreq/omap-cpufreq.c +++ b/drivers/cpufreq/omap-cpufreq.c | |||
@@ -30,20 +30,12 @@ | |||
30 | #include <asm/smp_plat.h> | 30 | #include <asm/smp_plat.h> |
31 | #include <asm/cpu.h> | 31 | #include <asm/cpu.h> |
32 | 32 | ||
33 | #include <plat/clock.h> | ||
34 | #include <plat/omap-pm.h> | ||
35 | #include <plat/common.h> | ||
36 | #include <plat/omap_device.h> | ||
37 | |||
38 | #include <mach/hardware.h> | ||
39 | |||
40 | /* OPP tolerance in percentage */ | 33 | /* OPP tolerance in percentage */ |
41 | #define OPP_TOLERANCE 4 | 34 | #define OPP_TOLERANCE 4 |
42 | 35 | ||
43 | static struct cpufreq_frequency_table *freq_table; | 36 | static struct cpufreq_frequency_table *freq_table; |
44 | static atomic_t freq_table_users = ATOMIC_INIT(0); | 37 | static atomic_t freq_table_users = ATOMIC_INIT(0); |
45 | static struct clk *mpu_clk; | 38 | static struct clk *mpu_clk; |
46 | static char *mpu_clk_name; | ||
47 | static struct device *mpu_dev; | 39 | static struct device *mpu_dev; |
48 | static struct regulator *mpu_reg; | 40 | static struct regulator *mpu_reg; |
49 | 41 | ||
@@ -108,6 +100,14 @@ static int omap_target(struct cpufreq_policy *policy, | |||
108 | } | 100 | } |
109 | 101 | ||
110 | freq = freqs.new * 1000; | 102 | freq = freqs.new * 1000; |
103 | ret = clk_round_rate(mpu_clk, freq); | ||
104 | if (IS_ERR_VALUE(ret)) { | ||
105 | dev_warn(mpu_dev, | ||
106 | "CPUfreq: Cannot find matching frequency for %lu\n", | ||
107 | freq); | ||
108 | return ret; | ||
109 | } | ||
110 | freq = ret; | ||
111 | 111 | ||
112 | if (mpu_reg) { | 112 | if (mpu_reg) { |
113 | opp = opp_find_freq_ceil(mpu_dev, &freq); | 113 | opp = opp_find_freq_ceil(mpu_dev, &freq); |
@@ -172,7 +172,7 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy) | |||
172 | { | 172 | { |
173 | int result = 0; | 173 | int result = 0; |
174 | 174 | ||
175 | mpu_clk = clk_get(NULL, mpu_clk_name); | 175 | mpu_clk = clk_get(NULL, "cpufreq_ck"); |
176 | if (IS_ERR(mpu_clk)) | 176 | if (IS_ERR(mpu_clk)) |
177 | return PTR_ERR(mpu_clk); | 177 | return PTR_ERR(mpu_clk); |
178 | 178 | ||
@@ -253,22 +253,10 @@ static struct cpufreq_driver omap_driver = { | |||
253 | 253 | ||
254 | static int __init omap_cpufreq_init(void) | 254 | static int __init omap_cpufreq_init(void) |
255 | { | 255 | { |
256 | if (cpu_is_omap24xx()) | 256 | mpu_dev = get_cpu_device(0); |
257 | mpu_clk_name = "virt_prcm_set"; | 257 | if (!mpu_dev) { |
258 | else if (cpu_is_omap34xx()) | ||
259 | mpu_clk_name = "dpll1_ck"; | ||
260 | else if (cpu_is_omap44xx()) | ||
261 | mpu_clk_name = "dpll_mpu_ck"; | ||
262 | |||
263 | if (!mpu_clk_name) { | ||
264 | pr_err("%s: unsupported Silicon?\n", __func__); | ||
265 | return -EINVAL; | ||
266 | } | ||
267 | |||
268 | mpu_dev = omap_device_get_by_hwmod_name("mpu"); | ||
269 | if (IS_ERR(mpu_dev)) { | ||
270 | pr_warning("%s: unable to get the mpu device\n", __func__); | 258 | pr_warning("%s: unable to get the mpu device\n", __func__); |
271 | return PTR_ERR(mpu_dev); | 259 | return -EINVAL; |
272 | } | 260 | } |
273 | 261 | ||
274 | mpu_reg = regulator_get(mpu_dev, "vcc"); | 262 | mpu_reg = regulator_get(mpu_dev, "vcc"); |
diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c index 84e8d0c59ee5..f9eb91623701 100644 --- a/drivers/mmc/host/sdhci-tegra.c +++ b/drivers/mmc/host/sdhci-tegra.c | |||
@@ -27,7 +27,6 @@ | |||
27 | 27 | ||
28 | #include <asm/gpio.h> | 28 | #include <asm/gpio.h> |
29 | 29 | ||
30 | #include <mach/gpio-tegra.h> | ||
31 | #include <linux/platform_data/mmc-sdhci-tegra.h> | 30 | #include <linux/platform_data/mmc-sdhci-tegra.h> |
32 | 31 | ||
33 | #include "sdhci-pltfm.h" | 32 | #include "sdhci-pltfm.h" |
diff --git a/drivers/power/avs/smartreflex.c b/drivers/power/avs/smartreflex.c index d4957b4edb62..24768a27e1d8 100644 --- a/drivers/power/avs/smartreflex.c +++ b/drivers/power/avs/smartreflex.c | |||
@@ -930,7 +930,7 @@ static int __init omap_sr_probe(struct platform_device *pdev) | |||
930 | if (!sr_info->base) { | 930 | if (!sr_info->base) { |
931 | dev_err(&pdev->dev, "%s: ioremap fail\n", __func__); | 931 | dev_err(&pdev->dev, "%s: ioremap fail\n", __func__); |
932 | ret = -ENOMEM; | 932 | ret = -ENOMEM; |
933 | goto err_release_region; | 933 | goto err_free_name; |
934 | } | 934 | } |
935 | 935 | ||
936 | if (irq) | 936 | if (irq) |
@@ -969,7 +969,7 @@ static int __init omap_sr_probe(struct platform_device *pdev) | |||
969 | dev_err(&pdev->dev, "%s: Unable to create debugfs directory\n", | 969 | dev_err(&pdev->dev, "%s: Unable to create debugfs directory\n", |
970 | __func__); | 970 | __func__); |
971 | ret = PTR_ERR(sr_info->dbg_dir); | 971 | ret = PTR_ERR(sr_info->dbg_dir); |
972 | goto err_free_name; | 972 | goto err_debugfs; |
973 | } | 973 | } |
974 | 974 | ||
975 | (void) debugfs_create_file("autocomp", S_IRUGO | S_IWUSR, | 975 | (void) debugfs_create_file("autocomp", S_IRUGO | S_IWUSR, |
@@ -1013,11 +1013,11 @@ static int __init omap_sr_probe(struct platform_device *pdev) | |||
1013 | 1013 | ||
1014 | err_debugfs: | 1014 | err_debugfs: |
1015 | debugfs_remove_recursive(sr_info->dbg_dir); | 1015 | debugfs_remove_recursive(sr_info->dbg_dir); |
1016 | err_free_name: | ||
1017 | kfree(sr_info->name); | ||
1018 | err_iounmap: | 1016 | err_iounmap: |
1019 | list_del(&sr_info->node); | 1017 | list_del(&sr_info->node); |
1020 | iounmap(sr_info->base); | 1018 | iounmap(sr_info->base); |
1019 | err_free_name: | ||
1020 | kfree(sr_info->name); | ||
1021 | err_release_region: | 1021 | err_release_region: |
1022 | release_mem_region(mem->start, resource_size(mem)); | 1022 | release_mem_region(mem->start, resource_size(mem)); |
1023 | err_free_devinfo: | 1023 | err_free_devinfo: |
diff --git a/sound/oss/waveartist.c b/sound/oss/waveartist.c index 24c430f721d4..672af8b56542 100644 --- a/sound/oss/waveartist.c +++ b/sound/oss/waveartist.c | |||
@@ -1482,9 +1482,9 @@ vnc_mute_spkr(wavnc_info *devc) | |||
1482 | { | 1482 | { |
1483 | unsigned long flags; | 1483 | unsigned long flags; |
1484 | 1484 | ||
1485 | spin_lock_irqsave(&nw_gpio_lock, flags); | 1485 | raw_spin_lock_irqsave(&nw_gpio_lock, flags); |
1486 | nw_cpld_modify(CPLD_UNMUTE, devc->spkr_mute_state ? 0 : CPLD_UNMUTE); | 1486 | nw_cpld_modify(CPLD_UNMUTE, devc->spkr_mute_state ? 0 : CPLD_UNMUTE); |
1487 | spin_unlock_irqrestore(&nw_gpio_lock, flags); | 1487 | raw_spin_unlock_irqrestore(&nw_gpio_lock, flags); |
1488 | } | 1488 | } |
1489 | 1489 | ||
1490 | static void | 1490 | static void |