]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
cpufreq: fix using cpufreq-dt as module
authorAndreas Kemnade <andreas@kemnade.info>
Sun, 3 Nov 2024 21:02:51 +0000 (22:02 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 17 Feb 2025 09:05:02 +0000 (10:05 +0100)
commit f1f010c9d9c62c865d9f54e94075800ba764b4d9 upstream.

This driver can be built as a module since commit 3b062a086984 ("cpufreq:
dt-platdev: Support building as module"), but unfortunately this caused
a regression because the cputfreq-dt-platdev.ko module does not autoload.

Usually, this is solved by just using the MODULE_DEVICE_TABLE() macro to
export all the device IDs as module aliases. But this driver is special
due how matches with devices and decides what platform supports.

There are two of_device_id lists, an allow list that are for CPU devices
that always match and a deny list that's for devices that must not match.

The driver registers a cpufreq-dt platform device for all the CPU device
nodes that either are in the allow list or contain an operating-points-v2
property and are not in the deny list.

Enforce builtin compile of cpufreq-dt-platdev to make autoload work.

Fixes: 3b062a086984 ("cpufreq: dt-platdev: Support building as module")
Link: https://lore.kernel.org/all/20241104201424.2a42efdd@akair/
Link: https://lore.kernel.org/all/20241119111918.1732531-1-javierm@redhat.com/
Cc: stable@vger.kernel.org
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Reported-by: Radu Rendec <rrendec@redhat.com>
Reported-by: Javier Martinez Canillas <javierm@redhat.com>
[ Viresh: Picked commit log from Javier, updated tags ]
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/cpufreq/Kconfig
drivers/cpufreq/cpufreq-dt-platdev.c

index 588ab1cc6d557c31d55426ea675f964717c10e5a..f089a1b9c0c98ae96e2bb343d9337dbcd1f9d584 100644 (file)
@@ -218,7 +218,7 @@ config CPUFREQ_DT
          If in doubt, say N.
 
 config CPUFREQ_DT_PLATDEV
-       tristate "Generic DT based cpufreq platdev driver"
+       bool "Generic DT based cpufreq platdev driver"
        depends on OF
        help
          This adds a generic DT based cpufreq platdev driver for frequency
index 18942bfe9c95f76b0ad3ccd8145e543d0bb5a3f8..78ad3221fe077e6f69fb543972afb42dad4939f7 100644 (file)
@@ -234,5 +234,3 @@ create_pdev:
                               sizeof(struct cpufreq_dt_platform_data)));
 }
 core_initcall(cpufreq_dt_platdev_init);
-MODULE_DESCRIPTION("Generic DT based cpufreq platdev driver");
-MODULE_LICENSE("GPL");