Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 16102edb authored by Eunchul Kim's avatar Eunchul Kim Committed by Inki Dae
Browse files

drm/exynos: add fimc ipp driver



FIMC is stand for Fully Interfactive Mobile Camera and
supports image scaler/rotator/crop/flip/csc and input/output DMA operations
and also supports writeback and display output operations.

This driver is registered to IPP subsystem framework to be used by user side
and user can control the FIMC hardware through some interfaces of IPP subsystem
framework.

Changelog v6:
- fix build warning.

Changelog v1 ~ v5:
- add comments, code fixups and cleanups.

Signed-off-by: default avatarEunchul Kim <chulspro.kim@samsung.com>
Signed-off-by: default avatarJinyoung Jeon <jy0.jeon@samsung.com>
Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
parent c12e2617
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -51,3 +51,9 @@ config DRM_EXYNOS_IPP
	depends on DRM_EXYNOS
	help
	  Choose this option if you want to use IPP feature for DRM.

config DRM_EXYNOS_FIMC
	bool "Exynos DRM FIMC"
	depends on DRM_EXYNOS_IPP
	help
	  Choose this option if you want to use Exynos FIMC for DRM.
+1 −0
Original line number Diff line number Diff line
@@ -17,5 +17,6 @@ exynosdrm-$(CONFIG_DRM_EXYNOS_HDMI) += exynos_hdmi.o exynos_mixer.o \
exynosdrm-$(CONFIG_DRM_EXYNOS_VIDI)	+= exynos_drm_vidi.o
exynosdrm-$(CONFIG_DRM_EXYNOS_G2D)	+= exynos_drm_g2d.o
exynosdrm-$(CONFIG_DRM_EXYNOS_IPP)	+= exynos_drm_ipp.o
exynosdrm-$(CONFIG_DRM_EXYNOS_FIMC)	+= exynos_drm_fimc.o

obj-$(CONFIG_DRM_EXYNOS)		+= exynosdrm.o
+15 −0
Original line number Diff line number Diff line
@@ -372,6 +372,12 @@ static int __init exynos_drm_init(void)
		goto out_g2d;
#endif

#ifdef CONFIG_DRM_EXYNOS_FIMC
	ret = platform_driver_register(&fimc_driver);
	if (ret < 0)
		goto out_fimc;
#endif

#ifdef CONFIG_DRM_EXYNOS_IPP
	ret = platform_driver_register(&ipp_driver);
	if (ret < 0)
@@ -400,6 +406,11 @@ static int __init exynos_drm_init(void)
out_ipp:
#endif

#ifdef CONFIG_DRM_EXYNOS_FIMC
	platform_driver_unregister(&fimc_driver);
out_fimc:
#endif

#ifdef CONFIG_DRM_EXYNOS_G2D
	platform_driver_unregister(&g2d_driver);
out_g2d:
@@ -440,6 +451,10 @@ static void __exit exynos_drm_exit(void)
	platform_driver_unregister(&ipp_driver);
#endif

#ifdef CONFIG_DRM_EXYNOS_FIMC
	platform_driver_unregister(&fimc_driver);
#endif

#ifdef CONFIG_DRM_EXYNOS_G2D
	platform_driver_unregister(&g2d_driver);
#endif
+1 −0
Original line number Diff line number Diff line
@@ -349,5 +349,6 @@ extern struct platform_driver mixer_driver;
extern struct platform_driver exynos_drm_common_hdmi_driver;
extern struct platform_driver vidi_driver;
extern struct platform_driver g2d_driver;
extern struct platform_driver fimc_driver;
extern struct platform_driver ipp_driver;
#endif
+2001 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading