|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] xen/char: wrap suspend/resume console callbacks with CONFIG_SYSTEM_SUSPEND
commit 3e5f9674c0dfc1e620800ecf16db3a6e6c19b77b
Author: Mykola Kvach <mykola_kvach@xxxxxxxx>
AuthorDate: Thu Jun 26 14:57:22 2025 +0200
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Thu Jun 26 14:57:22 2025 +0200
xen/char: wrap suspend/resume console callbacks with CONFIG_SYSTEM_SUSPEND
This patch wraps the suspend/resume console callbacks and related code
within
CONFIG_SYSTEM_SUSPEND blocks. This ensures that these functions and their
calls are only included in the build when CONFIG_SYSTEM_SUSPEND is enabled.
This addresses Misra Rule 2.1 violations.
Suggested-by: Jan Beulich <jbeulich@xxxxxxxx>
Signed-off-by: Mykola Kvach <mykola_kvach@xxxxxxxx>
---
xen/drivers/char/console.c | 4 ++++
xen/drivers/char/ehci-dbgp.c | 6 ++++++
xen/drivers/char/ns16550.c | 12 ++++++++++++
xen/drivers/char/serial.c | 4 ++++
xen/drivers/char/xhci-dbc.c | 6 ++++++
xen/include/xen/console.h | 2 ++
xen/include/xen/serial.h | 4 ++++
7 files changed, 38 insertions(+)
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 5879e31786..ba5a809a99 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -1365,6 +1365,8 @@ void panic(const char *fmt, ...)
machine_restart(5000);
}
+#ifdef CONFIG_SYSTEM_SUSPEND
+
/*
* **************************************************************
* ****************** Console suspend/resume ********************
@@ -1388,6 +1390,8 @@ int console_resume(void)
return 0;
}
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
/*
* Local variables:
* mode: C
diff --git a/xen/drivers/char/ehci-dbgp.c b/xen/drivers/char/ehci-dbgp.c
index e9cd59b254..a5c79f56fc 100644
--- a/xen/drivers/char/ehci-dbgp.c
+++ b/xen/drivers/char/ehci-dbgp.c
@@ -1419,6 +1419,8 @@ static void __init cf_check ehci_dbgp_endboot(struct
serial_port *port)
ehci_dbgp_check_release(port->uart);
}
+#ifdef CONFIG_SYSTEM_SUSPEND
+
static void cf_check ehci_dbgp_suspend(struct serial_port *port)
{
struct ehci_dbgp *dbgp = port->uart;
@@ -1452,12 +1454,16 @@ static void cf_check ehci_dbgp_resume(struct
serial_port *port)
ehci_dbgp_setup_postirq(dbgp);
}
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
static struct uart_driver __read_mostly ehci_dbgp_driver = {
.init_preirq = ehci_dbgp_init_preirq,
.init_postirq = ehci_dbgp_init_postirq,
.endboot = ehci_dbgp_endboot,
+#ifdef CONFIG_SYSTEM_SUSPEND
.suspend = ehci_dbgp_suspend,
.resume = ehci_dbgp_resume,
+#endif
.tx_ready = ehci_dbgp_tx_ready,
.putc = ehci_dbgp_putc,
.flush = ehci_dbgp_flush,
diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index eaeb0e09d0..6b4fb4ad31 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -57,7 +57,9 @@ static struct ns16550 {
#endif
/* UART with no IRQ line: periodically-polled I/O. */
struct timer timer;
+#ifdef CONFIG_SYSTEM_SUSPEND
struct timer resume_timer;
+#endif
unsigned int timeout_ms;
bool intr_works;
bool dw_usr_bsy;
@@ -113,7 +115,9 @@ struct ns16550_config_param {
static void enable_exar_enhanced_bits(const struct ns16550 *uart);
#endif
+#ifdef CONFIG_SYSTEM_SUSPEND
static void cf_check ns16550_delayed_resume(void *data);
+#endif
static u8 ns_read_reg(const struct ns16550 *uart, unsigned int reg)
{
@@ -420,7 +424,9 @@ static void __init cf_check ns16550_init_postirq(struct
serial_port *port)
serial_async_transmit(port);
init_timer(&uart->timer, ns16550_poll, port, 0);
+#ifdef CONFIG_SYSTEM_SUSPEND
init_timer(&uart->resume_timer, ns16550_delayed_resume, port, 0);
+#endif
/* Calculate time to fill RX FIFO and/or empty TX FIFO for polling. */
bits = uart->data_bits + uart->stop_bits + !!uart->parity;
@@ -506,6 +512,8 @@ static void __init cf_check ns16550_init_postirq(struct
serial_port *port)
ns16550_setup_postirq(uart);
}
+#ifdef CONFIG_SYSTEM_SUSPEND
+
static void cf_check ns16550_suspend(struct serial_port *port)
{
struct ns16550 *uart = port->uart;
@@ -584,6 +592,8 @@ static void cf_check ns16550_resume(struct serial_port
*port)
_ns16550_resume(port);
}
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
static void __init cf_check ns16550_endboot(struct serial_port *port)
{
#ifdef CONFIG_HAS_IOPORTS
@@ -638,8 +648,10 @@ static struct uart_driver __read_mostly ns16550_driver = {
.init_irq = ns16550_init_irq,
.init_postirq = ns16550_init_postirq,
.endboot = ns16550_endboot,
+#ifdef CONFIG_SYSTEM_SUSPEND
.suspend = ns16550_suspend,
.resume = ns16550_resume,
+#endif
.tx_ready = ns16550_tx_ready,
.putc = ns16550_putc,
.getc = ns16550_getc,
diff --git a/xen/drivers/char/serial.c b/xen/drivers/char/serial.c
index 591a009008..adb312d796 100644
--- a/xen/drivers/char/serial.c
+++ b/xen/drivers/char/serial.c
@@ -495,6 +495,8 @@ const struct vuart_info *serial_vuart_info(int idx)
return NULL;
}
+#ifdef CONFIG_SYSTEM_SUSPEND
+
void serial_suspend(void)
{
int i;
@@ -511,6 +513,8 @@ void serial_resume(void)
com[i].driver->resume(&com[i]);
}
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
void __init serial_register_uart(int idx, struct uart_driver *driver,
void *uart)
{
diff --git a/xen/drivers/char/xhci-dbc.c b/xen/drivers/char/xhci-dbc.c
index d011159d18..1f7d4395dc 100644
--- a/xen/drivers/char/xhci-dbc.c
+++ b/xen/drivers/char/xhci-dbc.c
@@ -1271,6 +1271,8 @@ static void cf_check dbc_uart_flush(struct serial_port
*port)
set_timer(&uart->timer, goal);
}
+#ifdef CONFIG_SYSTEM_SUSPEND
+
static void cf_check dbc_uart_suspend(struct serial_port *port)
{
struct dbc_uart *uart = port->uart;
@@ -1303,6 +1305,8 @@ static void cf_check dbc_uart_resume(struct serial_port
*port)
set_timer(&uart->timer, NOW() + MICROSECS(DBC_POLL_INTERVAL));
}
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
static struct uart_driver dbc_uart_driver = {
.init_preirq = dbc_uart_init_preirq,
.init_postirq = dbc_uart_init_postirq,
@@ -1310,8 +1314,10 @@ static struct uart_driver dbc_uart_driver = {
.putc = dbc_uart_putc,
.getc = dbc_uart_getc,
.flush = dbc_uart_flush,
+#ifdef CONFIG_SYSTEM_SUSPEND
.suspend = dbc_uart_suspend,
.resume = dbc_uart_resume,
+#endif
};
/* Those are accessed via DMA. */
diff --git a/xen/include/xen/console.h b/xen/include/xen/console.h
index 83cbc9fbda..feb57f92f1 100644
--- a/xen/include/xen/console.h
+++ b/xen/include/xen/console.h
@@ -44,8 +44,10 @@ int console_steal(int handle, void (*fn)(const char *str,
size_t nr));
/* Give back stolen console. Takes the identifier returned by console_steal. */
void console_giveback(int id);
+#ifdef CONFIG_SYSTEM_SUSPEND
int console_suspend(void);
int console_resume(void);
+#endif
/* Emit a string via the serial console. */
void console_serial_puts(const char *s, size_t nr);
diff --git a/xen/include/xen/serial.h b/xen/include/xen/serial.h
index 63a82b032d..8e18445552 100644
--- a/xen/include/xen/serial.h
+++ b/xen/include/xen/serial.h
@@ -66,9 +66,11 @@ struct uart_driver {
void (*init_postirq)(struct serial_port *port);
/* Hook to clean up after Xen bootstrap (before domain 0 runs). */
void (*endboot)(struct serial_port *port);
+#ifdef CONFIG_SYSTEM_SUSPEND
/* Driver suspend/resume. */
void (*suspend)(struct serial_port *port);
void (*resume)(struct serial_port *port);
+#endif
/* Return number of characters the port can hold for transmit,
* or -EIO if port is inaccesible */
int (*tx_ready)(struct serial_port *port);
@@ -131,9 +133,11 @@ int serial_irq(int idx);
/* Retrieve basic UART information to emulate it (base address, size...) */
const struct vuart_info* serial_vuart_info(int idx);
+#ifdef CONFIG_SYSTEM_SUSPEND
/* Serial suspend/resume. */
void serial_suspend(void);
void serial_resume(void);
+#endif
/*
* Initialisation and helper functions for uart drivers.
--
generated by git-patchbot for /home/xen/git/xen.git#staging
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |