* Re: [PATCH v2 1/2] Separate set parameter function for MT device
2015-03-25 22:39 [PATCH v2 1/2] Separate set parameter function for MT device Masaki Ota
@ 2015-03-26 8:25 ` Hans de Goede
2015-03-29 3:37 ` Dmitry Torokhov
1 sibling, 0 replies; 3+ messages in thread
From: Hans de Goede @ 2015-03-26 8:25 UTC (permalink / raw)
To: Masaki Ota, dmitry.torokhov; +Cc: linux-input, masaki.ota
Hi,
On 26-03-15 23:46, Masaki Ota wrote:
> From: Masaki Ota <masaki.ota@jp.alps.com>
> - Separate set parameter function for MT device.
>
> Signed-off-by: Masaki Ota <masaki.ota@jp.alps.com>
Thanks, looks good:
Acked-by: Hans de Goede <hdegoede@redhat.com>
I somehow did not receive patch 2/2 can you resend or forward that to me
please ?
Regards,
Hans
> ---
> drivers/input/mouse/alps.c | 27 ++++++++++++++++++++-------
> 1 file changed, 20 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
> index d28726a..e36d4da 100644
> --- a/drivers/input/mouse/alps.c
> +++ b/drivers/input/mouse/alps.c
> @@ -157,6 +157,8 @@ static void alps_set_abs_params_st(struct alps_data *priv,
> struct input_dev *dev1);
> static void alps_set_abs_params_mt(struct alps_data *priv,
> struct input_dev *dev1);
> +static void alps_set_abs_params_v7(struct alps_data *priv,
> + struct input_dev *dev1);
>
> /* Packet formats are described in Documentation/input/alps.txt */
>
> @@ -2300,7 +2302,7 @@ static int alps_set_protocol(struct psmouse *psmouse,
> priv->hw_init = alps_hw_init_v7;
> priv->process_packet = alps_process_packet_v7;
> priv->decode_fields = alps_decode_packet_v7;
> - priv->set_abs_params = alps_set_abs_params_mt;
> + priv->set_abs_params = alps_set_abs_params_v7;
> priv->nibble_commands = alps_v3_nibble_commands;
> priv->addr_command = PSMOUSE_CMD_RESET_WRAP;
>
> @@ -2429,7 +2431,7 @@ static void alps_set_abs_params_st(struct alps_data *priv,
> input_set_abs_params(dev1, ABS_Y, 0, priv->y_max, 0, 0);
> }
>
> -static void alps_set_abs_params_mt(struct alps_data *priv,
> +static void alps_set_abs_params_mt_common(struct alps_data *priv,
> struct input_dev *dev1)
> {
> input_set_abs_params(dev1, ABS_MT_POSITION_X, 0, priv->x_max, 0, 0);
> @@ -2438,15 +2440,26 @@ static void alps_set_abs_params_mt(struct alps_data *priv,
> input_abs_set_res(dev1, ABS_MT_POSITION_X, priv->x_res);
> input_abs_set_res(dev1, ABS_MT_POSITION_Y, priv->y_res);
>
> + set_bit(BTN_TOOL_TRIPLETAP, dev1->keybit);
> + set_bit(BTN_TOOL_QUADTAP, dev1->keybit);
> +}
> +
> +static void alps_set_abs_params_mt(struct alps_data *priv,
> + struct input_dev *dev1)
> +{
> + alps_set_abs_params_mt_common(priv, dev1);
> +
> input_mt_init_slots(dev1, MAX_TOUCHES, INPUT_MT_POINTER |
> INPUT_MT_DROP_UNUSED | INPUT_MT_TRACK | INPUT_MT_SEMI_MT);
> +}
>
> - set_bit(BTN_TOOL_TRIPLETAP, dev1->keybit);
> - set_bit(BTN_TOOL_QUADTAP, dev1->keybit);
> +static void alps_set_abs_params_v7(struct alps_data *priv,
> + struct input_dev *dev1)
> +{
> + alps_set_abs_params_mt_common(priv, dev1);
>
> - /* V7 is real multi-touch */
> - if (priv->proto_version == ALPS_PROTO_V7)
> - clear_bit(INPUT_PROP_SEMI_MT, dev1->propbit);
> + input_mt_init_slots(dev1, MAX_TOUCHES, INPUT_MT_POINTER |
> + INPUT_MT_DROP_UNUSED | INPUT_MT_TRACK);
> }
>
> int alps_init(struct psmouse *psmouse)
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2 1/2] Separate set parameter function for MT device
2015-03-25 22:39 [PATCH v2 1/2] Separate set parameter function for MT device Masaki Ota
2015-03-26 8:25 ` Hans de Goede
@ 2015-03-29 3:37 ` Dmitry Torokhov
1 sibling, 0 replies; 3+ messages in thread
From: Dmitry Torokhov @ 2015-03-29 3:37 UTC (permalink / raw)
To: Masaki Ota; +Cc: hdegoede, linux-input, masaki.ota
On Fri, Mar 27, 2015 at 06:46:06AM +0800, Masaki Ota wrote:
> From: Masaki Ota <masaki.ota@jp.alps.com>
> - Separate set parameter function for MT device.
>
> Signed-off-by: Masaki Ota <masaki.ota@jp.alps.com>
Thank you Masaki. I think we should not try to make
alps_set_abs_params_v7 also handle v8 down the road, but have separate
alps_set_abs_params_ss4_v2, so I changed this patch a bit, see below.
Thanks.
--
Dmitry
Input: ALPS - refactor alps_set_abs_params_mt()
From: Masaki Ota <masaki.ota@jp.alps.com>
In preparation for adding support for SS4 touchpads, let's split
alps_set_abs_params_mt into common, v7-specific, and other protocols
portions.
Signed-off-by: Masaki Ota <masaki.ota@jp.alps.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
drivers/input/mouse/alps.c | 38 ++++++++++++++++++++++++++------------
1 file changed, 26 insertions(+), 12 deletions(-)
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
index 33198b9..029f831 100644
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -157,6 +157,8 @@ static void alps_set_abs_params_st(struct alps_data *priv,
struct input_dev *dev1);
static void alps_set_abs_params_mt(struct alps_data *priv,
struct input_dev *dev1);
+static void alps_set_abs_params_v7(struct alps_data *priv,
+ struct input_dev *dev1);
/* Packet formats are described in Documentation/input/alps.txt */
@@ -2302,7 +2304,7 @@ static int alps_set_protocol(struct psmouse *psmouse,
priv->hw_init = alps_hw_init_v7;
priv->process_packet = alps_process_packet_v7;
priv->decode_fields = alps_decode_packet_v7;
- priv->set_abs_params = alps_set_abs_params_mt;
+ priv->set_abs_params = alps_set_abs_params_v7;
priv->nibble_commands = alps_v3_nibble_commands;
priv->addr_command = PSMOUSE_CMD_RESET_WRAP;
priv->x_max = 0xfff;
@@ -2428,10 +2430,11 @@ static void alps_set_abs_params_st(struct alps_data *priv,
{
input_set_abs_params(dev1, ABS_X, 0, priv->x_max, 0, 0);
input_set_abs_params(dev1, ABS_Y, 0, priv->y_max, 0, 0);
+ input_set_abs_params(dev1, ABS_PRESSURE, 0, 127, 0, 0);
}
-static void alps_set_abs_params_mt(struct alps_data *priv,
- struct input_dev *dev1)
+static void alps_set_abs_params_mt_common(struct alps_data *priv,
+ struct input_dev *dev1)
{
input_set_abs_params(dev1, ABS_MT_POSITION_X, 0, priv->x_max, 0, 0);
input_set_abs_params(dev1, ABS_MT_POSITION_Y, 0, priv->y_max, 0, 0);
@@ -2439,15 +2442,29 @@ static void alps_set_abs_params_mt(struct alps_data *priv,
input_abs_set_res(dev1, ABS_MT_POSITION_X, priv->x_res);
input_abs_set_res(dev1, ABS_MT_POSITION_Y, priv->y_res);
- input_mt_init_slots(dev1, MAX_TOUCHES, INPUT_MT_POINTER |
- INPUT_MT_DROP_UNUSED | INPUT_MT_TRACK | INPUT_MT_SEMI_MT);
-
set_bit(BTN_TOOL_TRIPLETAP, dev1->keybit);
set_bit(BTN_TOOL_QUADTAP, dev1->keybit);
+}
+
+static void alps_set_abs_params_mt(struct alps_data *priv,
+ struct input_dev *dev1)
+{
+ alps_set_abs_params_mt_common(priv, dev1);
+ input_set_abs_params(dev1, ABS_PRESSURE, 0, 127, 0, 0);
+
+ input_mt_init_slots(dev1, MAX_TOUCHES,
+ INPUT_MT_POINTER | INPUT_MT_DROP_UNUSED |
+ INPUT_MT_TRACK | INPUT_MT_SEMI_MT);
+}
+
+static void alps_set_abs_params_v7(struct alps_data *priv,
+ struct input_dev *dev1)
+{
+ alps_set_abs_params_mt_common(priv, dev1);
- /* V7 is real multi-touch */
- if (priv->proto_version == ALPS_PROTO_V7)
- clear_bit(INPUT_PROP_SEMI_MT, dev1->propbit);
+ input_mt_init_slots(dev1, MAX_TOUCHES,
+ INPUT_MT_POINTER | INPUT_MT_DROP_UNUSED |
+ INPUT_MT_TRACK);
}
int alps_init(struct psmouse *psmouse)
@@ -2480,9 +2497,6 @@ int alps_init(struct psmouse *psmouse)
dev1->evbit[BIT_WORD(EV_ABS)] |= BIT_MASK(EV_ABS);
priv->set_abs_params(priv, dev1);
- /* No pressure on V7 */
- if (priv->proto_version != ALPS_PROTO_V7)
- input_set_abs_params(dev1, ABS_PRESSURE, 0, 127, 0, 0);
if (priv->flags & ALPS_WHEEL) {
dev1->evbit[BIT_WORD(EV_REL)] |= BIT_MASK(EV_REL);
^ permalink raw reply related [flat|nested] 3+ messages in thread