linux/drivers
Martin Kelly fe5192ac81 iio:st_magn: Fix enable device after trigger
Currently, we enable the device before we enable the device trigger. At
high frequencies, this can cause interrupts that don't yet have a poll
function associated with them and are thus treated as spurious. At high
frequencies with level interrupts, this can even cause an interrupt storm
of repeated spurious interrupts (~100,000 on my Beagleboard with the
LSM9DS1 magnetometer). If these repeat too much, the interrupt will get
disabled and the device will stop functioning.

To prevent these problems, enable the device prior to enabling the device
trigger, and disable the divec prior to disabling the trigger. This means
there's no window of time during which the device creates interrupts but we
have no trigger to answer them.

Fixes: 90efe05562 ("iio: st_sensors: harden interrupt handling")
Signed-off-by: Martin Kelly <martin@martingkelly.com>
Tested-by: Denis Ciocca <denis.ciocca@st.com>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2018-11-03 11:24:07 +00:00
..
accessibility
acpi ACPI / PMIC: xpower: Add depends on IOSF_MBI to Kconfig entry 2018-10-25 17:00:05 +02:00
amba
android
ata libata: Apply NOLPM quirk for SAMSUNG MZ7TD256HAFV-000L9 2018-10-26 08:21:04 -06:00
atm atm: zatm: Fix empty body Clang warnings 2018-10-18 15:39:10 -07:00
auxdisplay
base mm, proc: add KReclaimable to /proc/meminfo 2018-10-26 16:26:32 -07:00
bcma
block powerpc updates for 4.20 2018-10-26 14:36:21 -07:00
bluetooth Merge branch 'work.tty-ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-10-24 14:43:41 +01:00
bus ARM: SoC driver updates for 4.17 2018-10-29 15:16:01 -07:00
cdrom gdrom: fix mistake in assignment of error 2018-10-25 11:17:40 -06:00
char RTC for 4.20 2018-10-27 09:24:24 -07:00
clk ARM: SoC driver updates for 4.17 2018-10-29 15:16:01 -07:00
clocksource RISC-V Patches for the 4.20 Merge Window, Part 1 2018-10-25 18:01:29 -07:00
connector
cpufreq cpufreq: remove unused arm_big_little_dt driver 2018-10-25 18:39:02 +02:00
cpuidle More power management updates for 4.20-rc1 2018-10-30 09:08:07 -07:00
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2018-10-25 16:43:35 -07:00
dax
dca
devfreq
dio
dma pci-v4.20-changes 2018-10-25 06:50:48 -07:00
dma-buf
edac ARM: SoC driver updates for 4.17 2018-10-29 15:16:01 -07:00
eisa
extcon
firewire
firmware ARM: SoC driver updates for 4.17 2018-10-29 15:16:01 -07:00
fmc
fpga fpga: add devm_fpga_region_create 2018-10-16 11:13:50 +02:00
fsi
gnss
gpio pci-v4.20-changes 2018-10-25 06:50:48 -07:00
gpu media updates for v4.20-rc1 2018-10-29 14:29:58 -07:00
hid media updates for v4.20-rc1 2018-10-29 14:29:58 -07:00
hsi
hv hv_balloon: Replace spin_is_locked() with lockdep 2018-10-15 20:54:17 +02:00
hwmon Lots of small changes to the IPMI driver. Most of the changes 2018-10-23 09:42:05 +01:00
hwspinlock
hwtracing stm class: Use memcat_p() 2018-10-11 12:12:55 +02:00
i2c More ACPI updates for 4.20-rc1 2018-10-30 09:15:31 -07:00
ide
idle Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-10-23 13:32:18 +01:00
iio iio:st_magn: Fix enable device after trigger 2018-11-03 11:24:07 +00:00
infiniband Revert "mm, mmu_notifier: annotate mmu notifiers with blockable invalidate callbacks" 2018-10-26 16:25:19 -07:00
input Merge branch 'xarray' of git://git.infradead.org/users/willy/linux-dax 2018-10-28 11:35:40 -07:00
iommu Merge branch 'akpm' (patches from Andrew) 2018-10-26 19:33:41 -07:00
ipack
irqchip This tag contains the Linux port for C-SKY(csky) based on linux-4.19 2018-10-29 08:25:00 -07:00
isdn Merge branch 'work.tty-ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-10-24 14:43:41 +01:00
leds leds: gpio: set led_dat->gpiod pointer for OF defined GPIO leds 2018-10-26 20:51:36 +02:00
lightnvm
macintosh macintosh/windfarm_smu_sat: Fix debug output 2018-10-19 00:56:17 +11:00
mailbox - Convert print users to use the %pOFn format specifier 2018-10-29 10:30:44 -07:00
mcb
md Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md 2018-10-26 13:00:44 -07:00
media media updates for v4.20-rc1 2018-10-29 14:29:58 -07:00
memory
memstick
message
mfd - New Drivers 2018-10-25 06:19:15 -07:00
misc Merge branch 'i2c/for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-10-29 14:44:03 -07:00
mmc Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-10-23 13:32:18 +01:00
mtd SPI NOR changes: 2018-10-23 01:09:22 +01:00
mux This is the bulk of GPIO changes for the v4.20 series: 2018-10-23 08:45:05 +01:00
net macsec: let the administrator set UP state even if lowerdev is down 2018-10-28 19:26:42 -07:00
nfc NFC: nfcmrvl_uart: fix OF child-node lookup 2018-10-23 13:28:53 -05:00
ntb
nubus
nvdimm libnvdimm for 4.20 2018-10-25 06:31:56 -07:00
nvme pci-v4.20-changes 2018-10-25 06:50:48 -07:00
nvmem nvmem: hide unused nvmem_find_cell_by_index function 2018-10-15 15:56:15 +02:00
of TTY/Serial patches for 4.20-rc1 2018-10-29 10:42:20 -07:00
opp
oprofile
parisc parisc: Add alternative coding infrastructure 2018-10-17 17:22:26 +02:00
parport
pci Merge branch 'xarray' of git://git.infradead.org/users/willy/linux-dax 2018-10-28 11:35:40 -07:00
pcmcia powerpc updates for 4.20 2018-10-26 14:36:21 -07:00
perf arm64 updates for 4.20: 2018-10-22 17:30:06 +01:00
phy USB/PHY patches for 4.20-rc1 2018-10-26 08:14:13 -07:00
pinctrl This is the bulk of GPIO changes for the v4.20 series: 2018-10-23 08:45:05 +01:00
platform Char/Misc driver patches for 4.20-rc1 2018-10-26 09:11:43 -07:00
pnp
power Devicetree updates for 4.20: 2018-10-26 12:09:58 -07:00
powercap Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-10-23 13:32:18 +01:00
pps
ps3
ptp ptp: drop redundant kasprintf() to create worker name 2018-10-28 19:20:06 -07:00
pwm
rapidio
ras
regulator regulator: Regulator updates for next release 2018-10-23 01:54:44 +01:00
remoteproc remoteproc: qcom: q6v5-mss: Register segments/dumpfn for coredump 2018-10-19 12:54:03 -07:00
reset ARM: SoC driver updates for 4.17 2018-10-29 15:16:01 -07:00
rpmsg
rtc rtc: sc27xx: Always read normal alarm when registering RTC device 2018-10-25 02:35:42 +02:00
s390 KVM updates for v4.20 2018-10-25 17:57:35 -07:00
sbus
scsi for-linus-20181026 2018-10-26 12:43:13 -07:00
sfi
sh
siox
slimbus
sn
soc ARM: SoC driver updates for 4.17 2018-10-29 15:16:01 -07:00
soundwire
spi - New Drivers 2018-10-25 06:19:15 -07:00
spmi
ssb
staging media updates for v4.20-rc1 2018-10-29 14:29:58 -07:00
target SCSI misc on 20181024 2018-10-25 07:40:30 -07:00
tc TC: Set DMA masks for devices 2018-10-11 09:16:44 -07:00
tee
thermal Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal 2018-10-26 12:04:29 -07:00
thunderbolt
tty TTY/Serial patches for 4.20-rc1 2018-10-29 10:42:20 -07:00
uio
usb USB/PHY patches for 4.20-rc1 2018-10-26 08:14:13 -07:00
uwb
vfio KVM: PPC: Optimize clearing TCEs for sparse tables 2018-10-20 20:47:02 +11:00
vhost
video media updates for v4.20-rc1 2018-10-29 14:29:58 -07:00
virt
virtio
visorbus
vlynq
vme
w1 w1: IAD Register is yet readable trough iad sys file. Fix snprintf (%u for unsigned, count for max size). 2018-10-15 20:50:32 +02:00
watchdog watchdog: ts4800: release syscon device node in ts4800_wdt_probe() 2018-10-22 10:16:28 +02:00
xen xen: drop writing error messages to xenstore 2018-10-26 09:17:16 +02:00
zorro
Kconfig
Makefile