• Egbert Eich's avatar
    drm/i915: Add HPD IRQ storm detection (v5) · b543fb04
    Egbert Eich authored
    Add a hotplug IRQ storm detection (triggered when a hotplug interrupt
    fires more than 5 times / sec).
    Rationale:
    Despite of the many attempts to fix the problem with noisy hotplug
    interrupt lines we are still seeing systems which have issues:
    Once cause of noise seems to be bad routing of the hotplug line
    on the board: cross talk from other signals seems to cause erronous
    hotplug interrupts. This has been documented as an erratum for the
    the i945GM chipset and thus hotplug support was disabled for this
    chipset model but others seem to have this problem, too.
    
    We have seen this issue on a G35 motherboard for example:
    Even different motherboards of the same model seem to behave
    differently: while some only see only around 10-100 interrupts/s
    others seem to see 5k or more.
    We've also observed a dependency on the selected video mode.
    
    Also on certain laptops interrupt noise seems to occur duing
    battery charging when the battery is at a certain charge levels.
    
    Thus we add a simple algorithm here that detects an 'interrupt storm'
    condition.
    
    v2: Fixed comment.
    v3: Reordered drm_i915_private: moved hpd state tracking to hotplug work stuff.
    v4: Followed by Jesse Barnes to use a time_..() macro.
    v5: Fixed coding style as suggested by Jani Nikula.
    Signed-off-by: default avatarEgbert Eich <eich@suse.de>
    Acked-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    b543fb04
i915_irq.c 84.7 KB