On 10/16/2019 1:40 AM, Stephen Boyd wrote:
Quoting Akash Asthana (2019-10-11 02:48:42)
On 10/10/2019 7:55 PM, Stephen Boyd wrote:
Quoting Akash Asthana (2019-10-10 02:46:43)
diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c
index 5180cd8..ff63728 100644
--- a/drivers/tty/serial/qcom_geni_serial.c
+++ b/drivers/tty/serial/qcom_geni_serial.c
@@ -1306,6 +1317,29 @@ static int qcom_geni_serial_probe(struct platform_device *pdev)
+ if (port->wakeup_irq < 0) {
+ dev_err(&pdev->dev, "Failed to get wakeup IRQ %d\n",
+ port->wakeup_irq);
+ } else {
+ irq_set_status_flags(port->wakeup_irq, IRQ_NOAUTOEN);
+ ret = devm_request_irq(uport->dev, port->wakeup_irq,
+ qcom_geni_serial_wakeup_isr,
+ IRQF_TRIGGER_FALLING, "uart_wakeup", uport);
+ if (ret) {
+ dev_err(uport->dev, "Failed to register wakeup IRQ ret %d\n",
+ ret);
+ return ret;
+ }
+
+ device_init_wakeup(&pdev->dev, true);
+ ret = dev_pm_set_wake_irq(&pdev->dev, port->wakeup_irq);
Why can't we use dev_pm_set_dedicated_wake_irq() here?
If we use this API then handler "handle_threaded_wake_irq" uses device
specific pm_runtime functions to wake the device and currently this
driver don't support runtime PM callbacks. Also, we want to register
"qcom_geni_serial_wakeup_isr" as our IRQ handler for wakeup scenario.
Why can't we make this driver use runtime PM?
Currently there are no plans to use runtime PM as we are interested in
enabling wakeup irq as part of system suspend only.
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,\na Linux Foundation Collaborative Project