lkml.org 
[lkml]   [2014]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRE: [BUG] [PATCH] next: cyapa: fix inop touchpad after resume on Acer C720
Date
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 <dudley.dulixin@gmail.com>
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 <dudley.dulixin@gmail.com>
---
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[unhandled content-type:application/octet-stream]
\
 
 \ /
  Last update: 2014-11-27 07:21    [W:0.022 / U:1.232 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site