summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Cercueil <paul@crapouillou.net>2026-03-31 11:43:40 +0300
committerHans Verkuil <hverkuil+cisco@kernel.org>2026-05-06 10:17:37 +0300
commit0b42657bea6ba635226e8ef551076d024ceacdc9 (patch)
tree918d2c583284803d4b14c828a43deaf0e7e0d10b
parentcaced3578bf9f104a4aaad8f46c4c719e705d9a6 (diff)
downloadlinux-0b42657bea6ba635226e8ef551076d024ceacdc9.tar.xz
media: v4l2-common: Always register clock with device-specific name
If we need to register a dummy fixed-frequency clock, always register it using a device-specific name. This supports the use case where a system has two of the same sensor, meaning two instances of the same driver, which previously both tried (and failed) to create a clock with the same name. Signed-off-by: Paul Cercueil <paul@crapouillou.net> Reviewed-by: Mehdi Djait <mehdi.djait@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
-rw-r--r--drivers/media/v4l2-core/v4l2-common.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/media/v4l2-core/v4l2-common.c b/drivers/media/v4l2-core/v4l2-common.c
index 55bcd5975d9f..bceafc4e92c8 100644
--- a/drivers/media/v4l2-core/v4l2-common.c
+++ b/drivers/media/v4l2-core/v4l2-common.c
@@ -793,14 +793,15 @@ struct clk *__devm_v4l2_sensor_clk_get(struct device *dev, const char *id,
if (ret)
return ERR_PTR(ret == -EINVAL ? -EPROBE_DEFER : ret);
- if (!id) {
+ if (id)
+ clk_id = kasprintf(GFP_KERNEL, "clk-%s-%s", dev_name(dev), id);
+ else
clk_id = kasprintf(GFP_KERNEL, "clk-%s", dev_name(dev));
- if (!clk_id)
- return ERR_PTR(-ENOMEM);
- id = clk_id;
- }
- clk_hw = devm_clk_hw_register_fixed_rate(dev, id, NULL, 0, rate);
+ if (!clk_id)
+ return ERR_PTR(-ENOMEM);
+
+ clk_hw = devm_clk_hw_register_fixed_rate(dev, clk_id, NULL, 0, rate);
if (IS_ERR(clk_hw))
return ERR_CAST(clk_hw);