From d27d7c25c946776c015a39f1a9eb0c6d4e724a70 Mon Sep 17 00:00:00 2001 From: Liu Ying 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 [ Aisheng: fix conflicts ] Signed-off-by: Dong Aisheng --- 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 "); 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 "); +MODULE_DESCRIPTION(DRIVER_DESC); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:imx-ipuv3-crtc");