static void SetFlushStateInternalNoLock(OMAPLFB_DEVINFO* psDevInfo, OMAP_BOOL bFlushState) { OMAPLFB_SWAPCHAIN *psSwapChain = psDevInfo->psSwapChain; if (psSwapChain == NULL) { return; } if (bFlushState) { if (psSwapChain->ulSetFlushStateRefCount == 0) { OMAPLFBDisableVSyncInterrupt(psSwapChain); psSwapChain->bFlushCommands = OMAP_TRUE; FlushInternalVSyncQueue(psSwapChain); } psSwapChain->ulSetFlushStateRefCount++; } else { if (psSwapChain->ulSetFlushStateRefCount != 0) { psSwapChain->ulSetFlushStateRefCount--; if (psSwapChain->ulSetFlushStateRefCount == 0) { psSwapChain->bFlushCommands = OMAP_FALSE; OMAPLFBEnableVSyncInterrupt(psSwapChain); } } } }
OMAP_ERROR OMAPLFBUninstallVSyncISR (OMAPLFB_SWAPCHAIN *psSwapChain) { #if defined(SYS_USING_INTERRUPTS) OMAPLFBDisableVSyncInterrupt(psSwapChain); OMAPLFBUnregisterVSyncISR(psSwapChain); #endif return (OMAP_OK); }
OMAP_ERROR OMAPLFBInstallVSyncISR(OMAPLFB_SWAPCHAIN *psSwapChain) { #if defined(SYS_USING_INTERRUPTS) OMAPLFBDisableVSyncInterrupt(psSwapChain); if (OMAPLFBRegisterVSyncISR(psSwapChain)) { printk(KERN_INFO DRIVER_PREFIX ": OMAPLFBInstallVSyncISR: Request OMAPLCD IRQ failed\n"); return (OMAP_ERROR_INIT_FAILURE); } #endif return (OMAP_OK); }