HID: i2c: Call acpi_device_fix_up_power for ACPI-enumerated devices
authorHans de Goede <hdegoede@redhat.com>
Tue, 9 May 2017 08:04:36 +0000 (10:04 +0200)
committerJiri Kosina <jkosina@suse.cz>
Mon, 29 May 2017 11:07:45 +0000 (13:07 +0200)
commitf3d3eab667de62572376abb1aa26316191c39929
tree073c04e3e7e9aa73338498b0f758c71c39ff7556
parent76dd1fbebbaebab294dc09230960238746b883b1
HID: i2c: Call acpi_device_fix_up_power for ACPI-enumerated devices

For ACPI devices which do not have a _PSC method, the ACPI subsys cannot
query their initial state at boot, so these devices are assumed to have
been put in D0 by the BIOS, but for touchscreens that is not always true.

This commit adds a call to acpi_device_fix_up_power to explicitly put
devices without a _PSC method into D0 state (for devices with a _PSC
method it is a nop). Note we only need to do this on probe, after a
resume the ACPI subsys knows the device is in D3 and will properly
put it in D0.

This fixes the SIS0817 i2c-hid touchscreen on a Peaq C1010 2-in-1
device failing to probe with a "hid_descr_cmd failed" error.

Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/i2c-hid/i2c-hid.c