* [PATCH 0/2] ns16550: #ifdef-ary
@ 2020-11-19 8:54 Jan Beulich
2020-11-19 8:57 ` [PATCH 1/2] ns16550: "com<N>=" command line options are x86-specific Jan Beulich
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Jan Beulich @ 2020-11-19 8:54 UTC (permalink / raw)
To: xen-devel
Cc: Andrew Cooper, George Dunlap, Ian Jackson, Julien Grall,
Stefano Stabellini, Wei Liu
1: "com<N>=" command line options are x86-specific
2: drop stray "#ifdef CONFIG_HAS_PCI"
Jan
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/2] ns16550: "com<N>=" command line options are x86-specific
2020-11-19 8:54 [PATCH 0/2] ns16550: #ifdef-ary Jan Beulich
@ 2020-11-19 8:57 ` Jan Beulich
2020-11-19 8:57 ` [PATCH 2/2] ns16550: drop stray "#ifdef CONFIG_HAS_PCI" Jan Beulich
2020-12-07 15:46 ` [PATCH 0/2] ns16550: #ifdef-ary Wei Liu
2 siblings, 0 replies; 4+ messages in thread
From: Jan Beulich @ 2020-11-19 8:57 UTC (permalink / raw)
To: xen-devel
Cc: Andrew Cooper, George Dunlap, Ian Jackson, Julien Grall,
Stefano Stabellini, Wei Liu
Pure code motion (plus the addition of "#ifdef CONFIG_X86); no
functional change intended.
Reported-by: Julien Grall <julien@xen.org>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -318,8 +318,8 @@ Interrupts. Specifying zero disables CM
Flag to indicate whether to probe for a CMOS Real Time Clock irrespective of
ACPI indicating none to be there.
-### com1
-### com2
+### com1 (x86)
+### com2 (x86)
> `= <baud>[/<base-baud>][,[DPS][,[<io-base>|pci|amt][,[<irq>|msi][,[<port-bdf>][,[<bridge-bdf>]]]]]]`
Both option `com1` and `com2` follow the same format.
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -31,38 +31,6 @@
#include <asm/fixmap.h>
#endif
-/*
- * Configure serial port with a string:
- * <baud>[/<base_baud>][,DPS[,<io-base>[,<irq>[,<port-bdf>[,<bridge-bdf>]]]]].
- * The tail of the string can be omitted if platform defaults are sufficient.
- * If the baud rate is pre-configured, perhaps by a bootloader, then 'auto'
- * can be specified in place of a numeric baud rate. Polled mode is specified
- * by requesting irq 0.
- */
-static char __initdata opt_com1[128] = "";
-static char __initdata opt_com2[128] = "";
-string_param("com1", opt_com1);
-string_param("com2", opt_com2);
-
-enum serial_param_type {
- baud,
- clock_hz,
- data_bits,
- io_base,
- irq,
- parity,
- reg_shift,
- reg_width,
- stop_bits,
-#ifdef CONFIG_HAS_PCI
- bridge_bdf,
- device,
- port_bdf,
-#endif
- /* List all parameters before this line. */
- num_serial_params
-};
-
static struct ns16550 {
int baud, clock_hz, data_bits, parity, stop_bits, fifo_size, irq;
u64 io_base; /* I/O port or memory-mapped I/O address. */
@@ -98,32 +66,6 @@ static struct ns16550 {
#endif
} ns16550_com[2] = { { 0 } };
-struct serial_param_var {
- char name[12];
- enum serial_param_type type;
-};
-
-/*
- * Enum struct keeping a table of all accepted parameter names for parsing
- * com_console_options for serial port com1 and com2.
- */
-static const struct serial_param_var __initconst sp_vars[] = {
- {"baud", baud},
- {"clock-hz", clock_hz},
- {"data-bits", data_bits},
- {"io-base", io_base},
- {"irq", irq},
- {"parity", parity},
- {"reg-shift", reg_shift},
- {"reg-width", reg_width},
- {"stop-bits", stop_bits},
-#ifdef CONFIG_HAS_PCI
- {"bridge", bridge_bdf},
- {"dev", device},
- {"port", port_bdf},
-#endif
-};
-
#ifdef CONFIG_HAS_PCI
struct ns16550_config {
u16 vendor_id;
@@ -980,6 +922,19 @@ static struct uart_driver __read_mostly
#endif
};
+static void ns16550_init_common(struct ns16550 *uart)
+{
+ uart->clock_hz = UART_CLOCK_HZ;
+
+ /* Default is no transmit FIFO. */
+ uart->fifo_size = 1;
+
+ /* Default lsr_mask = UART_LSR_THRE */
+ uart->lsr_mask = UART_LSR_THRE;
+}
+
+#ifdef CONFIG_X86
+
static int __init parse_parity_char(int c)
{
switch ( c )
@@ -1214,6 +1169,64 @@ pci_uart_config(struct ns16550 *uart, bo
#endif
/*
+ * Configure serial port with a string:
+ * <baud>[/<base_baud>][,DPS[,<io-base>[,<irq>[,<port-bdf>[,<bridge-bdf>]]]]].
+ * The tail of the string can be omitted if platform defaults are sufficient.
+ * If the baud rate is pre-configured, perhaps by a bootloader, then 'auto'
+ * can be specified in place of a numeric baud rate. Polled mode is specified
+ * by requesting irq 0.
+ */
+static char __initdata opt_com1[128] = "";
+static char __initdata opt_com2[128] = "";
+string_param("com1", opt_com1);
+string_param("com2", opt_com2);
+
+enum serial_param_type {
+ baud,
+ clock_hz,
+ data_bits,
+ io_base,
+ irq,
+ parity,
+ reg_shift,
+ reg_width,
+ stop_bits,
+#ifdef CONFIG_HAS_PCI
+ bridge_bdf,
+ device,
+ port_bdf,
+#endif
+ /* List all parameters before this line. */
+ num_serial_params
+};
+
+struct serial_param_var {
+ char name[12];
+ enum serial_param_type type;
+};
+
+/*
+ * Enum struct keeping a table of all accepted parameter names for parsing
+ * com_console_options for serial port com1 and com2.
+ */
+static const struct serial_param_var __initconst sp_vars[] = {
+ {"baud", baud},
+ {"clock-hz", clock_hz},
+ {"data-bits", data_bits},
+ {"io-base", io_base},
+ {"irq", irq},
+ {"parity", parity},
+ {"reg-shift", reg_shift},
+ {"reg-width", reg_width},
+ {"stop-bits", stop_bits},
+#ifdef CONFIG_HAS_PCI
+ {"bridge", bridge_bdf},
+ {"dev", device},
+ {"port", port_bdf},
+#endif
+};
+
+/*
* Used to parse name value pairs and return which value it is along with
* pointer for the extracted value.
*/
@@ -1501,17 +1514,6 @@ static void __init ns16550_parse_port_co
serial_register_uart(uart - ns16550_com, &ns16550_driver, uart);
}
-static void ns16550_init_common(struct ns16550 *uart)
-{
- uart->clock_hz = UART_CLOCK_HZ;
-
- /* Default is no transmit FIFO. */
- uart->fifo_size = 1;
-
- /* Default lsr_mask = UART_LSR_THRE */
- uart->lsr_mask = UART_LSR_THRE;
-}
-
void __init ns16550_init(int index, struct ns16550_defaults *defaults)
{
struct ns16550 *uart;
@@ -1538,6 +1540,8 @@ void __init ns16550_init(int index, stru
ns16550_parse_port_config(uart, (index == 0) ? opt_com1 : opt_com2);
}
+#endif /* CONFIG_X86 */
+
#ifdef CONFIG_HAS_DEVICE_TREE
static int __init ns16550_uart_dt_init(struct dt_device_node *dev,
const void *data)
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 2/2] ns16550: drop stray "#ifdef CONFIG_HAS_PCI"
2020-11-19 8:54 [PATCH 0/2] ns16550: #ifdef-ary Jan Beulich
2020-11-19 8:57 ` [PATCH 1/2] ns16550: "com<N>=" command line options are x86-specific Jan Beulich
@ 2020-11-19 8:57 ` Jan Beulich
2020-12-07 15:46 ` [PATCH 0/2] ns16550: #ifdef-ary Wei Liu
2 siblings, 0 replies; 4+ messages in thread
From: Jan Beulich @ 2020-11-19 8:57 UTC (permalink / raw)
To: xen-devel
Cc: Andrew Cooper, George Dunlap, Ian Jackson, Julien Grall,
Stefano Stabellini, Wei Liu
There's no point wrapping the function invocation when
- the function body is already suitably wrapped,
- the function itself is unconditionally available.
Reported-by: Julien Grall <julien@xen.org>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -968,9 +968,7 @@ static int __init check_existence(struct
return 1; /* Everything is MMIO */
#endif
-#ifdef CONFIG_HAS_PCI
pci_serial_early_init(uart);
-#endif
/*
* Do a simple existence test first; if we fail this,
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 0/2] ns16550: #ifdef-ary
2020-11-19 8:54 [PATCH 0/2] ns16550: #ifdef-ary Jan Beulich
2020-11-19 8:57 ` [PATCH 1/2] ns16550: "com<N>=" command line options are x86-specific Jan Beulich
2020-11-19 8:57 ` [PATCH 2/2] ns16550: drop stray "#ifdef CONFIG_HAS_PCI" Jan Beulich
@ 2020-12-07 15:46 ` Wei Liu
2 siblings, 0 replies; 4+ messages in thread
From: Wei Liu @ 2020-12-07 15:46 UTC (permalink / raw)
To: Jan Beulich
Cc: xen-devel, Andrew Cooper, George Dunlap, Ian Jackson,
Julien Grall, Stefano Stabellini, Wei Liu
On Thu, Nov 19, 2020 at 09:54:58AM +0100, Jan Beulich wrote:
> 1: "com<N>=" command line options are x86-specific
> 2: drop stray "#ifdef CONFIG_HAS_PCI"
>
Acked-by: Wei Liu <wl@xen.org>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-12-07 15:46 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-19 8:54 [PATCH 0/2] ns16550: #ifdef-ary Jan Beulich
2020-11-19 8:57 ` [PATCH 1/2] ns16550: "com<N>=" command line options are x86-specific Jan Beulich
2020-11-19 8:57 ` [PATCH 2/2] ns16550: drop stray "#ifdef CONFIG_HAS_PCI" Jan Beulich
2020-12-07 15:46 ` [PATCH 0/2] ns16550: #ifdef-ary Wei Liu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).