• Thomas Zimmermann's avatar
    drm/i915: Use the correct IRQ during resume · 27e4b467
    Thomas Zimmermann authored
    The code in xcs_resume() probably didn't work as intended. It uses
    struct drm_device.irq, which is allocated to 0, but never initialized
    by i915 to the device's interrupt number.
    
    Change all calls to synchronize_hardirq() to intel_synchronize_irq(),
    which uses the correct interrupt. _hardirq() functions are not needed
    in this context.
    
    v5:
    	* go back to _hardirq() after PCI probe reported wrong
    	  context; add rsp comment
    v4:
    	* switch everything to intel_synchronize_irq() (Daniel)
    v3:
    	* also use intel_synchronize_hardirq() at another callsite
    v2:
    	* wrap irq code in intel_synchronize_hardirq() (Ville)
    Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
    Fixes: 536f77b1 ("drm/i915/gt: Call stop_ring() from ring resume, again")
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Cc: Lucas De Marchi <lucas.demarchi@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210701173618.10718-2-tzimmermann@suse.de
    27e4b467
intel_engine_cs.c 47.5 KB