From e8675bddeff234ff040fa32ff24d2f63749f4f35 Mon Sep 17 00:00:00 2001 From: Henrik Rydberg Date: Sat, 15 Sep 2012 08:57:18 +0200 Subject: [PATCH] --- yaml --- r: 323421 b: refs/heads/master c: 22739293402966db7ca3eb0148632d986fe30465 h: refs/heads/master i: 323419: 5d82006d544bb5630d63958a500f136a335f4ef7 v: v3 --- [refs] | 2 +- trunk/drivers/input/input-mt.c | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index e9551449c1a4..dc5a44bf99a4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 17a465a7f2d6ce31738a3a76591afeab165f185a +refs/heads/master: 22739293402966db7ca3eb0148632d986fe30465 diff --git a/trunk/drivers/input/input-mt.c b/trunk/drivers/input/input-mt.c index 44f5a67aaa69..c0ec7d42c3be 100644 --- a/trunk/drivers/input/input-mt.c +++ b/trunk/drivers/input/input-mt.c @@ -214,13 +214,17 @@ void input_mt_report_pointer_emulation(struct input_dev *dev, bool use_count) if (oldest) { int x = input_mt_get_value(oldest, ABS_MT_POSITION_X); int y = input_mt_get_value(oldest, ABS_MT_POSITION_Y); - int p = input_mt_get_value(oldest, ABS_MT_PRESSURE); input_event(dev, EV_ABS, ABS_X, x); input_event(dev, EV_ABS, ABS_Y, y); - input_event(dev, EV_ABS, ABS_PRESSURE, p); + + if (test_bit(ABS_MT_PRESSURE, dev->absbit)) { + int p = input_mt_get_value(oldest, ABS_MT_PRESSURE); + input_event(dev, EV_ABS, ABS_PRESSURE, p); + } } else { - input_event(dev, EV_ABS, ABS_PRESSURE, 0); + if (test_bit(ABS_MT_PRESSURE, dev->absbit)) + input_event(dev, EV_ABS, ABS_PRESSURE, 0); } } EXPORT_SYMBOL(input_mt_report_pointer_emulation);