dpu_io_util is used only by dpu driver so
move it to dpu folder.

Signed-off-by: Rajesh Yadav <rya...@codeaurora.org>
---
 drivers/gpu/drm/msm/Makefile                |   2 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.c | 186 ++++++++++++++++++++++++++++
 drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.h |  61 +++++++++
 drivers/gpu/drm/msm/dpu_io_util.c           | 186 ----------------------------
 drivers/gpu/drm/msm/dpu_io_util.h           |  61 ---------
 5 files changed, 248 insertions(+), 248 deletions(-)
 create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.c
 create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.h
 delete mode 100644 drivers/gpu/drm/msm/dpu_io_util.c
 delete mode 100644 drivers/gpu/drm/msm/dpu_io_util.h

diff --git a/drivers/gpu/drm/msm/Makefile b/drivers/gpu/drm/msm/Makefile
index f4c5951..956c6c4 100644
--- a/drivers/gpu/drm/msm/Makefile
+++ b/drivers/gpu/drm/msm/Makefile
@@ -68,6 +68,7 @@ msm-y := \
        disp/dpu1/dpu_hw_top.o \
        disp/dpu1/dpu_hw_util.o \
        disp/dpu1/dpu_hw_vbif.o \
+       disp/dpu1/dpu_io_util.o \
        disp/dpu1/dpu_irq.o \
        disp/dpu1/dpu_kms.o \
        disp/dpu1/dpu_kms_utils.o \
@@ -77,7 +78,6 @@ msm-y := \
        disp/dpu1/dpu_mdss.o \
        disp/dpu1/dpu_power_handle.o \
        dpu_dbg.o \
-       dpu_io_util.o \
        dpu_dbg_evtlog.o \
        msm_atomic.o \
        msm_debugfs.o \
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.c
new file mode 100644
index 0000000..f7caec3
--- /dev/null
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.c
@@ -0,0 +1,186 @@
+/* Copyright (c) 2012-2015, 2017-2018, The Linux Foundation.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/clk.h>
+#include <linux/err.h>
+#include <linux/delay.h>
+
+#include "dpu_io_util.h"
+
+void msm_dss_put_clk(struct dss_clk *clk_arry, int num_clk)
+{
+       int i;
+
+       for (i = num_clk - 1; i >= 0; i--) {
+               if (clk_arry[i].clk)
+                       clk_put(clk_arry[i].clk);
+               clk_arry[i].clk = NULL;
+       }
+}
+
+int msm_dss_get_clk(struct device *dev, struct dss_clk *clk_arry, int num_clk)
+{
+       int i, rc = 0;
+
+       for (i = 0; i < num_clk; i++) {
+               clk_arry[i].clk = clk_get(dev, clk_arry[i].clk_name);
+               rc = PTR_RET(clk_arry[i].clk);
+               if (rc) {
+                       DEV_ERR("%pS->%s: '%s' get failed. rc=%d\n",
+                               __builtin_return_address(0), __func__,
+                               clk_arry[i].clk_name, rc);
+                       goto error;
+               }
+       }
+
+       return rc;
+
+error:
+       for (i--; i >= 0; i--) {
+               if (clk_arry[i].clk)
+                       clk_put(clk_arry[i].clk);
+               clk_arry[i].clk = NULL;
+       }
+
+       return rc;
+}
+
+int msm_dss_clk_set_rate(struct dss_clk *clk_arry, int num_clk)
+{
+       int i, rc = 0;
+
+       for (i = 0; i < num_clk; i++) {
+               if (clk_arry[i].clk) {
+                       if (clk_arry[i].type != DSS_CLK_AHB) {
+                               DEV_DBG("%pS->%s: '%s' rate %ld\n",
+                                       __builtin_return_address(0), __func__,
+                                       clk_arry[i].clk_name,
+                                       clk_arry[i].rate);
+                               rc = clk_set_rate(clk_arry[i].clk,
+                                       clk_arry[i].rate);
+                               if (rc) {
+                                       DEV_ERR("%pS->%s: %s failed. rc=%d\n",
+                                               __builtin_return_address(0),
+                                               __func__,
+                                               clk_arry[i].clk_name, rc);
+                                       break;
+                               }
+                       }
+               } else {
+                       DEV_ERR("%pS->%s: '%s' is not available\n",
+                               __builtin_return_address(0), __func__,
+                               clk_arry[i].clk_name);
+                       rc = -EPERM;
+                       break;
+               }
+       }
+
+       return rc;
+}
+
+int msm_dss_enable_clk(struct dss_clk *clk_arry, int num_clk, int enable)
+{
+       int i, rc = 0;
+
+       if (enable) {
+               for (i = 0; i < num_clk; i++) {
+                       DEV_DBG("%pS->%s: enable '%s'\n",
+                               __builtin_return_address(0), __func__,
+                               clk_arry[i].clk_name);
+                       if (clk_arry[i].clk) {
+                               rc = clk_prepare_enable(clk_arry[i].clk);
+                               if (rc)
+                                       DEV_ERR("%pS->%s: %s en fail. rc=%d\n",
+                                               __builtin_return_address(0),
+                                               __func__,
+                                               clk_arry[i].clk_name, rc);
+                       } else {
+                               DEV_ERR("%pS->%s: '%s' is not available\n",
+                                       __builtin_return_address(0), __func__,
+                                       clk_arry[i].clk_name);
+                               rc = -EPERM;
+                       }
+
+                       if (rc) {
+                               msm_dss_enable_clk(&clk_arry[i],
+                                       i, false);
+                               break;
+                       }
+               }
+       } else {
+               for (i = num_clk - 1; i >= 0; i--) {
+                       DEV_DBG("%pS->%s: disable '%s'\n",
+                               __builtin_return_address(0), __func__,
+                               clk_arry[i].clk_name);
+
+                       if (clk_arry[i].clk)
+                               clk_disable_unprepare(clk_arry[i].clk);
+                       else
+                               DEV_ERR("%pS->%s: '%s' is not available\n",
+                                       __builtin_return_address(0), __func__,
+                                       clk_arry[i].clk_name);
+               }
+       }
+
+       return rc;
+}
+
+int msm_dss_parse_clock(struct platform_device *pdev,
+               struct dss_module_power *mp)
+{
+       u32 i, rc = 0;
+       const char *clock_name;
+       u32 rate = 0;
+       int num_clk = 0;
+
+       if (!pdev || !mp)
+               return -EINVAL;
+
+       mp->num_clk = 0;
+       num_clk = of_property_count_strings(pdev->dev.of_node, "clock-names");
+       if (num_clk <= 0) {
+               pr_debug("clocks are not defined\n");
+               return 0;
+       }
+
+       mp->clk_config = devm_kzalloc(&pdev->dev,
+                                     sizeof(struct dss_clk) * num_clk,
+                                     GFP_KERNEL);
+       if (!mp->clk_config)
+               return -ENOMEM;
+
+       for (i = 0; i < num_clk; i++) {
+               rc = of_property_read_string_index(pdev->dev.of_node,
+                                                  "clock-names", i,
+                                                  &clock_name);
+               if (rc)
+                       break;
+               strlcpy(mp->clk_config[i].clk_name, clock_name,
+                       sizeof(mp->clk_config[i].clk_name));
+
+               mp->clk_config[i].type = DSS_CLK_AHB;
+               rc = of_property_read_u32_index(pdev->dev.of_node,
+                                               "clock-frequency", i,
+                                               &rate);
+               if (rc)
+                       continue;
+               mp->clk_config[i].rate = rate;
+               if (rate)
+                       mp->clk_config[i].type = DSS_CLK_PCLK;
+       }
+
+       if (!rc)
+               mp->num_clk = num_clk;
+
+       return rc;
+}
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.h 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.h
new file mode 100644
index 0000000..773b52e
--- /dev/null
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.h
@@ -0,0 +1,61 @@
+/* Copyright (c) 2012, 2017-2018, The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef __DPU_IO_UTIL_H__
+#define __DPU_IO_UTIL_H__
+
+#include <linux/gpio.h>
+#include <linux/platform_device.h>
+#include <linux/types.h>
+
+#ifdef DEBUG
+#define DEV_DBG(fmt, args...)   pr_err(fmt, ##args)
+#else
+#define DEV_DBG(fmt, args...)   pr_debug(fmt, ##args)
+#endif
+#define DEV_INFO(fmt, args...)  pr_info(fmt, ##args)
+#define DEV_WARN(fmt, args...)  pr_warn(fmt, ##args)
+#define DEV_ERR(fmt, args...)   pr_err(fmt, ##args)
+
+struct dss_gpio {
+       unsigned int gpio;
+       unsigned int value;
+       char gpio_name[32];
+};
+
+enum dss_clk_type {
+       DSS_CLK_AHB, /* no set rate. rate controlled through rpm */
+       DSS_CLK_PCLK,
+};
+
+struct dss_clk {
+       struct clk *clk; /* clk handle */
+       char clk_name[32];
+       enum dss_clk_type type;
+       unsigned long rate;
+       unsigned long max_rate;
+};
+
+struct dss_module_power {
+       unsigned int num_gpio;
+       struct dss_gpio *gpio_config;
+       unsigned int num_clk;
+       struct dss_clk *clk_config;
+};
+
+int msm_dss_get_clk(struct device *dev, struct dss_clk *clk_arry, int num_clk);
+void msm_dss_put_clk(struct dss_clk *clk_arry, int num_clk);
+int msm_dss_clk_set_rate(struct dss_clk *clk_arry, int num_clk);
+int msm_dss_enable_clk(struct dss_clk *clk_arry, int num_clk, int enable);
+int msm_dss_parse_clock(struct platform_device *pdev,
+               struct dss_module_power *mp);
+#endif /* __DPU_IO_UTIL_H__ */
diff --git a/drivers/gpu/drm/msm/dpu_io_util.c 
b/drivers/gpu/drm/msm/dpu_io_util.c
deleted file mode 100644
index f7caec3..0000000
--- a/drivers/gpu/drm/msm/dpu_io_util.c
+++ /dev/null
@@ -1,186 +0,0 @@
-/* Copyright (c) 2012-2015, 2017-2018, The Linux Foundation.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <linux/clk.h>
-#include <linux/err.h>
-#include <linux/delay.h>
-
-#include "dpu_io_util.h"
-
-void msm_dss_put_clk(struct dss_clk *clk_arry, int num_clk)
-{
-       int i;
-
-       for (i = num_clk - 1; i >= 0; i--) {
-               if (clk_arry[i].clk)
-                       clk_put(clk_arry[i].clk);
-               clk_arry[i].clk = NULL;
-       }
-}
-
-int msm_dss_get_clk(struct device *dev, struct dss_clk *clk_arry, int num_clk)
-{
-       int i, rc = 0;
-
-       for (i = 0; i < num_clk; i++) {
-               clk_arry[i].clk = clk_get(dev, clk_arry[i].clk_name);
-               rc = PTR_RET(clk_arry[i].clk);
-               if (rc) {
-                       DEV_ERR("%pS->%s: '%s' get failed. rc=%d\n",
-                               __builtin_return_address(0), __func__,
-                               clk_arry[i].clk_name, rc);
-                       goto error;
-               }
-       }
-
-       return rc;
-
-error:
-       for (i--; i >= 0; i--) {
-               if (clk_arry[i].clk)
-                       clk_put(clk_arry[i].clk);
-               clk_arry[i].clk = NULL;
-       }
-
-       return rc;
-}
-
-int msm_dss_clk_set_rate(struct dss_clk *clk_arry, int num_clk)
-{
-       int i, rc = 0;
-
-       for (i = 0; i < num_clk; i++) {
-               if (clk_arry[i].clk) {
-                       if (clk_arry[i].type != DSS_CLK_AHB) {
-                               DEV_DBG("%pS->%s: '%s' rate %ld\n",
-                                       __builtin_return_address(0), __func__,
-                                       clk_arry[i].clk_name,
-                                       clk_arry[i].rate);
-                               rc = clk_set_rate(clk_arry[i].clk,
-                                       clk_arry[i].rate);
-                               if (rc) {
-                                       DEV_ERR("%pS->%s: %s failed. rc=%d\n",
-                                               __builtin_return_address(0),
-                                               __func__,
-                                               clk_arry[i].clk_name, rc);
-                                       break;
-                               }
-                       }
-               } else {
-                       DEV_ERR("%pS->%s: '%s' is not available\n",
-                               __builtin_return_address(0), __func__,
-                               clk_arry[i].clk_name);
-                       rc = -EPERM;
-                       break;
-               }
-       }
-
-       return rc;
-}
-
-int msm_dss_enable_clk(struct dss_clk *clk_arry, int num_clk, int enable)
-{
-       int i, rc = 0;
-
-       if (enable) {
-               for (i = 0; i < num_clk; i++) {
-                       DEV_DBG("%pS->%s: enable '%s'\n",
-                               __builtin_return_address(0), __func__,
-                               clk_arry[i].clk_name);
-                       if (clk_arry[i].clk) {
-                               rc = clk_prepare_enable(clk_arry[i].clk);
-                               if (rc)
-                                       DEV_ERR("%pS->%s: %s en fail. rc=%d\n",
-                                               __builtin_return_address(0),
-                                               __func__,
-                                               clk_arry[i].clk_name, rc);
-                       } else {
-                               DEV_ERR("%pS->%s: '%s' is not available\n",
-                                       __builtin_return_address(0), __func__,
-                                       clk_arry[i].clk_name);
-                               rc = -EPERM;
-                       }
-
-                       if (rc) {
-                               msm_dss_enable_clk(&clk_arry[i],
-                                       i, false);
-                               break;
-                       }
-               }
-       } else {
-               for (i = num_clk - 1; i >= 0; i--) {
-                       DEV_DBG("%pS->%s: disable '%s'\n",
-                               __builtin_return_address(0), __func__,
-                               clk_arry[i].clk_name);
-
-                       if (clk_arry[i].clk)
-                               clk_disable_unprepare(clk_arry[i].clk);
-                       else
-                               DEV_ERR("%pS->%s: '%s' is not available\n",
-                                       __builtin_return_address(0), __func__,
-                                       clk_arry[i].clk_name);
-               }
-       }
-
-       return rc;
-}
-
-int msm_dss_parse_clock(struct platform_device *pdev,
-               struct dss_module_power *mp)
-{
-       u32 i, rc = 0;
-       const char *clock_name;
-       u32 rate = 0;
-       int num_clk = 0;
-
-       if (!pdev || !mp)
-               return -EINVAL;
-
-       mp->num_clk = 0;
-       num_clk = of_property_count_strings(pdev->dev.of_node, "clock-names");
-       if (num_clk <= 0) {
-               pr_debug("clocks are not defined\n");
-               return 0;
-       }
-
-       mp->clk_config = devm_kzalloc(&pdev->dev,
-                                     sizeof(struct dss_clk) * num_clk,
-                                     GFP_KERNEL);
-       if (!mp->clk_config)
-               return -ENOMEM;
-
-       for (i = 0; i < num_clk; i++) {
-               rc = of_property_read_string_index(pdev->dev.of_node,
-                                                  "clock-names", i,
-                                                  &clock_name);
-               if (rc)
-                       break;
-               strlcpy(mp->clk_config[i].clk_name, clock_name,
-                       sizeof(mp->clk_config[i].clk_name));
-
-               mp->clk_config[i].type = DSS_CLK_AHB;
-               rc = of_property_read_u32_index(pdev->dev.of_node,
-                                               "clock-frequency", i,
-                                               &rate);
-               if (rc)
-                       continue;
-               mp->clk_config[i].rate = rate;
-               if (rate)
-                       mp->clk_config[i].type = DSS_CLK_PCLK;
-       }
-
-       if (!rc)
-               mp->num_clk = num_clk;
-
-       return rc;
-}
diff --git a/drivers/gpu/drm/msm/dpu_io_util.h 
b/drivers/gpu/drm/msm/dpu_io_util.h
deleted file mode 100644
index 773b52e..0000000
--- a/drivers/gpu/drm/msm/dpu_io_util.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright (c) 2012, 2017-2018, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#ifndef __DPU_IO_UTIL_H__
-#define __DPU_IO_UTIL_H__
-
-#include <linux/gpio.h>
-#include <linux/platform_device.h>
-#include <linux/types.h>
-
-#ifdef DEBUG
-#define DEV_DBG(fmt, args...)   pr_err(fmt, ##args)
-#else
-#define DEV_DBG(fmt, args...)   pr_debug(fmt, ##args)
-#endif
-#define DEV_INFO(fmt, args...)  pr_info(fmt, ##args)
-#define DEV_WARN(fmt, args...)  pr_warn(fmt, ##args)
-#define DEV_ERR(fmt, args...)   pr_err(fmt, ##args)
-
-struct dss_gpio {
-       unsigned int gpio;
-       unsigned int value;
-       char gpio_name[32];
-};
-
-enum dss_clk_type {
-       DSS_CLK_AHB, /* no set rate. rate controlled through rpm */
-       DSS_CLK_PCLK,
-};
-
-struct dss_clk {
-       struct clk *clk; /* clk handle */
-       char clk_name[32];
-       enum dss_clk_type type;
-       unsigned long rate;
-       unsigned long max_rate;
-};
-
-struct dss_module_power {
-       unsigned int num_gpio;
-       struct dss_gpio *gpio_config;
-       unsigned int num_clk;
-       struct dss_clk *clk_config;
-};
-
-int msm_dss_get_clk(struct device *dev, struct dss_clk *clk_arry, int num_clk);
-void msm_dss_put_clk(struct dss_clk *clk_arry, int num_clk);
-int msm_dss_clk_set_rate(struct dss_clk *clk_arry, int num_clk);
-int msm_dss_enable_clk(struct dss_clk *clk_arry, int num_clk, int enable);
-int msm_dss_parse_clock(struct platform_device *pdev,
-               struct dss_module_power *mp);
-#endif /* __DPU_IO_UTIL_H__ */
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to