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
