diff mbox

[v2,2/2] drm/i915: Fix clock readout when pipes are enabled w/o ports

Message ID 1440607159-14453-1-git-send-email-ville.syrjala@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ville Syrjälä Aug. 26, 2015, 4:39 p.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

The BIOS sometimes likes to enable pipes w/o any ports, at least on
older machines. Currently we fail to assign anything sensible to
crtc->hwmode.crtc_clock which leads to complaints from the vblank code.
Deal with active pipes w/o ports and assign something sensible to
crtc_clock in i9xx_get_pipe_config(). The encoder .get_config() will
override this if the port is enabled.

Gets rid of rest of these on my gen4:
[drm:drm_calc_timestamping_constants [drm]] *ERROR* crtc 24: Can't calculate constants, dotclock = 0!
[drm:i915_get_vblank_timestamp] crtc 1 is disabled

v2: Fill out crtc_clock already in i9xx_get_pipe_config() (Maarten)

Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Maarten Lankhorst Aug. 27, 2015, 1:11 p.m. UTC | #1
Op 26-08-15 om 18:39 schreef ville.syrjala@linux.intel.com:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> The BIOS sometimes likes to enable pipes w/o any ports, at least on
> older machines. Currently we fail to assign anything sensible to
> crtc->hwmode.crtc_clock which leads to complaints from the vblank code.
> Deal with active pipes w/o ports and assign something sensible to
> crtc_clock in i9xx_get_pipe_config(). The encoder .get_config() will
> override this if the port is enabled.
>
> Gets rid of rest of these on my gen4:
> [drm:drm_calc_timestamping_constants [drm]] *ERROR* crtc 24: Can't calculate constants, dotclock = 0!
> [drm:i915_get_vblank_timestamp] crtc 1 is disabled
>
> v2: Fill out crtc_clock already in i9xx_get_pipe_config() (Maarten)
>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_display.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index dde8597..9e92915 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -8107,6 +8107,14 @@ static bool i9xx_get_pipe_config(struct intel_crtc *crtc,
>  	else
>  		i9xx_crtc_clock_get(crtc, pipe_config);
>  
> +	/*
> +	 * Normally the dotclock is filled in by the encoder .get_config()
> +	 * but in case the pipe is enabled w/o any ports we need a sane
> +	 * default.
> +	 */
> +	pipe_config->base.adjusted_mode.crtc_clock =
> +		pipe_config->port_clock / pipe_config->pixel_multiplier;
> +
>  	return true;
>  }
>  
This patch + 1/2 and 3/2.

Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

I'll send a separate patch for killing off the plane sanitization. :)
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index dde8597..9e92915 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -8107,6 +8107,14 @@  static bool i9xx_get_pipe_config(struct intel_crtc *crtc,
 	else
 		i9xx_crtc_clock_get(crtc, pipe_config);
 
+	/*
+	 * Normally the dotclock is filled in by the encoder .get_config()
+	 * but in case the pipe is enabled w/o any ports we need a sane
+	 * default.
+	 */
+	pipe_config->base.adjusted_mode.crtc_clock =
+		pipe_config->port_clock / pipe_config->pixel_multiplier;
+
 	return true;
 }