]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
serial: sprd: Return -EPROBE_DEFER when uart clock is not ready
authorWenhua Lin <Wenhua.Lin@unisoc.com>
Wed, 22 Oct 2025 03:08:40 +0000 (11:08 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 8 Jan 2026 09:14:12 +0000 (10:14 +0100)
commit3f7a5d52a4ea9cc6a4a0dfd19e003fb5e886438d
treeabbd940f7fe1079214692b2beac1122cdb126bc5
parent56664ab5ca2865916a3a6fc3c5185d9e0c7aac3d
serial: sprd: Return -EPROBE_DEFER when uart clock is not ready

[ Upstream commit 29e8a0c587e328ed458380a45d6028adf64d7487 ]

In sprd_clk_init(), when devm_clk_get() returns -EPROBE_DEFER
for either uart or source clock, we should propagate the
error instead of just warning and continuing with NULL clocks.

Currently the driver only emits a warning when clock acquisition
fails and proceeds with NULL clock pointers. This can lead to
issues later when the clocks are actually needed. More importantly,
when the clock provider is not ready yet and returns -EPROBE_DEFER,
we should return this error to allow deferred probing.

This change adds explicit checks for -EPROBE_DEFER after both:
1. devm_clk_get(uport->dev, uart)
2. devm_clk_get(uport->dev, source)

When -EPROBE_DEFER is encountered, the function now returns
-EPROBE_DEFER to let the driver framework retry probing
later when the clock dependencies are resolved.

Signed-off-by: Wenhua Lin <Wenhua.Lin@unisoc.com>
Link: https://patch.msgid.link/20251022030840.956589-1-Wenhua.Lin@unisoc.com
Reviewed-by: Cixi Geng <cixi.geng@linux.dev>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/tty/serial/sprd_serial.c