Hi Hui, You patch looks good to me, but can you add a check when it calling the egalax_wake_up_device() function in egalax_ts_probe() ? If some configure gose wrong, the probe of driver will exit, rather than the suspend failure every time. BR, Jiejing 在 2012-8-7,下午5:39,Hui Wang <jason77.wang@xxxxxxxxx> 写道: > The irq_to_gpio() is old, most platforms use GENERIC_GPIO framework and > don't support this API anymore. > > The i.MX6q sabrelite platform equips an egalax touchscreen controller, > and this platform already transfered to GENERIC_GPIO framework, to > support this driver, we use a more generic way to get gpio. > > Signed-off-by: Hui Wang <jason77.wang@xxxxxxxxx> > --- > drivers/input/touchscreen/egalax_ts.c | 12 ++++++++++-- > 1 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/drivers/input/touchscreen/egalax_ts.c b/drivers/input/touchscreen/egalax_ts.c > index 70524dd..b94eb50 100644 > --- a/drivers/input/touchscreen/egalax_ts.c > +++ b/drivers/input/touchscreen/egalax_ts.c > @@ -28,6 +28,7 @@ > #include <linux/slab.h> > #include <linux/bitops.h> > #include <linux/input/mt.h> > +#include <linux/of_gpio.h> > > /* > * Mouse Mode: some panel may configure the controller to mouse mode, > @@ -122,8 +123,15 @@ static irqreturn_t egalax_ts_interrupt(int irq, void *dev_id) > /* wake up controller by an falling edge of interrupt gpio. */ > static int egalax_wake_up_device(struct i2c_client *client) > { > - int gpio = irq_to_gpio(client->irq); > - int ret; > + struct device_node *np = client->dev.of_node; > + int gpio, ret; > + > + if (!np) > + return -ENODEV; > + > + gpio = of_get_named_gpio(np, "irq-gpio", 0); > + if (!gpio_is_valid(gpio)) > + return -ENODEV; > > ret = gpio_request(gpio, "egalax_irq"); > if (ret < 0) { > -- > 1.7.6 > > ?韬{.n?????%??檩??w?{.n???{炳)楹哜?^n?■???h?璀?{?夸z罐?+€?zf"?????i?????_璁?:+v??撸?