summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/imx/dcss/dcss-common.c9
-rw-r--r--drivers/gpu/imx/dcss/dcss-prv.h4
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gpu/imx/dcss/dcss-common.c b/drivers/gpu/imx/dcss/dcss-common.c
index b6cb93c99188..cd4afdc3f76e 100644
--- a/drivers/gpu/imx/dcss/dcss-common.c
+++ b/drivers/gpu/imx/dcss/dcss-common.c
@@ -19,6 +19,7 @@
#include <linux/clk.h>
#include <linux/pm_runtime.h>
#include <linux/busfreq-imx.h>
+#include <linux/pm_qos.h>
#include <video/imx-dcss.h>
#include <drm/drm_fourcc.h>
@@ -473,6 +474,8 @@ static int dcss_suspend(struct device *dev)
dcss_clocks_enable(dcss, false);
+ pm_qos_remove_request(&dcss->pm_qos_req);
+
dcss_bus_freq(dcss, false);
return 0;
@@ -488,6 +491,8 @@ static int dcss_resume(struct device *dev)
dcss_bus_freq(dcss, true);
+ pm_qos_add_request(&dcss->pm_qos_req, PM_QOS_CPU_DMA_LATENCY, 0);
+
dcss_clocks_enable(dcss, true);
dcss_blkctl_cfg(dcss);
@@ -512,6 +517,8 @@ static int dcss_runtime_suspend(struct device *dev)
dcss_clocks_enable(dcss, false);
+ pm_qos_remove_request(&dcss->pm_qos_req);
+
dcss_bus_freq(dcss, false);
return 0;
@@ -524,6 +531,8 @@ static int dcss_runtime_resume(struct device *dev)
dcss_bus_freq(dcss, true);
+ pm_qos_add_request(&dcss->pm_qos_req, PM_QOS_CPU_DMA_LATENCY, 0);
+
dcss_clocks_enable(dcss, true);
dcss_blkctl_cfg(dcss);
diff --git a/drivers/gpu/imx/dcss/dcss-prv.h b/drivers/gpu/imx/dcss/dcss-prv.h
index 3df06c539b28..d2b739d18e7d 100644
--- a/drivers/gpu/imx/dcss/dcss-prv.h
+++ b/drivers/gpu/imx/dcss/dcss-prv.h
@@ -1,6 +1,8 @@
#ifndef __DCSS_PRV_H__
#define __DCSS_PRV_H__
+#include <linux/pm_qos.h>
+
#define SET 0x04
#define CLR 0x08
#define TGL 0x0C
@@ -54,6 +56,8 @@ struct dcss_soc {
bool bus_freq_req;
bool clks_on;
+
+ struct pm_qos_request pm_qos_req;
};
/* BLKCTL */