Message ID | C24448D4-9078-4EE9-8E40-A2C8DC6115A6@emc.com.tw (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Duson, On Mon, Jun 29, 2015 at 09:19:09AM +0800, duson wrote: > Signed-off by: Duson Lin <dusonlin@emc.com.tw> > --- > drivers/input/mouse/elan_i2c_core.c | 2 ++ I'd rather we teach input_mt_init_slots() and input_mt_report_pointer_emulation() do that for us. Thanks. > 1 file changed, 2 insertions(+) > > diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c > index 62641f2..ce97e28 100644 > --- a/drivers/input/mouse/elan_i2c_core.c > +++ b/drivers/input/mouse/elan_i2c_core.c > @@ -847,6 +847,7 @@ static void elan_report_absolute(struct elan_tp_data *data, u8 *packet) > } > > input_report_key(input, BTN_LEFT, tp_info & 0x01); > + input_report_abs(input, ABS_DISTANCE, hover_event != 0); > input_mt_report_pointer_emulation(input, true); > input_sync(input); > } > @@ -922,6 +923,7 @@ static int elan_setup_input_device(struct elan_tp_data *data) > input_abs_set_res(input, ABS_Y, data->y_res); > input_set_abs_params(input, ABS_PRESSURE, 0, ETP_MAX_PRESSURE, 0, 0); > input_set_abs_params(input, ABS_TOOL_WIDTH, 0, ETP_FINGER_WIDTH, 0, 0); > + input_set_abs_params(input, ABS_DISTANCE, 0, 1, 0, 0); > > /* And MT parameters */ > input_set_abs_params(input, ABS_MT_POSITION_X, 0, data->max_x, 0, 0); > > > >
diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c index 62641f2..ce97e28 100644 --- a/drivers/input/mouse/elan_i2c_core.c +++ b/drivers/input/mouse/elan_i2c_core.c @@ -847,6 +847,7 @@ static void elan_report_absolute(struct elan_tp_data *data, u8 *packet) } input_report_key(input, BTN_LEFT, tp_info & 0x01); + input_report_abs(input, ABS_DISTANCE, hover_event != 0); input_mt_report_pointer_emulation(input, true); input_sync(input); } @@ -922,6 +923,7 @@ static int elan_setup_input_device(struct elan_tp_data *data) input_abs_set_res(input, ABS_Y, data->y_res); input_set_abs_params(input, ABS_PRESSURE, 0, ETP_MAX_PRESSURE, 0, 0); input_set_abs_params(input, ABS_TOOL_WIDTH, 0, ETP_FINGER_WIDTH, 0, 0); + input_set_abs_params(input, ABS_DISTANCE, 0, 1, 0, 0); /* And MT parameters */ input_set_abs_params(input, ABS_MT_POSITION_X, 0, data->max_x, 0, 0);