Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d38127f8 authored by Ritesh Kumar's avatar Ritesh Kumar
Browse files

input: touchscreen: focaltech: Use disable/enable irq wake in LA to LE



Touch uses gpio as irq in LA. As per latest change from pinctrl,
wakeup bit is disabled/enabled when disable_irq/enable_irq is called.
During transtion from LA to LE, disable_irq is called leading to
wakeup bit getting disabled and in LE Touch interrupts does not come.
So, use disable_irq_wake to disable Touch interrupts while transition
from LA to LE and use enable_irq_wake to enable back Touch interrupts
while transition from LE to LA.

Change-Id: I288bfbd26be9ff1da1b7e14104f98338eb8d8715
Signed-off-by: default avatarRitesh Kumar <riteshk@codeaurora.org>
parent b5a3e719
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -1338,7 +1338,14 @@ void fts_irq_disable(void)
	spin_lock_irqsave(&fts_data->irq_lock, irqflags);

	if (!fts_data->irq_disabled) {
#ifdef CONFIG_FTS_TRUSTED_TOUCH
		if (atomic_read(&fts_data->trusted_touch_underway))
			disable_irq_wake(fts_data->irq);
		else
			disable_irq_nosync(fts_data->irq);
#else
		disable_irq_nosync(fts_data->irq);
#endif
		fts_data->irq_disabled = true;
	}

@@ -1354,7 +1361,14 @@ void fts_irq_enable(void)
	spin_lock_irqsave(&fts_data->irq_lock, irqflags);

	if (fts_data->irq_disabled) {
#ifdef CONFIG_FTS_TRUSTED_TOUCH
		if (atomic_read(&fts_data->trusted_touch_underway))
			enable_irq_wake(fts_data->irq);
		else
			enable_irq(fts_data->irq);
#else
		enable_irq(fts_data->irq);
#endif
		fts_data->irq_disabled = false;
	}