drm/nouveau: use different register to wait for secret scrubber to be completed
Subsystems (3)
PATCH 1/1 drm/nouveau: use different register to wait for secret scrubber to be completed
Fixes long delay when waiting for scrubber on some secret engines. The exit interrupt seems to not always be generated, so use secret scrubber active register instead.
Later fuc engines also no longer generate an interrupt, so don't wait there.
---
drivers/gpu/drm/nouveau/core/core/falcon.c +5 -2
@@ -73,8 +73,11 @@ _nouveau_falcon_init(struct nouveau_object *object)nv_debug (falcon,"data limit: %d\n" , falcon->data.limit);/* wait for 'uc halted' to be signalled before continuing */ -if (falcon->secret) { -nv_wait (falcon,0x008 ,0x00000010 ,0x00000010 ); +if (falcon->secret && falcon->version <4 ) { +if (!falcon->version) +nv_wait (falcon,0x008 ,0x00000010 ,0x00000010 ); +else +nv_wait (falcon,0x180 ,0x80000000 ,0 );nv_wo32 (falcon,0x004 ,0x00000010 ); }