Input: goodix-berlin: report a resolution of 10 units/mm
Subsystems (3)
PATCH 1/1 Input: goodix-berlin: report a resolution of 10 units/mm
Without a reported resolution, userspace was assuming 1 unit/mm which is wildly wrong: a regular smartphone is clearly not 2.4 meters tall. Most applications do not care much for this kind of raw mm value, but Phosh's on-screen keyboard would accidentally trigger swipe-to-close gestures due to misinterpreting small movements as huge ones.
Do what the older goodix.c driver does and set the resolution to 10 units/mm to make sure the numbers calculated by userspace are reasonable.
--- drivers/input/touchscreen/goodix_berlin_core.c | 8 ++++++++ 1 file changed, 8 insertions(+)
drivers/input/touchscreen/goodix_berlin_core.c +8 -0
@@ -628,6 +628,14 @@ static int goodix_berlin_input_dev_config(struct goodix_berlin_core *cd,touchscreen_parse_properties (cd->input_dev, true, &cd->props); +/* +* The resolution of these touchscreens is about 10 units/mm, the actual +* resolution does not matter much since we set INPUT_PROP_DIRECT. +* Set it to 10 to ensure userspace isn't off by an order of magnitude. +*/ +input_abs_set_res (cd->input_dev,ABS_MT_POSITION_X ,10 ); +input_abs_set_res (cd->input_dev,ABS_MT_POSITION_Y ,10 ); + error =input_mt_init_slots (cd->input_dev,GOODIX_BERLIN_MAX_TOUCH ,INPUT_MT_DIRECT |INPUT_MT_DROP_UNUSED );if (error)
Signature · 1 line
2.53.0
Quoted 10 lines · Val Packett
Without a reported resolution, userspace was assuming 1 unit/mm which is wildly wrong: a regular smartphone is clearly not 2.4 meters tall. Most applications do not care much for this kind of raw mm value, but Phosh's on-screen keyboard would accidentally trigger swipe-to-close gestures due to misinterpreting small movements as huge ones.
Do what the older
goodix.cdriver does and set the resolution to 10 units/mm to make sure the numbers calculated by userspace are reasonable.Signed-off-by Val Packett <[email protected]>
Applied, thank you.
Signature · 1 line
Dmitry