mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
HID: alps: allow incoming reports when only the trackstick is opened
[ Upstream commit 7dd8db6894 ]
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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
3b7b23827d
commit
67b261d76d
@@ -660,6 +660,20 @@ exit:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int alps_sp_open(struct input_dev *dev)
|
||||
{
|
||||
struct hid_device *hid = input_get_drvdata(dev);
|
||||
|
||||
return hid_hw_open(hid);
|
||||
}
|
||||
|
||||
static void alps_sp_close(struct input_dev *dev)
|
||||
{
|
||||
struct hid_device *hid = input_get_drvdata(dev);
|
||||
|
||||
hid_hw_close(hid);
|
||||
}
|
||||
|
||||
static int alps_input_configured(struct hid_device *hdev, struct hid_input *hi)
|
||||
{
|
||||
struct alps_dev *data = hid_get_drvdata(hdev);
|
||||
@@ -733,6 +747,10 @@ static int alps_input_configured(struct hid_device *hdev, struct hid_input *hi)
|
||||
input2->id.version = input->id.version;
|
||||
input2->dev.parent = input->dev.parent;
|
||||
|
||||
input_set_drvdata(input2, hdev);
|
||||
input2->open = alps_sp_open;
|
||||
input2->close = alps_sp_close;
|
||||
|
||||
__set_bit(EV_KEY, input2->evbit);
|
||||
data->sp_btn_cnt = (data->sp_btn_info & 0x0F);
|
||||
for (i = 0; i < data->sp_btn_cnt; i++)
|
||||
|
||||
Reference in New Issue
Block a user