[Intel-gfx] [PATCH v8 02/38] drm/i915/dsi: move connector mode functions to common file

Madhav Chauhan madhav.chauhan at intel.com
Wed Oct 31 09:20:49 UTC 2018


On 10/30/2018 5:26 PM, Jani Nikula wrote:
> From: Madhav Chauhan <madhav.chauhan at intel.com>
>
> Move DSI connector functions to intel_dsi.c and make them available to
> both legacy and ICL DSI.
>
> v2 by Jani:
>   - Move the functions to intel_dsi.c
>   - Don't reuse intel_dsi_connector_destroy()

Patch 1 & 2 v2 changes, i.e. code movement to intel_dsi.c
looks fine to me.

Regards,
Madhav

>
> Signed-off-by: Madhav Chauhan <madhav.chauhan at intel.com>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
> ---
>   drivers/gpu/drm/i915/intel_dsi.c | 47 +++++++++++++++++++++++++++++++++++++++
>   drivers/gpu/drm/i915/intel_dsi.h |  3 +++
>   drivers/gpu/drm/i915/vlv_dsi.c   | 48 ----------------------------------------
>   3 files changed, 50 insertions(+), 48 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
> index 97e04c272612..b9d5ef79015e 100644
> --- a/drivers/gpu/drm/i915/intel_dsi.c
> +++ b/drivers/gpu/drm/i915/intel_dsi.c
> @@ -29,6 +29,53 @@ int intel_dsi_tlpx_ns(const struct intel_dsi *intel_dsi)
>   	}
>   }
>   
> +int intel_dsi_get_modes(struct drm_connector *connector)
> +{
> +	struct intel_connector *intel_connector = to_intel_connector(connector);
> +	struct drm_display_mode *mode;
> +
> +	DRM_DEBUG_KMS("\n");
> +
> +	if (!intel_connector->panel.fixed_mode) {
> +		DRM_DEBUG_KMS("no fixed mode\n");
> +		return 0;
> +	}
> +
> +	mode = drm_mode_duplicate(connector->dev,
> +				  intel_connector->panel.fixed_mode);
> +	if (!mode) {
> +		DRM_DEBUG_KMS("drm_mode_duplicate failed\n");
> +		return 0;
> +	}
> +
> +	drm_mode_probed_add(connector, mode);
> +	return 1;
> +}
> +
> +enum drm_mode_status intel_dsi_mode_valid(struct drm_connector *connector,
> +					  struct drm_display_mode *mode)
> +{
> +	struct intel_connector *intel_connector = to_intel_connector(connector);
> +	const struct drm_display_mode *fixed_mode = intel_connector->panel.fixed_mode;
> +	int max_dotclk = to_i915(connector->dev)->max_dotclk_freq;
> +
> +	DRM_DEBUG_KMS("\n");
> +
> +	if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
> +		return MODE_NO_DBLESCAN;
> +
> +	if (fixed_mode) {
> +		if (mode->hdisplay > fixed_mode->hdisplay)
> +			return MODE_PANEL;
> +		if (mode->vdisplay > fixed_mode->vdisplay)
> +			return MODE_PANEL;
> +		if (fixed_mode->clock > max_dotclk)
> +			return MODE_CLOCK_HIGH;
> +	}
> +
> +	return MODE_OK;
> +}
> +
>   struct intel_dsi_host *intel_dsi_host_init(struct intel_dsi *intel_dsi,
>   					   const struct mipi_dsi_host_ops *funcs,
>   					   enum port port)
> diff --git a/drivers/gpu/drm/i915/intel_dsi.h b/drivers/gpu/drm/i915/intel_dsi.h
> index 09f0fa9ccc7d..10fd1582a8e2 100644
> --- a/drivers/gpu/drm/i915/intel_dsi.h
> +++ b/drivers/gpu/drm/i915/intel_dsi.h
> @@ -152,6 +152,9 @@ int intel_dsi_tlpx_ns(const struct intel_dsi *intel_dsi);
>   /* vlv_dsi.c */
>   void vlv_dsi_wait_for_fifo_empty(struct intel_dsi *intel_dsi, enum port port);
>   enum mipi_dsi_pixel_format pixel_format_from_register_bits(u32 fmt);
> +int intel_dsi_get_modes(struct drm_connector *connector);
> +enum drm_mode_status intel_dsi_mode_valid(struct drm_connector *connector,
> +					  struct drm_display_mode *mode);
>   struct intel_dsi_host *intel_dsi_host_init(struct intel_dsi *intel_dsi,
>   					   const struct mipi_dsi_host_ops *funcs,
>   					   enum port port);
> diff --git a/drivers/gpu/drm/i915/vlv_dsi.c b/drivers/gpu/drm/i915/vlv_dsi.c
> index cbb935a9acf3..bab87b62bc2d 100644
> --- a/drivers/gpu/drm/i915/vlv_dsi.c
> +++ b/drivers/gpu/drm/i915/vlv_dsi.c
> @@ -1212,31 +1212,6 @@ static void intel_dsi_get_config(struct intel_encoder *encoder,
>   	}
>   }
>   
> -static enum drm_mode_status
> -intel_dsi_mode_valid(struct drm_connector *connector,
> -		     struct drm_display_mode *mode)
> -{
> -	struct intel_connector *intel_connector = to_intel_connector(connector);
> -	const struct drm_display_mode *fixed_mode = intel_connector->panel.fixed_mode;
> -	int max_dotclk = to_i915(connector->dev)->max_dotclk_freq;
> -
> -	DRM_DEBUG_KMS("\n");
> -
> -	if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
> -		return MODE_NO_DBLESCAN;
> -
> -	if (fixed_mode) {
> -		if (mode->hdisplay > fixed_mode->hdisplay)
> -			return MODE_PANEL;
> -		if (mode->vdisplay > fixed_mode->vdisplay)
> -			return MODE_PANEL;
> -		if (fixed_mode->clock > max_dotclk)
> -			return MODE_CLOCK_HIGH;
> -	}
> -
> -	return MODE_OK;
> -}
> -
>   /* return txclkesc cycles in terms of divider and duration in us */
>   static u16 txclkesc(u32 divider, unsigned int us)
>   {
> @@ -1559,29 +1534,6 @@ static void intel_dsi_unprepare(struct intel_encoder *encoder)
>   	}
>   }
>   
> -static int intel_dsi_get_modes(struct drm_connector *connector)
> -{
> -	struct intel_connector *intel_connector = to_intel_connector(connector);
> -	struct drm_display_mode *mode;
> -
> -	DRM_DEBUG_KMS("\n");
> -
> -	if (!intel_connector->panel.fixed_mode) {
> -		DRM_DEBUG_KMS("no fixed mode\n");
> -		return 0;
> -	}
> -
> -	mode = drm_mode_duplicate(connector->dev,
> -				  intel_connector->panel.fixed_mode);
> -	if (!mode) {
> -		DRM_DEBUG_KMS("drm_mode_duplicate failed\n");
> -		return 0;
> -	}
> -
> -	drm_mode_probed_add(connector, mode);
> -	return 1;
> -}
> -
>   static void intel_dsi_encoder_destroy(struct drm_encoder *encoder)
>   {
>   	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);



More information about the Intel-gfx mailing list