diff options
author | Eunchul Kim <chulspro.kim@samsung.com> | 2012-12-14 17:58:56 +0900 |
---|---|---|
committer | Inki Dae <daeinki@gmail.com> | 2012-12-15 02:39:41 +0900 |
commit | bea8a429d91a1fd9a88c87df28062c632a1081f9 (patch) | |
tree | cba3e81be4c5dd75b2715f195f1ace57d18ff9da /drivers/gpu/drm/exynos/exynos_drm_drv.c | |
parent | 16102edb49b6cc7fbb68b10c04a42b78fbceb3ed (diff) | |
download | linux-3.10-bea8a429d91a1fd9a88c87df28062c632a1081f9.tar.gz linux-3.10-bea8a429d91a1fd9a88c87df28062c632a1081f9.tar.bz2 linux-3.10-bea8a429d91a1fd9a88c87df28062c632a1081f9.zip |
drm/exynos: add rotator ipp driver
This patch adds IPP subsystem-based rotator driver.
And Rotator supports the following features.
- Image crop operation support.
- Rotate operation support to 90, 180 or 270 degree.
- Flip operation support to vertical, horizontal or both.
. as limitaions, the pixel format to source buffer should be
same as the one to destination buffer and no scaler.
This driver is registered to IPP subsystem framework to be used by user side
and user can control the Rotator hardware through some interfaces of IPP
subsystem framework.
Changelog v6:
- fix build warning.
Changelog v1 ~ v5:
- added comments, code fixups and cleanups.
Signed-off-by: Eunchul Kim <chulspro.kim@samsung.com>
Signed-off-by: Youngjun Cho <yj44.cho@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Diffstat (limited to 'drivers/gpu/drm/exynos/exynos_drm_drv.c')
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_drv.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c index 73f02ac53ba..09d884ba9e2 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c @@ -378,6 +378,12 @@ static int __init exynos_drm_init(void) goto out_fimc; #endif +#ifdef CONFIG_DRM_EXYNOS_ROTATOR + ret = platform_driver_register(&rotator_driver); + if (ret < 0) + goto out_rotator; +#endif + #ifdef CONFIG_DRM_EXYNOS_IPP ret = platform_driver_register(&ipp_driver); if (ret < 0) @@ -406,6 +412,11 @@ out_drm: out_ipp: #endif +#ifdef CONFIG_DRM_EXYNOS_ROTATOR + platform_driver_unregister(&rotator_driver); +out_rotator: +#endif + #ifdef CONFIG_DRM_EXYNOS_FIMC platform_driver_unregister(&fimc_driver); out_fimc: @@ -451,6 +462,10 @@ static void __exit exynos_drm_exit(void) platform_driver_unregister(&ipp_driver); #endif +#ifdef CONFIG_DRM_EXYNOS_ROTATOR + platform_driver_unregister(&rotator_driver); +#endif + #ifdef CONFIG_DRM_EXYNOS_FIMC platform_driver_unregister(&fimc_driver); #endif |