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

Commit 2457aaf7 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ACPI and power management fixes from Rafael Wysocki:

 1) Four fixes for cpufreq regressions introduced by the changes that
    removed Device Tree parsing for CPU device nodes from cpufreq
    drivers from Sudeep KarkadaNagesha.

 2) Two fixes for recent cpufreq regressions introduced by changes
    related to the preservation of sysfs attributes over system
    suspend/resume cycles from Viresh Kumar.

 3) Fix for ACPI-based wakeup signaling in the PCI subsystem that
    fails to stop PME polling for devices put into the D3cold power
    state from Rafael J Wysocki.

 4) Fix for bad interactions between cpufreq and udev on systems
    supporting intel_pstate where acpi-cpufreq is available as well
    from Yinghai Lu.

* tag 'pm+acpi-3.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  cpufreq: return EEXIST instead of EBUSY for second registering
  PCI / ACPI / PM: Clear pme_poll for devices in D3cold on wakeup
  ARM: shmobile: change dev_id to cpu0 while registering cpu clock
  ARM: i.MX: change dev_id to cpu0 while registering cpu clock
  cpufreq: imx6q-cpufreq: assign cpu_dev correctly to cpu0 device
  cpufreq: cpufreq-cpu0: assign cpu_dev correctly to cpu0 device
  cpufreq: unlock correct rwsem while updating policy->cpu
  cpufreq: Clear policy->cpus bits in __cpufreq_remove_dev_finish()
parents d45004f9 d831a005
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -285,7 +285,7 @@ int __init mx27_clocks_init(unsigned long fref)
	clk_register_clkdev(clk[ata_ahb_gate], "ata", NULL);
	clk_register_clkdev(clk[rtc_ipg_gate], NULL, "imx21-rtc");
	clk_register_clkdev(clk[scc_ipg_gate], "scc", NULL);
	clk_register_clkdev(clk[cpu_div], NULL, "cpufreq-cpu0.0");
	clk_register_clkdev(clk[cpu_div], NULL, "cpu0");
	clk_register_clkdev(clk[emi_ahb_gate], "emi_ahb" , NULL);

	mxc_timer_init(MX27_IO_ADDRESS(MX27_GPT1_BASE_ADDR), MX27_INT_GPT1);
+1 −1
Original line number Diff line number Diff line
@@ -328,7 +328,7 @@ static void __init mx5_clocks_common_init(unsigned long rate_ckil,
	clk_register_clkdev(clk[ssi2_ipg_gate], NULL, "imx-ssi.1");
	clk_register_clkdev(clk[ssi3_ipg_gate], NULL, "imx-ssi.2");
	clk_register_clkdev(clk[sdma_gate], NULL, "imx35-sdma");
	clk_register_clkdev(clk[cpu_podf], NULL, "cpufreq-cpu0.0");
	clk_register_clkdev(clk[cpu_podf], NULL, "cpu0");
	clk_register_clkdev(clk[iim_gate], "iim", NULL);
	clk_register_clkdev(clk[dummy], NULL, "imx2-wdt.0");
	clk_register_clkdev(clk[dummy], NULL, "imx2-wdt.1");
+7 −2
Original line number Diff line number Diff line
@@ -233,10 +233,15 @@ static void __init imx6q_opp_check_1p2ghz(struct device *cpu_dev)
	of_node_put(np);
}

static void __init imx6q_opp_init(struct device *cpu_dev)
static void __init imx6q_opp_init(void)
{
	struct device_node *np;
	struct device *cpu_dev = get_cpu_device(0);

	if (!cpu_dev) {
		pr_warn("failed to get cpu0 device\n");
		return;
	}
	np = of_node_get(cpu_dev->of_node);
	if (!np) {
		pr_warn("failed to find cpu0 node\n");
@@ -268,7 +273,7 @@ static void __init imx6q_init_late(void)
		imx6q_cpuidle_init();

	if (IS_ENABLED(CONFIG_ARM_IMX6Q_CPUFREQ)) {
		imx6q_opp_init(&imx6q_cpufreq_pdev.dev);
		imx6q_opp_init();
		platform_device_register(&imx6q_cpufreq_pdev);
	}
}
+1 −1
Original line number Diff line number Diff line
@@ -555,7 +555,7 @@ static struct clk_lookup lookups[] = {
	CLKDEV_CON_ID("pll2h",			&pll2h_clk),

	/* CPU clock */
	CLKDEV_DEV_ID("cpufreq-cpu0",		&z_clk),
	CLKDEV_DEV_ID("cpu0",			&z_clk),

	/* DIV6 */
	CLKDEV_CON_ID("zb",			&div6_clks[DIV6_ZB]),
+1 −1
Original line number Diff line number Diff line
@@ -616,7 +616,7 @@ static struct clk_lookup lookups[] = {
	CLKDEV_DEV_ID("smp_twd", &twd_clk), /* smp_twd */

	/* DIV4 clocks */
	CLKDEV_DEV_ID("cpufreq-cpu0", &div4_clks[DIV4_Z]),
	CLKDEV_DEV_ID("cpu0", &div4_clks[DIV4_Z]),

	/* DIV6 clocks */
	CLKDEV_CON_ID("vck1_clk", &div6_clks[DIV6_VCK1]),
Loading