diff options
Diffstat (limited to 'drivers/gpu/drm/msm/msm_drv.c')
| -rw-r--r-- | drivers/gpu/drm/msm/msm_drv.c | 37 | 
1 files changed, 36 insertions, 1 deletions
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c index f49f6ac5585c..606df7bea97b 100644 --- a/drivers/gpu/drm/msm/msm_drv.c +++ b/drivers/gpu/drm/msm/msm_drv.c @@ -73,6 +73,10 @@ bool dumpstate = false;  MODULE_PARM_DESC(dumpstate, "Dump KMS state on errors");  module_param(dumpstate, bool, 0600); +static bool modeset = true; +MODULE_PARM_DESC(modeset, "Use kernel modesetting [KMS] (1=on (default), 0=disable)"); +module_param(modeset, bool, 0600); +  /*   * Util/helpers:   */ @@ -832,7 +836,6 @@ static struct drm_driver msm_driver = {  	.gem_vm_ops         = &vm_ops,  	.dumb_create        = msm_gem_dumb_create,  	.dumb_map_offset    = msm_gem_dumb_map_offset, -	.dumb_destroy       = drm_gem_dumb_destroy,  	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,  	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,  	.gem_prime_export   = drm_gem_prime_export, @@ -879,8 +882,37 @@ static int msm_pm_resume(struct device *dev)  }  #endif +#ifdef CONFIG_PM +static int msm_runtime_suspend(struct device *dev) +{ +	struct drm_device *ddev = dev_get_drvdata(dev); +	struct msm_drm_private *priv = ddev->dev_private; + +	DBG(""); + +	if (priv->mdss) +		return msm_mdss_disable(priv->mdss); + +	return 0; +} + +static int msm_runtime_resume(struct device *dev) +{ +	struct drm_device *ddev = dev_get_drvdata(dev); +	struct msm_drm_private *priv = ddev->dev_private; + +	DBG(""); + +	if (priv->mdss) +		return msm_mdss_enable(priv->mdss); + +	return 0; +} +#endif +  static const struct dev_pm_ops msm_pm_ops = {  	SET_SYSTEM_SLEEP_PM_OPS(msm_pm_suspend, msm_pm_resume) +	SET_RUNTIME_PM_OPS(msm_runtime_suspend, msm_runtime_resume, NULL)  };  /* @@ -1104,6 +1136,9 @@ static struct platform_driver msm_platform_driver = {  static int __init msm_drm_register(void)  { +	if (!modeset) +		return -EINVAL; +  	DBG("init");  	msm_mdp_register();  	msm_dsi_register();  | 
