From: Austin Hu <[email protected]>

If disable OSPM lock/unlock in ospm_power_using_hw_begin(), xterm can't display 
after launching
xinit once or for several times on MRST.

So re-enable the OSPM lock/unlock, and verified that xinit can relaunch for 
several times on both
MRST/MDFLD. And comment out "ospm_suspend_pci"/"ospm_resume_pci" kernel alerts.

Signed-off-by: Austin Hu <[email protected]>
---
 drivers/staging/mrst/drv/psb_powermgmt.c |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/mrst/drv/psb_powermgmt.c 
b/drivers/staging/mrst/drv/psb_powermgmt.c
index 41708f8..8d9a26d 100644
--- a/drivers/staging/mrst/drv/psb_powermgmt.c
+++ b/drivers/staging/mrst/drv/psb_powermgmt.c
@@ -1497,7 +1497,7 @@ static void ospm_suspend_pci(struct pci_dev *pdev)
        if (gbSuspended)
                return;
 
-       printk(KERN_ALERT "ospm_suspend_pci\n");
+       /*printk(KERN_ALERT "ospm_suspend_pci\n");*/
 
        pci_save_state(pdev);
        pci_read_config_dword(pci_gfx_root, 0x5C, &bsm);
@@ -1529,7 +1529,7 @@ static bool ospm_resume_pci(struct pci_dev *pdev)
        if (!gbSuspended)
                return true;
 
-       printk(KERN_ALERT "ospm_resume_pci\n");
+       /*printk(KERN_ALERT "ospm_resume_pci\n");*/
 
        pci_set_power_state(pdev, PCI_D0);
        pci_restore_state(pdev);
@@ -1835,10 +1835,8 @@ bool ospm_power_using_hw_begin(int hw_island, bool 
force_on)
        struct pci_dev *pdev = gpDrmDevice->pdev;
        IMG_UINT32 deviceID = 0;
 
-#if 0 /* conflict with X holding the lock*/
        if (!b_atomic)
                mutex_lock(&g_ospm_mutex);
-#endif
 
        island_is_off = hw_island & (OSPM_ALL_ISLANDS & 
~g_hw_power_status_mask);
 
@@ -1949,14 +1947,12 @@ bool ospm_power_using_hw_begin(int hw_island, bool 
force_on)
                                atomic_inc(&g_display_access_count);
                                break;
                }
-               //increment pm_runtime_refcount
-                       pm_runtime_get(&pdev->dev);
+               /* increment pm_runtime_refcount */
+               pm_runtime_get(&pdev->dev);
        }
 
-#if 0 /* conflict with X holding the lock*/
        if (!b_atomic)
                mutex_unlock(&g_ospm_mutex);
-#endif
 
        return ret;
 }
-- 
1.7.1

_______________________________________________
MeeGo-kernel mailing list
[email protected]
http://lists.meego.com/listinfo/meego-kernel

Reply via email to