On 2018-12-21 10:17 a.m., Deng, Emily wrote: >> From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Deng, >> Emily >>> From: Michel Dänzer <michel@xxxxxxxxxxx> >>> On 2018-12-21 9:45 a.m., Deng, Emily wrote: >>>>> From: Michel Dänzer <michel@xxxxxxxxxxx> >>>>> 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 _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx