layerscape: add patches-5.4
[openwrt/staging/wigyori.git] / target / linux / layerscape / patches-5.4 / 805-display-0042-drm-imx-Revert-a-patch-which-merges-imx-drm-core-and.patch
diff --git a/target/linux/layerscape/patches-5.4/805-display-0042-drm-imx-Revert-a-patch-which-merges-imx-drm-core-and.patch b/target/linux/layerscape/patches-5.4/805-display-0042-drm-imx-Revert-a-patch-which-merges-imx-drm-core-and.patch
new file mode 100644 (file)
index 0000000..017f0e3
--- /dev/null
@@ -0,0 +1,116 @@
+From d27d7c25c946776c015a39f1a9eb0c6d4e724a70 Mon Sep 17 00:00:00 2001
+From: Liu Ying <victor.liu@nxp.com>
+Date: Fri, 25 Jan 2019 11:23:39 +0800
+Subject: [PATCH] drm/imx: Revert a patch which merges imx-drm-core and
+ ipuv3-crtc in one module
+
+DPU CRTC found in i.MX8qm/qxp SoCs can be hooked into imx-drm.
+Thus, move ipuv3-crtc out of imx-drm-core.
+
+Revert "drm/imx: merge imx-drm-core and ipuv3-crtc in one module"
+
+This reverts commit 3d1df96ad46856ce850be5ac112eab919cbe1cab.
+
+Signed-off-by: Liu Ying <victor.liu@nxp.com>
+[ Aisheng: fix conflicts ]
+Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
+---
+ drivers/gpu/drm/imx/Kconfig        |  7 +++++++
+ drivers/gpu/drm/imx/Makefile       |  4 +++-
+ drivers/gpu/drm/imx/imx-drm-core.c | 18 +-----------------
+ drivers/gpu/drm/imx/imx-drm.h      |  2 --
+ drivers/gpu/drm/imx/ipuv3-crtc.c   |  8 +++++++-
+ 5 files changed, 18 insertions(+), 21 deletions(-)
+
+--- a/drivers/gpu/drm/imx/Kconfig
++++ b/drivers/gpu/drm/imx/Kconfig
+@@ -33,6 +33,13 @@ 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
++      tristate
++      depends on DRM_IMX
++      depends on IMX_IPUV3_CORE
++      default y if DRM_IMX=y
++      default m if DRM_IMX=m
++
+ config DRM_IMX_HDMI
+       tristate "Freescale i.MX DRM HDMI"
+       select DRM_DW_HDMI
+--- a/drivers/gpu/drm/imx/Makefile
++++ b/drivers/gpu/drm/imx/Makefile
+@@ -1,6 +1,6 @@
+ # SPDX-License-Identifier: GPL-2.0
+-imxdrm-objs := imx-drm-core.o ipuv3-crtc.o ipuv3-plane.o
++imxdrm-objs := imx-drm-core.o
+ obj-$(CONFIG_DRM_IMX) += imxdrm.o
+@@ -8,5 +8,7 @@ obj-$(CONFIG_DRM_IMX_PARALLEL_DISPLAY) +
+ obj-$(CONFIG_DRM_IMX_TVE) += imx-tve.o
+ obj-$(CONFIG_DRM_IMX_LDB) += imx-ldb.o
++imx-ipuv3-crtc-objs  := ipuv3-crtc.o ipuv3-plane.o
++obj-$(CONFIG_DRM_IMX_IPUV3)   += imx-ipuv3-crtc.o
+ obj-$(CONFIG_DRM_IMX_HDMI) += dw_hdmi-imx.o
+ obj-$(CONFIG_DRM_IMX_CDNS_MHDP) += cdn-mhdp-imxdrv.o cdn-mhdp-dp-phy.o cdn-mhdp-hdmi-phy.o cdn-mhdp-imx8qm.o cdn-mhdp-ls1028a.o
+--- a/drivers/gpu/drm/imx/imx-drm-core.c
++++ b/drivers/gpu/drm/imx/imx-drm-core.c
+@@ -343,23 +343,7 @@ static struct platform_driver imx_drm_pd
+               .of_match_table = imx_drm_dt_ids,
+       },
+ };
+-
+-static struct platform_driver * const drivers[] = {
+-      &imx_drm_pdrv,
+-      &ipu_drm_driver,
+-};
+-
+-static int __init imx_drm_init(void)
+-{
+-      return platform_register_drivers(drivers, ARRAY_SIZE(drivers));
+-}
+-module_init(imx_drm_init);
+-
+-static void __exit imx_drm_exit(void)
+-{
+-      platform_unregister_drivers(drivers, ARRAY_SIZE(drivers));
+-}
+-module_exit(imx_drm_exit);
++module_platform_driver(imx_drm_pdrv);
+ MODULE_AUTHOR("Sascha Hauer <s.hauer@pengutronix.de>");
+ MODULE_DESCRIPTION("i.MX drm driver core");
+--- a/drivers/gpu/drm/imx/imx-drm.h
++++ b/drivers/gpu/drm/imx/imx-drm.h
+@@ -28,8 +28,6 @@ int imx_drm_init_drm(struct platform_dev
+               int preferred_bpp);
+ int imx_drm_exit_drm(void);
+-extern struct platform_driver ipu_drm_driver;
+-
+ void imx_drm_mode_config_init(struct drm_device *drm);
+ struct drm_gem_cma_object *imx_drm_fb_get_obj(struct drm_framebuffer *fb);
+--- a/drivers/gpu/drm/imx/ipuv3-crtc.c
++++ b/drivers/gpu/drm/imx/ipuv3-crtc.c
+@@ -492,10 +492,16 @@ static int ipu_drm_remove(struct platfor
+       return 0;
+ }
+-struct platform_driver ipu_drm_driver = {
++static struct platform_driver ipu_drm_driver = {
+       .driver = {
+               .name = "imx-ipuv3-crtc",
+       },
+       .probe = ipu_drm_probe,
+       .remove = ipu_drm_remove,
+ };
++module_platform_driver(ipu_drm_driver);
++
++MODULE_AUTHOR("Sascha Hauer <s.hauer@pengutronix.de>");
++MODULE_DESCRIPTION(DRIVER_DESC);
++MODULE_LICENSE("GPL");
++MODULE_ALIAS("platform:imx-ipuv3-crtc");