]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
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 d8a22c2a579d458c17f4fd5d7b57f5bdee13cf65..70da9eb52a42cb623c887ca91e31fa250f8fd33f 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 28ed72e98a96bf2d5e858c8304f4d0b9153938d6..d21cc37d049896c224017fa8f692956244119cc2 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 ca85d3d70ae3f454cb019844590183af58356ce9..7e1f614e7fbc1aa7045a0c256c874209d59c0f21 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 d5de8bb5c803f87b84dbfea1a2aaac5843f3661a..9f1e5efa3acfa97600cecaa0ff19c807311ea680 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 82a9ebad697c76b13181d809fa5c53c6d5200f62..42e60b447ae79e8ce3f9b4e85a8e3cbedf4c415b 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 45213017fa4b3557e680843f05fad4adf4b19227..e1493ab36ca277a6849b975a1c900998043ac2fd 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 58f87c8d7c07ad611a09d0c0bae62df482adb121..e17fa3f7c4b6763fb5df46ed0ab24d6bd6244944 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 4df00501adc210c9b4406d421be644e5cf8f8d51..5cb075fdd48c127a87385e0593cd7451c9d4a43b 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 c6e8ba7b3e4eaa26297c778101eb1063bebc60ce..82fb758a29bce2e84be2e52265b3adcddfc3310a 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 129e3a3f59f100847231a90e2d8b7740ce4f4ce0..582c438d8cbdb941e4fb76ffcb55978cda079828 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 d47dedd2cdb416fceb7b0bf90f3fda129e8036ab..461f224d26abe94b1a8848aa99b884dc5e62c896 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 575533f4fd64fc7d53d38c4a0cb307fa429f9f68..5bcb4051665689a8c73a241a9babd81394b65fa9 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 c48f640db0061efe76d74c8df09be47cd5fe440a..d6913d2e6f77a7a40f361a252266edfe4be8ee96 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 27a8d735dae0273e81c226e00b8eee5d482244f3..02b4486435a0c0d4ece176090651731365174549 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 c7b4f0f927b1b710c8b8e95811743e76ed0ee977..8bf495ffb020789811358eef574b6aba446cb141 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"