Input: trackpoint: add new trackpoint firmware ID
diff mbox

Message ID 1486695741-8969-1-git-send-email-aaron.ma@canonical.com
State Accepted
Headers show

Commit Message

Aaron Ma Feb. 10, 2017, 3:02 a.m. UTC
Synaptics add new TP firmware ID: 0x2 and 0x3, for now both lower 2 bits
are indicated as TP. Change the constant to bitwise values.

Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
Cc: stable@vger.kernel.org
---
 drivers/input/mouse/trackpoint.c | 3 ++-
 drivers/input/mouse/trackpoint.h | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

Comments

Dmitry Torokhov Feb. 12, 2017, 10:38 p.m. UTC | #1
On Fri, Feb 10, 2017 at 11:02:21AM +0800, Aaron Ma wrote:
> Synaptics add new TP firmware ID: 0x2 and 0x3, for now both lower 2 bits
> are indicated as TP. Change the constant to bitwise values.

Hmm, I thought IBM/Lenovo owned trackpoint support... Andrew, is it
yours now?

Aaron, what devices have these new trackpoints>?

Thanks.

> 
> Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
> Cc: stable@vger.kernel.org
> ---
>  drivers/input/mouse/trackpoint.c | 3 ++-
>  drivers/input/mouse/trackpoint.h | 3 ++-
>  2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/input/mouse/trackpoint.c b/drivers/input/mouse/trackpoint.c
> index 7331084..9ff0f38 100644
> --- a/drivers/input/mouse/trackpoint.c
> +++ b/drivers/input/mouse/trackpoint.c
> @@ -265,7 +265,8 @@ static int trackpoint_start_protocol(struct psmouse *psmouse, unsigned char *fir
>  	if (ps2_command(&psmouse->ps2dev, param, MAKE_PS2_CMD(0, 2, TP_READ_ID)))
>  		return -1;
>  
> -	if (param[0] != TP_MAGIC_IDENT)
> +	/* add new TP ID. */
> +	if (!(param[0] & TP_MAGIC_IDENT))
>  		return -1;
>  
>  	if (firmware_id)
> diff --git a/drivers/input/mouse/trackpoint.h b/drivers/input/mouse/trackpoint.h
> index 5617ed3..8805575 100644
> --- a/drivers/input/mouse/trackpoint.h
> +++ b/drivers/input/mouse/trackpoint.h
> @@ -21,8 +21,9 @@
>  #define TP_COMMAND		0xE2	/* Commands start with this */
>  
>  #define TP_READ_ID		0xE1	/* Sent for device identification */
> -#define TP_MAGIC_IDENT		0x01	/* Sent after a TP_READ_ID followed */
> +#define TP_MAGIC_IDENT		0x03	/* Sent after a TP_READ_ID followed */
>  					/* by the firmware ID */
> +					/* Firmware ID includes 0x1, 0x2, 0x3 */
>  
>  
>  /*
> -- 
> 2.9.3
>
Aaron Ma Feb. 13, 2017, 12:21 a.m. UTC | #2
On 02/13/2017 06:38 AM, Dmitry Torokhov wrote:
> On Fri, Feb 10, 2017 at 11:02:21AM +0800, Aaron Ma wrote:
>> Synaptics add new TP firmware ID: 0x2 and 0x3, for now both lower 2 bits
>> are indicated as TP. Change the constant to bitwise values.
> 
> Hmm, I thought IBM/Lenovo owned trackpoint support... Andrew, is it
> yours now?
> 
> Aaron, what devices have these new trackpoints>?

Lenovo ThinkPad X1 Carbon 5th have this new trackpoint, maybe it is not
on sale yet but soon.

BR,
Aaron

> 
> Thanks.
> 
>>
>> Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
>> Cc: stable@vger.kernel.org
>> ---
>>  drivers/input/mouse/trackpoint.c | 3 ++-
>>  drivers/input/mouse/trackpoint.h | 3 ++-
>>  2 files changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/input/mouse/trackpoint.c b/drivers/input/mouse/trackpoint.c
>> index 7331084..9ff0f38 100644
>> --- a/drivers/input/mouse/trackpoint.c
>> +++ b/drivers/input/mouse/trackpoint.c
>> @@ -265,7 +265,8 @@ static int trackpoint_start_protocol(struct psmouse *psmouse, unsigned char *fir
>>  	if (ps2_command(&psmouse->ps2dev, param, MAKE_PS2_CMD(0, 2, TP_READ_ID)))
>>  		return -1;
>>  
>> -	if (param[0] != TP_MAGIC_IDENT)
>> +	/* add new TP ID. */
>> +	if (!(param[0] & TP_MAGIC_IDENT))
>>  		return -1;
>>  
>>  	if (firmware_id)
>> diff --git a/drivers/input/mouse/trackpoint.h b/drivers/input/mouse/trackpoint.h
>> index 5617ed3..8805575 100644
>> --- a/drivers/input/mouse/trackpoint.h
>> +++ b/drivers/input/mouse/trackpoint.h
>> @@ -21,8 +21,9 @@
>>  #define TP_COMMAND		0xE2	/* Commands start with this */
>>  
>>  #define TP_READ_ID		0xE1	/* Sent for device identification */
>> -#define TP_MAGIC_IDENT		0x01	/* Sent after a TP_READ_ID followed */
>> +#define TP_MAGIC_IDENT		0x03	/* Sent after a TP_READ_ID followed */
>>  					/* by the firmware ID */
>> +					/* Firmware ID includes 0x1, 0x2, 0x3 */
>>  
>>  
>>  /*
>> -- 
>> 2.9.3
>>
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Andrew Duggan Feb. 14, 2017, 12:30 a.m. UTC | #3
On 02/12/2017 02:38 PM, Dmitry Torokhov wrote:
> On Fri, Feb 10, 2017 at 11:02:21AM +0800, Aaron Ma wrote:
>> Synaptics add new TP firmware ID: 0x2 and 0x3, for now both lower 2 bits
>> are indicated as TP. Change the constant to bitwise values.
> Hmm, I thought IBM/Lenovo owned trackpoint support... Andrew, is it
> yours now?

No, it should still be Lenovo's trackpoint.

Andrew

> Aaron, what devices have these new trackpoints>?
>
> Thanks.
>
>> Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
>> Cc: stable@vger.kernel.org
>> ---
>>   drivers/input/mouse/trackpoint.c | 3 ++-
>>   drivers/input/mouse/trackpoint.h | 3 ++-
>>   2 files changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/input/mouse/trackpoint.c b/drivers/input/mouse/trackpoint.c
>> index 7331084..9ff0f38 100644
>> --- a/drivers/input/mouse/trackpoint.c
>> +++ b/drivers/input/mouse/trackpoint.c
>> @@ -265,7 +265,8 @@ static int trackpoint_start_protocol(struct psmouse *psmouse, unsigned char *fir
>>   	if (ps2_command(&psmouse->ps2dev, param, MAKE_PS2_CMD(0, 2, TP_READ_ID)))
>>   		return -1;
>>   
>> -	if (param[0] != TP_MAGIC_IDENT)
>> +	/* add new TP ID. */
>> +	if (!(param[0] & TP_MAGIC_IDENT))
>>   		return -1;
>>   
>>   	if (firmware_id)
>> diff --git a/drivers/input/mouse/trackpoint.h b/drivers/input/mouse/trackpoint.h
>> index 5617ed3..8805575 100644
>> --- a/drivers/input/mouse/trackpoint.h
>> +++ b/drivers/input/mouse/trackpoint.h
>> @@ -21,8 +21,9 @@
>>   #define TP_COMMAND		0xE2	/* Commands start with this */
>>   
>>   #define TP_READ_ID		0xE1	/* Sent for device identification */
>> -#define TP_MAGIC_IDENT		0x01	/* Sent after a TP_READ_ID followed */
>> +#define TP_MAGIC_IDENT		0x03	/* Sent after a TP_READ_ID followed */
>>   					/* by the firmware ID */
>> +					/* Firmware ID includes 0x1, 0x2, 0x3 */
>>   
>>   
>>   /*
>> -- 
>> 2.9.3
>>

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dmitry Torokhov Feb. 14, 2017, 4:24 a.m. UTC | #4
On Mon, Feb 13, 2017 at 04:30:02PM -0800, Andrew Duggan wrote:
> On 02/12/2017 02:38 PM, Dmitry Torokhov wrote:
> >On Fri, Feb 10, 2017 at 11:02:21AM +0800, Aaron Ma wrote:
> >>Synaptics add new TP firmware ID: 0x2 and 0x3, for now both lower 2 bits
> >>are indicated as TP. Change the constant to bitwise values.
> >Hmm, I thought IBM/Lenovo owned trackpoint support... Andrew, is it
> >yours now?
> 
> No, it should still be Lenovo's trackpoint.

OK, I see, but are you aware of new firmware with new IDs? I am hesitant
to extend the list for something that hasn't changed for many years.

> 
> Andrew
> 
> >Aaron, what devices have these new trackpoints>?
> >
> >Thanks.
> >
> >>Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
> >>Cc: stable@vger.kernel.org
> >>---
> >>  drivers/input/mouse/trackpoint.c | 3 ++-
> >>  drivers/input/mouse/trackpoint.h | 3 ++-
> >>  2 files changed, 4 insertions(+), 2 deletions(-)
> >>
> >>diff --git a/drivers/input/mouse/trackpoint.c b/drivers/input/mouse/trackpoint.c
> >>index 7331084..9ff0f38 100644
> >>--- a/drivers/input/mouse/trackpoint.c
> >>+++ b/drivers/input/mouse/trackpoint.c
> >>@@ -265,7 +265,8 @@ static int trackpoint_start_protocol(struct psmouse *psmouse, unsigned char *fir
> >>  	if (ps2_command(&psmouse->ps2dev, param, MAKE_PS2_CMD(0, 2, TP_READ_ID)))
> >>  		return -1;
> >>-	if (param[0] != TP_MAGIC_IDENT)
> >>+	/* add new TP ID. */
> >>+	if (!(param[0] & TP_MAGIC_IDENT))
> >>  		return -1;
> >>  	if (firmware_id)
> >>diff --git a/drivers/input/mouse/trackpoint.h b/drivers/input/mouse/trackpoint.h
> >>index 5617ed3..8805575 100644
> >>--- a/drivers/input/mouse/trackpoint.h
> >>+++ b/drivers/input/mouse/trackpoint.h
> >>@@ -21,8 +21,9 @@
> >>  #define TP_COMMAND		0xE2	/* Commands start with this */
> >>  #define TP_READ_ID		0xE1	/* Sent for device identification */
> >>-#define TP_MAGIC_IDENT		0x01	/* Sent after a TP_READ_ID followed */
> >>+#define TP_MAGIC_IDENT		0x03	/* Sent after a TP_READ_ID followed */
> >>  					/* by the firmware ID */
> >>+					/* Firmware ID includes 0x1, 0x2, 0x3 */
> >>  /*
> >>-- 
> >>2.9.3
> >>
>

Patch
diff mbox

diff --git a/drivers/input/mouse/trackpoint.c b/drivers/input/mouse/trackpoint.c
index 7331084..9ff0f38 100644
--- a/drivers/input/mouse/trackpoint.c
+++ b/drivers/input/mouse/trackpoint.c
@@ -265,7 +265,8 @@  static int trackpoint_start_protocol(struct psmouse *psmouse, unsigned char *fir
 	if (ps2_command(&psmouse->ps2dev, param, MAKE_PS2_CMD(0, 2, TP_READ_ID)))
 		return -1;
 
-	if (param[0] != TP_MAGIC_IDENT)
+	/* add new TP ID. */
+	if (!(param[0] & TP_MAGIC_IDENT))
 		return -1;
 
 	if (firmware_id)
diff --git a/drivers/input/mouse/trackpoint.h b/drivers/input/mouse/trackpoint.h
index 5617ed3..8805575 100644
--- a/drivers/input/mouse/trackpoint.h
+++ b/drivers/input/mouse/trackpoint.h
@@ -21,8 +21,9 @@ 
 #define TP_COMMAND		0xE2	/* Commands start with this */
 
 #define TP_READ_ID		0xE1	/* Sent for device identification */
-#define TP_MAGIC_IDENT		0x01	/* Sent after a TP_READ_ID followed */
+#define TP_MAGIC_IDENT		0x03	/* Sent after a TP_READ_ID followed */
 					/* by the firmware ID */
+					/* Firmware ID includes 0x1, 0x2, 0x3 */
 
 
 /*