[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
Hello , > On 24 Nov 2020, at 12:02 am, Stefano Stabellini <sstabellini@xxxxxxxxxx> > wrote: > > 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> > Reviewed-by: Rahul Singh <rahul.singh@xxxxxxx> Regards, Rahul > >> --- >> 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 |