kernel: bump 6.1 to 6.1.75
[openwrt/staging/jow.git] / target / linux / bcm27xx / patches-6.1 / 950-0249-serial-8250-bcm2835aux-defer-if-clock-is-zero.patch
1 From 34fb077ceed5166f4426daf21287d2ff4c0d65ca Mon Sep 17 00:00:00 2001
2 From: Phil Elwell <phil@raspberrypi.com>
3 Date: Thu, 2 Jul 2020 13:53:20 +0100
4 Subject: [PATCH] serial: 8250: bcm2835aux - defer if clock is zero
5
6 See: https://github.com/raspberrypi/linux/issues/3700
7
8 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
9 ---
10 drivers/tty/serial/8250/8250_bcm2835aux.c | 7 +++++++
11 1 file changed, 7 insertions(+)
12
13 --- a/drivers/tty/serial/8250/8250_bcm2835aux.c
14 +++ b/drivers/tty/serial/8250/8250_bcm2835aux.c
15 @@ -182,6 +182,13 @@ static int bcm2835aux_serial_probe(struc
16 */
17 up.port.uartclk = uartclk * 2;
18
19 + /* The clock is only queried at probe time, which means we get one shot
20 + * at this. A zero clock is never going to work and is almost certainly
21 + * due to a parent not being ready, so prefer to defer.
22 + */
23 + if (!up.port.uartclk)
24 + return -EPROBE_DEFER;
25 +
26 /* register the port */
27 ret = serial8250_register_8250_port(&up);
28 if (ret < 0) {