[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