ARM: shmobile: use machine specific hook for late init
Cc: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Acked-by: Magnus Damm <damm@opensource.se> Acked-by: "Rafael J. Wysocki" <rjw@sisk.pl>
This commit is contained in:
Родитель
7fea1ba58e
Коммит
21cc1b7ede
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
|
||||
# Common objects
|
||||
obj-y := timer.o console.o clock.o
|
||||
obj-y := timer.o console.o clock.o common.o
|
||||
|
||||
# CPU objects
|
||||
obj-$(CONFIG_ARCH_SH7367) += setup-sh7367.o clock-sh7367.o intc-sh7367.o
|
||||
|
|
|
@ -598,5 +598,6 @@ MACHINE_START(AG5EVM, "ag5evm")
|
|||
.init_irq = sh73a0_init_irq,
|
||||
.handle_irq = gic_handle_irq,
|
||||
.init_machine = ag5evm_init,
|
||||
.init_late = shmobile_init_late,
|
||||
.timer = &shmobile_timer,
|
||||
MACHINE_END
|
||||
|
|
|
@ -1440,5 +1440,6 @@ MACHINE_START(AP4EVB, "ap4evb")
|
|||
.init_irq = sh7372_init_irq,
|
||||
.handle_irq = shmobile_handle_irq_intc,
|
||||
.init_machine = ap4evb_init,
|
||||
.init_late = shmobile_init_late,
|
||||
.timer = &shmobile_timer,
|
||||
MACHINE_END
|
||||
|
|
|
@ -500,5 +500,6 @@ MACHINE_START(BONITO, "bonito")
|
|||
.init_irq = r8a7740_init_irq,
|
||||
.handle_irq = shmobile_handle_irq_intc,
|
||||
.init_machine = bonito_init,
|
||||
.init_late = shmobile_init_late,
|
||||
.timer = &shmobile_timer,
|
||||
MACHINE_END
|
||||
|
|
|
@ -338,5 +338,6 @@ MACHINE_START(G3EVM, "g3evm")
|
|||
.init_irq = sh7367_init_irq,
|
||||
.handle_irq = shmobile_handle_irq_intc,
|
||||
.init_machine = g3evm_init,
|
||||
.init_late = shmobile_init_late,
|
||||
.timer = &shmobile_timer,
|
||||
MACHINE_END
|
||||
|
|
|
@ -381,5 +381,6 @@ MACHINE_START(G4EVM, "g4evm")
|
|||
.init_irq = sh7377_init_irq,
|
||||
.handle_irq = shmobile_handle_irq_intc,
|
||||
.init_machine = g4evm_init,
|
||||
.init_late = shmobile_init_late,
|
||||
.timer = &shmobile_timer,
|
||||
MACHINE_END
|
||||
|
|
|
@ -521,5 +521,6 @@ MACHINE_START(KOTA2, "kota2")
|
|||
.init_irq = sh73a0_init_irq,
|
||||
.handle_irq = gic_handle_irq,
|
||||
.init_machine = kota2_init,
|
||||
.init_late = shmobile_init_late,
|
||||
.timer = &shmobile_timer,
|
||||
MACHINE_END
|
||||
|
|
|
@ -1623,5 +1623,6 @@ MACHINE_START(MACKEREL, "mackerel")
|
|||
.init_irq = sh7372_init_irq,
|
||||
.handle_irq = shmobile_handle_irq_intc,
|
||||
.init_machine = mackerel_init,
|
||||
.init_late = shmobile_init_late,
|
||||
.timer = &shmobile_timer,
|
||||
MACHINE_END
|
||||
|
|
|
@ -98,5 +98,6 @@ MACHINE_START(MARZEN, "marzen")
|
|||
.init_irq = r8a7779_init_irq,
|
||||
.handle_irq = gic_handle_irq,
|
||||
.init_machine = marzen_init,
|
||||
.init_late = shmobile_init_late,
|
||||
.timer = &shmobile_timer,
|
||||
MACHINE_END
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <mach/common.h>
|
||||
|
||||
void __init shmobile_init_late(void)
|
||||
{
|
||||
shmobile_suspend_init();
|
||||
shmobile_cpuidle_init();
|
||||
}
|
|
@ -46,7 +46,7 @@ static struct cpuidle_driver shmobile_cpuidle_driver = {
|
|||
|
||||
void (*shmobile_cpuidle_setup)(struct cpuidle_driver *drv);
|
||||
|
||||
static int shmobile_cpuidle_init(void)
|
||||
int shmobile_cpuidle_init(void)
|
||||
{
|
||||
struct cpuidle_device *dev = &shmobile_cpuidle_dev;
|
||||
struct cpuidle_driver *drv = &shmobile_cpuidle_driver;
|
||||
|
@ -65,4 +65,3 @@ static int shmobile_cpuidle_init(void)
|
|||
|
||||
return 0;
|
||||
}
|
||||
late_initcall(shmobile_cpuidle_init);
|
||||
|
|
|
@ -83,4 +83,18 @@ extern void r8a7779_secondary_init(unsigned int cpu);
|
|||
extern int r8a7779_boot_secondary(unsigned int cpu);
|
||||
extern void r8a7779_smp_prepare_cpus(void);
|
||||
|
||||
extern void shmobile_init_late(void);
|
||||
|
||||
#ifdef CONFIG_SUSPEND
|
||||
int shmobile_suspend_init(void);
|
||||
#else
|
||||
static inline int shmobile_suspend_init(void) { return 0; }
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CPU_IDLE
|
||||
int shmobile_cpuidle_init(void);
|
||||
#else
|
||||
static inline int shmobile_cpuidle_init(void) { return 0; }
|
||||
#endif
|
||||
|
||||
#endif /* __ARCH_MACH_COMMON_H */
|
||||
|
|
|
@ -39,9 +39,8 @@ struct platform_suspend_ops shmobile_suspend_ops = {
|
|||
.valid = suspend_valid_only_mem,
|
||||
};
|
||||
|
||||
static int __init shmobile_suspend_init(void)
|
||||
int __init shmobile_suspend_init(void)
|
||||
{
|
||||
suspend_set_ops(&shmobile_suspend_ops);
|
||||
return 0;
|
||||
}
|
||||
late_initcall(shmobile_suspend_init);
|
||||
|
|
Загрузка…
Ссылка в новой задаче