Commit 2b0f3d70 authored by Aidan MacDonald's avatar Aidan MacDonald Committed by Stephen Boyd
Browse files

mips: ingenic: Do not manually reference the CPU clock



It isn't necessary to manually walk the device tree and enable
the CPU clock anymore. The CPU and other necessary clocks are
now flagged as critical in the clock driver, which accomplishes
the same thing in a more declarative fashion.

Signed-off-by: default avatarAidan MacDonald <aidanmacdonald.0x0@gmail.com>
Reviewed-by: default avatarPaul Cercueil <paul@crapouillou.net>
Link: https://lore.kernel.org/r/20220428164454.17908-4-aidanmacdonald.0x0@gmail.com


Tested-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com> # On X1000 and X1830
Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
parent ca54d06f
Loading
Loading
Loading
Loading
+0 −26
Original line number Diff line number Diff line
@@ -131,36 +131,10 @@ static const struct platform_suspend_ops ingenic_pm_ops __maybe_unused = {

static int __init ingenic_pm_init(void)
{
	struct device_node *cpu_node;
	struct clk *cpu0_clk;
	int ret;

	if (boot_cpu_type() == CPU_XBURST) {
		if (IS_ENABLED(CONFIG_PM_SLEEP))
			suspend_set_ops(&ingenic_pm_ops);
		_machine_halt = ingenic_halt;

		/*
		 * Unconditionally enable the clock for the first CPU.
		 * This makes sure that the PLL that feeds the CPU won't be
		 * stopped while the kernel is running.
		 */
		cpu_node = of_get_cpu_node(0, NULL);
		if (!cpu_node) {
			pr_err("Unable to get CPU node\n");
		} else {
			cpu0_clk = of_clk_get(cpu_node, 0);
			if (IS_ERR(cpu0_clk)) {
				pr_err("Unable to get CPU0 clock\n");
				return PTR_ERR(cpu0_clk);
			}

			ret = clk_prepare_enable(cpu0_clk);
			if (ret) {
				pr_err("Unable to enable CPU0 clock\n");
				return ret;
			}
		}
	}

	return 0;