[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20251112-b4-of-match-matchine-data-v2-0-d46b72003fd6@linaro.org>
Date: Wed, 12 Nov 2025 11:28:45 +0100
From: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
To: Rob Herring <robh@...nel.org>, Saravana Kannan <saravanak@...gle.com>,
"Rafael J. Wysocki" <rafael@...nel.org>,
Viresh Kumar <viresh.kumar@...aro.org>,
Matthias Brugger <matthias.bgg@...il.com>,
AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>,
Yangtao Li <tiny.windzz@...il.com>, Chen-Yu Tsai <wens@...nel.org>,
Jernej Skrabec <jernej.skrabec@...il.com>,
Samuel Holland <samuel@...lland.org>,
Lorenzo Pieralisi <lpieralisi@...nel.org>,
Daniel Lezcano <daniel.lezcano@...aro.org>,
Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>,
Nicolas Ferre <nicolas.ferre@...rochip.com>,
Alexandre Belloni <alexandre.belloni@...tlin.com>,
Claudiu Beznea <claudiu.beznea@...on.dev>,
Maximilian Luz <luzmaximilian@...il.com>, Hans de Goede <hansg@...nel.org>,
Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>,
Daniel Lezcano <daniel.lezcano@...nel.org>,
Thierry Reding <thierry.reding@...il.com>,
Jonathan Hunter <jonathanh@...dia.com>
Cc: devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-pm@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-mediatek@...ts.infradead.org, linux-sunxi@...ts.linux.dev,
linux-arm-msm@...r.kernel.org, platform-driver-x86@...r.kernel.org,
linux-tegra@...r.kernel.org,
Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
Konrad Dybcio <konrad.dybcio@....qualcomm.com>,
Dmitry Baryshkov <dmitry.baryshkov@....qualcomm.com>
Subject: [PATCH v2 00/11] of: Add wrappers to match root node with OF
device ID tables
Changes in v2:
- Drop cpufreq/ti change: not correct.
- Drop soc/qcom/qcom_pd_mapper.c - objections from Dmitry and I think
better to drop the patch in such case.
- I did not implement feedback for first patch to make the
of_machine_compatible_match() matching machines in arbitrary nodes,
because there is no such use case possible and no arguments were provided.
I also did not use cleanup.h in first patch because existing code
of_device_get_match_data() does not use it and I prefer uniformity.
- Add Ack/Rb tags.
- Link to v1: https://patch.msgid.link/20251106-b4-of-match-matchine-data-v1-0-d780ea1780c2@linaro.org
Dependency/merging
==================
All patches depend on the first patch, thus everything could go via
Rob's tree with people's acks.
Description
===========
Several drivers duplicate same code for getting reference to the root
node, matching it against 'struct of_device_id' table and getting out
the match data from the table entry.
There is a of_machine_compatible_match() wrapper but it takes array of
strings, which is not suitable for many drivers since they want the
driver data associated with each compatible.
Add two wrappers, similar to existing of_device_get_match_data():
1. of_machine_device_match() doing only matching against 'struct
of_device_id' and returning bool.
2. of_machine_get_match_data() doing the matching and returning
associated driver data for found compatible.
Best regards,
Krzysztof
---
Krzysztof Kozlowski (11):
of: Add wrappers to match root node with OF device ID tables
cpufreq: dt-platdev: Simplify with of_machine_get_match_data()
cpufreq: mediatek: Simplify with of_machine_get_match_data()
cpufreq: sun50i: Simplify with of_machine_device_match()
cpuidle: big_little: Simplify with of_machine_device_match()
firmware: qcom: scm: Simplify with of_machine_device_match()
irqchip/atmel-aic: Simplify with of_machine_get_match_data()
platform: surface: Simplify with of_machine_get_match_data()
powercap: dtpm: Simplify with of_machine_get_match_data()
soc: qcom: ubwc: Simplify with of_machine_get_match_data()
soc: tegra: Simplify with of_machine_device_match()
drivers/cpufreq/cpufreq-dt-platdev.c | 15 ++-----
drivers/cpufreq/mediatek-cpufreq.c | 12 +-----
drivers/cpufreq/sun50i-cpufreq-nvmem.c | 11 +----
drivers/cpuidle/cpuidle-big_little.c | 11 +----
drivers/firmware/qcom/qcom_scm.c | 17 +-------
drivers/irqchip/irq-atmel-aic-common.c | 15 ++-----
drivers/of/base.c | 47 ++++++++++++++++++++++
.../platform/surface/surface_aggregator_registry.c | 13 +-----
drivers/powercap/dtpm.c | 16 +-------
drivers/soc/qcom/ubwc_config.c | 14 ++-----
drivers/soc/tegra/common.c | 12 +-----
include/linux/of.h | 13 ++++++
12 files changed, 79 insertions(+), 117 deletions(-)
---
base-commit: a4ebba34e722123f1c09ce3282e26f052fc8b27f
change-id: 20251106-b4-of-match-matchine-data-4a64bf046814
Best regards,
--
Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
Powered by blists - more mailing lists