linux-stable/drivers
Hans de Goede 5c7e02a896 HID: i2c-hid: Put ACPI enumerated devices in D3 on shutdown
The i2c-hid driver would quietly fail to probe the i2c-hid sensor-hub
with an ACPI device-id of SMO91D0 every other boot.

Specifically, the i2c_smbus_read_byte() "Make sure there is something at
this address" check would fail every other boot.

It seems that the BIOS does not properly reset/power-cycle the device
leaving it in a confused state where it refuses to respond to i2c-xfers.
On boots where probing the device failed, the driver-core puts the device
in D3 after the probe-failure, which causes the probe to succeed the next
boot.

Putting the device in D3 from the shutdown-handler fixes the sensors not
working every other boot.

This has been tested on both a Lenovo Miix 2-10 and a Dell Venue 8 Pro 5830
both of which use an i2c-hid sensor-hub with an ACPI id of SMO91D0.

Note that it is safe to call acpi_device_set_power() with a NULL pointer
as first argument, so on none ACPI enumerated devices this change is a
no-op.

Cc: Kai-Heng Feng <kai.heng.feng@canonical.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2020-10-29 12:48:55 +01:00
..
accessibility
acpi dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
amba
android binder: fix UAF when releasing todo list 2020-10-10 12:40:52 +02:00
ata ata: ahci: mvebu: Make SATA PHY optional for Armada 3720 2020-10-09 12:47:56 -06:00
atm
auxdisplay
base dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
bcma
block drivers-5.10-2020-10-12 2020-10-13 13:04:41 -07:00
bluetooth Bluetooth: ath3k: use usb_control_msg_send() and usb_control_msg_recv() 2020-09-25 16:33:59 +02:00
bus Char/Misc driver patches for 5.10-rc1 2020-10-15 10:01:51 -07:00
cdrom
char drm next for 5.10-rc1 2020-10-15 10:46:16 -07:00
clk clk: socfpga: stratix10: fix the divider for the emac_ptp_free_clk 2020-09-22 12:54:41 -07:00
clocksource hyperv-next for 5.10 2020-10-14 10:32:10 -07:00
connector
counter counter: use semicolons rather than commas to separate statements 2020-09-29 17:27:08 +01:00
cpufreq cpufreq: stats: Fix string format specifier mismatch 2020-10-12 12:32:10 +02:00
cpuidle Merge back cpuidle material for 5.10. 2020-09-28 16:31:25 +02:00
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2020-10-13 08:50:16 -07:00
dax device-dax: add a range mapping allocation attribute 2020-10-13 18:38:29 -07:00
dca
devfreq PM / devfreq: tegra30: Improve initial hardware resetting 2020-09-29 17:50:10 +09:00
dio
dma dmaengine: owl-dma: fix kernel-doc style for enum 2020-10-08 15:18:48 +05:30
dma-buf dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
edac EFI changes for v5.10: 2020-10-12 13:26:49 -07:00
eisa
extcon extcon: axp288: Use module_platform_driver to simplify the code 2020-09-30 00:40:06 +09:00
firewire firewire-ohci: use dma_alloc_pages 2020-09-25 06:20:48 +02:00
firmware USB/PHY/Thunderbolt driver patches for 5.10-rc1 2020-10-15 09:51:18 -07:00
fpga
fsi
gnss
gpio - New Drivers 2020-10-14 15:56:58 -07:00
gpu dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
greybus
hid HID: i2c-hid: Put ACPI enumerated devices in D3 on shutdown 2020-10-29 12:48:55 +01:00
hsi
hv hyperv-next for 5.10 2020-10-14 10:32:10 -07:00
hwmon Driver Core patches for 5.10-rc1 2020-10-14 16:09:32 -07:00
hwspinlock
hwtracing intel_th: pci: Add Alder Lake CPU support 2020-10-05 12:43:54 +02:00
i2c i2c: owl: Clear NACK and BUS error bits 2020-10-10 13:15:46 +02:00
i3c
ide block-5.10-2020-10-12 2020-10-13 12:12:44 -07:00
idle
iio sound updates for 5.10 2020-10-15 11:07:44 -07:00
infiniband block-5.10-2020-10-12 2020-10-13 12:12:44 -07:00
input hyperv-next for 5.10 2020-10-14 10:32:10 -07:00
interconnect interconnect: imx: simplify the return expression of imx_icc_unregister 2020-09-21 11:15:02 +03:00
iommu dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
ipack
irqchip - New Drivers 2020-10-14 15:56:58 -07:00
isdn
leds leds: pwm: Remove platform_data support 2020-10-07 12:02:58 +02:00
lightnvm
macintosh
mailbox
mcb
md - Improve DM core's bio splitting to use blk_max_size_offset(). Also 2020-10-14 15:05:38 -07:00
media dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
memory IOMMU Updates for Linux v5.10 2020-10-14 12:08:34 -07:00
memstick Merge branch 'fixes' into next 2020-09-28 12:17:36 +02:00
message SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
mfd - New Drivers 2020-10-14 15:56:58 -07:00
misc dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
mmc block-5.10-2020-10-12 2020-10-13 12:12:44 -07:00
most
mtd block-5.10-2020-10-12 2020-10-13 12:12:44 -07:00
mux
net dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
nfc
ntb
nubus
nvdimm mm/memremap_pages: support multiple ranges per invocation 2020-10-13 18:38:28 -07:00
nvme drivers-5.10-2020-10-12 2020-10-13 13:04:41 -07:00
nvmem nvmem: core: fix possibly memleak when use nvmem_cell_info_to_nvmem_cell() 2020-09-27 14:25:48 +02:00
of dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
opp Merge branch 'cpufreq/arm/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm 2020-10-06 12:26:45 +02:00
oprofile
parisc dma-mapping: split <linux/dma-mapping.h> 2020-10-06 07:07:03 +02:00
parport
pci dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
pcmcia dma-mapping: remove DMA_MASK_NONE 2020-09-25 06:12:15 +02:00
perf perf: arm-cmn: Fix conversion specifiers for node type 2020-10-01 22:30:07 +01:00
phy drm next for 5.10-rc1 2020-10-15 10:46:16 -07:00
pinctrl Pin control bulk changes for the v5.10 kernel cycle 2020-10-14 15:25:04 -07:00
platform platform-drivers-x86 for v5.10-1 2020-10-14 10:43:24 -07:00
pnp PNP: remove the now unused pnp_find_card() function 2020-10-08 18:00:08 +02:00
power Char/Misc driver patches for 5.10-rc1 2020-10-15 10:01:51 -07:00
powercap powercap: include header to fix -Wmissing-prototypes 2020-09-25 16:46:01 +02:00
pps
ps3
ptp
pwm drm next for 5.10-rc1 2020-10-15 10:46:16 -07:00
rapidio
ras RAS/CEC: Convert to DEFINE_SHOW_ATTRIBUTE() 2020-09-25 19:05:31 +02:00
regulator Merge remote-tracking branch 'regulator/for-5.10' into regulator-next 2020-10-05 16:54:56 +01:00
remoteproc dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
reset
rpmsg
rtc
s390 SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
sbus
scsi dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
sfi
sh
siox
slimbus slimbus: qcom-ngd-ctrl: disable ngd in qmi server down callback 2020-09-25 14:41:51 +02:00
soc Power management updates for 5.10-rc1 2020-10-14 10:45:41 -07:00
soundwire soundwire updates for 5.10-rc1 2020-10-01 22:59:55 +02:00
spi sound updates for 5.10 2020-10-15 11:07:44 -07:00
spmi
ssb
staging dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
target SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
tc
tee
thermal
thunderbolt thunderbolt: Changes for v5.10 merge window 2020-09-30 09:42:36 +02:00
tty serial: mcf: add sysrq capability 2020-10-05 13:32:30 +02:00
uio uio: free uio id after uio file node is freed 2020-09-17 18:52:03 +02:00
usb dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
vdpa dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
vfio
vhost vhost-vdpa: fix page pinning leakage in error path 2020-10-04 03:47:02 -04:00
video drm next for 5.10-rc1 2020-10-15 10:46:16 -07:00
virt virt: vbox: simplify the return expression of vbg_input_open() 2020-10-02 11:36:13 +02:00
virtio drm next for 5.10-rc1 2020-10-15 10:46:16 -07:00
visorbus
vlynq
vme
w1 w1: w1_therm: make w1_poll_completion static 2020-10-05 14:49:24 +02:00
watchdog - New Drivers 2020-10-14 15:56:58 -07:00
xen dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
zorro
Kconfig
Makefile