The patch below does not apply to the 5.15-stable tree. If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <stable@xxxxxxxxxxxxxxx>. To reproduce the conflict and resubmit, you may use the following commands: git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y git checkout FETCH_HEAD git cherry-pick -x 83e571f054cd742eb9a46d46ef05193904adf53f # <resolve conflicts, build, test, etc.> git commit -s git send-email --to '<stable@xxxxxxxxxxxxxxx>' --in-reply-to '2024012203-blurt-ravage-cfa3@gregkh' --subject-prefix 'PATCH 5.15.y' HEAD^.. Possible dependencies: 83e571f054cd ("serial: 8250_bcm2835aux: Restore clock error handling") fcc446c8aa63 ("serial: 8250_bcm2835aux: Add ACPI support") thanks, greg k-h ------------------ original commit in Linus's tree ------------------ >From 83e571f054cd742eb9a46d46ef05193904adf53f Mon Sep 17 00:00:00 2001 From: Stefan Wahren <wahrenst@xxxxxxx> Date: Wed, 20 Dec 2023 12:43:34 +0100 Subject: [PATCH] serial: 8250_bcm2835aux: Restore clock error handling The commit fcc446c8aa63 ("serial: 8250_bcm2835aux: Add ACPI support") dropped the error handling for clock acquiring. But even an optional clock needs this. Fixes: fcc446c8aa63 ("serial: 8250_bcm2835aux: Add ACPI support") Cc: stable <stable@xxxxxxxxxx> Signed-off-by: Stefan Wahren <wahrenst@xxxxxxx> Reviewed-by: Florian Fainelli <florian.fainelli@xxxxxxxxxxxx> Link: https://lore.kernel.org/r/20231220114334.4712-1-wahrenst@xxxxxxx Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> diff --git a/drivers/tty/serial/8250/8250_bcm2835aux.c b/drivers/tty/serial/8250/8250_bcm2835aux.c index b5760f914a8c..beac6b340ace 100644 --- a/drivers/tty/serial/8250/8250_bcm2835aux.c +++ b/drivers/tty/serial/8250/8250_bcm2835aux.c @@ -119,6 +119,8 @@ static int bcm2835aux_serial_probe(struct platform_device *pdev) /* get the clock - this also enables the HW */ data->clk = devm_clk_get_optional(&pdev->dev, NULL); + if (IS_ERR(data->clk)) + return dev_err_probe(&pdev->dev, PTR_ERR(data->clk), "could not get clk\n"); /* get the interrupt */ ret = platform_get_irq(pdev, 0);