Re: [PATCH] drm/i915: fix plane/cursor handling when runtime suspended

Daniel Vetter
2014-08-12T20:19:20Z

On Tue, Aug 12, 2014 at 9:33 PM, Paulo Zanoni <przanoni@gmail.com> wrote:
> 2014-08-12 16:28 GMT-03:00 Chris Wilson <chris@chris-wilson.co.uk>:
>> On Tue, Aug 12, 2014 at 04:12:38PM -0300, Paulo Zanoni wrote:
>>> But we just get/put RPM around this function, not for the whole time
>>> while the object is pinned.
>>
>> Ah misread, saw pin->get, unpin->put and assumed the symmetry. But why
>> unpin then? It doesn't touch any hardware registers.
>
> Only because Daniel asked it on a conversation we had on IRC, and I
> automatically assumed the patch would be rejected if I didn't include
> it :)
>
> Since both you and VIlle pointed that out, I should probably submit
> yet another version, without the unpin part, and let Daniel choose
> which one to merge...

Hm, I've indeed forgotten about the lazy unbinding. But that poses the
question about the final bo unref. For example:
1) create bo, gtt mmap it to force it into existence (and into the global gtt)
2) unmap binding
3) wait for rpm entry
4) unref bo ... causing pte writes for the global gtt unbinding while
runtime suspended or not?

boom or not boom?

Maybe the bug is simply in a different function ;-)
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch