[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