• Jean Delvare's avatar
    i2c: Add SMBus alert support · b5527a77
    Jean Delvare authored
    SMBus alert support. The SMBus alert protocol allows several SMBus
    slave devices to share a single interrupt pin on the SMBus master,
    while still allowing the master to know which slave triggered the
    interrupt.
    
    This is based on preliminary work by David Brownell. The key
    difference between David's implementation and mine is that his was
    part of i2c-core, while mine is split into a separate, standalone
    module named i2c-smbus. The i2c-smbus module is meant to include
    support for all SMBus extensions to the I2C protocol in the future.
    
    The benefit of this approach is a zero cost for I2C bus segments which
    do not need SMBus alert support. Where David's implementation
    increased the size of struct i2c_adapter by 7% (40 bytes on i386),
    mine doesn't touch it. Where David's implementation added over 150
    lines of code to i2c-core (+10%), mine doesn't touch it. The only
    change that touches all the users of the i2c subsystem is a new
    callback in struct i2c_driver (common to both implementations.) I seem
    to remember Trent was worried about the footprint of David'd
    implementation, hopefully mine addresses the issue.
    Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
    Acked-by: default avatarJonathan Cameron <jic23@cam.ac.uk>
    Cc: David Brownell <dbrownell@users.sourceforge.net>
    Cc: Trent Piepho <tpiepho@freescale.com>
    b5527a77
smbus-protocol 8 KB