Skip to content

Commit 39b9004

Browse files
committed
gpu: ipu-v3: Move i.MX IPUv3 core driver out of staging
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 <[email protected]> Signed-off-by: Philipp Zabel <[email protected]> Acked-by: Greg Kroah-Hartman <[email protected]>
1 parent d1db0ee commit 39b9004

File tree

17 files changed

+21
-23
lines changed

17 files changed

+21
-23
lines changed

drivers/gpu/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
obj-y += drm/ vga/
22
obj-$(CONFIG_TEGRA_HOST1X) += host1x/
3+
obj-$(CONFIG_IMX_IPUV3_CORE) += ipu-v3/

drivers/gpu/ipu-v3/Kconfig

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
config IMX_IPUV3_CORE
2+
tristate "IPUv3 core support"
3+
depends on SOC_IMX5 || SOC_IMX6Q || SOC_IMX6SL || ARCH_MULTIPLATFORM
4+
depends on RESET_CONTROLLER
5+
help
6+
Choose this if you have a i.MX5/6 system and want to use the Image
7+
Processing Unit. This option only enables IPU base support.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
obj-$(CONFIG_DRM_IMX_IPUV3_CORE) += imx-ipu-v3.o
1+
obj-$(CONFIG_IMX_IPUV3_CORE) += imx-ipu-v3.o
22

33
imx-ipu-v3-objs := ipu-common.o ipu-dc.o ipu-di.o ipu-dp.o ipu-dmfc.o

drivers/staging/imx-drm/ipu-v3/ipu-common.c renamed to drivers/gpu/ipu-v3/ipu-common.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
#include <drm/drm_fourcc.h>
3333

34-
#include "imx-ipu-v3.h"
34+
#include <video/imx-ipu-v3.h>
3535
#include "ipu-prv.h"
3636

3737
static inline u32 ipu_cm_read(struct ipu_soc *ipu, unsigned offset)

drivers/staging/imx-drm/ipu-v3/ipu-dc.c renamed to drivers/gpu/ipu-v3/ipu-dc.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@
2020
#include <linux/delay.h>
2121
#include <linux/io.h>
2222

23-
#include "../imx-drm.h"
24-
#include "imx-ipu-v3.h"
23+
#include <video/imx-ipu-v3.h>
2524
#include "ipu-prv.h"
2625

2726
#define DC_MAP_CONF_PTR(n) (0x108 + ((n) & ~0x1) * 2)

drivers/staging/imx-drm/ipu-v3/ipu-di.c renamed to drivers/gpu/ipu-v3/ipu-di.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
#include <linux/err.h>
2121
#include <linux/platform_device.h>
2222

23-
#include "imx-ipu-v3.h"
23+
#include <video/imx-ipu-v3.h>
2424
#include "ipu-prv.h"
2525

2626
struct ipu_di {

drivers/staging/imx-drm/ipu-v3/ipu-dmfc.c renamed to drivers/gpu/ipu-v3/ipu-dmfc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#include <linux/errno.h>
1818
#include <linux/io.h>
1919

20-
#include "imx-ipu-v3.h"
20+
#include <video/imx-ipu-v3.h>
2121
#include "ipu-prv.h"
2222

2323
#define DMFC_RD_CHAN 0x0000

drivers/staging/imx-drm/ipu-v3/ipu-dp.c renamed to drivers/gpu/ipu-v3/ipu-dp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#include <linux/io.h>
2020
#include <linux/err.h>
2121

22-
#include "imx-ipu-v3.h"
22+
#include <video/imx-ipu-v3.h>
2323
#include "ipu-prv.h"
2424

2525
#define DP_SYNC 0

drivers/staging/imx-drm/ipu-v3/ipu-prv.h renamed to drivers/gpu/ipu-v3/ipu-prv.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ struct ipu_soc;
2222
#include <linux/clk.h>
2323
#include <linux/platform_device.h>
2424

25-
#include "imx-ipu-v3.h"
25+
#include <video/imx-ipu-v3.h>
2626

2727
#define IPUV3_CHANNEL_CSI0 0
2828
#define IPUV3_CHANNEL_CSI1 1

drivers/staging/imx-drm/Kconfig

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,19 +39,10 @@ config DRM_IMX_LDB
3939
Choose this to enable the internal LVDS Display Bridge (LDB)
4040
found on i.MX53 and i.MX6 processors.
4141

42-
config DRM_IMX_IPUV3_CORE
43-
tristate "IPUv3 core support"
44-
depends on DRM_IMX
45-
depends on RESET_CONTROLLER
46-
help
47-
Choose this if you have a i.MX5/6 system and want
48-
to use the IPU. This option only enables IPU base
49-
support.
50-
5142
config DRM_IMX_IPUV3
5243
tristate "DRM Support for i.MX IPUv3"
5344
depends on DRM_IMX
54-
depends on DRM_IMX_IPUV3_CORE
45+
depends on IMX_IPUV3_CORE
5546
help
5647
Choose this if you have a i.MX5 or i.MX6 processor.
5748

drivers/staging/imx-drm/Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ obj-$(CONFIG_DRM_IMX) += imxdrm.o
66
obj-$(CONFIG_DRM_IMX_PARALLEL_DISPLAY) += parallel-display.o
77
obj-$(CONFIG_DRM_IMX_TVE) += imx-tve.o
88
obj-$(CONFIG_DRM_IMX_LDB) += imx-ldb.o
9-
obj-$(CONFIG_DRM_IMX_IPUV3_CORE) += ipu-v3/
109

1110
imx-ipuv3-crtc-objs := ipuv3-crtc.o ipuv3-plane.o
1211
obj-$(CONFIG_DRM_IMX_IPUV3) += imx-ipuv3-crtc.o

drivers/staging/imx-drm/imx-hdmi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
#include <drm/drm_crtc_helper.h>
2828
#include <drm/drm_edid.h>
2929
#include <drm/drm_encoder_slave.h>
30+
#include <video/imx-ipu-v3.h>
3031

31-
#include "ipu-v3/imx-ipu-v3.h"
3232
#include "imx-hdmi.h"
3333
#include "imx-drm.h"
3434

drivers/staging/imx-drm/imx-tve.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
#include <drm/drmP.h>
3131
#include <drm/drm_fb_helper.h>
3232
#include <drm/drm_crtc_helper.h>
33+
#include <video/imx-ipu-v3.h>
3334

34-
#include "ipu-v3/imx-ipu-v3.h"
3535
#include "imx-drm.h"
3636

3737
#define TVE_COM_CONF_REG 0x00

drivers/staging/imx-drm/ipuv3-crtc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#include <drm/drm_gem_cma_helper.h>
3131
#include <drm/drm_fb_cma_helper.h>
3232

33-
#include "ipu-v3/imx-ipu-v3.h"
33+
#include <video/imx-ipu-v3.h>
3434
#include "imx-drm.h"
3535
#include "ipuv3-plane.h"
3636

drivers/staging/imx-drm/ipuv3-plane.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#include <drm/drm_fb_cma_helper.h>
1818
#include <drm/drm_gem_cma_helper.h>
1919

20-
#include "ipu-v3/imx-ipu-v3.h"
20+
#include "video/imx-ipu-v3.h"
2121
#include "ipuv3-plane.h"
2222

2323
#define to_ipu_plane(x) container_of(x, struct ipu_plane, base)

drivers/video/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ source "drivers/char/agp/Kconfig"
2020
source "drivers/gpu/vga/Kconfig"
2121

2222
source "drivers/gpu/host1x/Kconfig"
23+
source "drivers/gpu/ipu-v3/Kconfig"
2324

2425
menu "Direct Rendering Manager"
2526
source "drivers/gpu/drm/Kconfig"

0 commit comments

Comments
 (0)