All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mika Kahola <mika.kahola@intel.com>
To: ville.syrjala@linux.intel.com
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 1/7] drm/i915: Use intel_panel for DVO fixed mode handling
Date: Thu, 24 Sep 2015 11:00:24 +0300	[thread overview]
Message-ID: <1443081624.3303.3.camel@sorvi> (raw)
In-Reply-To: <1441708851-24646-2-git-send-email-ville.syrjala@linux.intel.com>

Reviewed-by: Mika Kahola <mika.kahola@intel.com>

On Tue, 2015-09-08 at 13:40 +0300, ville.syrjala@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Replace intel_dvo->panel_fixed_mode with the appropriate intel_panel
> stuff. Now all connectors that have a fixed mode use intel_panel.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_dvo.c | 49 ++++++++++++++++++----------------------
>  1 file changed, 22 insertions(+), 27 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
> index c80fe1f..0bc8aa8 100644
> --- a/drivers/gpu/drm/i915/intel_dvo.c
> +++ b/drivers/gpu/drm/i915/intel_dvo.c
> @@ -97,7 +97,8 @@ struct intel_dvo {
>  
>  	struct intel_dvo_device dev;
>  
> -	struct drm_display_mode *panel_fixed_mode;
> +	struct intel_connector *attached_connector;
> +
>  	bool panel_wants_dither;
>  };
>  
> @@ -201,6 +202,8 @@ intel_dvo_mode_valid(struct drm_connector *connector,
>  		     struct drm_display_mode *mode)
>  {
>  	struct intel_dvo *intel_dvo = intel_attached_dvo(connector);
> +	const struct drm_display_mode *fixed_mode =
> +		to_intel_connector(connector)->panel.fixed_mode;
>  	int max_dotclk = to_i915(connector->dev)->max_dotclk_freq;
>  	int target_clock = mode->clock;
>  
> @@ -209,13 +212,13 @@ intel_dvo_mode_valid(struct drm_connector *connector,
>  
>  	/* XXX: Validate clock range */
>  
> -	if (intel_dvo->panel_fixed_mode) {
> -		if (mode->hdisplay > intel_dvo->panel_fixed_mode->hdisplay)
> +	if (fixed_mode) {
> +		if (mode->hdisplay > fixed_mode->hdisplay)
>  			return MODE_PANEL;
> -		if (mode->vdisplay > intel_dvo->panel_fixed_mode->vdisplay)
> +		if (mode->vdisplay > fixed_mode->vdisplay)
>  			return MODE_PANEL;
>  
> -		target_clock = intel_dvo->panel_fixed_mode->clock;
> +		target_clock = fixed_mode->clock;
>  	}
>  
>  	if (target_clock > max_dotclk)
> @@ -228,6 +231,8 @@ static bool intel_dvo_compute_config(struct intel_encoder *encoder,
>  				     struct intel_crtc_state *pipe_config)
>  {
>  	struct intel_dvo *intel_dvo = enc_to_dvo(encoder);
> +	const struct drm_display_mode *fixed_mode =
> +		intel_dvo->attached_connector->panel.fixed_mode;
>  	struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode;
>  
>  	/* If we have timings from the BIOS for the panel, put them in
> @@ -235,21 +240,8 @@ static bool intel_dvo_compute_config(struct intel_encoder *encoder,
>  	 * with the panel scaling set up to source from the H/VDisplay
>  	 * of the original mode.
>  	 */
> -	if (intel_dvo->panel_fixed_mode != NULL) {
> -#define C(x) adjusted_mode->x = intel_dvo->panel_fixed_mode->x
> -		C(hdisplay);
> -		C(hsync_start);
> -		C(hsync_end);
> -		C(htotal);
> -		C(vdisplay);
> -		C(vsync_start);
> -		C(vsync_end);
> -		C(vtotal);
> -		C(clock);
> -#undef C
> -
> -		drm_mode_set_crtcinfo(adjusted_mode, 0);
> -	}
> +	if (fixed_mode)
> +		intel_fixed_panel_mode(fixed_mode, adjusted_mode);
>  
>  	return true;
>  }
> @@ -318,8 +310,9 @@ intel_dvo_detect(struct drm_connector *connector, bool force)
>  
>  static int intel_dvo_get_modes(struct drm_connector *connector)
>  {
> -	struct intel_dvo *intel_dvo = intel_attached_dvo(connector);
>  	struct drm_i915_private *dev_priv = connector->dev->dev_private;
> +	const struct drm_display_mode *fixed_mode =
> +		to_intel_connector(connector)->panel.fixed_mode;
>  
>  	/* We should probably have an i2c driver get_modes function for those
>  	 * devices which will have a fixed set of modes determined by the chip
> @@ -331,9 +324,9 @@ static int intel_dvo_get_modes(struct drm_connector *connector)
>  	if (!list_empty(&connector->probed_modes))
>  		return 1;
>  
> -	if (intel_dvo->panel_fixed_mode != NULL) {
> +	if (fixed_mode) {
>  		struct drm_display_mode *mode;
> -		mode = drm_mode_duplicate(connector->dev, intel_dvo->panel_fixed_mode);
> +		mode = drm_mode_duplicate(connector->dev, fixed_mode);
>  		if (mode) {
>  			drm_mode_probed_add(connector, mode);
>  			return 1;
> @@ -346,6 +339,7 @@ static int intel_dvo_get_modes(struct drm_connector *connector)
>  static void intel_dvo_destroy(struct drm_connector *connector)
>  {
>  	drm_connector_cleanup(connector);
> +	intel_panel_fini(&to_intel_connector(connector)->panel);
>  	kfree(connector);
>  }
>  
> @@ -372,8 +366,6 @@ static void intel_dvo_enc_destroy(struct drm_encoder *encoder)
>  	if (intel_dvo->dev.dev_ops->destroy)
>  		intel_dvo->dev.dev_ops->destroy(&intel_dvo->dev);
>  
> -	kfree(intel_dvo->panel_fixed_mode);
> -
>  	intel_encoder_destroy(encoder);
>  }
>  
> @@ -438,6 +430,8 @@ void intel_dvo_init(struct drm_device *dev)
>  		return;
>  	}
>  
> +	intel_dvo->attached_connector = intel_connector;
> +
>  	intel_encoder = &intel_dvo->base;
>  	drm_encoder_init(dev, &intel_encoder->base,
>  			 &intel_dvo_enc_funcs, encoder_type);
> @@ -542,8 +536,9 @@ void intel_dvo_init(struct drm_device *dev)
>  			 * headers, likely), so for now, just get the current
>  			 * mode being output through DVO.
>  			 */
> -			intel_dvo->panel_fixed_mode =
> -				intel_dvo_get_current_mode(connector);
> +			intel_panel_init(&intel_connector->panel,
> +					 intel_dvo_get_current_mode(connector),
> +					 NULL);
>  			intel_dvo->panel_wants_dither = true;
>  		}
>  


_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2015-09-24  7:59 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-08 10:40 [PATCH 0/7] drm/i915: Always use crtc_ timings with adjusted_mode ville.syrjala
2015-09-08 10:40 ` [PATCH 1/7] drm/i915: Use intel_panel for DVO fixed mode handling ville.syrjala
2015-09-24  8:00   ` Mika Kahola [this message]
2015-09-08 10:40 ` [PATCH 2/7] drm/i915: Always call the adjusted mode 'adjusted_mode' ville.syrjala
2015-09-24  8:01   ` Mika Kahola
2015-09-28  8:03   ` Daniel Vetter
2015-09-08 10:40 ` [PATCH 3/7] drm/i915: s/mode/adjusted_mode/ in functions that really get passed the adjusted_mode ville.syrjala
2015-09-23 11:12   ` Mika Kahola
2015-09-23 12:30     ` Ville Syrjälä
2015-09-24  8:06   ` Mika Kahola
2015-09-25 13:37   ` [PATCH v2 " ville.syrjala
2015-09-28 12:15     ` Mika Kahola
2015-09-08 10:40 ` [PATCH 4/7] drm/i915: Always use crtc_ timings when dealing with adjustead_mode ville.syrjala
2015-09-24  8:08   ` Mika Kahola
2015-09-25 13:38   ` [PATCH v2 " ville.syrjala
2015-09-28 12:15     ` Mika Kahola
2015-09-08 10:40 ` [PATCH 5/7] drm/i915: Move HDMI aspect ratio setup to .compute_config() ville.syrjala
2015-09-24  8:08   ` Mika Kahola
2015-09-08 10:40 ` [PATCH 6/7] drm/i915: Constify adjusted_mode ville.syrjala
2015-09-24  8:10   ` Mika Kahola
2015-09-08 10:40 ` [PATCH 7/7] drm/i915: Add HDMI aspect ration property for SDVO ville.syrjala
2015-09-08 10:43   ` Ville Syrjälä
2015-09-08 10:40 ` [PATCH 7/7] drm/i915: Add HDMI aspect ratio " ville.syrjala
2015-09-25 13:39   ` [PATCH v2 " ville.syrjala
2015-09-28 12:18     ` Mika Kahola
2015-09-28 13:27       ` Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1443081624.3303.3.camel@sorvi \
    --to=mika.kahola@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=ville.syrjala@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.