Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clocksource/drivers/renesas-ostm: Unconditionally enable reprobe support

Previously, the OSTM driver's platform probe path was only enabled for
selected SoCs (e.g., RZ/G2L and RZ/V2H) due to issues on RZ/Ax (ARM32)
SoCs, which encountered IRQ conflicts like:

/soc/timer@e803b000: used for clock events
genirq: Flags mismatch irq 16. 00215201 (timer@e803c000) vs. 00215201 (timer@e803c000)
Failed to request irq 16 for /soc/timer@e803c000
renesas_ostm e803c000.timer: probe with driver renesas_ostm failed with error -16

These issues have since been resolved by commit 37385c0772a4
("clocksource/drivers/renesas-ostm: Avoid reprobe after successful early
probe"), which prevents reprobe on successfully initialized early timers.

With this fix in place, there is no longer a need to restrict platform
probing based on SoC-specific configs. This change unconditionally enables
reprobe support for all SoCs, simplifying the logic and avoiding the need
to update the configuration for every new Renesas SoC with OSTM.

Additionally, the `ostm_of_table` is now marked with `__maybe_unused` to
fix a build warning when `CONFIG_OF` is disabled.

RZ/A1 and RZ/A2 remain unaffected with this change.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20250515182207.329176-3-prabhakar.mahadev-lad.rj@bp.renesas.com
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>

authored by

Lad Prabhakar and committed by
Daniel Lezcano
d204e391 f0e0c374

+1 -3
+1 -3
drivers/clocksource/renesas-ostm.c
··· 225 225 226 226 TIMER_OF_DECLARE(ostm, "renesas,ostm", ostm_init); 227 227 228 - #if defined(CONFIG_ARCH_RZG2L) || defined(CONFIG_ARCH_R9A09G057) 229 228 static int __init ostm_probe(struct platform_device *pdev) 230 229 { 231 230 struct device *dev = &pdev->dev; ··· 232 233 return ostm_init(dev->of_node); 233 234 } 234 235 235 - static const struct of_device_id ostm_of_table[] = { 236 + static const struct of_device_id __maybe_unused ostm_of_table[] = { 236 237 { .compatible = "renesas,ostm", }, 237 238 { /* sentinel */ } 238 239 }; ··· 245 246 }, 246 247 }; 247 248 builtin_platform_driver_probe(ostm_device_driver, ostm_probe); 248 - #endif