diff mbox series

[v4] serial: sc16is7xx: Fix IRQ number check behavior

Message ID 20250121071819.1346672-1-andre.werner@systec-electronic.com
State New
Headers show
Series [v4] serial: sc16is7xx: Fix IRQ number check behavior | expand

Commit Message

Andre Werner Jan. 21, 2025, 7:18 a.m. UTC
The logical meaning of the previous version is wrong due to a typo.

If the IRQ equals 0, no interrupt pin is available and polling mode
shall be used.

Additionally, this fix adds a check for IRQ < 0 to increase robustness,
because documentation still says that negative IRQ values cannot be
absolutely ruled-out.

Fixes: 104c1b9dde9d859dd01bd2d ("serial: sc16is7xx: Add polling mode if no IRQ pin is available")

Signed-off-by: Andre Werner <andre.werner@systec-electronic.com>
---
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@systec-electronic.com/
This is simply a new thread opened for better handling.
V3:
Add Fixes tag and update commit message description.
V4:
Rephrase commit message.
---
 drivers/tty/serial/sc16is7xx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Greg KH Feb. 4, 2025, 1:42 p.m. UTC | #1
On Tue, Jan 21, 2025 at 08:18:19AM +0100, Andre Werner wrote:
> The logical meaning of the previous version is wrong due to a typo.
> 
> If the IRQ equals 0, no interrupt pin is available and polling mode
> shall be used.
> 
> Additionally, this fix adds a check for IRQ < 0 to increase robustness,
> because documentation still says that negative IRQ values cannot be
> absolutely ruled-out.
> 
> Fixes: 104c1b9dde9d859dd01bd2d ("serial: sc16is7xx: Add polling mode if no IRQ pin is available")

Nit, this should be:
	Fixes: 104c1b9dde9d ("serial: sc16is7xx: Add polling mode if no IRQ pin is available")

I'll go fix up the fixes line...

thanks,

greg k-h
diff mbox series

Patch

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");