From 1ed01ef606192ca7900b90bc81c4374bbdd5d786 Mon Sep 17 00:00:00 2001 From: Tobias Schramm Date: Mon, 26 Feb 2024 10:40:50 +0100 Subject: [PATCH] kernel: 6.1: backport Marvell Armada 8k AP807 cpufreq support Upstream a patch adding support for cpufreq on AP807-based SoC like the CN913x was submitted. Include it in patches to ensure best performance under load and lowest power consumption in idle. Signed-off-by: Tobias Schramm --- ...-cpufreq-armada-8k-add-ap807-support.patch | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 target/linux/mvebu/patches-6.1/000-cpufreq-armada-8k-add-ap807-support.patch diff --git a/target/linux/mvebu/patches-6.1/000-cpufreq-armada-8k-add-ap807-support.patch b/target/linux/mvebu/patches-6.1/000-cpufreq-armada-8k-add-ap807-support.patch new file mode 100644 index 0000000000..cacc65e7c0 --- /dev/null +++ b/target/linux/mvebu/patches-6.1/000-cpufreq-armada-8k-add-ap807-support.patch @@ -0,0 +1,64 @@ +From 8eec6e740b564ec5e1da59ab7070b89aa23c9973 Mon Sep 17 00:00:00 2001 +From: "Russell King (Oracle)" +Date: Fri, 16 Jun 2023 12:41:30 +0100 +Subject: [PATCH] cpufreq: armada-8k: add ap807 support + +Add support for the Armada AP807 die to armada-8k. This uses a +different compatible for the CPU clock which needs to be added to +the cpufreq driver. + +This commit takes a different approach to the WindRiver patch +"cpufreq: armada: enable ap807-cpu-clk" in that rather than calling +of_find_compatible_node() for each compatible, we use a table of +IDs instead. + +Signed-off-by: Russell King (Oracle) +Signed-off-by: Viresh Kumar +--- + drivers/cpufreq/armada-8k-cpufreq.c | 16 +++++++++------- + 1 file changed, 9 insertions(+), 7 deletions(-) + +diff --git a/drivers/cpufreq/armada-8k-cpufreq.c b/drivers/cpufreq/armada-8k-cpufreq.c +index b0fc5e84f857..8afefdea4d80 100644 +--- a/drivers/cpufreq/armada-8k-cpufreq.c ++++ b/drivers/cpufreq/armada-8k-cpufreq.c +@@ -21,6 +21,13 @@ + #include + #include + ++static const struct of_device_id __maybe_unused armada_8k_cpufreq_of_match[] = { ++ { .compatible = "marvell,ap806-cpu-clock" }, ++ { .compatible = "marvell,ap807-cpu-clock" }, ++ { }, ++}; ++MODULE_DEVICE_TABLE(of, armada_8k_cpufreq_of_match); ++ + /* + * Setup the opps list with the divider for the max frequency, that + * will be filled at runtime. +@@ -127,7 +134,8 @@ static int __init armada_8k_cpufreq_init(void) + struct device_node *node; + struct cpumask cpus; + +- node = of_find_compatible_node(NULL, NULL, "marvell,ap806-cpu-clock"); ++ node = of_find_matching_node_and_match(NULL, armada_8k_cpufreq_of_match, ++ NULL); + if (!node || !of_device_is_available(node)) { + of_node_put(node); + return -ENODEV; +@@ -204,12 +212,6 @@ static void __exit armada_8k_cpufreq_exit(void) + } + module_exit(armada_8k_cpufreq_exit); + +-static const struct of_device_id __maybe_unused armada_8k_cpufreq_of_match[] = { +- { .compatible = "marvell,ap806-cpu-clock" }, +- { }, +-}; +-MODULE_DEVICE_TABLE(of, armada_8k_cpufreq_of_match); +- + MODULE_AUTHOR("Gregory Clement "); + MODULE_DESCRIPTION("Armada 8K cpufreq driver"); + MODULE_LICENSE("GPL"); +-- +2.43.2 + -- 2.30.2