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:jmmahler@gmail.com] > Sent: 2014?11?27? 4:03 > To: Dudley Du > Cc: linux-kernel@vger.kernel.org > 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 Date: Thu, 27 Nov 2014 13:35:09 +0800 Subject: [PATCH] input: cyapa: fix irq error issue in cyapa_resume To: dmitry.torokhov@gmail.com, jmmahler@gmail.com Cc: bleung@google.com, linux-input@vger.kernel.org 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 --- 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