|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 1/3] ns16550: move PCI arrays next to the function using them
On Mon, 23 Nov 2020, Jan Beulich wrote:
> Pure code motion; no functional change intended.
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> ---
> v2: New.
>
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -153,312 +153,6 @@ struct ns16550_config_param {
> unsigned int uart_offset;
> unsigned int first_offset;
> };
> -
> -/*
> - * Create lookup tables for specific devices. It is assumed that if
> - * the device found is MMIO, then you have indexed it here. Else, the
> - * driver does nothing for MMIO based devices.
> - */
> -static const struct ns16550_config_param __initconst uart_param[] = {
> - [param_default] = {
> - .reg_width = 1,
> - .lsr_mask = UART_LSR_THRE,
> - .max_ports = 1,
> - },
> - [param_trumanage] = {
> - .reg_shift = 2,
> - .reg_width = 1,
> - .fifo_size = 16,
> - .lsr_mask = (UART_LSR_THRE | UART_LSR_TEMT),
> - .mmio = 1,
> - .max_ports = 1,
> - },
> - [param_oxford] = {
> - .base_baud = 4000000,
> - .uart_offset = 0x200,
> - .first_offset = 0x1000,
> - .reg_width = 1,
> - .fifo_size = 16,
> - .lsr_mask = UART_LSR_THRE,
> - .mmio = 1,
> - .max_ports = 1, /* It can do more, but we would need more custom
> code.*/
> - },
> - [param_oxford_2port] = {
> - .base_baud = 4000000,
> - .uart_offset = 0x200,
> - .first_offset = 0x1000,
> - .reg_width = 1,
> - .fifo_size = 16,
> - .lsr_mask = UART_LSR_THRE,
> - .mmio = 1,
> - .max_ports = 2,
> - },
> - [param_pericom_1port] = {
> - .base_baud = 921600,
> - .uart_offset = 8,
> - .reg_width = 1,
> - .fifo_size = 16,
> - .lsr_mask = UART_LSR_THRE,
> - .bar0 = 1,
> - .max_ports = 1,
> - },
> - [param_pericom_2port] = {
> - .base_baud = 921600,
> - .uart_offset = 8,
> - .reg_width = 1,
> - .fifo_size = 16,
> - .lsr_mask = UART_LSR_THRE,
> - .bar0 = 1,
> - .max_ports = 2,
> - },
> - /*
> - * Of the two following ones, we can't really use all of their ports,
> - * unless ns16550_com[] would get grown.
> - */
> - [param_pericom_4port] = {
> - .base_baud = 921600,
> - .uart_offset = 8,
> - .reg_width = 1,
> - .fifo_size = 16,
> - .lsr_mask = UART_LSR_THRE,
> - .bar0 = 1,
> - .max_ports = 4,
> - },
> - [param_pericom_8port] = {
> - .base_baud = 921600,
> - .uart_offset = 8,
> - .reg_width = 1,
> - .fifo_size = 16,
> - .lsr_mask = UART_LSR_THRE,
> - .bar0 = 1,
> - .max_ports = 8,
> - }
> -};
> -static const struct ns16550_config __initconst uart_config[] =
> -{
> - /* Broadcom TruManage device */
> - {
> - .vendor_id = PCI_VENDOR_ID_BROADCOM,
> - .dev_id = 0x160a,
> - .param = param_trumanage,
> - },
> - /* OXPCIe952 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc11b,
> - .param = param_oxford,
> - },
> - /* OXPCIe952 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc11f,
> - .param = param_oxford,
> - },
> - /* OXPCIe952 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc138,
> - .param = param_oxford,
> - },
> - /* OXPCIe952 2 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc158,
> - .param = param_oxford_2port,
> - },
> - /* OXPCIe952 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc13d,
> - .param = param_oxford,
> - },
> - /* OXPCIe952 2 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc15d,
> - .param = param_oxford_2port,
> - },
> - /* OXPCIe952 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc40b,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc40f,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc41b,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc41f,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc42b,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc42f,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc43b,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc43f,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc44b,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc44f,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc45b,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc45f,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc46b,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc46f,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc47b,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc47f,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc48b,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc48f,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc49b,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc49f,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc4ab,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc4af,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc4bb,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc4bf,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc4cb,
> - .param = param_oxford,
> - },
> - /* OXPCIe200 1 Native UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_OXSEMI,
> - .dev_id = 0xc4cf,
> - .param = param_oxford,
> - },
> - /* Pericom PI7C9X7951 Uno UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_PERICOM,
> - .dev_id = 0x7951,
> - .param = param_pericom_1port
> - },
> - /* Pericom PI7C9X7952 Duo UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_PERICOM,
> - .dev_id = 0x7952,
> - .param = param_pericom_2port
> - },
> - /* Pericom PI7C9X7954 Quad UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_PERICOM,
> - .dev_id = 0x7954,
> - .param = param_pericom_4port
> - },
> - /* Pericom PI7C9X7958 Octal UART */
> - {
> - .vendor_id = PCI_VENDOR_ID_PERICOM,
> - .dev_id = 0x7958,
> - .param = param_pericom_8port
> - }
> -};
> #endif
>
> static void ns16550_delayed_resume(void *data);
> @@ -1045,6 +739,314 @@ static int __init check_existence(struct
> }
>
> #ifdef CONFIG_HAS_PCI
> +
> +/*
> + * Create lookup tables for specific devices. It is assumed that if
> + * the device found is MMIO, then you have indexed it here. Else, the
> + * driver does nothing for MMIO based devices.
> + */
> +static const struct ns16550_config_param __initconst uart_param[] = {
> + [param_default] = {
> + .reg_width = 1,
> + .lsr_mask = UART_LSR_THRE,
> + .max_ports = 1,
> + },
> + [param_trumanage] = {
> + .reg_shift = 2,
> + .reg_width = 1,
> + .fifo_size = 16,
> + .lsr_mask = (UART_LSR_THRE | UART_LSR_TEMT),
> + .mmio = 1,
> + .max_ports = 1,
> + },
> + [param_oxford] = {
> + .base_baud = 4000000,
> + .uart_offset = 0x200,
> + .first_offset = 0x1000,
> + .reg_width = 1,
> + .fifo_size = 16,
> + .lsr_mask = UART_LSR_THRE,
> + .mmio = 1,
> + .max_ports = 1, /* It can do more, but we would need more custom
> code.*/
> + },
> + [param_oxford_2port] = {
> + .base_baud = 4000000,
> + .uart_offset = 0x200,
> + .first_offset = 0x1000,
> + .reg_width = 1,
> + .fifo_size = 16,
> + .lsr_mask = UART_LSR_THRE,
> + .mmio = 1,
> + .max_ports = 2,
> + },
> + [param_pericom_1port] = {
> + .base_baud = 921600,
> + .uart_offset = 8,
> + .reg_width = 1,
> + .fifo_size = 16,
> + .lsr_mask = UART_LSR_THRE,
> + .bar0 = 1,
> + .max_ports = 1,
> + },
> + [param_pericom_2port] = {
> + .base_baud = 921600,
> + .uart_offset = 8,
> + .reg_width = 1,
> + .fifo_size = 16,
> + .lsr_mask = UART_LSR_THRE,
> + .bar0 = 1,
> + .max_ports = 2,
> + },
> + /*
> + * Of the two following ones, we can't really use all of their ports,
> + * unless ns16550_com[] would get grown.
> + */
> + [param_pericom_4port] = {
> + .base_baud = 921600,
> + .uart_offset = 8,
> + .reg_width = 1,
> + .fifo_size = 16,
> + .lsr_mask = UART_LSR_THRE,
> + .bar0 = 1,
> + .max_ports = 4,
> + },
> + [param_pericom_8port] = {
> + .base_baud = 921600,
> + .uart_offset = 8,
> + .reg_width = 1,
> + .fifo_size = 16,
> + .lsr_mask = UART_LSR_THRE,
> + .bar0 = 1,
> + .max_ports = 8,
> + }
> +};
> +
> +static const struct ns16550_config __initconst uart_config[] =
> +{
> + /* Broadcom TruManage device */
> + {
> + .vendor_id = PCI_VENDOR_ID_BROADCOM,
> + .dev_id = 0x160a,
> + .param = param_trumanage,
> + },
> + /* OXPCIe952 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc11b,
> + .param = param_oxford,
> + },
> + /* OXPCIe952 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc11f,
> + .param = param_oxford,
> + },
> + /* OXPCIe952 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc138,
> + .param = param_oxford,
> + },
> + /* OXPCIe952 2 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc158,
> + .param = param_oxford_2port,
> + },
> + /* OXPCIe952 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc13d,
> + .param = param_oxford,
> + },
> + /* OXPCIe952 2 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc15d,
> + .param = param_oxford_2port,
> + },
> + /* OXPCIe952 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc40b,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc40f,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc41b,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc41f,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc42b,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc42f,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc43b,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc43f,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc44b,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc44f,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc45b,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc45f,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc46b,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc46f,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc47b,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc47f,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc48b,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc48f,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc49b,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc49f,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc4ab,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc4af,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc4bb,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc4bf,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc4cb,
> + .param = param_oxford,
> + },
> + /* OXPCIe200 1 Native UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_OXSEMI,
> + .dev_id = 0xc4cf,
> + .param = param_oxford,
> + },
> + /* Pericom PI7C9X7951 Uno UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_PERICOM,
> + .dev_id = 0x7951,
> + .param = param_pericom_1port
> + },
> + /* Pericom PI7C9X7952 Duo UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_PERICOM,
> + .dev_id = 0x7952,
> + .param = param_pericom_2port
> + },
> + /* Pericom PI7C9X7954 Quad UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_PERICOM,
> + .dev_id = 0x7954,
> + .param = param_pericom_4port
> + },
> + /* Pericom PI7C9X7958 Octal UART */
> + {
> + .vendor_id = PCI_VENDOR_ID_PERICOM,
> + .dev_id = 0x7958,
> + .param = param_pericom_8port
> + }
> +};
> +
> static int __init
> pci_uart_config(struct ns16550 *uart, bool_t skip_amt, unsigned int idx)
> {
> @@ -1211,7 +1213,8 @@ pci_uart_config(struct ns16550 *uart, bo
>
> return 0;
> }
> -#endif
> +
> +#endif /* CONFIG_HAS_PCI */
>
> /*
> * Used to parse name value pairs and return which value it is along with
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |