mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +00:00 
			
		
		
		
	drm: zte: use vblank hooks in struct drm_crtc_funcs
The vblank hooks in struct drm_driver are deprecated and only meant for legacy drivers. For modern drivers with DRIVER_MODESET flag, the hooks in struct drm_crtc_funcs should be used instead. The functions are moved around to save forward declaration. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Reviewed-by: Sean Paul <seanpaul@chromium.org> Link: http://patchwork.freedesktop.org/patch/msgid/1486458995-31018-24-git-send-email-shawnguo@kernel.org
This commit is contained in:
		
							parent
							
								
									0d5f46fa4c
								
							
						
					
					
						commit
						e5b8afbe34
					
				
					 3 changed files with 23 additions and 43 deletions
				
			
		|  | @ -71,8 +71,6 @@ static struct drm_driver zx_drm_driver = { | ||||||
| 	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME | | 	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME | | ||||||
| 			   DRIVER_ATOMIC, | 			   DRIVER_ATOMIC, | ||||||
| 	.lastclose = zx_drm_lastclose, | 	.lastclose = zx_drm_lastclose, | ||||||
| 	.enable_vblank = zx_vou_enable_vblank, |  | ||||||
| 	.disable_vblank = zx_vou_disable_vblank, |  | ||||||
| 	.gem_free_object = drm_gem_cma_free_object, | 	.gem_free_object = drm_gem_cma_free_object, | ||||||
| 	.gem_vm_ops = &drm_gem_cma_vm_ops, | 	.gem_vm_ops = &drm_gem_cma_vm_ops, | ||||||
| 	.dumb_create = drm_gem_cma_dumb_create, | 	.dumb_create = drm_gem_cma_dumb_create, | ||||||
|  |  | ||||||
|  | @ -470,6 +470,27 @@ static const struct drm_crtc_helper_funcs zx_crtc_helper_funcs = { | ||||||
| 	.atomic_flush = zx_crtc_atomic_flush, | 	.atomic_flush = zx_crtc_atomic_flush, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | static int zx_vou_enable_vblank(struct drm_crtc *crtc) | ||||||
|  | { | ||||||
|  | 	struct zx_crtc *zcrtc = to_zx_crtc(crtc); | ||||||
|  | 	struct zx_vou_hw *vou = crtc_to_vou(crtc); | ||||||
|  | 	u32 int_frame_mask = zcrtc->bits->int_frame_mask; | ||||||
|  | 
 | ||||||
|  | 	zx_writel_mask(vou->timing + TIMING_INT_CTRL, int_frame_mask, | ||||||
|  | 		       int_frame_mask); | ||||||
|  | 
 | ||||||
|  | 	return 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | static void zx_vou_disable_vblank(struct drm_crtc *crtc) | ||||||
|  | { | ||||||
|  | 	struct zx_crtc *zcrtc = to_zx_crtc(crtc); | ||||||
|  | 	struct zx_vou_hw *vou = crtc_to_vou(crtc); | ||||||
|  | 
 | ||||||
|  | 	zx_writel_mask(vou->timing + TIMING_INT_CTRL, | ||||||
|  | 		       zcrtc->bits->int_frame_mask, 0); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| static const struct drm_crtc_funcs zx_crtc_funcs = { | static const struct drm_crtc_funcs zx_crtc_funcs = { | ||||||
| 	.destroy = drm_crtc_cleanup, | 	.destroy = drm_crtc_cleanup, | ||||||
| 	.set_config = drm_atomic_helper_set_config, | 	.set_config = drm_atomic_helper_set_config, | ||||||
|  | @ -477,6 +498,8 @@ static const struct drm_crtc_funcs zx_crtc_funcs = { | ||||||
| 	.reset = drm_atomic_helper_crtc_reset, | 	.reset = drm_atomic_helper_crtc_reset, | ||||||
| 	.atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state, | 	.atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state, | ||||||
| 	.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state, | 	.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state, | ||||||
|  | 	.enable_vblank = zx_vou_enable_vblank, | ||||||
|  | 	.disable_vblank = zx_vou_disable_vblank, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static int zx_crtc_init(struct drm_device *drm, struct zx_vou_hw *vou, | static int zx_crtc_init(struct drm_device *drm, struct zx_vou_hw *vou, | ||||||
|  | @ -553,44 +576,6 @@ static int zx_crtc_init(struct drm_device *drm, struct zx_vou_hw *vou, | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int zx_vou_enable_vblank(struct drm_device *drm, unsigned int pipe) |  | ||||||
| { |  | ||||||
| 	struct drm_crtc *crtc; |  | ||||||
| 	struct zx_crtc *zcrtc; |  | ||||||
| 	struct zx_vou_hw *vou; |  | ||||||
| 	u32 int_frame_mask; |  | ||||||
| 
 |  | ||||||
| 	crtc = drm_crtc_from_index(drm, pipe); |  | ||||||
| 	if (!crtc) |  | ||||||
| 		return 0; |  | ||||||
| 
 |  | ||||||
| 	vou = crtc_to_vou(crtc); |  | ||||||
| 	zcrtc = to_zx_crtc(crtc); |  | ||||||
| 	int_frame_mask = zcrtc->bits->int_frame_mask; |  | ||||||
| 
 |  | ||||||
| 	zx_writel_mask(vou->timing + TIMING_INT_CTRL, int_frame_mask, |  | ||||||
| 		       int_frame_mask); |  | ||||||
| 
 |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void zx_vou_disable_vblank(struct drm_device *drm, unsigned int pipe) |  | ||||||
| { |  | ||||||
| 	struct drm_crtc *crtc; |  | ||||||
| 	struct zx_crtc *zcrtc; |  | ||||||
| 	struct zx_vou_hw *vou; |  | ||||||
| 
 |  | ||||||
| 	crtc = drm_crtc_from_index(drm, pipe); |  | ||||||
| 	if (!crtc) |  | ||||||
| 		return; |  | ||||||
| 
 |  | ||||||
| 	vou = crtc_to_vou(crtc); |  | ||||||
| 	zcrtc = to_zx_crtc(crtc); |  | ||||||
| 
 |  | ||||||
| 	zx_writel_mask(vou->timing + TIMING_INT_CTRL, |  | ||||||
| 		       zcrtc->bits->int_frame_mask, 0); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void zx_vou_layer_enable(struct drm_plane *plane) | void zx_vou_layer_enable(struct drm_plane *plane) | ||||||
| { | { | ||||||
| 	struct zx_crtc *zcrtc = to_zx_crtc(plane->state->crtc); | 	struct zx_crtc *zcrtc = to_zx_crtc(plane->state->crtc); | ||||||
|  |  | ||||||
|  | @ -61,9 +61,6 @@ struct vou_div_config { | ||||||
| void zx_vou_config_dividers(struct drm_crtc *crtc, | void zx_vou_config_dividers(struct drm_crtc *crtc, | ||||||
| 			    struct vou_div_config *configs, int num); | 			    struct vou_div_config *configs, int num); | ||||||
| 
 | 
 | ||||||
| int zx_vou_enable_vblank(struct drm_device *drm, unsigned int pipe); |  | ||||||
| void zx_vou_disable_vblank(struct drm_device *drm, unsigned int pipe); |  | ||||||
| 
 |  | ||||||
| void zx_vou_layer_enable(struct drm_plane *plane); | void zx_vou_layer_enable(struct drm_plane *plane); | ||||||
| void zx_vou_layer_disable(struct drm_plane *plane); | void zx_vou_layer_disable(struct drm_plane *plane); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Shawn Guo
						Shawn Guo