Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 18cb680f authored by Shawn Guo's avatar Shawn Guo
Browse files

ARM: imx: move clk_prepare() out from mxc_restart()



It's inappropriate to call clk_prepare() in mxc_restart(), because the
restart routine could be called in atomic context.  Move clk_get() and
clk_prepare() into mxc_arch_reset_init() and only have the atomic part
clk_enable() be called in mxc_restart().

As a result, mxc_arch_reset_init() needs to be called after clk gets
initialized.

While there, it also changes printk(KERN_ERR ...) to pr_err() and adds
__init annotation for mxc_arch_reset_init().

Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
parent 24a83fe4
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -15,10 +15,13 @@
#include <asm/mach/arch.h>
#include <asm/mach/time.h>
#include "common.h"
#include "hardware.h"
#include "mx25.h"

static void __init imx25_dt_init(void)
{
	mxc_arch_reset_init(MX25_IO_ADDRESS(MX25_WDOG_BASE_ADDR));

	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
}

+3 −0
Original line number Diff line number Diff line
@@ -16,12 +16,15 @@
#include <asm/mach/time.h>

#include "common.h"
#include "hardware.h"
#include "mx27.h"

static void __init imx27_dt_init(void)
{
	struct platform_device_info devinfo = { .name = "cpufreq-cpu0", };

	mxc_arch_reset_init(MX27_IO_ADDRESS(MX27_WDOG_BASE_ADDR));

	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);

	platform_device_register_full(&devinfo);
+3 −0
Original line number Diff line number Diff line
@@ -16,10 +16,13 @@
#include <asm/mach/time.h>

#include "common.h"
#include "hardware.h"
#include "mx31.h"

static void __init imx31_dt_init(void)
{
	mxc_arch_reset_init(MX31_IO_ADDRESS(MX31_WDOG_BASE_ADDR));

	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
}

+3 −0
Original line number Diff line number Diff line
@@ -17,12 +17,15 @@
#include <asm/mach/time.h>

#include "common.h"
#include "hardware.h"
#include "mx51.h"

static void __init imx51_dt_init(void)
{
	struct platform_device_info devinfo = { .name = "cpufreq-cpu0", };

	mxc_arch_reset_init(MX51_IO_ADDRESS(MX51_WDOG1_BASE_ADDR));

	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
	platform_device_register_full(&devinfo);
}
+3 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#include <asm/mach/time.h>

#include "common.h"
#include "hardware.h"
#include "mx53.h"

static void __init imx53_qsb_init(void)
@@ -38,6 +39,8 @@ static void __init imx53_qsb_init(void)

static void __init imx53_dt_init(void)
{
	mxc_arch_reset_init(MX53_IO_ADDRESS(MX53_WDOG1_BASE_ADDR));

	if (of_machine_is_compatible("fsl,imx53-qsb"))
		imx53_qsb_init();

Loading