Jeremiah,

I didn't make the special patch for the linux-next before, so I don't know why
this patch is there and have issue.
Based on current code in the linux-next, I made below patch to fix this issue.
Could you please try again with attached patch fix.

Thanks,
Dudley

> -----Original Message-----
> From: Jeremiah Mahler [mailto:[email protected]]
> Sent: 2014?11?27? 4:03
> To: Dudley Du
> Cc: [email protected]
> Subject: Re: [BUG] [PATCH] next: cyapa: fix inop touchpad after resume on Acer
> C720
> 
> Dudley,
> 
> On Wed, Nov 26, 2014 at 06:16:00AM +0000, Dudley Du wrote:
> > More info: I did all testings based on kernel 3.14.0 on Acer C70.
> >
> 
> I am testing with linux-next 3.18-rc6 on an Acer C720.
> 
> http://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/
> 
> > Thanks,
> > Dudley
> >
> []
> 
> --
> - Jeremiah Mahler

>From bb717b1c1525ef6b889f0ef735d920eed9e76e72 Mon Sep 17 00:00:00 2001
From: Dudley Du <[email protected]>
Date: Thu, 27 Nov 2014 13:35:09 +0800
Subject: [PATCH] input: cyapa: fix irq error issue in cyapa_resume
To: [email protected],
    [email protected]
Cc: [email protected],
    [email protected]

This patch is aimed to fix the irq error happened on cyapa_resume when
doing suspend/resume testing.
The root cause of this issue is that the cyapa->irq has been removed but
still used in the driver.

Signed-off-by: Dudley Du <[email protected]>
---
 drivers/input/mouse/cyapa.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/input/mouse/cyapa.c b/drivers/input/mouse/cyapa.c
index c84a9eb..caaba7b 100644
--- a/drivers/input/mouse/cyapa.c
+++ b/drivers/input/mouse/cyapa.c
@@ -938,7 +938,7 @@ static int __maybe_unused cyapa_suspend(struct device *dev)
                         power_mode, error);
 
        if (device_may_wakeup(dev))
-               cyapa->irq_wake = (enable_irq_wake(cyapa->irq) == 0);
+               cyapa->irq_wake = (enable_irq_wake(cyapa->client->irq) == 0);
 
        mutex_unlock(&input->mutex);
 
@@ -956,7 +956,7 @@ static int __maybe_unused cyapa_resume(struct device *dev)
        mutex_lock(&input->mutex);
 
        if (device_may_wakeup(dev) && cyapa->irq_wake)
-               disable_irq_wake(cyapa->irq);
+               disable_irq_wake(cyapa->client->irq);
 
        power_mode = input->users ? PWR_MODE_FULL_ACTIVE : PWR_MODE_OFF;
        error = cyapa_set_power_mode(cyapa, PWR_MODE_FULL_ACTIVE);
@@ -964,7 +964,7 @@ static int __maybe_unused cyapa_resume(struct device *dev)
                dev_warn(dev, "resume: set power mode to %d failed: %d\n",
                         power_mode, error);
 
-       enable_irq(cyapa->irq);
+       enable_irq(cyapa->client->irq);
 
        mutex_unlock(&input->mutex);
 
-- 
1.9.1

Attachment: input-cyapa-fix-irq-error-issue-in-cyapa_resume.patch
Description: Binary data

Reply via email to