Quoting Matthias Kaehlcke (2018-04-12 14:41:02) > On Mon, Apr 09, 2018 at 01:38:34PM -0600, Karthikeyan Ramasubramanian wrote: > > @@ -1103,6 +1107,14 @@ static int __maybe_unused qcom_geni_serial_sys_resume_noirq(struct device *dev) > > > > if (console_suspend_enabled && uport->suspended) { > > uart_resume_port(uport->private_data, uport); > > + /* > > + * uart_suspend_port() invokes port shutdown which in turn > > + * frees the irq. uart_resume_port invokes port startup which > > + * performs request_irq. The request_irq auto-enables the IRQ. > > + * In addition, resume_noirq implicitly enables the IRQ and > > + * leads to an unbalanced IRQ enable warning. Disable the IRQ > > + * before returning so that the warning is suppressed. > > + */ > > For the record, the noirq flow is: > > dpm_resume_noirq() > dpm_noirq_resume_devices() > for each dev > device_resume_noirq() > > dpm_noirq_end() > resume_irqs() > for_each_irq_desc > resume_irq() > > I'm still curious why we use the noirq variants of the suspend/resume hooks. Why not use the normal suspend/resume hooks here and then drop the whole disable_irq() dance? > > disable_irq(uport->irq); > > } > > return 0; -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html