History log of /linux-master/drivers/hid/hid-alps.c
Revision Date Author Comments
# 989f7cc9 17-Nov-2022 Marcus Folkesson <marcus.folkesson@gmail.com>

HID: hid-alps: use default remove for hid device

hid_device_remove() will call hid_hw_stop() as default .remove function
if no function is specified.

Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 1117d182 19-Jul-2022 Artem Borisov <dedsa2002@gmail.com>

HID: alps: Declare U1_UNICORN_LEGACY support

U1_UNICORN_LEGACY id was added to the driver, but was not declared
in the device id table, making it impossible to use.

Fixes: 640e403 ("HID: alps: Add AUI1657 device ID")
Signed-off-by: Artem Borisov <dedsa2002@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 8802d154 26-Mar-2021 Lee Jones <lee.jones@linaro.org>

HID: hid-alps: Correct struct misnaming

Fixes the following W=1 kernel build warning(s):

drivers/hid/hid-alps.c:113: warning: expecting prototype for struct u1_data. Prototype was for struct alps_dev instead

Cc: Jiri Kosina <jikos@kernel.org>
Cc: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Cc: Henrik Rydberg <rydberg@bitmath.org>
Cc: Masaki Ota <masaki.ota@jp.alps.com>
Cc: linux-input@vger.kernel.org
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>


# fa8ba6e5 04-Mar-2021 Jia-Ju Bai <baijiaju1990@gmail.com>

HID: alps: fix error return code in alps_input_configured()

When input_register_device() fails, no error return code is assigned.
To fix this bug, ret is assigned with -ENOENT as error return code.

Reported-by: TOTE Robot <oslab@tsinghua.edu.cn>
Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 2c346889 20-Sep-2020 Colin Ian King <colin.king@canonical.com>

HID: alps: clean up indentation issue

There is an if statement that is indented too deeply, fix this by removing the
extraneous tab.

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# aa3c439c 22-May-2020 Caiyuan Xie <caiyuan.xie@cn.alps.com>

HID: alps: support devices with report id 2

Add support for devices which that have reports with id == 2

Signed-off-by: Caiyuan Xie <caiyuan.xie@cn.alps.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 5fc70e35 11-May-2020 Jiada Wang <jiada_wang@mentor.com>

Input: introduce input_mt_report_slot_inactive()

input_mt_report_slot_state() ignores "tool" argument when the slot is
closed, which has caused a bit of confusion. Let's introduce
input_mt_report_slot_inactive() to report inactive slot state.

Suggested-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
Link: https://lore.kernel.org/r/20200508055656.96389-2-jiada_wang@mentor.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>


# 185af3e7 15-Apr-2020 Jiri Kosina <jkosina@suse.cz>

HID: alps: ALPS_1657 is too specific; use U1_UNICORN_LEGACY instead

HID_DEVICE_ID_ALPS_1657 PID is too specific, as there are many other
ALPS hardware IDs using this particular touchpad.

Rename the identifier to HID_DEVICE_ID_ALPS_U1_UNICORN_LEGACY in order
to describe reality better.

Fixes: 640e403b1fd24 ("HID: alps: Add AUI1657 device ID")
Reported-by: Xiaojian Cao <xiaojian.cao@cn.alps.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 640e403b 05-Apr-2020 Artem Borisov <dedsa2002@gmail.com>

HID: alps: Add AUI1657 device ID

This device is used on Lenovo V130-15IKB variants and uses
the same registers as U1.

Signed-off-by: Artem Borisov <dedsa2002@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 8d2e77b3 03-Dec-2019 Christophe JAILLET <christophe.jaillet@wanadoo.fr>

HID: alps: Fix an error handling path in 'alps_input_configured()'

They are issues:
- if 'input_allocate_device()' fails and return NULL, there is no need
to free anything and 'input_free_device()' call is a no-op. It can
be axed.
- 'ret' is known to be 0 at this point, so we must set it to a
meaningful value before returning

Fixes: 2562756dde55 ("HID: add Alps I2C HID Touchpad-Stick support")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 2874c5fd 27-May-2019 Thomas Gleixner <tglx@linutronix.de>

treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152

Based on 1 normalized pattern(s):

this program is free software you can redistribute it and or modify
it under the terms of the gnu general public license as published by
the free software foundation either version 2 of the license or at
your option any later version

extracted by the scancode license scanner the SPDX license identifier

GPL-2.0-or-later

has been chosen to replace the boilerplate/reference in 3029 file(s).

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Allison Randal <allison@lohutok.net>
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


# 7dd8db68 12-Oct-2018 Benjamin Tissoires <benjamin.tissoires@redhat.com>

HID: alps: allow incoming reports when only the trackstick is opened

If userspace only reads the trackstick node, and no one is listening to
the touchpad nor the hidraw node then, the device is not powered on.

Add open/close callbacks to allow users to disable the touchpad in Gnome
while keeping the trackstick active.

Link: https://bugzilla.redhat.com/show_bug.cgi?id=1559632
Link: https://gitlab.gnome.org/GNOME/mutter/issues/128
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# a317e559 19-Mar-2018 Christophe JAILLET <christophe.jaillet@wanadoo.fr>

HID: alps: Fix some style in 't4_read_write_register()'

Better indent the code to improve readability.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 69934012 19-Mar-2018 Christophe JAILLET <christophe.jaillet@wanadoo.fr>

HID: alps: Check errors returned by 't4_read_write_register()'

If only the first 't4_read_write_register()' call fails, the error code
will be overwritten and lost.
Directly report the error instead.

While at it, log some errors if 't4_read_write_register()' fails, as done
in the rest of the driver.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# edb6cb3d 19-Mar-2018 Christophe JAILLET <christophe.jaillet@wanadoo.fr>

HID: alps: Save a memory allocation in 't4_read_write_register()' when writing data

if 'read_flag' is false, there is no need to allocate and free memory.
We can simply avoid the memory allocation and pass NULL to kfree.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 605f0772 19-Mar-2018 Christophe JAILLET <christophe.jaillet@wanadoo.fr>

HID: alps: Report an error if we receive invalid data in 't4_read_write_register()'

If the data received is not what is expected, we should return an error.

Otherwise, we return 0 or a positive value which will be interpreted as
success, but '*read_val' has not been updated.

Fixes: 73196ebe134d ("HID: alps: add support for Alps T4 Touchpad device")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 287b8e11 05-Oct-2017 Masaki Ota <masaki.ota@jp.alps.com>

HID: alps: add new U1 device ID

Add new U1 device Product ID This device is used on HP Elite book x360 series.

[jkosina@suse.cz: update changelog]
Signed-off-by: Masaki Ota <masaki.ota@jp.alps.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 73196ebe 05-Oct-2017 Masaki Ota <masaki.ota@jp.alps.com>

HID: alps: add support for Alps T4 Touchpad device

- Define T4 device specification value for support T4 device.

- Creeate "t4_contact_data" and "t4_input_report" structure for decoding and
storing T4-specific data

- Create "t4_calc_check_sum()" function for calculating checksum value to send
to the device. T4 needs to send this value when reading or writing device
address value.

- Create "t4_read_write_register()" function for reading and writing device
address value.

- Create "t4_raw_event()" function for decodin XYZ, palm and button data.

- Replace "MAX_TOUCHES" fixed variable to "max_fingers" variable.

- Add T4 devuce product ID. (0x120C)

T4 device is used on HP EliteBook 1000 series and Zbook Stduio

[jkosina@suse.cz: rewrite changelog]
Signed-off-by: Masaki Ota <masaki.ota@jp.alps.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 5992262d 05-Oct-2017 Masaki Ota <masaki.ota@jp.alps.com>

HID: alps: remove variables local to u1_init() from the device struct

Move dev_ctrl, dev_type, sen_line_num_x, sen_line_num_y, pitch_x, pitch_y,
resolution, btn_info from u1_dev structure to "u1_init()", because these
variables are only used in there.

[jkosina@suse.cz: rewrite changelog]
Signed-off-by: Masaki Ota <masaki.ota@jp.alps.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# c7083d3f 05-Oct-2017 Masaki Ota <masaki.ota@jp.alps.com>

HID: alps: properly handle max_fingers and minimum on X and Y axis

Create x_min, y_min and max_fingers variables for set correct XY minimum value
and the number of max finger on each devices.

[jkosina@suse.cz: update shortlog]
Signed-off-by: Masaki Ota <masaki.ota@jp.alps.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 5d8c720d 05-Oct-2017 Masaki Ota <masaki.ota@jp.alps.com>

HID: alps: Separate U1 device code

Create 'static int u1_init()' and factor out U1 device initialization code from
main initialization and introduce per-device 'has_sp' flag.

[jkosina@suse.cz: rewrite changelog]
Signed-off-by: Masaki Ota <masaki.ota@jp.alps.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# ce6abcf8 05-Oct-2017 Masaki Ota <masaki.ota@jp.alps.com>

HID: alps: delete unnecessary struct u1_dev devInfo

Delete "struct u1_dev devInfo" structure, because u1_dev structure is already
declared as "struct u1_dev *data".

[jkosina@suse.cz: rewrite changelog]
Signed-off-by: Masaki Ota <masaki.ota@jp.alps.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 9a54cf46 26-Sep-2016 Masaki Ota <012nexus@gmail.com>

HID: alps: fix multitouch cursor issue

Issue reproduction procedure:

1. three or more fingers put on Touchpad.
2. release fingers from Touchpad.
3. move the cursor by one finger.
4. the cursor does not move.

Cause:

We do not notify multi fingers state correctly to input subsystem. For
example, when three fingers release from Touchpad, fingers state is 3 -> 0. It
needs to notify first, second and third finger's releasing state.

Fix this by not breaking out on z axis and move x,y,z input handling
code to the correct place so that it's in fact per-finger.

[jkosina@suse.cz: reword changelog]
Signed-off-by: Masaki Ota <masaki.ota@jp.alps.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 46a41b51 21-Sep-2016 Wei Yongjun <weiyongjun1@huawei.com>

HID: alps: fix error return code in alps_input_configured()

Fix to return a negative error code from the error handling
case instead of 0, as done elsewhere in this function.

While at it, remove redundant input_free_device(NULL) call.

[jkosina@suse.cz: ammend changelog]
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 04fd4cb0 19-Sep-2016 Kai-Heng Feng <kai.heng.feng@canonical.com>

HID: alps: fix stick device not working after resume

The stick device does not work after resume, add U1_SP_ABS_MODE flag can
make the device work after resume.

This has been discovered by pure guesswork, based on how the existing code uses
U1_TP_ABS_MODE flag on both initialization and resume.

I also tested the the patch on an ALPS touchpad without stick device, did not
notice any side effect on suspend/resume, so I made the U1_SP_ABS_MODE flag
mandatory.

[jkosina@suse.cz: made changelog more verbose]
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 7ee2eaa3 10-Sep-2016 Axel Lin <axel.lin@ingics.com>

HID: alps: Fix memory leak

A kfree(readbuf) call was missed if hid_hw_raw_request() fails, fix it.
Also avoid mixing direct return with goto in the error paths.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 819d64e5 21-Jun-2016 Masaki Ota <masaki.ota@jp.alps.com>

HID: alps: a few cleanups

Remove an unnecessary codes.
Change input_ivent() function to appropriate function.
Add the device ID of "HID_DEVICE_ID_ALPS_U1_DUAL".

[jkosina@suse.cz: removed unnecessary bitshifts of values passed
input_report_key() as spotted by Dmitry]
Signed-off-by: Masaki Ota <masaki.ota@jp.alps.com>
Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 63b3a7d0 20-Jun-2016 Jiri Kosina <jkosina@suse.cz>

HID: alps: pass correct sizes to hid_hw_raw_request()

Calculating size of the report as sizeof(pointer) always passess the length
corresponding to the pointer type, not the underlying data report.

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 41f61ecc 17-Jun-2016 Jiri Kosina <jkosina@suse.cz>

HID: alps: struct u1_dev *priv is internal to the driver

... and therefore should be marked static.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>


# 2562756d 16-Jun-2016 Masaki Ota <masaki.ota@jp.alps.com>

HID: add Alps I2C HID Touchpad-Stick support

Add support Alps I2C HID Touchpad and Stick device.

Signed-off-by: Masaki Ota <masaki.ota@jp.alps.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>