|
@@ -158,6 +158,7 @@ static const char * const iommu_ports[] = {
|
|
|
static void mdp4_destroy(struct msm_kms *kms)
|
|
|
{
|
|
|
struct mdp4_kms *mdp4_kms = to_mdp4_kms(to_mdp_kms(kms));
|
|
|
+ struct device *dev = mdp4_kms->dev->dev;
|
|
|
struct msm_mmu *mmu = mdp4_kms->mmu;
|
|
|
|
|
|
if (mmu) {
|
|
@@ -169,6 +170,10 @@ static void mdp4_destroy(struct msm_kms *kms)
|
|
|
msm_gem_put_iova(mdp4_kms->blank_cursor_bo, mdp4_kms->id);
|
|
|
if (mdp4_kms->blank_cursor_bo)
|
|
|
drm_gem_object_unreference_unlocked(mdp4_kms->blank_cursor_bo);
|
|
|
+
|
|
|
+ if (mdp4_kms->rpm_enabled)
|
|
|
+ pm_runtime_disable(dev);
|
|
|
+
|
|
|
kfree(mdp4_kms);
|
|
|
}
|
|
|
|
|
@@ -511,6 +516,9 @@ struct msm_kms *mdp4_kms_init(struct drm_device *dev)
|
|
|
clk_set_rate(mdp4_kms->clk, config->max_clk);
|
|
|
clk_set_rate(mdp4_kms->lut_clk, config->max_clk);
|
|
|
|
|
|
+ pm_runtime_enable(dev->dev);
|
|
|
+ mdp4_kms->rpm_enabled = true;
|
|
|
+
|
|
|
/* make sure things are off before attaching iommu (bootloader could
|
|
|
* have left things on, in which case we'll start getting faults if
|
|
|
* we don't disable):
|