On Tue, Apr 21, 2020 at 02:14:46PM -0700, Douglas Anderson wrote: > Implement the read() function in the early console driver. With > recent kgdb patches this allows you to use kgdb to debug fairly early > into the system boot. > > We only bother implementing this if polling is enabled since kgdb > can't be enabled without that. > > Signed-off-by: Douglas Anderson <dianders@xxxxxxxxxxxx> > --- > > Changes in v2: None > > drivers/tty/serial/qcom_geni_serial.c | 32 +++++++++++++++++++++++++++ > 1 file changed, 32 insertions(+) > > diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c > index 6119090ce045..4563d152b39e 100644 > --- a/drivers/tty/serial/qcom_geni_serial.c > +++ b/drivers/tty/serial/qcom_geni_serial.c > @@ -1090,6 +1090,36 @@ static void qcom_geni_serial_earlycon_write(struct console *con, > __qcom_geni_serial_console_write(&dev->port, s, n); > } > > +#ifdef CONFIG_CONSOLE_POLL > +static int qcom_geni_serial_earlycon_read(struct console *con, > + char *s, unsigned int n) > +{ > + struct earlycon_device *dev = con->data; > + struct uart_port *uport = &dev->port; > + int num_read = 0; > + int ch; > + > + while (num_read < n) { > + ch = qcom_geni_serial_get_char(uport); > + if (ch == NO_POLL_CHAR) > + break; > + s[num_read++] = ch; > + } > + > + return num_read; > +} > + > +static void __init qcom_geni_serial_enable_early_read(struct geni_se *se, > + struct console *con) > +{ > + geni_se_setup_s_cmd(se, UART_START_READ, 0); > + con->read = qcom_geni_serial_earlycon_read; > +} > +#else > +static inline void qcom_geni_serial_enable_early_read(struct geni_se *se, > + struct console *con) { ; } This is pure nitpicking but since I was passing... why the ; ? Daniel.