(In reply to comment #32)
> One idea I just randomly had was that there might be a difference in the
> teardown process. For example, in the removed code, nv50_display_fini did
> stuff. In the current code, it's basically empty (well, some small bits in
> nouveau_display_fini).
>
> It looks like the old code
>
> (a) blanked each crtc
> (b) sent out a EVO_UPDATE command
> (c) waited for each crtc to hit a vblank
> (d) did something with the cursor (cleared it?)
> (e) waited for some sort of DPMS thing
>
> It could well be that this now happens elsewhere, but I just wanted to put
> that thought down on "paper".
I tried this idea by doing the following:
1) Checked out 4f6029da58ba9204c98e33f4f3737fe085c87a6f^1 (= f9887d091149406de5c8b388f7e0bb6932dd621b)
2) Deleted everything in nv50_display_fini
With that change suspend/resume works so I guess the problem is elsewhere.
(In reply to comment #32) display_ fini).
> One idea I just randomly had was that there might be a difference in the
> teardown process. For example, in the removed code, nv50_display_fini did
> stuff. In the current code, it's basically empty (well, some small bits in
> nouveau_
>
> It looks like the old code
>
> (a) blanked each crtc
> (b) sent out a EVO_UPDATE command
> (c) waited for each crtc to hit a vblank
> (d) did something with the cursor (cleared it?)
> (e) waited for some sort of DPMS thing
>
> It could well be that this now happens elsewhere, but I just wanted to put
> that thought down on "paper".
I tried this idea by doing the following:
1) Checked out 4f6029da58ba920 4c98e33f4f3737f e085c87a6f^ 1 (= f9887d091149406 de5c8b388f7e0bb 6932dd621b)
2) Deleted everything in nv50_display_fini
With that change suspend/resume works so I guess the problem is elsewhere.