Message ID | 20211217181547.48182-1-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2,1/1] serial: 8520_mtk: Prepare for platform_get_irq_optional() changes | expand |
On Fri, Dec 17, 2021 at 08:15:47PM +0200, Andy Shevchenko wrote: > The platform_get_irq_optional() is going to be changed in a way > that the result of it: > = 0 means no IRQ is provided > < 0 means the error which needs to be propagated to the upper layers > > 0 valid vIRQ is allocated > > In this case, drop check for 0. Note, the 0 is not valid vIRQ and > platform_get_irq_optional() issues a big WARN() in such case, > > It's safe to assume that 0 is not valid IRQ in this case since > the driver is only instantiated via Device Tree and corresponding > OF APIs should never ever return 0 for valid IRQ. Otherwise it is > a regression there. Can it be applied now?
On Fri, Mar 04, 2022 at 08:11:10PM +0200, Andy Shevchenko wrote: > On Fri, Dec 17, 2021 at 08:15:47PM +0200, Andy Shevchenko wrote: > > The platform_get_irq_optional() is going to be changed in a way > > that the result of it: > > = 0 means no IRQ is provided > > < 0 means the error which needs to be propagated to the upper layers > > > 0 valid vIRQ is allocated > > > > In this case, drop check for 0. Note, the 0 is not valid vIRQ and > > platform_get_irq_optional() issues a big WARN() in such case, > > > > It's safe to assume that 0 is not valid IRQ in this case since > > the driver is only instantiated via Device Tree and corresponding > > OF APIs should never ever return 0 for valid IRQ. Otherwise it is > > a regression there. > > Can it be applied now? What changed to make this viable?
diff --git a/drivers/tty/serial/8250/8250_mtk.c b/drivers/tty/serial/8250/8250_mtk.c index fb65dc601b23..328ab074fd89 100644 --- a/drivers/tty/serial/8250/8250_mtk.c +++ b/drivers/tty/serial/8250/8250_mtk.c @@ -621,7 +621,7 @@ static int __maybe_unused mtk8250_suspend(struct device *dev) serial8250_suspend_port(data->line); pinctrl_pm_select_sleep_state(dev); - if (irq >= 0) { + if (irq > 0) { err = enable_irq_wake(irq); if (err) { dev_err(dev, @@ -641,7 +641,7 @@ static int __maybe_unused mtk8250_resume(struct device *dev) struct mtk8250_data *data = dev_get_drvdata(dev); int irq = data->rx_wakeup_irq; - if (irq >= 0) + if (irq > 0) disable_irq_wake(irq); pinctrl_pm_select_default_state(dev);