• Ben Skeggs's avatar
    drm/nv50: prevent a possible ctxprog hang · 7978b9cf
    Ben Skeggs authored
    The below is mainly an educated guess at what's going on, docs would
    sure be handy...  NVIDIA? :P
    
    It appears it's possible for a ctxprog to run even while a GPU exception
    is pending.  The GF8 and up ctxprogs appear to have a small snippet of
    code which detects this, and stalls the ctxprog until it's been handled,
    which essentially looks like:
    
    	if (r2 & 0x00008000) {
    		r0 |= 0x80000000;
    		while (r0 & 0x80000000) {}
    	}
    
    I don't know of any way that flag would get cleared unless the driver
    intervenes (and indeed, in the cases I've seen the hang, nothing steps
    in to automagically clear it for us).  This patch causes the driver to
    clear the flag during the PGRAPH IRQ handler.
    Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
    7978b9cf
nouveau_irq.c 18.8 KB