Message ID | 1344430493-5304-3-git-send-email-arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Aug 8, 2012 at 8:54 PM, Arnd Bergmann <arnd@arndb.de> wrote: > The irq_to_gpio function was removed from the pxa platform > in linux-3.2, and this driver has been broken since. > > Without this patch, building raumfeld_defconfig results in: > > drivers/input/touchscreen/eeti_ts.c: In function 'eeti_ts_irq_active': > drivers/input/touchscreen/eeti_ts.c:65:2: error: implicit declaration of function 'irq_to_gpio' [-Werror=implicit-function-declaration] > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > Cc: stable@vger.kernel.org (v3.2+) > Cc: Daniel Mack <zonque@gmail.com> > Cc: Haojian Zhuang <haojian.zhuang@gmail.com> > --- > arch/arm/mach-pxa/raumfeld.c | 1 + > drivers/input/touchscreen/eeti_ts.c | 8 +++++--- > include/linux/input/eeti_ts.h | 1 + > 3 files changed, 7 insertions(+), 3 deletions(-) > Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com>
diff --git a/arch/arm/mach-pxa/raumfeld.c b/arch/arm/mach-pxa/raumfeld.c index 5905ed1..9e1c4ea 100644 --- a/arch/arm/mach-pxa/raumfeld.c +++ b/arch/arm/mach-pxa/raumfeld.c @@ -953,6 +953,7 @@ static struct i2c_board_info raumfeld_connector_i2c_board_info __initdata = { static struct eeti_ts_platform_data eeti_ts_pdata = { .irq_active_high = 1, + .gpio = GPIO_TOUCH_IRQ, }; static struct i2c_board_info raumfeld_controller_i2c_board_info __initdata = { diff --git a/drivers/input/touchscreen/eeti_ts.c b/drivers/input/touchscreen/eeti_ts.c index 503c709..45dab18 100644 --- a/drivers/input/touchscreen/eeti_ts.c +++ b/drivers/input/touchscreen/eeti_ts.c @@ -48,7 +48,7 @@ struct eeti_ts_priv { struct input_dev *input; struct work_struct work; struct mutex mutex; - int irq, irq_active_high; + int irq, gpio, irq_active_high; }; #define EETI_TS_BITDEPTH (11) @@ -62,7 +62,7 @@ struct eeti_ts_priv { static inline int eeti_ts_irq_active(struct eeti_ts_priv *priv) { - return gpio_get_value(irq_to_gpio(priv->irq)) == priv->irq_active_high; + return gpio_get_value(priv->gpio) == priv->irq_active_high; } static void eeti_ts_read(struct work_struct *work) @@ -203,8 +203,10 @@ static int __devinit eeti_ts_probe(struct i2c_client *client, pdata = client->dev.platform_data; - if (pdata) + if (pdata) { + priv->gpio = pdata->gpio; priv->irq_active_high = pdata->irq_active_high; + } irq_flags = priv->irq_active_high ? IRQF_TRIGGER_RISING : IRQF_TRIGGER_FALLING; diff --git a/include/linux/input/eeti_ts.h b/include/linux/input/eeti_ts.h index f875b31..3404504 100644 --- a/include/linux/input/eeti_ts.h +++ b/include/linux/input/eeti_ts.h @@ -3,6 +3,7 @@ struct eeti_ts_platform_data { unsigned int irq_active_high; + unsigned int gpio; }; #endif /* LINUX_INPUT_EETI_TS_H */
The irq_to_gpio function was removed from the pxa platform in linux-3.2, and this driver has been broken since. Without this patch, building raumfeld_defconfig results in: drivers/input/touchscreen/eeti_ts.c: In function 'eeti_ts_irq_active': drivers/input/touchscreen/eeti_ts.c:65:2: error: implicit declaration of function 'irq_to_gpio' [-Werror=implicit-function-declaration] Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: stable@vger.kernel.org (v3.2+) Cc: Daniel Mack <zonque@gmail.com> Cc: Haojian Zhuang <haojian.zhuang@gmail.com> --- arch/arm/mach-pxa/raumfeld.c | 1 + drivers/input/touchscreen/eeti_ts.c | 8 +++++--- include/linux/input/eeti_ts.h | 1 + 3 files changed, 7 insertions(+), 3 deletions(-)