[PATCH] drm/amdgpu/virtual_dce: Need to pin the fb's bo

Michel Dänzer michel at daenzer.net
Fri Dec 21 09:28:29 UTC 2018


On 2018-12-21 10:17 a.m., Deng, Emily wrote:
>> From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Deng,
>> Emily
>>> From: Michel Dänzer <michel at daenzer.net>
>>> On 2018-12-21 9:45 a.m., Deng, Emily wrote:
>>>>> From: Michel Dänzer <michel at daenzer.net>
>>>>> On 2018-12-21 8:26 a.m., Emily Deng wrote:
>>>>>> When the bo is used to set mode, the bo need to be pinned.
>>>>>
>>>>> On second thought, why does the BO need to be pinned? When using the
>>>>> display hardware, the BO needs to be pinned to prevent it from being
>>>>> moved while the hardware is scanning out from it, but that shouldn't
>>>>> be
>>> necessary here.
>>>> The pin here is used for scan out the buffer by remote display app.
>>>
>>> I still don't understand why pinning is needed. What mechanism does the
>>> remote display app use to access the BO contents?
>> Sorry, I am not familiar with the remote display app. Maybe it will use drm ioctl
>> function to get the current crtc's fb's information, and get the content in the fb's
>> buffer object by mmap or translate the bo to an OpenGL texture for next
>> rendering. Maybe don't need to pin the bo here, as the use has no different with
>> other normal bos. So please ignore the patch, and will send another patch to
>> remove the unpin the fb's bo code.
> It seems to be hard to remove all the pin for virtual_dce, as it uses some common code in amdgpu_display.c.

Because of amdgpu_display_unpin_work_func? That might be as simple as
replacing

	schedule_work(&works->unpin_work);

with

	kfree(works->shared);
	kfree(works);

in dce_virtual_pageflip.


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the amd-gfx mailing list