iio: events: Make iio_push_event() IRQ context save

Currently it is not save to call iio_push_event() from hard IRQ context since
the IIO event code uses spin_lock()/spin_unlock() and it is not save to mix
calls to spin_lock()/spin_unlock() from different contexts on the same lock.
E.g. if the lock is being held in iio_event_chrdev_read() and an interrupts
kicks in and the interrupt handler calls iio_push_event() we end uo with a
deadlock.

This patch updates iio_push_event() to use spin_lock_irqsave()/
spin_unlock_irqstrestore(), since it can be called from both IRQ and non-IRQ
context. All other other users of the lock, which are always run in non-IRQ
context, are updated to spin_lock_irq()/spin_unlock_irq().

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>

---
As far as I can see all current callers of iio_push_event() run in non-IRQ
context, so this doesn't need to applied to the fixes branch.
iio: Rework event config interface

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
iio:adc: Add Xilinx XADC driver

This patch adds support for the Xilinx Series 7 XADC. The patch has support for
interfacing the XADC using the PS7 devcfg or the AXI-XADC.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
IIO: xadc: Use the OT event for the temperature channel

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
arch/arm/configs/zync_xcomm_adv7511_defconfig: enable XADC

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>