OSDN Git Service

gpu: ipu-v3: Move i.MX IPUv3 core driver out of staging
authorPhilipp Zabel <p.zabel@pengutronix.de>
Mon, 30 Sep 2013 14:13:39 +0000 (16:13 +0200)
committerPhilipp Zabel <p.zabel@pengutronix.de>
Wed, 4 Jun 2014 09:06:52 +0000 (11:06 +0200)
The i.MX Image Processing Unit (IPU) contains a number of image processing
blocks that sit right in the middle between DRM and V4L2. Some of the modules,
such as Display Controller, Processor, and Interface (DC, DP, DI) or CMOS
Sensor Interface (CSI) and their FIFOs could be assigned to either framework,
but others, such as the dma controller (IDMAC) and image converter (IC) can
be used by both.
The IPUv3 core driver provides an internal API to access the modules, to be
used by both DRM and V4L2 IPUv3 drivers.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
17 files changed:
drivers/gpu/Makefile
drivers/gpu/ipu-v3/Kconfig [new file with mode: 0644]
drivers/gpu/ipu-v3/Makefile [moved from drivers/staging/imx-drm/ipu-v3/Makefile with 59% similarity]
drivers/gpu/ipu-v3/ipu-common.c [moved from drivers/staging/imx-drm/ipu-v3/ipu-common.c with 99% similarity]
drivers/gpu/ipu-v3/ipu-dc.c [moved from drivers/staging/imx-drm/ipu-v3/ipu-dc.c with 99% similarity]
drivers/gpu/ipu-v3/ipu-di.c [moved from drivers/staging/imx-drm/ipu-v3/ipu-di.c with 99% similarity]
drivers/gpu/ipu-v3/ipu-dmfc.c [moved from drivers/staging/imx-drm/ipu-v3/ipu-dmfc.c with 99% similarity]
drivers/gpu/ipu-v3/ipu-dp.c [moved from drivers/staging/imx-drm/ipu-v3/ipu-dp.c with 99% similarity]
drivers/gpu/ipu-v3/ipu-prv.h [moved from drivers/staging/imx-drm/ipu-v3/ipu-prv.h with 99% similarity]
drivers/staging/imx-drm/Kconfig
drivers/staging/imx-drm/Makefile
drivers/staging/imx-drm/imx-hdmi.c
drivers/staging/imx-drm/imx-tve.c
drivers/staging/imx-drm/ipuv3-crtc.c
drivers/staging/imx-drm/ipuv3-plane.c
drivers/video/Kconfig
include/video/imx-ipu-v3.h [moved from drivers/staging/imx-drm/ipu-v3/imx-ipu-v3.h with 100% similarity]

index d8a22c2..70da9eb 100644 (file)
@@ -1,2 +1,3 @@
 obj-y                  += drm/ vga/
 obj-$(CONFIG_TEGRA_HOST1X)     += host1x/
+obj-$(CONFIG_IMX_IPUV3_CORE)   += ipu-v3/
diff --git a/drivers/gpu/ipu-v3/Kconfig b/drivers/gpu/ipu-v3/Kconfig
new file mode 100644 (file)
index 0000000..2f228a2
--- /dev/null
@@ -0,0 +1,7 @@
+config IMX_IPUV3_CORE
+       tristate "IPUv3 core support"
+       depends on SOC_IMX5 || SOC_IMX6Q || SOC_IMX6SL || ARCH_MULTIPLATFORM
+       depends on RESET_CONTROLLER
+       help
+         Choose this if you have a i.MX5/6 system and want to use the Image
+         Processing Unit. This option only enables IPU base support.
similarity index 59%
rename from drivers/staging/imx-drm/ipu-v3/Makefile
rename to drivers/gpu/ipu-v3/Makefile
index 28ed72e..d21cc37 100644 (file)
@@ -1,3 +1,3 @@
-obj-$(CONFIG_DRM_IMX_IPUV3_CORE) += imx-ipu-v3.o
+obj-$(CONFIG_IMX_IPUV3_CORE) += imx-ipu-v3.o
 
 imx-ipu-v3-objs := ipu-common.o ipu-dc.o ipu-di.o ipu-dp.o ipu-dmfc.o
similarity index 99%
rename from drivers/staging/imx-drm/ipu-v3/ipu-common.c
rename to drivers/gpu/ipu-v3/ipu-common.c
index ca85d3d..7e1f614 100644 (file)
@@ -31,7 +31,7 @@
 
 #include <drm/drm_fourcc.h>
 
-#include "imx-ipu-v3.h"
+#include <video/imx-ipu-v3.h>
 #include "ipu-prv.h"
 
 static inline u32 ipu_cm_read(struct ipu_soc *ipu, unsigned offset)
similarity index 99%
rename from drivers/staging/imx-drm/ipu-v3/ipu-dc.c
rename to drivers/gpu/ipu-v3/ipu-dc.c
index d5de8bb..9f1e5ef 100644 (file)
@@ -20,8 +20,7 @@
 #include <linux/delay.h>
 #include <linux/io.h>
 
-#include "../imx-drm.h"
-#include "imx-ipu-v3.h"
+#include <video/imx-ipu-v3.h>
 #include "ipu-prv.h"
 
 #define DC_MAP_CONF_PTR(n)     (0x108 + ((n) & ~0x1) * 2)
similarity index 99%
rename from drivers/staging/imx-drm/ipu-v3/ipu-di.c
rename to drivers/gpu/ipu-v3/ipu-di.c
index 82a9eba..42e60b4 100644 (file)
@@ -20,7 +20,7 @@
 #include <linux/err.h>
 #include <linux/platform_device.h>
 
-#include "imx-ipu-v3.h"
+#include <video/imx-ipu-v3.h>
 #include "ipu-prv.h"
 
 struct ipu_di {
similarity index 99%
rename from drivers/staging/imx-drm/ipu-v3/ipu-dmfc.c
rename to drivers/gpu/ipu-v3/ipu-dmfc.c
index 4521301..e1493ab 100644 (file)
@@ -17,7 +17,7 @@
 #include <linux/errno.h>
 #include <linux/io.h>
 
-#include "imx-ipu-v3.h"
+#include <video/imx-ipu-v3.h>
 #include "ipu-prv.h"
 
 #define DMFC_RD_CHAN           0x0000
similarity index 99%
rename from drivers/staging/imx-drm/ipu-v3/ipu-dp.c
rename to drivers/gpu/ipu-v3/ipu-dp.c
index 58f87c8..e17fa3f 100644 (file)
@@ -19,7 +19,7 @@
 #include <linux/io.h>
 #include <linux/err.h>
 
-#include "imx-ipu-v3.h"
+#include <video/imx-ipu-v3.h>
 #include "ipu-prv.h"
 
 #define DP_SYNC 0
similarity index 99%
rename from drivers/staging/imx-drm/ipu-v3/ipu-prv.h
rename to drivers/gpu/ipu-v3/ipu-prv.h
index 4df0050..5cb075f 100644 (file)
@@ -22,7 +22,7 @@ struct ipu_soc;
 #include <linux/clk.h>
 #include <linux/platform_device.h>
 
-#include "imx-ipu-v3.h"
+#include <video/imx-ipu-v3.h>
 
 #define IPUV3_CHANNEL_CSI0                      0
 #define IPUV3_CHANNEL_CSI1                      1
index c6e8ba7..82fb758 100644 (file)
@@ -39,19 +39,10 @@ config DRM_IMX_LDB
          Choose this to enable the internal LVDS Display Bridge (LDB)
          found on i.MX53 and i.MX6 processors.
 
-config DRM_IMX_IPUV3_CORE
-       tristate "IPUv3 core support"
-       depends on DRM_IMX
-       depends on RESET_CONTROLLER
-       help
-         Choose this if you have a i.MX5/6 system and want
-         to use the IPU. This option only enables IPU base
-         support.
-
 config DRM_IMX_IPUV3
        tristate "DRM Support for i.MX IPUv3"
        depends on DRM_IMX
-       depends on DRM_IMX_IPUV3_CORE
+       depends on IMX_IPUV3_CORE
        help
          Choose this if you have a i.MX5 or i.MX6 processor.
 
index 129e3a3..582c438 100644 (file)
@@ -6,7 +6,6 @@ obj-$(CONFIG_DRM_IMX) += imxdrm.o
 obj-$(CONFIG_DRM_IMX_PARALLEL_DISPLAY) += parallel-display.o
 obj-$(CONFIG_DRM_IMX_TVE) += imx-tve.o
 obj-$(CONFIG_DRM_IMX_LDB) += imx-ldb.o
-obj-$(CONFIG_DRM_IMX_IPUV3_CORE) += ipu-v3/
 
 imx-ipuv3-crtc-objs  := ipuv3-crtc.o ipuv3-plane.o
 obj-$(CONFIG_DRM_IMX_IPUV3)    += imx-ipuv3-crtc.o
index d47dedd..461f224 100644 (file)
@@ -27,8 +27,8 @@
 #include <drm/drm_crtc_helper.h>
 #include <drm/drm_edid.h>
 #include <drm/drm_encoder_slave.h>
+#include <video/imx-ipu-v3.h>
 
-#include "ipu-v3/imx-ipu-v3.h"
 #include "imx-hdmi.h"
 #include "imx-drm.h"
 
index 575533f..5bcb405 100644 (file)
@@ -30,8 +30,8 @@
 #include <drm/drmP.h>
 #include <drm/drm_fb_helper.h>
 #include <drm/drm_crtc_helper.h>
+#include <video/imx-ipu-v3.h>
 
-#include "ipu-v3/imx-ipu-v3.h"
 #include "imx-drm.h"
 
 #define TVE_COM_CONF_REG       0x00
index c48f640..d6913d2 100644 (file)
@@ -30,7 +30,7 @@
 #include <drm/drm_gem_cma_helper.h>
 #include <drm/drm_fb_cma_helper.h>
 
-#include "ipu-v3/imx-ipu-v3.h"
+#include <video/imx-ipu-v3.h>
 #include "imx-drm.h"
 #include "ipuv3-plane.h"
 
index 27a8d73..02b4486 100644 (file)
@@ -17,7 +17,7 @@
 #include <drm/drm_fb_cma_helper.h>
 #include <drm/drm_gem_cma_helper.h>
 
-#include "ipu-v3/imx-ipu-v3.h"
+#include "video/imx-ipu-v3.h"
 #include "ipuv3-plane.h"
 
 #define to_ipu_plane(x)        container_of(x, struct ipu_plane, base)
index c7b4f0f..8bf495f 100644 (file)
@@ -20,6 +20,7 @@ source "drivers/char/agp/Kconfig"
 source "drivers/gpu/vga/Kconfig"
 
 source "drivers/gpu/host1x/Kconfig"
+source "drivers/gpu/ipu-v3/Kconfig"
 
 menu "Direct Rendering Manager"
 source "drivers/gpu/drm/Kconfig"