Input: ALPS - fix V8+ protocol handling (73 03 28)
Devices identified as E7="73 03 28" use slightly modified version of V8
protocol, with lower count per electrode, different offsets, and different
feature bits in OTP data.
Fixes: aeaa881f9b
("Input: ALPS - set DualPoint flag for 74 03 28 devices")
Signed-off-by: Masaki Ota <masaki.ota@jp.alps.com>
Acked-by: Pali Rohar <pali.rohar@gmail.com>
Tested-by: Paul Donohue <linux-kernel@PaulSD.com>
Tested-by: Nick Fletcher <nick.m.fletcher@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
此提交包含在:
@@ -54,6 +54,16 @@ enum SS4_PACKET_ID {
|
||||
|
||||
#define SS4_MASK_NORMAL_BUTTONS 0x07
|
||||
|
||||
#define SS4PLUS_COUNT_PER_ELECTRODE 128
|
||||
#define SS4PLUS_NUMSENSOR_XOFFSET 16
|
||||
#define SS4PLUS_NUMSENSOR_YOFFSET 5
|
||||
#define SS4PLUS_MIN_PITCH_MM 37
|
||||
|
||||
#define IS_SS4PLUS_DEV(_b) (((_b[0]) == 0x73) && \
|
||||
((_b[1]) == 0x03) && \
|
||||
((_b[2]) == 0x28) \
|
||||
)
|
||||
|
||||
#define SS4_IS_IDLE_V2(_b) (((_b[0]) == 0x18) && \
|
||||
((_b[1]) == 0x10) && \
|
||||
((_b[2]) == 0x00) && \
|
||||
@@ -283,6 +293,7 @@ struct alps_data {
|
||||
int addr_command;
|
||||
u16 proto_version;
|
||||
u8 byte0, mask0;
|
||||
u8 dev_id[3];
|
||||
u8 fw_ver[3];
|
||||
int flags;
|
||||
int x_max;
|
||||
|
新增問題並參考
封鎖使用者