linux-stable/Documentation/i2c
Benjamin Tissoires 4d5538f588 i2c: use an IRQ to report Host Notify events, not alert
The current SMBus Host Notify implementation relies on .alert() to
relay its notifications. However, the use cases where SMBus Host
Notify is needed currently is to signal data ready on touchpads.

This is closer to an IRQ than a custom API through .alert().
Given that the 2 touchpad manufacturers (Synaptics and Elan) that
use SMBus Host Notify don't put any data in the SMBus payload, the
concept actually matches one to one.

Benefits are multiple:
- simpler code and API: the client will just have an IRQ, and
  nothing needs to be added in the adapter beside internally
  enabling it.
- no more specific workqueue, the threading is handled by IRQ core
  directly (when required)
- no more races when removing the device (the drivers are already
  required to disable irq on remove)
- simpler handling for drivers: use plain regular IRQs
- no more dependency on i2c-smbus for i2c-i801 (and any other adapter)
- the IRQ domain is created automatically when the adapter exports
  the Host Notify capability
- the IRQ are assign only if ACPI, OF and the caller did not assign
  one already
- the domain is automatically destroyed on remove
- fewer lines of code (minus 20, yeah!)

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2016-11-24 16:22:06 +01:00
..
busses i2c: mlxcpld: add master driver for mellanox systems 2016-11-24 16:21:42 +01:00
muxes i2c-mux-gpio: Update documentation 2012-10-05 22:23:54 +02:00
dev-interface Doc: i2c: Fix typo in Documentation/i2c 2016-02-10 13:12:14 -07:00
fault-codes Documentation: i2c: Remove obsolete example 2014-01-09 23:02:46 +01:00
functionality i2c: fix reference to functionality constants definition 2015-02-19 16:57:48 +01:00
i2c-protocol Documentation: i2c: improve section about flags mangling the protocol 2014-04-06 13:53:48 +02:00
i2c-stub i2c: stub: Add support for banked register ranges 2014-07-17 19:56:15 +02:00
i2c-topology [media] rtl2832: change the i2c gate to be mux-locked 2016-05-04 22:40:02 +02:00
instantiating-devices Documentation: i2c: mention ACPI method for instantiating devices 2014-02-15 19:46:34 +01:00
old-module-parameters
slave-eeprom-backend Doc: i2c: Fix typo in Documentation/i2c 2016-02-10 13:12:14 -07:00
slave-interface Documentation: i2c: slave-interface: add note for driver development 2016-09-08 16:57:14 +02:00
smbus-protocol i2c: use an IRQ to report Host Notify events, not alert 2016-11-24 16:22:06 +01:00
summary Documentation: i2c: describe the new slave mode 2015-03-27 16:53:39 +01:00
ten-bit-addresses i2c: support 10 bit and slave addresses in sysfs 'new_device' 2015-08-24 14:05:15 +02:00
upgrading-clients Documentation: i2c: Use PM ops instead of legacy suspend/resume 2014-12-04 19:09:03 +01:00
writing-clients Documentation: i2c: Use PM ops instead of legacy suspend/resume 2014-12-04 19:09:03 +01:00