From 830ce1f69238136c0197858242f16cf44e0d6cb9 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 01 Nov 2024 03:09:37 +0000
Subject: [PATCH] gpio config
---
kernel/drivers/tty/serial/st-asc.c | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/kernel/drivers/tty/serial/st-asc.c b/kernel/drivers/tty/serial/st-asc.c
index 97d36f8..1239fd5 100644
--- a/kernel/drivers/tty/serial/st-asc.c
+++ b/kernel/drivers/tty/serial/st-asc.c
@@ -908,6 +908,29 @@
spin_unlock_irqrestore(&port->lock, flags);
}
+#ifdef CONFIG_RAW_PRINTK
+
+static void asc_console_write_raw(struct console *co,
+ const char *s, unsigned int count)
+{
+ struct uart_port *port = &asc_ports[co->index].port;
+ unsigned long timeout = 1000000;
+ u32 intenable;
+
+ intenable = asc_in(port, ASC_INTEN);
+ asc_out(port, ASC_INTEN, 0);
+ (void)asc_in(port, ASC_INTEN); /* Defeat bus write posting */
+
+ uart_console_write(port, s, count, asc_console_putchar);
+
+ while (timeout-- && !asc_txfifo_is_empty(port))
+ cpu_relax(); /* wait shorter */
+
+ asc_out(port, ASC_INTEN, intenable);
+}
+
+#endif
+
static int asc_console_setup(struct console *co, char *options)
{
struct asc_port *ascport;
@@ -940,6 +963,9 @@
.name = ASC_SERIAL_NAME,
.device = uart_console_device,
.write = asc_console_write,
+#ifdef CONFIG_RAW_PRINTK
+ .write_raw = asc_console_write_raw,
+#endif
.setup = asc_console_setup,
.flags = CON_PRINTBUFFER,
.index = -1,
--
Gitblit v1.6.2