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/imx.c | 48 ++++++++++++++++++++++++++++++++++--------------
1 files changed, 34 insertions(+), 14 deletions(-)
diff --git a/kernel/drivers/tty/serial/imx.c b/kernel/drivers/tty/serial/imx.c
index 164597e..fa7d220 100644
--- a/kernel/drivers/tty/serial/imx.c
+++ b/kernel/drivers/tty/serial/imx.c
@@ -1998,24 +1998,11 @@
imx_uart_writel(sport, ch, URTX0);
}
-/*
- * Interrupts are disabled on entering
- */
static void
-imx_uart_console_write(struct console *co, const char *s, unsigned int count)
+__imx_uart_console_write(struct imx_port *sport, const char *s, unsigned int count)
{
- struct imx_port *sport = imx_uart_ports[co->index];
struct imx_port_ucrs old_ucr;
unsigned int ucr1;
- unsigned long flags = 0;
- int locked = 1;
-
- if (sport->port.sysrq)
- locked = 0;
- else if (oops_in_progress)
- locked = spin_trylock_irqsave(&sport->port.lock, flags);
- else
- spin_lock_irqsave(&sport->port.lock, flags);
/*
* First, save UCR1/2/3 and then disable interrupts
@@ -2041,10 +2028,40 @@
while (!(imx_uart_readl(sport, USR2) & USR2_TXDC));
imx_uart_ucrs_restore(sport, &old_ucr);
+}
+
+/*
+ * Interrupts are disabled on entering
+ */
+static void
+imx_uart_console_write(struct console *co, const char *s, unsigned int count)
+{
+ struct imx_port *sport = imx_uart_ports[co->index];
+ unsigned long flags;
+ int locked = 1;
+
+ if (sport->port.sysrq)
+ locked = 0;
+ else if (oops_in_progress)
+ locked = spin_trylock_irqsave(&sport->port.lock, flags);
+ else
+ spin_lock_irqsave(&sport->port.lock, flags);
+
+ __imx_uart_console_write(sport, s, count);
if (locked)
spin_unlock_irqrestore(&sport->port.lock, flags);
}
+
+#ifdef CONFIG_RAW_PRINTK
+static void
+imx_uart_console_write_raw(struct console *co, const char *s, unsigned int count)
+{
+ struct imx_port *sport = imx_uart_ports[co->index];
+
+ return __imx_uart_console_write(sport, s, count);
+}
+#endif
/*
* If the port was already initialised (eg, by a boot loader),
@@ -2161,6 +2178,9 @@
static struct console imx_uart_console = {
.name = DEV_NAME,
.write = imx_uart_console_write,
+#ifdef CONFIG_RAW_PRINTK
+ .write_raw = imx_uart_console_write_raw,
+#endif
.device = uart_console_device,
.setup = imx_uart_console_setup,
.flags = CON_PRINTBUFFER,
--
Gitblit v1.6.2