diff mbox

3.13-rc2, i855, [drm:intel_pipe_config_compare] *ERROR* mismatch in adjusted_mode.crtc_clock

Message ID 20131205104956.GX10036@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ville Syrjala Dec. 5, 2013, 10:49 a.m. UTC
On Wed, Dec 04, 2013 at 09:09:22PM +0100, Bruno Prémont wrote:
> [    1.621199] [drm:intel_pipe_config_compare] *ERROR* mismatch in adjusted_mode.crtc_clock (expected 108000, found 48000)

Hmm. Kind of looks like we're reading/parsing the PLL registers incorrectly.

Let's try to see what the driver thinks the registers contain:

From 4a804c01e051b2cb853d3d5114ae77d1646fb889 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@linux.intel.com>
Date: Thu, 5 Dec 2013 12:44:27 +0200
Subject: [PATCH] dpll state debug

---
 drivers/gpu/drm/i915/intel_display.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Bruno Prémont Dec. 5, 2013, 10:13 p.m. UTC | #1
Hi Ville,

On Thu, 05 December 2013 Ville Syrjälä wrote:
> On Wed, Dec 04, 2013 at 09:09:22PM +0100, Bruno Prémont wrote:
> > [    1.621199] [drm:intel_pipe_config_compare] *ERROR* mismatch in adjusted_mode.crtc_clock (expected 108000, found 48000)
> 
> Hmm. Kind of looks like we're reading/parsing the PLL registers incorrectly.
> 
> Let's try to see what the driver thinks the registers contain:

Below a summary of the PLL values, full dmesg attached
(gzip-compressed to be polite on mailboxes):
...
[    0.976312] [drm:intel_dump_pipe_config], DPLL = 0x808b0000
[    0.976315] [drm:intel_dump_pipe_config], DPLL_MD = 0x0
[    0.976317] [drm:intel_dump_pipe_config], FP0 = 0x21207
[    0.976319] [drm:intel_dump_pipe_config], FP1 = 0x21207
...
[    0.976367] [drm:intel_dump_pipe_config], DPLL = 0x90020000
[    0.976369] [drm:intel_dump_pipe_config], DPLL_MD = 0x0
[    0.976371] [drm:intel_dump_pipe_config], FP0 = 0x2140e
[    0.976373] [drm:intel_dump_pipe_config], FP1 = 0x21207
...
[    1.030670] [drm:intel_dump_pipe_config], DPLL = 0x0
[    1.030672] [drm:intel_dump_pipe_config], DPLL_MD = 0x0
[    1.030674] [drm:intel_dump_pipe_config], FP0 = 0x0
[    1.030676] [drm:intel_dump_pipe_config], FP1 = 0x0
...
[    1.132925] [drm:intel_dump_pipe_config], DPLL = 0x0
[    1.132927] [drm:intel_dump_pipe_config], DPLL_MD = 0x0
[    1.132928] [drm:intel_dump_pipe_config], FP0 = 0x0
[    1.132929] [drm:intel_dump_pipe_config], FP1 = 0x0
...
[    1.691202] [drm:intel_pipe_config_compare] *ERROR* mismatch in adjusted_mode.crtc_clock (expected 108000, found 48000)
[    1.691203] ------------[ cut here ]------------
[    1.691214] WARNING: CPU: 0 PID: 1 at /home/Projects/Linux-git/drivers/gpu/drm/i915/intel_display.c:9288 check_crtc_state+0x6eb/0xe60()
[    1.691215] pipe state doesn't match!
[    1.691217] Modules linked in:
...
[    1.691488] [drm:intel_dump_pipe_config], DPLL = 0x90020000
[    1.691489] [drm:intel_dump_pipe_config], DPLL_MD = 0x0
[    1.691491] [drm:intel_dump_pipe_config], FP0 = 0x3170d
[    1.691492] [drm:intel_dump_pipe_config], FP1 = 0x3170d
...
[    1.691528] [drm:intel_dump_pipe_config], DPLL = 0x90020000
[    1.691530] [drm:intel_dump_pipe_config], DPLL_MD = 0x0
[    1.691531] [drm:intel_dump_pipe_config], FP0 = 0x3170d
[    1.691532] [drm:intel_dump_pipe_config], FP1 = 0x3170d
...
[    1.803189] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[    1.805213] i915 0000:00:02.0: registered panic notifier
[    1.807248] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
...
[   53.589413] [drm:intel_dump_pipe_config], DPLL = 0x0
[   53.589418] [drm:intel_dump_pipe_config], DPLL_MD = 0x0
[   53.589424] [drm:intel_dump_pipe_config], FP0 = 0x0
[   53.589429] [drm:intel_dump_pipe_config], FP1 = 0x0
...
[   53.641132] [drm:intel_pipe_config_compare] *ERROR* mismatch in adjusted_mode.crtc_clock (expected 108000, found 48000)
[   53.641139] ------------[ cut here ]------------
[   53.641165] WARNING: CPU: 0 PID: 2176 at /home/Projects/Linux-git/drivers/gpu/drm/i915/intel_display.c:9288 check_crtc_state+0x6eb/0xe60()
[   53.641171] pipe state doesn't match!
...
[   53.641710] [drm:intel_dump_pipe_config], DPLL = 0x90020000
[   53.641716] [drm:intel_dump_pipe_config], DPLL_MD = 0x0
[   53.641721] [drm:intel_dump_pipe_config], FP0 = 0x3170d
[   53.641726] [drm:intel_dump_pipe_config], FP1 = 0x3170d
...
[   53.641847] [drm:intel_dump_pipe_config], DPLL = 0x90020000
[   53.641853] [drm:intel_dump_pipe_config], DPLL_MD = 0x0
[   53.641858] [drm:intel_dump_pipe_config], FP0 = 0x3170d
[   53.641863] [drm:intel_dump_pipe_config], FP1 = 0x3170d
...
[   53.696988] [drm:intel_pipe_config_compare] *ERROR* mismatch in adjusted_mode.crtc_clock (expected 108000, found 48000)
[   53.696995] ------------[ cut here ]------------
[   53.697012] WARNING: CPU: 0 PID: 2176 at /home/Projects/Linux-git/drivers/gpu/drm/i915/intel_display.c:9288 check_crtc_state+0x6eb/0xe60()
[   53.697017] pipe state doesn't match!
...

Bruno
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 3f2f1d2..b8f9077 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -8976,6 +8976,10 @@  static void intel_dump_pipe_config(struct intel_crtc *crtc,
 		      pipe_config->pch_pfit.enabled ? "enabled" : "disabled");
 	DRM_DEBUG_KMS("ips: %i\n", pipe_config->ips_enabled);
 	DRM_DEBUG_KMS("double wide: %i\n", pipe_config->double_wide);
+	DRM_DEBUG_KMS("DPLL = 0x%x\n", pipe_config->dpll_hw_state.dpll);
+	DRM_DEBUG_KMS("DPLL_MD = 0x%x\n", pipe_config->dpll_hw_state.dpll_md);
+	DRM_DEBUG_KMS("FP0 = 0x%x\n", pipe_config->dpll_hw_state.fp0);
+	DRM_DEBUG_KMS("FP1 = 0x%x\n", pipe_config->dpll_hw_state.fp1);
 }
 
 static bool check_encoder_cloning(struct drm_crtc *crtc)