mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-29 23:53:32 +00:00
drm/imx: merge imx-drm-core and ipuv3-crtc in one module
While it is possible to hook other CRTC implementations into imx-drm in practice there are none yet and the option to disable ipuv3-crtc support has been hidden for a long time. Now that the imx-drm-core has learned to deal with some of the specifics of IPUv3 there is a cyclic dependency between both parts. To get rid of this and to decimate the Kconfig maze a bit, simply merge both parts into one module. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
This commit is contained in:
parent
30310c835f
commit
3d1df96ad4
5 changed files with 21 additions and 17 deletions
|
@ -31,13 +31,6 @@ 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
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
imxdrm-objs := imx-drm-core.o
|
||||
imxdrm-objs := imx-drm-core.o ipuv3-crtc.o ipuv3-plane.o
|
||||
|
||||
obj-$(CONFIG_DRM_IMX) += imxdrm.o
|
||||
|
||||
|
@ -7,6 +7,5 @@ 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
|
||||
|
|
|
@ -431,7 +431,23 @@ static struct platform_driver imx_drm_pdrv = {
|
|||
.of_match_table = imx_drm_dt_ids,
|
||||
},
|
||||
};
|
||||
module_platform_driver(imx_drm_pdrv);
|
||||
|
||||
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_AUTHOR("Sascha Hauer <s.hauer@pengutronix.de>");
|
||||
MODULE_DESCRIPTION("i.MX drm driver core");
|
||||
|
|
|
@ -29,6 +29,8 @@ 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);
|
||||
|
|
|
@ -465,16 +465,10 @@ static int ipu_drm_remove(struct platform_device *pdev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct platform_driver ipu_drm_driver = {
|
||||
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");
|
||||
|
|
Loading…
Reference in a new issue