diff options
Diffstat (limited to 'drivers/gpu/drm/tilcdc/tilcdc_crtc.c')
| -rw-r--r-- | drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 46 | 
1 files changed, 22 insertions, 24 deletions
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c index 650d162e374b..e9dd5e5cb4e7 100644 --- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c +++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c @@ -4,16 +4,20 @@   * Author: Rob Clark <[email protected]>   */ +#include <linux/delay.h> +#include <linux/dma-mapping.h> +#include <linux/of_graph.h> +#include <linux/pm_runtime.h> +  #include <drm/drm_atomic.h>  #include <drm/drm_atomic_helper.h>  #include <drm/drm_crtc.h> -#include <drm/drm_flip_work.h> -#include <drm/drm_plane_helper.h> -#include <linux/workqueue.h> -#include <linux/completion.h> -#include <linux/dma-mapping.h> -#include <linux/of_graph.h> -#include <linux/math64.h> +#include <drm/drm_fb_cma_helper.h> +#include <drm/drm_fourcc.h> +#include <drm/drm_gem_cma_helper.h> +#include <drm/drm_modeset_helper_vtables.h> +#include <drm/drm_print.h> +#include <drm/drm_vblank.h>  #include "tilcdc_drv.h"  #include "tilcdc_regs.h" @@ -646,9 +650,6 @@ static bool tilcdc_crtc_mode_fixup(struct drm_crtc *crtc,  static int tilcdc_crtc_atomic_check(struct drm_crtc *crtc,  				    struct drm_crtc_state *state)  { -	struct drm_display_mode *mode = &state->mode; -	int ret; -  	/* If we are not active we don't care */  	if (!state->active)  		return 0; @@ -660,12 +661,6 @@ static int tilcdc_crtc_atomic_check(struct drm_crtc *crtc,  		return -EINVAL;  	} -	ret = tilcdc_crtc_mode_valid(crtc, mode); -	if (ret) { -		dev_dbg(crtc->dev->dev, "Mode \"%s\" not valid", mode->name); -		return -EINVAL; -	} -  	return 0;  } @@ -717,13 +712,6 @@ static const struct drm_crtc_funcs tilcdc_crtc_funcs = {  	.disable_vblank	= tilcdc_crtc_disable_vblank,  }; -static const struct drm_crtc_helper_funcs tilcdc_crtc_helper_funcs = { -		.mode_fixup     = tilcdc_crtc_mode_fixup, -		.atomic_check	= tilcdc_crtc_atomic_check, -		.atomic_enable	= tilcdc_crtc_atomic_enable, -		.atomic_disable	= tilcdc_crtc_atomic_disable, -}; -  int tilcdc_crtc_max_width(struct drm_crtc *crtc)  {  	struct drm_device *dev = crtc->dev; @@ -738,7 +726,9 @@ int tilcdc_crtc_max_width(struct drm_crtc *crtc)  	return max_width;  } -int tilcdc_crtc_mode_valid(struct drm_crtc *crtc, struct drm_display_mode *mode) +static enum drm_mode_status +tilcdc_crtc_mode_valid(struct drm_crtc *crtc, +		       const struct drm_display_mode *mode)  {  	struct tilcdc_drm_private *priv = crtc->dev->dev_private;  	unsigned int bandwidth; @@ -826,6 +816,14 @@ int tilcdc_crtc_mode_valid(struct drm_crtc *crtc, struct drm_display_mode *mode)  	return MODE_OK;  } +static const struct drm_crtc_helper_funcs tilcdc_crtc_helper_funcs = { +	.mode_valid	= tilcdc_crtc_mode_valid, +	.mode_fixup	= tilcdc_crtc_mode_fixup, +	.atomic_check	= tilcdc_crtc_atomic_check, +	.atomic_enable	= tilcdc_crtc_atomic_enable, +	.atomic_disable	= tilcdc_crtc_atomic_disable, +}; +  void tilcdc_crtc_set_panel_info(struct drm_crtc *crtc,  		const struct tilcdc_panel_info *info)  {  |