diff options
Diffstat (limited to 'drivers/gpu/pvr/omaplfb/omaplfb_displayclass.c')
-rw-r--r-- | drivers/gpu/pvr/omaplfb/omaplfb_displayclass.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/pvr/omaplfb/omaplfb_displayclass.c b/drivers/gpu/pvr/omaplfb/omaplfb_displayclass.c index 50a6e63..8114e3c 100644 --- a/drivers/gpu/pvr/omaplfb/omaplfb_displayclass.c +++ b/drivers/gpu/pvr/omaplfb/omaplfb_displayclass.c @@ -837,6 +837,17 @@ static IMG_BOOL ProcessFlipV2(IMG_HANDLE hCmdCookie, BUG_ON(i + 1 >= ui32NumMemInfos); psDssData->ovls[k].ba = (u32)LinuxMemAreaToCpuPAddr(psLinuxMemArea, 0).uiAddr; + /* + * :HACK: increment display ref count and save pointer + * to it in stride which is not used for 2D buffers. + */ + atomic_inc(container_of(&ppsMemInfos[i]->psKernelSyncInfo->psSyncData->ui32DisplayRefCount, atomic_t, counter)); + pr_debug("syncData++ = %p.%d\n", + &ppsMemInfos[i]->psKernelSyncInfo->psSyncData->ui32DisplayRefCount, + ppsMemInfos[i]->psKernelSyncInfo->psSyncData->ui32DisplayRefCount); + psDssData->ovls[k].cfg.stride = + (u32) &ppsMemInfos[i]->psKernelSyncInfo->psSyncData->ui32DisplayRefCount; + i++; psLinuxMemArea = ppsMemInfos[i]->sMemBlk.hOSMemHandle; psDssData->ovls[k].uv = (u32)LinuxMemAreaToCpuPAddr(psLinuxMemArea, 0).uiAddr; |