• D
    drm/i915: use gmbus irq to wait for gmbus idle · 2c438c02
    Daniel Vetter 提交于
    GMBUS_ACTIVE has inverted sense and so doesn't fit into the
    wait_hw_status helper, hence create a new gmbus_wait_idle functions.
    Also, we only care about the idle irq event and nothing else, which
    allows us to use the wait_event_timeout helper directly without
    jumping through hoops to catch NAKs.
    
    Since gen2/3 don't have gmbus interrupts, handle them separately with
    the old wait_for macro.
    
    This shaves another few ms off reading EDID from a hdmi screen on my
    testbox here. EDID reading with interrupt driven gmbus is now as fast
    as with busy-looping gmbus at 28 ms here (with negligible cpu
    overhead).
    Reviewed-by: NImre Deak <imre.deak@intel.com>
    Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
    2c438c02
intel_i2c.c 15.4 KB