• Christian Koenig's avatar
    drm/radeon: apply Murphy's law to the kms irq code v3 · fb98257a
    Christian Koenig authored
    1. It is really dangerous to have more than one
       spinlock protecting the same information.
    
    2. radeon_irq_set sometimes wasn't called with lock
       protection, so it can happen that more than one
       CPU would tamper with the irq regs at the same
       time.
    
    3. The pm.gui_idle variable was assuming that the 3D
       engine wasn't becoming idle between testing the
       register and setting the variable. So just remove
       it and test the register directly.
    
    v2: Also handle the hpd irq code the same way.
    v3: Rename hpd parameter for clarification.
    Signed-off-by: default avatarChristian Koenig <christian.koenig@amd.com>
    Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    fb98257a
radeon_kms.c 16.5 KB