• Daniel Vetter's avatar
    i2c: export bit-banging algo functions · b0209b39
    Daniel Vetter authored
    i915 has a hw i2c controller (gmbus) but for a bunch of stupid reasons
    we need to be able to fall back to the bit-banging algo on gpio pins.
    
    The current code sets up a 2nd i2c controller for the same i2c bus using
    the bit-banging algo. This has a bunch of issues, the major one being
    that userspace can directly access this fallback i2c adaptor behind
    the drivers back.
    
    But we need to frob a few registers before and after using fallback
    gpio bit-banging, so this horribly fails.
    
    The new plan is to only set up one i2c adaptor and transparently fall
    back to bit-banging by directly calling the xfer function of the bit-
    banging algo in the i2c core.
    
    To make that possible, export the 2 i2c algo functions.
    
    v2: As suggested by Jean Delvare, simply export the i2c_bit_algo
    vtable instead of the individual functions.
    Acked-by: default avatarJean Delvare <khali@linux-fr.org>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    b0209b39
i2c-algo-bit.c 16.5 KB