MLK-21239-1: Revert "drm/imx: merge imx-drm-core and ipuv3-crtc in one module"
authorLeonard Crestez <leonard.crestez@nxp.com>
Wed, 28 Mar 2018 18:18:01 +0000 (21:18 +0300)
committerLeonard Crestez <leonard.crestez@nxp.com>
Wed, 17 Apr 2019 23:51:34 +0000 (02:51 +0300)
This reverts commit 3d1df96ad46856ce850be5ac112eab919cbe1cab.

This is a backport from linux-next, that makes possible to use
DRM_IMX whithout the needs of having also IPU built.

Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
drivers/gpu/drm/imx/Kconfig
drivers/gpu/drm/imx/Makefile
drivers/gpu/drm/imx/imx-drm-core.c
drivers/gpu/drm/imx/imx-drm.h
drivers/gpu/drm/imx/ipuv3-crtc.c

index b6c142d..37a6b35 100644 (file)
@@ -31,6 +31,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
index c8ae947..22c747e 100644 (file)
@@ -1,12 +1,14 @@
 # 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
 
 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
+
+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_NWL_DSI) += nwl_dsi-imx.o
index 5ea0c82..a2d09fe 100644 (file)
@@ -367,23 +367,7 @@ static struct platform_driver imx_drm_pdrv = {
                .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");
index ab9c6f7..c04f150 100644 (file)
@@ -28,8 +28,6 @@ int imx_drm_init_drm(struct platform_device *pdev,
                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);
index 7d4b710..a30d24b 100644 (file)
@@ -470,10 +470,16 @@ static int ipu_drm_remove(struct platform_device *pdev)
        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");