On 11.08.2023 17:30, Oleksii Kurochko wrote: > @@ -1555,6 +1566,9 @@ static bool __init parse_positional(struct ns16550 > *uart, char **str) > } > else > #endif > + if ( strncmp(conf, "poll", 4) == 0 ) > + uart->intr_works = polling;
Don't you need to update "conf" here as well then? As said before, please also update parse_namevalue_pairs(). I would appreciate (but not insist) if you also added recognition of "msi" at this occasion. > + else > uart->irq = simple_strtol(conf, &conf, 10); > } > > @@ -1760,6 +1774,9 @@ static int __init ns16550_uart_dt_init(struct > dt_device_node *dev, > > ns16550_init_common(uart); > > + if ( strstr(opt_com1, "poll") ) > + uart->intr_works = polling; Is strstr() really appropriate? Shouldn't it simply be strcmp(), with there not being any other sub-options in the non-x86 case? Plus the question remains of it necessarily being com1: Is there no way with DT to have multiple serial ports (e.g. one for the console and one for a debugger)? If there indeed isn't, then unconditionally using opt_com1[] here is of course okay, but then opt_com2[] is effectively a dead variable and recognizing "com2" on the command line (rather than spitting out an error) is then also a mistake. IOW in that case both would want keeping x86-only (with a new #ifdef, as we certainly don't want to have com1 and com2 stuff in separate places). Jan
