From d2443260e836f5a0fd420173b263a0fbb845180c Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 21 Jan 2014 10:28:47 +0100 Subject: input: touchscreen: add ABS_X/ABS_Y axis for Fusion touchscreen Recent evdev X-Server input driver implementation complain when only multitouch axes have been reported ("found only multitouch-axes. That shouldn't happen."). Therefor also report the primary touch detection with default axis. (cherry picked from commit dda7a631ac901e4d140e8a6612c5c6b5506b6a91) --- drivers/input/touchscreen/fusion_F0710A.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/input/touchscreen/fusion_F0710A.c b/drivers/input/touchscreen/fusion_F0710A.c index ac734abf5368..08beda06c2e6 100644 --- a/drivers/input/touchscreen/fusion_F0710A.c +++ b/drivers/input/touchscreen/fusion_F0710A.c @@ -78,6 +78,10 @@ static int fusion_F0710A_register_input(void) input_set_abs_params(dev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); input_set_abs_params(dev, ABS_MT_WIDTH_MAJOR, 0, 15, 0, 0); + input_set_abs_params(dev, ABS_X, 0, fusion_F0710A.info.xres-1, 0, 0); + input_set_abs_params(dev, ABS_Y, 0, fusion_F0710A.info.yres-1, 0, 0); + input_set_abs_params(dev, ABS_PRESSURE, 0, 255, 0, 0); + ret = input_register_device(dev); if (ret < 0) goto bail1; @@ -231,6 +235,11 @@ static void fusion_F0710A_wq(struct work_struct *work) input_report_abs(dev, ABS_MT_POSITION_Y, y2); input_mt_sync(dev); + input_report_abs(dev, ABS_X, x1); + input_report_abs(dev, ABS_Y, y1); + input_report_abs(dev, ABS_PRESSURE, z1); + input_report_key(dev, BTN_TOUCH, fusion_F0710A.tip1); + input_sync(dev); enable_irq(fusion_F0710A.client->irq); @@ -243,6 +252,7 @@ static irqreturn_t fusion_F0710A_interrupt(int irq, void *dev_id) disable_irq_nosync(fusion_F0710A.client->irq); queue_work(fusion_F0710A.workq, &fusion_F0710A_work); + return IRQ_HANDLED; } -- cgit v1.2.3