[PATCH] drm/exynos: fix plane-framebuffer linkage

Daniel Drake drake at endlessm.com
Thu Sep 18 06:21:41 PDT 2014


On Thu, Sep 18, 2014 at 12:39 AM, Daniel Vetter <daniel at ffwll.ch> wrote:
> On Wed, Sep 17, 2014 at 6:41 PM, Daniel Drake <drake at endlessm.com> wrote:
>> 2. drm_mode_rmfb then calls drm_framebuffer_remove, which calls
>> drm_mode_set_config_internal() in order to turn off the CRTC, dropping
>> another reference in the process.
>>         if (tmp->old_fb)
>>             drm_framebuffer_unreference(tmp->old_fb);
>>
>> 3. drm_framebuffer_remove calls drm_plane_force_disable() which drops
>> another reference:
>>     /* disconnect the plane from the fb and crtc: */
>>     __drm_framebuffer_unreference(old_fb);
>
> If 3. here is about the primary plane then this won't happen, since
> the primary plane pointer&reference has already been cleared in step
> 2.

I just checked - as Joonyoung suspects, the plane being force disabled
in step 3 is the private exynos-drm plane. So thats an issue - but at
least now I have a complete understanding of the problem.

Sounds like that will also be fixed by moving to universal planes.
I'll wait for Andrzej's patch.

Thanks!
Daniel


More information about the dri-devel mailing list