mirror-linux/drivers/cpufreq
Krzysztof Kozlowski 0f5796dac1 cpufreq: dt-platdev: Fix creating device on OPPv1 platforms
Commit 6ea891a6dd ("cpufreq: dt-platdev: Simplify with
of_machine_get_match_data()") broke several platforms which did not have
OPPv2 proprety, because it incorrectly checked for device match data
after first matching from "allowlist".  Almost all of "allowlist" match
entries do not have match data and it is expected to create platform
device for them with empty data.

Fix this by first checking if platform is on the allowlist with
of_machine_device_match() and only then taking the match data.  This
duplicates the number of checks (we match against the allowlist twice),
but makes the code here much smaller.

Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Closes: https://lore.kernel.org/all/CAMuHMdVJD4+J9QpUUs-sX0feKfuPD72CO0dcqN7shvF_UYpZ3Q@mail.gmail.com/
Reported-by: Pavel Pisa <pisa@fel.cvut.cz>
Closes: https://lore.kernel.org/all/6hnk7llbwdezh74h74fhvofbx4t4jihel5kvr6qwx2xuxxbjys@rmwbd7lkhrdz/
Fixes: 6ea891a6dd ("cpufreq: dt-platdev: Simplify with of_machine_get_match_data()")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Tested-by: Pavel Pisa <pisa@fel.cvut.cz>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Link: https://patch.msgid.link/20251210051718.132795-2-krzysztof.kozlowski@oss.qualcomm.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
2025-12-16 07:59:30 -06:00
..
Kconfig cpufreq: Add Rust-based cpufreq-dt driver 2025-05-20 11:21:11 +05:30
Kconfig.arm cpufreq: tegra124: Allow building as a module 2025-07-09 13:41:58 +05:30
Kconfig.powerpc cpufreq: ppc_cbe: Remove powerpc Cell driver 2025-02-26 21:15:09 +05:30
Kconfig.x86 cpufreq: Introduce an optional cpuinfo_avg_freq sysfs entry 2025-02-17 18:09:31 +00:00
Makefile PM: cpufreq: powernv/tracing: Move powernv_throttle trace event 2025-07-21 16:40:56 -04:00
acpi-cpufreq.c cpufreq: ACPI: Replace udelay() with usleep_range() 2025-11-20 21:50:08 +01:00
airoha-cpufreq.c cpufreq: airoha: Add support for AN7583 SoC 2025-08-11 12:19:20 +05:30
amd-pstate-trace.c
amd-pstate-trace.h cpufreq/amd-pstate: Move all EPP tracing into *_update_perf and *_set_epp functions 2025-03-06 13:01:25 -06:00
amd-pstate-ut.c Power management updates for 6.16-rc1 2025-05-27 16:48:47 -07:00
amd-pstate.c cpufreq/amd-pstate: Call cppc_set_auto_sel() only for online CPUs 2025-11-10 23:35:20 -06:00
amd-pstate.h amd-pstate-ut: Reset amd-pstate driver mode after running selftests 2025-05-05 12:07:42 -05:00
amd_freq_sensitivity.c x86/msr: Rename 'rdmsrl_safe()' to 'rdmsrq_safe()' 2025-04-10 11:58:38 +02:00
apple-soc-cpufreq.c cpufreq: apple-soc: Fix null-ptr-deref in apple_soc_cpufreq_get_rate() 2025-04-10 10:07:32 +05:30
armada-8k-cpufreq.c cpufreq: armada-8k: Fix off by one in armada_8k_cpufreq_free_table() 2025-07-02 12:08:16 +05:30
armada-37xx-cpufreq.c cpufreq: armada-37xx: use max() to calculate target_vm 2025-08-11 12:19:29 +05:30
bmips-cpufreq.c cpufreq: bmips: Stop setting cpufreq_driver->attr field 2025-02-07 09:45:11 +05:30
brcmstb-avs-cpufreq.c cpufreq: brcmstb-avs: Use scope-based cleanup helper 2025-08-29 11:28:27 +05:30
cppc_cpufreq.c cpufreq: CPPC: Don't warn if FIE init fails to read counters 2025-10-28 10:40:47 +05:30
cpufreq-dt-platdev.c cpufreq: dt-platdev: Fix creating device on OPPv1 platforms 2025-12-16 07:59:30 -06:00
cpufreq-dt.c cpufreq: Make drivers using CPUFREQ_ETERNAL specify transition latency 2025-10-01 13:56:24 +02:00
cpufreq-dt.h cpufreq: dt: Add register helper 2025-07-09 13:41:33 +05:30
cpufreq-nforce2.c cpufreq: nforce2: fix reference count leak in nforce2 2025-10-28 10:28:13 +05:30
cpufreq.c cpufreq: Replace deprecated strcpy() in cpufreq_unregister_governor() 2025-10-20 21:25:36 +02:00
cpufreq_conservative.c cpufreq: conservative: Replace sscanf() with kstrtouint() 2025-09-10 12:20:10 +02:00
cpufreq_governor.c cpufreq: governor: Fix negative 'idle_time' handling in dbs_update() 2025-02-20 20:27:19 +01:00
cpufreq_governor.h
cpufreq_governor_attr_set.c
cpufreq_ondemand.c cpufreq: ondemand: Update the efficient idle check for Intel extended Families 2025-09-10 12:25:08 +02:00
cpufreq_ondemand.h cpufreq: ondemand: Update the efficient idle check for Intel extended Families 2025-09-10 12:25:08 +02:00
cpufreq_performance.c
cpufreq_powersave.c
cpufreq_stats.c
cpufreq_userspace.c cpufreq: userspace: set CPUFREQ_GOV_STRICT_TARGET flag 2025-06-18 21:33:01 +02:00
davinci-cpufreq.c cpufreq: davinci: Stop setting cpufreq_driver->attr field 2025-02-07 09:45:12 +05:30
e_powersaver.c x86/msr: Rename 'wrmsrl()' to 'wrmsrq()' 2025-04-10 11:58:33 +02:00
elanfreq.c x86/msr: Add explicit includes of <asm/msr.h> 2025-05-02 10:23:47 +02:00
freq_table.c cpufreq: Replace pointer subtraction with iteration macro 2025-09-23 17:16:56 +02:00
gx-suspmod.c
highbank-cpufreq.c
imx-cpufreq-dt.c
imx6q-cpufreq.c cpufreq: Make drivers using CPUFREQ_ETERNAL specify transition latency 2025-10-01 13:56:24 +02:00
intel_pstate.c cpufreq: intel_pstate: Eliminate some code duplication 2025-11-18 15:51:31 +01:00
kirkwood-cpufreq.c cpufreq: kirkwood: Stop setting cpufreq_driver->attr field 2025-02-07 09:45:12 +05:30
longhaul.c cpufreq/longhaul: handle NULL policy in longhaul_exit 2025-09-01 10:50:28 +05:30
longhaul.h
longrun.c
loongson2_cpufreq.c cpufreq: loongson: Stop setting cpufreq_driver->attr field 2025-02-07 09:45:12 +05:30
loongson3_cpufreq.c cpufreq: loongson: Set .set_boost directly 2025-02-07 09:45:15 +05:30
mediatek-cpufreq-hw.c cpufreq: Make drivers using CPUFREQ_ETERNAL specify transition latency 2025-10-01 13:56:24 +02:00
mediatek-cpufreq.c cpufreq: mediatek: Simplify with of_machine_get_match_data() 2025-11-26 19:42:21 -06:00
mvebu-cpufreq.c cpufreq: Init cpufreq only for present CPUs 2025-03-17 11:29:18 +05:30
omap-cpufreq.c cpufreq: omap: Stop setting cpufreq_driver->attr field 2025-02-07 09:45:12 +05:30
p4-clockmod.c cpufreq: p4: Stop setting cpufreq_driver->attr field 2025-02-07 09:45:12 +05:30
pasemi-cpufreq.c cpufreq: pasemi: Stop setting cpufreq_driver->attr field 2025-02-07 09:45:12 +05:30
pcc-cpufreq.c
pmac32-cpufreq.c cpufreq: pmac: Stop setting cpufreq_driver->attr field 2025-02-07 09:45:13 +05:30
pmac64-cpufreq.c cpufreq: pmac: Stop setting cpufreq_driver->attr field 2025-02-07 09:45:13 +05:30
powernow-k6.c cpufreq: powernow: Stop setting cpufreq_driver->attr field 2025-02-07 09:45:13 +05:30
powernow-k7.c x86/msr: Rename 'wrmsrl()' to 'wrmsrq()' 2025-04-10 11:58:33 +02:00
powernow-k7.h
powernow-k8.c powernow: use pr_info_once 2025-05-11 17:54:05 -07:00
powernow-k8.h
powernv-cpufreq.c PM: cpufreq: powernv/tracing: Move powernv_throttle trace event 2025-07-21 16:40:56 -04:00
powernv-trace.h PM: cpufreq: powernv/tracing: Move powernv_throttle trace event 2025-07-21 16:40:56 -04:00
pxa2xx-cpufreq.c
pxa3xx-cpufreq.c
qcom-cpufreq-hw.c cpufreq: Init cpufreq only for present CPUs 2025-03-17 11:29:18 +05:30
qcom-cpufreq-nvmem.c cpufreq: qcom-nvmem: fix compilation warning for qcom_cpufreq_ipq806x_match_list 2025-11-21 10:21:13 +05:30
qoriq-cpufreq.c cpufreq: qoriq: Stop setting cpufreq_driver->attr field 2025-02-07 09:45:13 +05:30
raspberrypi-cpufreq.c
rcpufreq_dt.rs rust: driver: let probe() return impl PinInit<Self, Error> 2025-10-21 18:40:48 +02:00
s3c64xx-cpufreq.c cpufreq: s3c64xx: Fix compilation warning 2025-01-23 20:47:32 +01:00
s5pv210-cpufreq.c cpufreq: s5pv210: fix refcount leak 2025-10-23 12:10:11 +05:30
sa1110-cpufreq.c
sc520_freq.c x86/msr: Add explicit includes of <asm/msr.h> 2025-05-02 10:23:47 +02:00
scmi-cpufreq.c cpufreq: Make drivers using CPUFREQ_ETERNAL specify transition latency 2025-10-01 13:56:24 +02:00
scpi-cpufreq.c cpufreq: Make drivers using CPUFREQ_ETERNAL specify transition latency 2025-10-01 13:56:24 +02:00
sh-cpufreq.c cpufreq: Drop redundant freq_table parameter 2025-09-05 20:16:55 +02:00
sparc-us2e-cpufreq.c
sparc-us3-cpufreq.c
spear-cpufreq.c cpufreq: Make drivers using CPUFREQ_ETERNAL specify transition latency 2025-10-01 13:56:24 +02:00
speedstep-centrino.c cpufreq: speedstep: Stop setting cpufreq_driver->attr field 2025-02-07 09:45:14 +05:30
speedstep-ich.c cpufreq: speedstep: Stop setting cpufreq_driver->attr field 2025-02-07 09:45:14 +05:30
speedstep-lib.c cpufreq: speedstep-lib: Use int type to store negative error codes 2025-09-05 20:28:46 +02:00
speedstep-lib.h cpufreq: speedstep-lib: Use int type to store negative error codes 2025-09-05 20:28:46 +02:00
speedstep-smi.c cpufreq: speedstep: Stop setting cpufreq_driver->attr field 2025-02-07 09:45:14 +05:30
sti-cpufreq.c
sun50i-cpufreq-nvmem.c cpufreq: sun50i: Simplify with of_machine_device_match() 2025-11-26 19:42:30 -06:00
tegra20-cpufreq.c
tegra124-cpufreq.c drivers: cpufreq: add Tegra114 support 2025-07-15 08:37:35 +05:30
tegra186-cpufreq.c cpufreq: tegra186: add OPP support and set bandwidth 2025-10-23 12:10:11 +05:30
tegra194-cpufreq.c cpufreq: tegra194: add WQ_PERCPU to alloc_workqueue users 2025-11-10 16:18:48 +05:30
ti-cpufreq.c cpufreq: ti: Allow all silicon revisions to support OPPs 2025-08-22 12:24:13 +05:30
vexpress-spc-cpufreq.c cpufreq: vexpress: Stop setting cpufreq_driver->attr field 2025-02-07 09:45:14 +05:30
virtual-cpufreq.c cpufreq: Drop redundant freq_table parameter 2025-09-05 20:16:55 +02:00