[PATCH 0/4] removal of extra abstraction layers
Gustavo Padovan
gustavo at padovan.org
Mon Nov 24 10:21:02 PST 2014
From: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
Hi Inki,
In this series I've removed some level of indirection from the exynos_drm_code.
There two moves in these patches, first we remove all exynos_drm_crtc_plane_*()
wrappers and call the manager specific functions directly. The other change is
the removal of struct exynos_drm_overlay(). In my understanding the overlay
struct was just storing plane data in a 1:1 relationship so it made sense to
merge its fields in struct exynos_drm_plane and remove another abstraction from
the driver.
Next steps:
During our initial investigation on the Exynos DRM driver we've spoted a few
abstractions that could be removed to get a more clean and less abstract code.
- struct exynos_drm_manager: this is just a helper of
struct exynos_drm_crtc, I suggest we could merge them both.
- struct *_win_data: Most of the share common fields and could be merged
int struct exynos_drm_plane.
- some more function wrapper can be removed as well.
After these changes intead of looking to manager and win_data we will look into
crtc and planes. The new names give us more clue about what a piece of code is
doing since they are already defined and used by the whole DRM ecossytem.
What your thoughts on this? I've seen that you pushed some patches to remove
static usage of managers so I would like to check with you which direction are
you planning to go with this. I've done some code[0] around this but now it
needs a rebase against you exynos-drm-next.
[0] https://git.kernel.org/cgit/linux/kernel/git/padovan/drm-exynos.git/log/?h=cleanup
Gustavo Padovan (4):
drm/exynos: move to_exynos_crtc() macro to main header
drm/exynos: expose struct exynos_drm_crtc
drm/exynos: remove exynos_drm_crtc_plane_* wrappers
drm/exynos: remove struct exynos_drm_overlay
drivers/gpu/drm/exynos/exynos_drm_crtc.c | 66 ---------------------
drivers/gpu/drm/exynos/exynos_drm_crtc.h | 2 +-
drivers/gpu/drm/exynos/exynos_drm_drv.h | 43 +++++++++++++-
drivers/gpu/drm/exynos/exynos_drm_fimd.c | 44 +++++++-------
drivers/gpu/drm/exynos/exynos_drm_plane.c | 96 +++++++++++++++----------------
drivers/gpu/drm/exynos/exynos_drm_vidi.c | 38 ++++++------
drivers/gpu/drm/exynos/exynos_mixer.c | 50 ++++++++--------
7 files changed, 156 insertions(+), 183 deletions(-)
--
1.9.3
More information about the dri-devel
mailing list