cpufreq: fix using cpufreq-dt as module
Subsystems (2)
PATCH 1/1 cpufreq: fix using cpufreq-dt as module
E.g. omap2plus_defconfig compiles cpufreq-dt as module. As there is no module alias nor a module_init(), cpufreq-dt-platdev will not be used and therefore on several omap platforms there is no cpufreq.
Enforce builtin compile of cpufreq-dt-platdev to make it effective.
--- drivers/cpufreq/Kconfig | 2 +- drivers/cpufreq/cpufreq-dt-platdev.c | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-)
drivers/cpufreq/Kconfig +1 -1
@@ -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
drivers/cpufreq/cpufreq-dt-platdev.c +0 -2
@@ -234,5 +234,3 @@ static int __init cpufreq_dt_platdev_init(void) sizeof(struct cpufreq_dt_platform_data))); }core_initcall (cpufreq_dt_platdev_init); -MODULE_DESCRIPTION ("Generic DT based cpufreq platdev driver" ); -MODULE_LICENSE ("GPL" );
Signature · 1 line
2.39.2
Quoted 9 lines · Andreas Kemnade
E.g.
omap2plus_defconfigcompiles cpufreq-dt as module. As there is no module alias nor amodule_init(), cpufreq-dt-platdev will not be used and therefore on several omap platforms there is no cpufreq.Enforce builtin compile of cpufreq-dt-platdev to make it effective.
Fixes 3b062a086984 ("cpufreq: dt-platdev: Support building as module")Signed-off-by Andreas Kemnade <[email protected]>
I'd much rather see this fixed to work as a module. You already hinted at the right way to do that, so please do that instead.
Kevin
Am Mon, 04 Nov 2024 10:35:26 -0800
schrieb Kevin Hilman <[email protected]>:
Quoted 6 lines
Quoted 4 lines · Andreas Kemnade
E.g.
omap2plus_defconfigcompiles cpufreq-dt as module. As there is no module alias nor amodule_init(), cpufreq-dt-platdev will not be used and therefore on several omap platforms there is no cpufreq.
Quoted 9 lines
Quoted 5 lines
Enforce builtin compile of cpufreq-dt-platdev to make it effective.
Fixes 3b062a086984 ("cpufreq: dt-platdev: Support building asmodule") Cc: [email protected]
Signed-off-by Andreas Kemnade <[email protected]>I'd much rather see this fixed to work as a module. You already hinted at the right way to do that, so please do that instead.
no clear idea how. What aliases should I add? The cpufreq-dt-platdev is not a real driver, so I could not create mod_devicetable aliases to match a given device. It constructs a device under certain conditions depending on the board compatible, so no simple list of compatibles, it contains allow and blocklists.
cpufreq-dt then binds to that device and that one can be built as a module (which then made cpufreq-dt-platdev also a module, causing the trouble). I do not see any benefit from having cpufreq-dt-platdev as a module. ti-cpufreq has a similar role and is also just builtin. It does itself no real work but provides a device cpufreq-dt then binds to.
Handling module removal would probably need to be added and tested. I feel not comfortable having such as a regression fix and for stable.
Regards,
Andreas
Quoted 13 lines · Andreas Kemnade
no clear idea how. What aliases should I add? The cpufreq-dt-platdev is not a real driver, so I could not create
mod_devicetablealiases to match a given device. It constructs a device under certain conditions depending on the board compatible, so no simple list of compatibles, it contains allow and blocklists.cpufreq-dt then binds to that device and that one can be built as a module (which then made cpufreq-dt-platdev also a module, causing the trouble). I do not see any benefit from having cpufreq-dt-platdev as a module. ti-cpufreq has a similar role and is also just builtin. It does itself no real work but provides a device cpufreq-dt then binds to.
Quoted 2 lines
Handling module removal would probably need to be added and tested. I feel not comfortable having such as a regression fix and for stable.
Applied this patch for now (with some changes to commit log), as there is no clean way to fix this for now. Got reports from other folks too about it.
Signature · 1 line
viresh
Quoted 14 lines · Viresh Kumar
Quoted 13 lines · Andreas Kemnade
no clear idea how. What aliases should I add? The cpufreq-dt-platdev is not a real driver, so I could not create
mod_devicetablealiases to match a given device. It constructs a device under certain conditions depending on the board compatible, so no simple list of compatibles, it contains allow and blocklists.cpufreq-dt then binds to that device and that one can be built as a module (which then made cpufreq-dt-platdev also a module, causing the trouble). I do not see any benefit from having cpufreq-dt-platdev as a module. ti-cpufreq has a similar role and is also just builtin. It does itself no real work but provides a device cpufreq-dt then binds to.
Quoted 5 lines
Quoted 2 lines
Handling module removal would probably need to be added and tested. I feel not comfortable having such as a regression fix and for stable.
Applied this patch for now (with some changes to commit log), as there is no clean way to fix this for now. Got reports from other folks too about it.
Oops, I thought I had replied to this earlier after detailed explanation from Andreas, but I guess I didn't.
Thanks for applying.
Kevin