Pārlūkot izejas kodu

touch: Fix Touch_to_wake during RBSC mode

Calling enable_irq_wake() causes suspend_device_irqs() to treat the
given IRQ in a special way.the IRQ remains enabled, by on the first
interrupt it will be disabled, marked as pending and "suspended"
so that it will be re-enabled by resume_device_irqs()
during the subsequent system resume.

Change-Id: Id129a8b4e0eddc07000793986b119a0a7b5530ef
Signed-off-by: Srikanth Katteboina <[email protected]>
Signed-off-by: Surya Teja Kudiri <[email protected]>
Srikanth Katteboina 2 gadi atpakaļ
vecāks
revīzija
bd6a84f669
1 mainītis faili ar 4 papildinājumiem un 0 dzēšanām
  1. 4 0
      pt/pt_core.c

+ 4 - 0
pt/pt_core.c

@@ -17721,6 +17721,10 @@ int pt_probe(const struct pt_bus_ops *ops, struct device *dev,
 		pt_debug(dev, DL_ERROR, "%s: Error, device_init_wakeup rc:%d\n",
 			__func__, rc);
 
+	if (!enable_irq_wake(cd->irq)) {
+		cd->irq_wake = 1;
+		pt_debug(cd->dev, DL_WARN, "%s Device MAY wakeup\n", __func__);
+	}
 	pm_runtime_get_noresume(dev);
 	pm_runtime_set_active(dev);
 	pm_runtime_enable(dev);