Merge branch 'pm-cpufreq'
Merge cpufreq fixes for 5.19-rc5, including ARM cpufreq fixes and the following one: - Make amd-pstate enable CPPC on resume from S3 (Jinzhou Su). * pm-cpufreq: cpufreq: Add MT8186 to cpufreq-dt-platdev blocklist cpufreq: pmac32-cpufreq: Fix refcount leak bug cpufreq: qcom-hw: Don't do lmh things without a throttle interrupt drivers: cpufreq: Add missing of_node_put() in qoriq-cpufreq.c cpufreq: amd-pstate: Add resume and suspend callbacks
This commit is contained in:
commit
bc621588ff
|
@ -566,6 +566,28 @@ static int amd_pstate_cpu_exit(struct cpufreq_policy *policy)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int amd_pstate_cpu_resume(struct cpufreq_policy *policy)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = amd_pstate_enable(true);
|
||||
if (ret)
|
||||
pr_err("failed to enable amd-pstate during resume, return %d\n", ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int amd_pstate_cpu_suspend(struct cpufreq_policy *policy)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = amd_pstate_enable(false);
|
||||
if (ret)
|
||||
pr_err("failed to disable amd-pstate during suspend, return %d\n", ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Sysfs attributes */
|
||||
|
||||
/*
|
||||
|
@ -636,6 +658,8 @@ static struct cpufreq_driver amd_pstate_driver = {
|
|||
.target = amd_pstate_target,
|
||||
.init = amd_pstate_cpu_init,
|
||||
.exit = amd_pstate_cpu_exit,
|
||||
.suspend = amd_pstate_cpu_suspend,
|
||||
.resume = amd_pstate_cpu_resume,
|
||||
.set_boost = amd_pstate_set_boost,
|
||||
.name = "amd-pstate",
|
||||
.attr = amd_pstate_attr,
|
||||
|
|
|
@ -127,6 +127,7 @@ static const struct of_device_id blocklist[] __initconst = {
|
|||
{ .compatible = "mediatek,mt8173", },
|
||||
{ .compatible = "mediatek,mt8176", },
|
||||
{ .compatible = "mediatek,mt8183", },
|
||||
{ .compatible = "mediatek,mt8186", },
|
||||
{ .compatible = "mediatek,mt8365", },
|
||||
{ .compatible = "mediatek,mt8516", },
|
||||
|
||||
|
|
|
@ -470,6 +470,10 @@ static int pmac_cpufreq_init_MacRISC3(struct device_node *cpunode)
|
|||
if (slew_done_gpio_np)
|
||||
slew_done_gpio = read_gpio(slew_done_gpio_np);
|
||||
|
||||
of_node_put(volt_gpio_np);
|
||||
of_node_put(freq_gpio_np);
|
||||
of_node_put(slew_done_gpio_np);
|
||||
|
||||
/* If we use the frequency GPIOs, calculate the min/max speeds based
|
||||
* on the bus frequencies
|
||||
*/
|
||||
|
|
|
@ -442,6 +442,9 @@ static int qcom_cpufreq_hw_cpu_online(struct cpufreq_policy *policy)
|
|||
struct platform_device *pdev = cpufreq_get_driver_data();
|
||||
int ret;
|
||||
|
||||
if (data->throttle_irq <= 0)
|
||||
return 0;
|
||||
|
||||
ret = irq_set_affinity_hint(data->throttle_irq, policy->cpus);
|
||||
if (ret)
|
||||
dev_err(&pdev->dev, "Failed to set CPU affinity of %s[%d]\n",
|
||||
|
@ -469,6 +472,9 @@ static int qcom_cpufreq_hw_cpu_offline(struct cpufreq_policy *policy)
|
|||
|
||||
static void qcom_cpufreq_hw_lmh_exit(struct qcom_cpufreq_data *data)
|
||||
{
|
||||
if (data->throttle_irq <= 0)
|
||||
return;
|
||||
|
||||
free_irq(data->throttle_irq, data);
|
||||
}
|
||||
|
||||
|
|
|
@ -275,6 +275,7 @@ static int qoriq_cpufreq_probe(struct platform_device *pdev)
|
|||
|
||||
np = of_find_matching_node(NULL, qoriq_cpufreq_blacklist);
|
||||
if (np) {
|
||||
of_node_put(np);
|
||||
dev_info(&pdev->dev, "Disabling due to erratum A-008083");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue