From 85a309120d1ff59544796f3a5800da067e731916 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Tue, 7 Feb 2012 15:08:30 +0200 Subject: [PATCH] gfx: display: cleanup ospm_power_suspend() No functional changes, just a stylistic cleanup to make the function easier to follow. Signed-off-by: Jani Nikula Tested-by: Imre Deak Signed-off-by: Kirill A. Shutemov --- drivers/staging/mrst/drv/psb_powermgmt.c | 61 ++++++++++++++++---------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/drivers/staging/mrst/drv/psb_powermgmt.c b/drivers/staging/mrst/drv/psb_powermgmt.c index e59e695..7c4a9a8 100644 --- a/drivers/staging/mrst/drv/psb_powermgmt.c +++ b/drivers/staging/mrst/drv/psb_powermgmt.c @@ -1250,41 +1250,42 @@ int ospm_power_suspend(struct device *dev) mutex_lock(&g_ospm_mutex); - if (!gbSuspended) { - graphics_access_count = atomic_read(&g_graphics_access_count); - videoenc_access_count = atomic_read(&g_videoenc_access_count); - videodec_access_count = atomic_read(&g_videodec_access_count); - display_access_count = atomic_read(&g_display_access_count); - - if (graphics_access_count || - videoenc_access_count || - videodec_access_count || - display_access_count) - ret = -EBUSY; - - if (!ret) { - psb_irq_uninstall_islands(drm_dev, OSPM_DISPLAY_ISLAND); - ospm_suspend_display(drm_dev); -#if 1 - /* FIXME: video driver support for Linux Runtime PM */ - if (ospm_runtime_pm_msvdx_suspend(drm_dev) != 0) { - suspend_pci = false; - } + if (gbSuspended) + goto out; - if (ospm_runtime_pm_topaz_suspend(drm_dev) != 0) { - suspend_pci = false; - } + graphics_access_count = atomic_read(&g_graphics_access_count); + videoenc_access_count = atomic_read(&g_videoenc_access_count); + videodec_access_count = atomic_read(&g_videodec_access_count); + display_access_count = atomic_read(&g_display_access_count); -#endif - if (suspend_pci == true) { - ospm_suspend_pci(pdev); - } - } else { - printk(KERN_ALERT "ospm_power_suspend: device busy: graphics %d videoenc %d videodec %d display %d\n", graphics_access_count, videoenc_access_count, videodec_access_count, display_access_count); - } + if (graphics_access_count || videoenc_access_count || + videodec_access_count || display_access_count) { + ret = -EBUSY; + + printk(KERN_ALERT "%s: device busy: graphics %d videoenc %d videodec %d display %d\n", + __func__, graphics_access_count, videoenc_access_count, + videodec_access_count, display_access_count); + goto out; } + psb_irq_uninstall_islands(drm_dev, OSPM_DISPLAY_ISLAND); + ospm_suspend_display(drm_dev); + + /* FIXME: video driver support for Linux Runtime PM */ + if (ospm_runtime_pm_msvdx_suspend(drm_dev)) + suspend_pci = false; + + if (ospm_runtime_pm_topaz_suspend(drm_dev)) + suspend_pci = false; + if (suspend_pci) + ospm_suspend_pci(pdev); + /* + * REVISIT: else pci is not suspended but this happily returns success + * status?! + */ + +out: mutex_unlock(&g_ospm_mutex); return ret; } -- 2.7.4