[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v6] ns16550: Add support for UART parameters to be specifed with name-value pairs
>>> On 28.04.17 at 01:01, <swapnil.paratey@xxxxxxx> wrote: > +static bool __init parse_namevalue_pairs(char *str, struct ns16550 *uart) > +{ > + char *token, *start = str; > + char *param_value = NULL; > + bool dev_set = false; > + > + if ( (str == NULL) || (*str == '\0') ) > + return true; > + > + do > + { > + /* When no tokens are found, start will be NULL */ > + token = strsep(&start, ","); > + > + switch ( get_token(token, ¶m_value) ) > + { > + case baud: > + uart->baud = simple_strtoul(param_value, NULL, 0); > + break; > + > + case bridge_bdf: > + if ( !parse_pci(param_value, NULL, &uart->ps_bdf[0], > + &uart->ps_bdf[1], &uart->ps_bdf[2]) ) > + PARSE_ERR_RET("Bad port PCI coordinates\n"); > + uart->ps_bdf_enable = 1; > + break; > + > + case clock_hz: > + uart->clock_hz = simple_strtoul(param_value, NULL, 0) << 4; > + break; > + > + case device: > + if ( strncmp(param_value, "pci", 3) == 0 ) > + { > + pci_uart_config(uart, 1/* skip AMT */, uart - ns16550_com); > + dev_set = true; > + } > + else if ( strncmp(param_value, "amt", 3) == 0 ) > + { > + pci_uart_config(uart, 0, uart - ns16550_com); > + dev_set = true; > + } > + break; > + > + case io_base: > + if ( dev_set ) > + { > + printk(XENLOG_WARNING > + "Can't use io_base with dev=pci or dev=amt > options\n"); > + break; > + } > + uart->io_base = simple_strtoul(param_value, NULL, 0); > + break; > + > + case irq: > + uart->irq = simple_strtoul(param_value, NULL, 0); > + break; > + > + case data_bits: > + uart->data_bits = simple_strtoul(param_value, NULL, 0); > + break; > + > + case parity: > + uart->parity = parse_parity_char(*param_value); > + break; > + > + case port_bdf: > + if ( !parse_pci(param_value, NULL, &uart->pb_bdf[0], > + &uart->pb_bdf[1], &uart->pb_bdf[2]) ) > + PARSE_ERR_RET("Bad port PCI coordinates\n"); > + uart->pb_bdf_enable = true; > + break; Considering you imply no fall through from the "if()" body to what follows the "if()" here, I think ... > + case stop_bits: > + uart->stop_bits = simple_strtoul(param_value, NULL, 0); > + break; > + > + case reg_shift: > + uart->reg_shift = simple_strtoul(param_value, NULL, 0); > + break; > + > + case reg_width: > + uart->reg_width = simple_strtoul(param_value, NULL, 0); > + break; > + > + default: > + PARSE_ERR_RET("Invalid parameter: %s\n", token); > + break; ... the "break" here should be removed. Or alternatively the "if()" above (and also the bridge_bdf one) should gain an "else". I'd be fine with doing the former while committing, but if you prefer the latter, please submit v7. With either adjustment Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |