diff options
Diffstat (limited to 'arch')
25 files changed, 35 insertions, 115 deletions
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts index a25c262326dc..322fd1519b09 100644 --- a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts +++ b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts | |||
@@ -38,6 +38,7 @@ | |||
38 | compatible = "arm,cortex-a15"; | 38 | compatible = "arm,cortex-a15"; |
39 | reg = <0>; | 39 | reg = <0>; |
40 | cci-control-port = <&cci_control1>; | 40 | cci-control-port = <&cci_control1>; |
41 | cpu-idle-states = <&CLUSTER_SLEEP_BIG>; | ||
41 | }; | 42 | }; |
42 | 43 | ||
43 | cpu1: cpu@1 { | 44 | cpu1: cpu@1 { |
@@ -45,6 +46,7 @@ | |||
45 | compatible = "arm,cortex-a15"; | 46 | compatible = "arm,cortex-a15"; |
46 | reg = <1>; | 47 | reg = <1>; |
47 | cci-control-port = <&cci_control1>; | 48 | cci-control-port = <&cci_control1>; |
49 | cpu-idle-states = <&CLUSTER_SLEEP_BIG>; | ||
48 | }; | 50 | }; |
49 | 51 | ||
50 | cpu2: cpu@2 { | 52 | cpu2: cpu@2 { |
@@ -52,6 +54,7 @@ | |||
52 | compatible = "arm,cortex-a7"; | 54 | compatible = "arm,cortex-a7"; |
53 | reg = <0x100>; | 55 | reg = <0x100>; |
54 | cci-control-port = <&cci_control2>; | 56 | cci-control-port = <&cci_control2>; |
57 | cpu-idle-states = <&CLUSTER_SLEEP_LITTLE>; | ||
55 | }; | 58 | }; |
56 | 59 | ||
57 | cpu3: cpu@3 { | 60 | cpu3: cpu@3 { |
@@ -59,6 +62,7 @@ | |||
59 | compatible = "arm,cortex-a7"; | 62 | compatible = "arm,cortex-a7"; |
60 | reg = <0x101>; | 63 | reg = <0x101>; |
61 | cci-control-port = <&cci_control2>; | 64 | cci-control-port = <&cci_control2>; |
65 | cpu-idle-states = <&CLUSTER_SLEEP_LITTLE>; | ||
62 | }; | 66 | }; |
63 | 67 | ||
64 | cpu4: cpu@4 { | 68 | cpu4: cpu@4 { |
@@ -66,6 +70,25 @@ | |||
66 | compatible = "arm,cortex-a7"; | 70 | compatible = "arm,cortex-a7"; |
67 | reg = <0x102>; | 71 | reg = <0x102>; |
68 | cci-control-port = <&cci_control2>; | 72 | cci-control-port = <&cci_control2>; |
73 | cpu-idle-states = <&CLUSTER_SLEEP_LITTLE>; | ||
74 | }; | ||
75 | |||
76 | idle-states { | ||
77 | CLUSTER_SLEEP_BIG: cluster-sleep-big { | ||
78 | compatible = "arm,idle-state"; | ||
79 | local-timer-stop; | ||
80 | entry-latency-us = <1000>; | ||
81 | exit-latency-us = <700>; | ||
82 | min-residency-us = <2000>; | ||
83 | }; | ||
84 | |||
85 | CLUSTER_SLEEP_LITTLE: cluster-sleep-little { | ||
86 | compatible = "arm,idle-state"; | ||
87 | local-timer-stop; | ||
88 | entry-latency-us = <1000>; | ||
89 | exit-latency-us = <500>; | ||
90 | min-residency-us = <2500>; | ||
91 | }; | ||
69 | }; | 92 | }; |
70 | }; | 93 | }; |
71 | 94 | ||
diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c index 6a24e111d6e1..b89e5f35db84 100644 --- a/arch/arm/mach-exynos/exynos.c +++ b/arch/arm/mach-exynos/exynos.c | |||
@@ -193,7 +193,6 @@ static void __init exynos_init_late(void) | |||
193 | /* to be supported later */ | 193 | /* to be supported later */ |
194 | return; | 194 | return; |
195 | 195 | ||
196 | pm_genpd_poweroff_unused(); | ||
197 | exynos_pm_init(); | 196 | exynos_pm_init(); |
198 | } | 197 | } |
199 | 198 | ||
diff --git a/arch/arm/mach-exynos/pm_domains.c b/arch/arm/mach-exynos/pm_domains.c index fd76e1b5a471..20f267121b3e 100644 --- a/arch/arm/mach-exynos/pm_domains.c +++ b/arch/arm/mach-exynos/pm_domains.c | |||
@@ -105,78 +105,6 @@ static int exynos_pd_power_off(struct generic_pm_domain *domain) | |||
105 | return exynos_pd_power(domain, false); | 105 | return exynos_pd_power(domain, false); |
106 | } | 106 | } |
107 | 107 | ||
108 | static void exynos_add_device_to_domain(struct exynos_pm_domain *pd, | ||
109 | struct device *dev) | ||
110 | { | ||
111 | int ret; | ||
112 | |||
113 | dev_dbg(dev, "adding to power domain %s\n", pd->pd.name); | ||
114 | |||
115 | while (1) { | ||
116 | ret = pm_genpd_add_device(&pd->pd, dev); | ||
117 | if (ret != -EAGAIN) | ||
118 | break; | ||
119 | cond_resched(); | ||
120 | } | ||
121 | |||
122 | pm_genpd_dev_need_restore(dev, true); | ||
123 | } | ||
124 | |||
125 | static void exynos_remove_device_from_domain(struct device *dev) | ||
126 | { | ||
127 | struct generic_pm_domain *genpd = dev_to_genpd(dev); | ||
128 | int ret; | ||
129 | |||
130 | dev_dbg(dev, "removing from power domain %s\n", genpd->name); | ||
131 | |||
132 | while (1) { | ||
133 | ret = pm_genpd_remove_device(genpd, dev); | ||
134 | if (ret != -EAGAIN) | ||
135 | break; | ||
136 | cond_resched(); | ||
137 | } | ||
138 | } | ||
139 | |||
140 | static void exynos_read_domain_from_dt(struct device *dev) | ||
141 | { | ||
142 | struct platform_device *pd_pdev; | ||
143 | struct exynos_pm_domain *pd; | ||
144 | struct device_node *node; | ||
145 | |||
146 | node = of_parse_phandle(dev->of_node, "samsung,power-domain", 0); | ||
147 | if (!node) | ||
148 | return; | ||
149 | pd_pdev = of_find_device_by_node(node); | ||
150 | if (!pd_pdev) | ||
151 | return; | ||
152 | pd = platform_get_drvdata(pd_pdev); | ||
153 | exynos_add_device_to_domain(pd, dev); | ||
154 | } | ||
155 | |||
156 | static int exynos_pm_notifier_call(struct notifier_block *nb, | ||
157 | unsigned long event, void *data) | ||
158 | { | ||
159 | struct device *dev = data; | ||
160 | |||
161 | switch (event) { | ||
162 | case BUS_NOTIFY_BIND_DRIVER: | ||
163 | if (dev->of_node) | ||
164 | exynos_read_domain_from_dt(dev); | ||
165 | |||
166 | break; | ||
167 | |||
168 | case BUS_NOTIFY_UNBOUND_DRIVER: | ||
169 | exynos_remove_device_from_domain(dev); | ||
170 | |||
171 | break; | ||
172 | } | ||
173 | return NOTIFY_DONE; | ||
174 | } | ||
175 | |||
176 | static struct notifier_block platform_nb = { | ||
177 | .notifier_call = exynos_pm_notifier_call, | ||
178 | }; | ||
179 | |||
180 | static __init int exynos4_pm_init_power_domain(void) | 108 | static __init int exynos4_pm_init_power_domain(void) |
181 | { | 109 | { |
182 | struct platform_device *pdev; | 110 | struct platform_device *pdev; |
@@ -202,7 +130,6 @@ static __init int exynos4_pm_init_power_domain(void) | |||
202 | pd->base = of_iomap(np, 0); | 130 | pd->base = of_iomap(np, 0); |
203 | pd->pd.power_off = exynos_pd_power_off; | 131 | pd->pd.power_off = exynos_pd_power_off; |
204 | pd->pd.power_on = exynos_pd_power_on; | 132 | pd->pd.power_on = exynos_pd_power_on; |
205 | pd->pd.of_node = np; | ||
206 | 133 | ||
207 | pd->oscclk = clk_get(dev, "oscclk"); | 134 | pd->oscclk = clk_get(dev, "oscclk"); |
208 | if (IS_ERR(pd->oscclk)) | 135 | if (IS_ERR(pd->oscclk)) |
@@ -228,15 +155,12 @@ static __init int exynos4_pm_init_power_domain(void) | |||
228 | clk_put(pd->oscclk); | 155 | clk_put(pd->oscclk); |
229 | 156 | ||
230 | no_clk: | 157 | no_clk: |
231 | platform_set_drvdata(pdev, pd); | ||
232 | |||
233 | on = __raw_readl(pd->base + 0x4) & INT_LOCAL_PWR_EN; | 158 | on = __raw_readl(pd->base + 0x4) & INT_LOCAL_PWR_EN; |
234 | 159 | ||
235 | pm_genpd_init(&pd->pd, NULL, !on); | 160 | pm_genpd_init(&pd->pd, NULL, !on); |
161 | of_genpd_add_provider_simple(np, &pd->pd); | ||
236 | } | 162 | } |
237 | 163 | ||
238 | bus_register_notifier(&platform_bus_type, &platform_nb); | ||
239 | |||
240 | return 0; | 164 | return 0; |
241 | } | 165 | } |
242 | arch_initcall(exynos4_pm_init_power_domain); | 166 | arch_initcall(exynos4_pm_init_power_domain); |
diff --git a/arch/arm/mach-imx/imx27-dt.c b/arch/arm/mach-imx/imx27-dt.c index 080e66c6a1d0..dc8f1a6f45f2 100644 --- a/arch/arm/mach-imx/imx27-dt.c +++ b/arch/arm/mach-imx/imx27-dt.c | |||
@@ -20,7 +20,7 @@ | |||
20 | 20 | ||
21 | static void __init imx27_dt_init(void) | 21 | static void __init imx27_dt_init(void) |
22 | { | 22 | { |
23 | struct platform_device_info devinfo = { .name = "cpufreq-cpu0", }; | 23 | struct platform_device_info devinfo = { .name = "cpufreq-dt", }; |
24 | 24 | ||
25 | mxc_arch_reset_init_dt(); | 25 | mxc_arch_reset_init_dt(); |
26 | 26 | ||
diff --git a/arch/arm/mach-imx/mach-imx51.c b/arch/arm/mach-imx/mach-imx51.c index c77deb3f0893..2c5fcaf8675b 100644 --- a/arch/arm/mach-imx/mach-imx51.c +++ b/arch/arm/mach-imx/mach-imx51.c | |||
@@ -51,7 +51,7 @@ static void __init imx51_ipu_mipi_setup(void) | |||
51 | 51 | ||
52 | static void __init imx51_dt_init(void) | 52 | static void __init imx51_dt_init(void) |
53 | { | 53 | { |
54 | struct platform_device_info devinfo = { .name = "cpufreq-cpu0", }; | 54 | struct platform_device_info devinfo = { .name = "cpufreq-dt", }; |
55 | 55 | ||
56 | mxc_arch_reset_init_dt(); | 56 | mxc_arch_reset_init_dt(); |
57 | imx51_ipu_mipi_setup(); | 57 | imx51_ipu_mipi_setup(); |
diff --git a/arch/arm/mach-mvebu/pmsu.c b/arch/arm/mach-mvebu/pmsu.c index 8a70a51533fd..bbd8664d1bac 100644 --- a/arch/arm/mach-mvebu/pmsu.c +++ b/arch/arm/mach-mvebu/pmsu.c | |||
@@ -644,7 +644,7 @@ static int __init armada_xp_pmsu_cpufreq_init(void) | |||
644 | } | 644 | } |
645 | } | 645 | } |
646 | 646 | ||
647 | platform_device_register_simple("cpufreq-generic", -1, NULL, 0); | 647 | platform_device_register_simple("cpufreq-dt", -1, NULL, 0); |
648 | return 0; | 648 | return 0; |
649 | } | 649 | } |
650 | 650 | ||
diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c index 828aee9ea6a8..58920bc8807b 100644 --- a/arch/arm/mach-omap2/pm.c +++ b/arch/arm/mach-omap2/pm.c | |||
@@ -282,7 +282,7 @@ static inline void omap_init_cpufreq(void) | |||
282 | if (!of_have_populated_dt()) | 282 | if (!of_have_populated_dt()) |
283 | devinfo.name = "omap-cpufreq"; | 283 | devinfo.name = "omap-cpufreq"; |
284 | else | 284 | else |
285 | devinfo.name = "cpufreq-cpu0"; | 285 | devinfo.name = "cpufreq-dt"; |
286 | platform_device_register_full(&devinfo); | 286 | platform_device_register_full(&devinfo); |
287 | } | 287 | } |
288 | 288 | ||
diff --git a/arch/arm/mach-s3c64xx/common.c b/arch/arm/mach-s3c64xx/common.c index 5c45aae675b6..16547f2641a3 100644 --- a/arch/arm/mach-s3c64xx/common.c +++ b/arch/arm/mach-s3c64xx/common.c | |||
@@ -440,8 +440,3 @@ void s3c64xx_restart(enum reboot_mode mode, const char *cmd) | |||
440 | /* if all else fails, or mode was for soft, jump to 0 */ | 440 | /* if all else fails, or mode was for soft, jump to 0 */ |
441 | soft_restart(0); | 441 | soft_restart(0); |
442 | } | 442 | } |
443 | |||
444 | void __init s3c64xx_init_late(void) | ||
445 | { | ||
446 | s3c64xx_pm_late_initcall(); | ||
447 | } | ||
diff --git a/arch/arm/mach-s3c64xx/common.h b/arch/arm/mach-s3c64xx/common.h index 7043e7a3a67e..9eb864412911 100644 --- a/arch/arm/mach-s3c64xx/common.h +++ b/arch/arm/mach-s3c64xx/common.h | |||
@@ -23,7 +23,6 @@ void s3c64xx_init_irq(u32 vic0, u32 vic1); | |||
23 | void s3c64xx_init_io(struct map_desc *mach_desc, int size); | 23 | void s3c64xx_init_io(struct map_desc *mach_desc, int size); |
24 | 24 | ||
25 | void s3c64xx_restart(enum reboot_mode mode, const char *cmd); | 25 | void s3c64xx_restart(enum reboot_mode mode, const char *cmd); |
26 | void s3c64xx_init_late(void); | ||
27 | 26 | ||
28 | void s3c64xx_clk_init(struct device_node *np, unsigned long xtal_f, | 27 | void s3c64xx_clk_init(struct device_node *np, unsigned long xtal_f, |
29 | unsigned long xusbxti_f, bool is_s3c6400, void __iomem *reg_base); | 28 | unsigned long xusbxti_f, bool is_s3c6400, void __iomem *reg_base); |
@@ -52,12 +51,6 @@ extern void s3c6410_map_io(void); | |||
52 | #define s3c6410_init NULL | 51 | #define s3c6410_init NULL |
53 | #endif | 52 | #endif |
54 | 53 | ||
55 | #ifdef CONFIG_PM | ||
56 | int __init s3c64xx_pm_late_initcall(void); | ||
57 | #else | ||
58 | static inline int s3c64xx_pm_late_initcall(void) { return 0; } | ||
59 | #endif | ||
60 | |||
61 | #ifdef CONFIG_S3C64XX_PL080 | 54 | #ifdef CONFIG_S3C64XX_PL080 |
62 | extern struct pl08x_platform_data s3c64xx_dma0_plat_data; | 55 | extern struct pl08x_platform_data s3c64xx_dma0_plat_data; |
63 | extern struct pl08x_platform_data s3c64xx_dma1_plat_data; | 56 | extern struct pl08x_platform_data s3c64xx_dma1_plat_data; |
diff --git a/arch/arm/mach-s3c64xx/mach-anw6410.c b/arch/arm/mach-s3c64xx/mach-anw6410.c index 60576dfbea8d..6224c67f5061 100644 --- a/arch/arm/mach-s3c64xx/mach-anw6410.c +++ b/arch/arm/mach-s3c64xx/mach-anw6410.c | |||
@@ -233,7 +233,6 @@ MACHINE_START(ANW6410, "A&W6410") | |||
233 | .init_irq = s3c6410_init_irq, | 233 | .init_irq = s3c6410_init_irq, |
234 | .map_io = anw6410_map_io, | 234 | .map_io = anw6410_map_io, |
235 | .init_machine = anw6410_machine_init, | 235 | .init_machine = anw6410_machine_init, |
236 | .init_late = s3c64xx_init_late, | ||
237 | .init_time = samsung_timer_init, | 236 | .init_time = samsung_timer_init, |
238 | .restart = s3c64xx_restart, | 237 | .restart = s3c64xx_restart, |
239 | MACHINE_END | 238 | MACHINE_END |
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c index fe116334afda..10b913baab28 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c | |||
@@ -857,7 +857,6 @@ MACHINE_START(WLF_CRAGG_6410, "Wolfson Cragganmore 6410") | |||
857 | .init_irq = s3c6410_init_irq, | 857 | .init_irq = s3c6410_init_irq, |
858 | .map_io = crag6410_map_io, | 858 | .map_io = crag6410_map_io, |
859 | .init_machine = crag6410_machine_init, | 859 | .init_machine = crag6410_machine_init, |
860 | .init_late = s3c64xx_init_late, | ||
861 | .init_time = samsung_timer_init, | 860 | .init_time = samsung_timer_init, |
862 | .restart = s3c64xx_restart, | 861 | .restart = s3c64xx_restart, |
863 | MACHINE_END | 862 | MACHINE_END |
diff --git a/arch/arm/mach-s3c64xx/mach-hmt.c b/arch/arm/mach-s3c64xx/mach-hmt.c index 19e8feb908fd..e4b087c58ee6 100644 --- a/arch/arm/mach-s3c64xx/mach-hmt.c +++ b/arch/arm/mach-s3c64xx/mach-hmt.c | |||
@@ -277,7 +277,6 @@ MACHINE_START(HMT, "Airgoo-HMT") | |||
277 | .init_irq = s3c6410_init_irq, | 277 | .init_irq = s3c6410_init_irq, |
278 | .map_io = hmt_map_io, | 278 | .map_io = hmt_map_io, |
279 | .init_machine = hmt_machine_init, | 279 | .init_machine = hmt_machine_init, |
280 | .init_late = s3c64xx_init_late, | ||
281 | .init_time = samsung_timer_init, | 280 | .init_time = samsung_timer_init, |
282 | .restart = s3c64xx_restart, | 281 | .restart = s3c64xx_restart, |
283 | MACHINE_END | 282 | MACHINE_END |
diff --git a/arch/arm/mach-s3c64xx/mach-mini6410.c b/arch/arm/mach-s3c64xx/mach-mini6410.c index 9cbc07602ef3..ab61af50bfb9 100644 --- a/arch/arm/mach-s3c64xx/mach-mini6410.c +++ b/arch/arm/mach-s3c64xx/mach-mini6410.c | |||
@@ -366,7 +366,6 @@ MACHINE_START(MINI6410, "MINI6410") | |||
366 | .init_irq = s3c6410_init_irq, | 366 | .init_irq = s3c6410_init_irq, |
367 | .map_io = mini6410_map_io, | 367 | .map_io = mini6410_map_io, |
368 | .init_machine = mini6410_machine_init, | 368 | .init_machine = mini6410_machine_init, |
369 | .init_late = s3c64xx_init_late, | ||
370 | .init_time = samsung_timer_init, | 369 | .init_time = samsung_timer_init, |
371 | .restart = s3c64xx_restart, | 370 | .restart = s3c64xx_restart, |
372 | MACHINE_END | 371 | MACHINE_END |
diff --git a/arch/arm/mach-s3c64xx/mach-ncp.c b/arch/arm/mach-s3c64xx/mach-ncp.c index 4bae7dc49eea..80cb1446f69f 100644 --- a/arch/arm/mach-s3c64xx/mach-ncp.c +++ b/arch/arm/mach-s3c64xx/mach-ncp.c | |||
@@ -103,7 +103,6 @@ MACHINE_START(NCP, "NCP") | |||
103 | .init_irq = s3c6410_init_irq, | 103 | .init_irq = s3c6410_init_irq, |
104 | .map_io = ncp_map_io, | 104 | .map_io = ncp_map_io, |
105 | .init_machine = ncp_machine_init, | 105 | .init_machine = ncp_machine_init, |
106 | .init_late = s3c64xx_init_late, | ||
107 | .init_time = samsung_timer_init, | 106 | .init_time = samsung_timer_init, |
108 | .restart = s3c64xx_restart, | 107 | .restart = s3c64xx_restart, |
109 | MACHINE_END | 108 | MACHINE_END |
diff --git a/arch/arm/mach-s3c64xx/mach-real6410.c b/arch/arm/mach-s3c64xx/mach-real6410.c index fbad2af1ef16..85fa9598b980 100644 --- a/arch/arm/mach-s3c64xx/mach-real6410.c +++ b/arch/arm/mach-s3c64xx/mach-real6410.c | |||
@@ -335,7 +335,6 @@ MACHINE_START(REAL6410, "REAL6410") | |||
335 | .init_irq = s3c6410_init_irq, | 335 | .init_irq = s3c6410_init_irq, |
336 | .map_io = real6410_map_io, | 336 | .map_io = real6410_map_io, |
337 | .init_machine = real6410_machine_init, | 337 | .init_machine = real6410_machine_init, |
338 | .init_late = s3c64xx_init_late, | ||
339 | .init_time = samsung_timer_init, | 338 | .init_time = samsung_timer_init, |
340 | .restart = s3c64xx_restart, | 339 | .restart = s3c64xx_restart, |
341 | MACHINE_END | 340 | MACHINE_END |
diff --git a/arch/arm/mach-s3c64xx/mach-smartq5.c b/arch/arm/mach-s3c64xx/mach-smartq5.c index dec4c08e834f..33224ab36fac 100644 --- a/arch/arm/mach-s3c64xx/mach-smartq5.c +++ b/arch/arm/mach-s3c64xx/mach-smartq5.c | |||
@@ -156,7 +156,6 @@ MACHINE_START(SMARTQ5, "SmartQ 5") | |||
156 | .init_irq = s3c6410_init_irq, | 156 | .init_irq = s3c6410_init_irq, |
157 | .map_io = smartq_map_io, | 157 | .map_io = smartq_map_io, |
158 | .init_machine = smartq5_machine_init, | 158 | .init_machine = smartq5_machine_init, |
159 | .init_late = s3c64xx_init_late, | ||
160 | .init_time = samsung_timer_init, | 159 | .init_time = samsung_timer_init, |
161 | .restart = s3c64xx_restart, | 160 | .restart = s3c64xx_restart, |
162 | MACHINE_END | 161 | MACHINE_END |
diff --git a/arch/arm/mach-s3c64xx/mach-smartq7.c b/arch/arm/mach-s3c64xx/mach-smartq7.c index 27b322069c7d..fc7fece22fb0 100644 --- a/arch/arm/mach-s3c64xx/mach-smartq7.c +++ b/arch/arm/mach-s3c64xx/mach-smartq7.c | |||
@@ -172,7 +172,6 @@ MACHINE_START(SMARTQ7, "SmartQ 7") | |||
172 | .init_irq = s3c6410_init_irq, | 172 | .init_irq = s3c6410_init_irq, |
173 | .map_io = smartq_map_io, | 173 | .map_io = smartq_map_io, |
174 | .init_machine = smartq7_machine_init, | 174 | .init_machine = smartq7_machine_init, |
175 | .init_late = s3c64xx_init_late, | ||
176 | .init_time = samsung_timer_init, | 175 | .init_time = samsung_timer_init, |
177 | .restart = s3c64xx_restart, | 176 | .restart = s3c64xx_restart, |
178 | MACHINE_END | 177 | MACHINE_END |
diff --git a/arch/arm/mach-s3c64xx/mach-smdk6400.c b/arch/arm/mach-s3c64xx/mach-smdk6400.c index 910749768340..6f425126a735 100644 --- a/arch/arm/mach-s3c64xx/mach-smdk6400.c +++ b/arch/arm/mach-s3c64xx/mach-smdk6400.c | |||
@@ -92,7 +92,6 @@ MACHINE_START(SMDK6400, "SMDK6400") | |||
92 | .init_irq = s3c6400_init_irq, | 92 | .init_irq = s3c6400_init_irq, |
93 | .map_io = smdk6400_map_io, | 93 | .map_io = smdk6400_map_io, |
94 | .init_machine = smdk6400_machine_init, | 94 | .init_machine = smdk6400_machine_init, |
95 | .init_late = s3c64xx_init_late, | ||
96 | .init_time = samsung_timer_init, | 95 | .init_time = samsung_timer_init, |
97 | .restart = s3c64xx_restart, | 96 | .restart = s3c64xx_restart, |
98 | MACHINE_END | 97 | MACHINE_END |
diff --git a/arch/arm/mach-s3c64xx/mach-smdk6410.c b/arch/arm/mach-s3c64xx/mach-smdk6410.c index 1dc86d76b530..661eb662d051 100644 --- a/arch/arm/mach-s3c64xx/mach-smdk6410.c +++ b/arch/arm/mach-s3c64xx/mach-smdk6410.c | |||
@@ -705,7 +705,6 @@ MACHINE_START(SMDK6410, "SMDK6410") | |||
705 | .init_irq = s3c6410_init_irq, | 705 | .init_irq = s3c6410_init_irq, |
706 | .map_io = smdk6410_map_io, | 706 | .map_io = smdk6410_map_io, |
707 | .init_machine = smdk6410_machine_init, | 707 | .init_machine = smdk6410_machine_init, |
708 | .init_late = s3c64xx_init_late, | ||
709 | .init_time = samsung_timer_init, | 708 | .init_time = samsung_timer_init, |
710 | .restart = s3c64xx_restart, | 709 | .restart = s3c64xx_restart, |
711 | MACHINE_END | 710 | MACHINE_END |
diff --git a/arch/arm/mach-s3c64xx/pm.c b/arch/arm/mach-s3c64xx/pm.c index 6b37694fa335..aaf7bea4032f 100644 --- a/arch/arm/mach-s3c64xx/pm.c +++ b/arch/arm/mach-s3c64xx/pm.c | |||
@@ -347,10 +347,3 @@ static __init int s3c64xx_pm_initcall(void) | |||
347 | return 0; | 347 | return 0; |
348 | } | 348 | } |
349 | arch_initcall(s3c64xx_pm_initcall); | 349 | arch_initcall(s3c64xx_pm_initcall); |
350 | |||
351 | int __init s3c64xx_pm_late_initcall(void) | ||
352 | { | ||
353 | pm_genpd_poweroff_unused(); | ||
354 | |||
355 | return 0; | ||
356 | } | ||
diff --git a/arch/arm/mach-shmobile/cpufreq.c b/arch/arm/mach-shmobile/cpufreq.c index 8a24b2be46ae..57fbff024dcd 100644 --- a/arch/arm/mach-shmobile/cpufreq.c +++ b/arch/arm/mach-shmobile/cpufreq.c | |||
@@ -12,6 +12,6 @@ | |||
12 | 12 | ||
13 | int __init shmobile_cpufreq_init(void) | 13 | int __init shmobile_cpufreq_init(void) |
14 | { | 14 | { |
15 | platform_device_register_simple("cpufreq-cpu0", -1, NULL, 0); | 15 | platform_device_register_simple("cpufreq-dt", -1, NULL, 0); |
16 | return 0; | 16 | return 0; |
17 | } | 17 | } |
diff --git a/arch/arm/mach-shmobile/pm-r8a7779.c b/arch/arm/mach-shmobile/pm-r8a7779.c index 69f70b7f7fb2..82fe3d7f9662 100644 --- a/arch/arm/mach-shmobile/pm-r8a7779.c +++ b/arch/arm/mach-shmobile/pm-r8a7779.c | |||
@@ -87,7 +87,6 @@ static void r8a7779_init_pm_domain(struct r8a7779_pm_domain *r8a7779_pd) | |||
87 | genpd->dev_ops.stop = pm_clk_suspend; | 87 | genpd->dev_ops.stop = pm_clk_suspend; |
88 | genpd->dev_ops.start = pm_clk_resume; | 88 | genpd->dev_ops.start = pm_clk_resume; |
89 | genpd->dev_ops.active_wakeup = pd_active_wakeup; | 89 | genpd->dev_ops.active_wakeup = pd_active_wakeup; |
90 | genpd->dev_irq_safe = true; | ||
91 | genpd->power_off = pd_power_down; | 90 | genpd->power_off = pd_power_down; |
92 | genpd->power_on = pd_power_up; | 91 | genpd->power_on = pd_power_up; |
93 | 92 | ||
diff --git a/arch/arm/mach-shmobile/pm-rmobile.c b/arch/arm/mach-shmobile/pm-rmobile.c index a88079af7914..717e6413d29c 100644 --- a/arch/arm/mach-shmobile/pm-rmobile.c +++ b/arch/arm/mach-shmobile/pm-rmobile.c | |||
@@ -110,7 +110,6 @@ static void rmobile_init_pm_domain(struct rmobile_pm_domain *rmobile_pd) | |||
110 | genpd->dev_ops.stop = pm_clk_suspend; | 110 | genpd->dev_ops.stop = pm_clk_suspend; |
111 | genpd->dev_ops.start = pm_clk_resume; | 111 | genpd->dev_ops.start = pm_clk_resume; |
112 | genpd->dev_ops.active_wakeup = rmobile_pd_active_wakeup; | 112 | genpd->dev_ops.active_wakeup = rmobile_pd_active_wakeup; |
113 | genpd->dev_irq_safe = true; | ||
114 | genpd->power_off = rmobile_pd_power_down; | 113 | genpd->power_off = rmobile_pd_power_down; |
115 | genpd->power_on = rmobile_pd_power_up; | 114 | genpd->power_on = rmobile_pd_power_up; |
116 | __rmobile_pd_power_up(rmobile_pd, false); | 115 | __rmobile_pd_power_up(rmobile_pd, false); |
diff --git a/arch/arm/mach-zynq/common.c b/arch/arm/mach-zynq/common.c index 613c476872eb..26f92c28d22b 100644 --- a/arch/arm/mach-zynq/common.c +++ b/arch/arm/mach-zynq/common.c | |||
@@ -110,7 +110,7 @@ static void __init zynq_init_late(void) | |||
110 | */ | 110 | */ |
111 | static void __init zynq_init_machine(void) | 111 | static void __init zynq_init_machine(void) |
112 | { | 112 | { |
113 | struct platform_device_info devinfo = { .name = "cpufreq-cpu0", }; | 113 | struct platform_device_info devinfo = { .name = "cpufreq-dt", }; |
114 | struct soc_device_attribute *soc_dev_attr; | 114 | struct soc_device_attribute *soc_dev_attr; |
115 | struct soc_device *soc_dev; | 115 | struct soc_device *soc_dev; |
116 | struct device *parent = NULL; | 116 | struct device *parent = NULL; |
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c index 337ce5a9b15c..1183d545da1e 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c | |||
@@ -2623,6 +2623,7 @@ static struct irq_chip ioapic_chip __read_mostly = { | |||
2623 | .irq_eoi = ack_apic_level, | 2623 | .irq_eoi = ack_apic_level, |
2624 | .irq_set_affinity = native_ioapic_set_affinity, | 2624 | .irq_set_affinity = native_ioapic_set_affinity, |
2625 | .irq_retrigger = ioapic_retrigger_irq, | 2625 | .irq_retrigger = ioapic_retrigger_irq, |
2626 | .flags = IRQCHIP_SKIP_SET_WAKE, | ||
2626 | }; | 2627 | }; |
2627 | 2628 | ||
2628 | static inline void init_IO_APIC_traps(void) | 2629 | static inline void init_IO_APIC_traps(void) |
@@ -3173,6 +3174,7 @@ static struct irq_chip msi_chip = { | |||
3173 | .irq_ack = ack_apic_edge, | 3174 | .irq_ack = ack_apic_edge, |
3174 | .irq_set_affinity = msi_set_affinity, | 3175 | .irq_set_affinity = msi_set_affinity, |
3175 | .irq_retrigger = ioapic_retrigger_irq, | 3176 | .irq_retrigger = ioapic_retrigger_irq, |
3177 | .flags = IRQCHIP_SKIP_SET_WAKE, | ||
3176 | }; | 3178 | }; |
3177 | 3179 | ||
3178 | int setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, | 3180 | int setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, |
@@ -3271,6 +3273,7 @@ static struct irq_chip dmar_msi_type = { | |||
3271 | .irq_ack = ack_apic_edge, | 3273 | .irq_ack = ack_apic_edge, |
3272 | .irq_set_affinity = dmar_msi_set_affinity, | 3274 | .irq_set_affinity = dmar_msi_set_affinity, |
3273 | .irq_retrigger = ioapic_retrigger_irq, | 3275 | .irq_retrigger = ioapic_retrigger_irq, |
3276 | .flags = IRQCHIP_SKIP_SET_WAKE, | ||
3274 | }; | 3277 | }; |
3275 | 3278 | ||
3276 | int arch_setup_dmar_msi(unsigned int irq) | 3279 | int arch_setup_dmar_msi(unsigned int irq) |
@@ -3321,6 +3324,7 @@ static struct irq_chip hpet_msi_type = { | |||
3321 | .irq_ack = ack_apic_edge, | 3324 | .irq_ack = ack_apic_edge, |
3322 | .irq_set_affinity = hpet_msi_set_affinity, | 3325 | .irq_set_affinity = hpet_msi_set_affinity, |
3323 | .irq_retrigger = ioapic_retrigger_irq, | 3326 | .irq_retrigger = ioapic_retrigger_irq, |
3327 | .flags = IRQCHIP_SKIP_SET_WAKE, | ||
3324 | }; | 3328 | }; |
3325 | 3329 | ||
3326 | int default_setup_hpet_msi(unsigned int irq, unsigned int id) | 3330 | int default_setup_hpet_msi(unsigned int irq, unsigned int id) |
@@ -3384,6 +3388,7 @@ static struct irq_chip ht_irq_chip = { | |||
3384 | .irq_ack = ack_apic_edge, | 3388 | .irq_ack = ack_apic_edge, |
3385 | .irq_set_affinity = ht_set_affinity, | 3389 | .irq_set_affinity = ht_set_affinity, |
3386 | .irq_retrigger = ioapic_retrigger_irq, | 3390 | .irq_retrigger = ioapic_retrigger_irq, |
3391 | .flags = IRQCHIP_SKIP_SET_WAKE, | ||
3387 | }; | 3392 | }; |
3388 | 3393 | ||
3389 | int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev) | 3394 | int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev) |