The logical meaning of the previous version is wrong due to a typo. The rest of the patch expects polling = true for irq = 0; The behaviour is fixed for irq = 0 as well as extended to negative values because the irq parameter is an integer such that negative values are not completely impossible. So negative values will also be treated as a fallback to polling mode. Fixes: 104c1b9dde9d859dd01bd2d ("serial: sc16is7xx: Add polling mode if no IRQ pin is available") Signed-off-by: Andre Werner <andre.werner@xxxxxxxxxxxxxxxxxxxxx> --- V2: There are no changes to the patch itself. The previous patch submission had a very weird structure within the discussion thread: https://lore.kernel.org/all/20250116093203.460215-1-andre.werner@xxxxxxxxxxxxxxxxxxxxx/ This is simply a new thread opened for better handling. V3: Add Fixes tag and update commit message description. --- drivers/tty/serial/sc16is7xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index 7b51cdc274fd..560f45ed19ae 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -1561,7 +1561,7 @@ int sc16is7xx_probe(struct device *dev, const struct sc16is7xx_devtype *devtype, /* Always ask for fixed clock rate from a property. */ device_property_read_u32(dev, "clock-frequency", &uartclk); - s->polling = !!irq; + s->polling = (irq <= 0); if (s->polling) dev_dbg(dev, "No interrupt pin definition, falling back to polling mode\n"); -- 2.48.0