From: Hitesh K. Patel <[email protected]>

Gfx runtime pm is enabled by default,
and can be disabled by passing the "ospm=0" in cmdline.
Re-enabled the module_param for debug purpose
The related entries can be found in /sys/modules/mefield_gfx/parameters/

Signed-off-by: Hitesh K. Patel <[email protected]>
---
 drivers/staging/mrst/drv/mdfld_dsi_dbi.c |    4 +---
 drivers/staging/mrst/drv/psb_drv.c       |   26 +++++++++++++++++++++-----
 2 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/mrst/drv/mdfld_dsi_dbi.c 
b/drivers/staging/mrst/drv/mdfld_dsi_dbi.c
index 691e166..45d8030 100644
--- a/drivers/staging/mrst/drv/mdfld_dsi_dbi.c
+++ b/drivers/staging/mrst/drv/mdfld_dsi_dbi.c
@@ -496,14 +496,12 @@ void mdfld_dsi_dbi_exit_dsr (struct drm_device *dev, u32 
update_src)
        
        PSB_DEBUG_ENTRY("\n");
 
-       /*
-       if(!allow_runtime_pm){
+       if(drm_psb_ospm && !allow_runtime_pm) {
                printk(KERN_ALERT "Enable runtime_pm \n");
 
                allow_runtime_pm = 1;
                pm_runtime_allow(&gpDrmDevice->pdev->dev);
        }
-       */
 
        dbi_output = dsr_info->dbi_outputs;
        /*for each output, exit dsr*/
diff --git a/drivers/staging/mrst/drv/psb_drv.c 
b/drivers/staging/mrst/drv/psb_drv.c
index 87af1d7..4c0bdc3 100644
--- a/drivers/staging/mrst/drv/psb_drv.c
+++ b/drivers/staging/mrst/drv/psb_drv.c
@@ -91,6 +91,25 @@ module_param_named(topaz_pmpolicy, drm_topaz_pmpolicy, int, 
0600);
 module_param_named(topaz_sbuswa, drm_topaz_sbuswa, int, 0600);
 module_param_named(ospm, drm_psb_ospm, int, 0600);
 module_param_named(topaz_clockgating, drm_psb_topaz_clockgating, int, 0600);
+#ifndef MODULE
+/* Make ospm configurable via cmdline firstly, and others can be enabled if 
needed. */
+static int __init config_ospm(char *arg)
+{
+       /* ospm turn on/off control can be passed in as a cmdline parameter */
+       /* to enable this feature add ospm=1 to cmdline */
+       /* to disable this feature add ospm=0 to cmdline */
+       if (!arg)
+               return -EINVAL;
+
+       if (!strcasecmp(arg, "0"))
+               drm_psb_ospm = 0;
+       else if (!strcasecmp (arg, "1"))
+               drm_psb_ospm = 1;
+
+       return 0;
+}
+early_param ("ospm", config_ospm);
+#endif
 
 static struct pci_device_id pciidlist[] = {
 #ifdef SGX535
@@ -2534,18 +2553,16 @@ static long psb_unlocked_ioctl(struct file *filp, 
unsigned int cmd,
 {
        struct drm_file *file_priv = filp->private_data;
        struct drm_device *dev = file_priv->minor->dev;
-       /*
        struct drm_psb_private *dev_priv = dev->dev_private;
        static unsigned int runtime_allowed = 0;
-       */
        unsigned int nr = DRM_IOCTL_NR(cmd);
        long ret;
 
        DRM_DEBUG("cmd = %x, nr = %x\n", cmd, nr);
        /*Simple (work around)Ugly hack to make runtime pm start only after X 
is initialized*/
        /*This doesn't work with Medfield RT PM.*/
-       /*
-       if(!runtime_allowed && !(dev_priv->is_lvds_on || dev_priv->is_mipi_on)) 
{
+
+       if(drm_psb_ospm && !runtime_allowed && !(dev_priv->is_lvds_on || 
dev_priv->is_mipi_on)) {
                runtime_allowed ++;
        }
        if((runtime_allowed == 1) && (dev_priv->is_lvds_on || 
dev_priv->is_mipi_on)) {
@@ -2553,7 +2570,6 @@ static long psb_unlocked_ioctl(struct file *filp, 
unsigned int cmd,
                pm_runtime_allow(&dev->pdev->dev);
                dev_priv->rpm_enabled = 1;
        }
-       */
 
        /*
         * The driver private ioctls and TTM ioctls should be
-- 
1.7.1

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

Reply via email to