From: Paulo Zanoni <przanoni@gmail.com>
To: intel-gfx@lists.freedesktop.org
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Subject: [PATCH 06/18] drm/i915: convert PIPE_CLK_SEL to transcoder
Date: Tue, 23 Oct 2012 18:29:56 -0200 [thread overview]
Message-ID: <1351024208-3489-7-git-send-email-przanoni@gmail.com> (raw)
In-Reply-To: <1351024208-3489-1-git-send-email-przanoni@gmail.com>
From: Paulo Zanoni <paulo.r.zanoni@intel.com>
This register appeared in Haswell. It does not have an EDP version
because the EDP transcoder is always tied to the DDIA clock. Notice
that if we call PIPE_CLK_SEL(pipe) when pipe is PIPE_A and transcoder
is TRANSCODER_EDP we might introduce a bug, that's why this is a
transcoder register even though it does not have an EDP version.
Even though Haswell names this register PIPE_CLK_SEL, it will be
renamed to TRANS_CLK_SEL in the future, so let's just start using the
real name that makes more sense and avoids misusage.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
---
drivers/gpu/drm/i915/i915_reg.h | 14 +++++++-------
drivers/gpu/drm/i915/intel_ddi.c | 10 ++++++++--
2 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 598f83a..99cda88 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -4543,13 +4543,13 @@
#define PORT_CLK_SEL_WRPLL2 (5<<29)
#define PORT_CLK_SEL_NONE (7<<29)
-/* Pipe clock selection */
-#define PIPE_CLK_SEL_A 0x46140
-#define PIPE_CLK_SEL_B 0x46144
-#define PIPE_CLK_SEL(pipe) _PIPE(pipe, PIPE_CLK_SEL_A, PIPE_CLK_SEL_B)
-/* For each pipe, we need to select the corresponding port clock */
-#define PIPE_CLK_SEL_DISABLED (0x0<<29)
-#define PIPE_CLK_SEL_PORT(x) ((x+1)<<29)
+/* Transcoder clock selection */
+#define TRANS_CLK_SEL_A 0x46140
+#define TRANS_CLK_SEL_B 0x46144
+#define TRANS_CLK_SEL(tran) _TRANSCODER(tran, TRANS_CLK_SEL_A, TRANS_CLK_SEL_B)
+/* For each transcoder, we need to select the corresponding port clock */
+#define TRANS_CLK_SEL_DISABLED (0x0<<29)
+#define TRANS_CLK_SEL_PORT(x) ((x+1)<<29)
#define _PIPEA_MSA_MISC 0x60410
#define _PIPEB_MSA_MISC 0x61410
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 81cca48..f568862 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -1095,15 +1095,21 @@ void intel_ddi_enable_pipe_clock(struct intel_crtc *intel_crtc)
struct drm_i915_private *dev_priv = crtc->dev->dev_private;
struct intel_encoder *intel_encoder = intel_ddi_get_crtc_encoder(crtc);
enum port port = intel_ddi_get_encoder_port(intel_encoder);
+ enum transcoder cpu_transcoder = intel_crtc->cpu_transcoder;
- I915_WRITE(PIPE_CLK_SEL(intel_crtc->pipe), PIPE_CLK_SEL_PORT(port));
+ if (cpu_transcoder != TRANSCODER_EDP)
+ I915_WRITE(TRANS_CLK_SEL(cpu_transcoder),
+ TRANS_CLK_SEL_PORT(port));
}
void intel_ddi_disable_pipe_clock(struct intel_crtc *intel_crtc)
{
struct drm_i915_private *dev_priv = intel_crtc->base.dev->dev_private;
+ enum transcoder cpu_transcoder = intel_crtc->cpu_transcoder;
- I915_WRITE(PIPE_CLK_SEL(intel_crtc->pipe), PIPE_CLK_SEL_DISABLED);
+ if (cpu_transcoder != TRANSCODER_EDP)
+ I915_WRITE(TRANS_CLK_SEL(cpu_transcoder),
+ TRANS_CLK_SEL_DISABLED);
}
void intel_ddi_pre_enable(struct intel_encoder *intel_encoder)
--
1.7.11.4
next prev parent reply other threads:[~2012-10-23 20:30 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-23 20:29 [PATCH 00/18] Haswell eDP enablement v3 Paulo Zanoni
2012-10-23 20:29 ` [PATCH 01/18] drm/i915: fork a Haswell version of ironlake_crtc_{enable, disable} Paulo Zanoni
2012-10-24 13:15 ` Rodrigo Vivi
2012-10-25 11:03 ` Jani Nikula
2012-10-23 20:29 ` [PATCH 02/18] drm/i915: fix the checks inside Ironlake/Haswell crtc enable/disable Paulo Zanoni
2012-10-24 13:18 ` Rodrigo Vivi
2012-10-24 13:31 ` Paulo Zanoni
2012-10-23 20:29 ` [PATCH 03/18] drm/i915: simplify intel_crtc_driving_pch Paulo Zanoni
2012-10-25 11:13 ` Jani Nikula
2012-10-25 12:04 ` Paulo Zanoni
2012-10-25 12:37 ` Paulo Zanoni
2012-10-23 20:29 ` [PATCH 04/18] drm/i915: don't call Haswell PCH code when we can't or don't need Paulo Zanoni
2012-10-25 12:18 ` Jani Nikula
2012-10-23 20:29 ` [PATCH 05/18] drm/i915: add TRANSCODER_EDP Paulo Zanoni
2012-10-24 14:50 ` Lespiau, Damien
2012-10-24 16:33 ` Paulo Zanoni
2012-10-24 16:43 ` Daniel Vetter
2012-10-24 17:59 ` Paulo Zanoni
2012-10-25 10:23 ` Lespiau, Damien
2012-10-23 20:29 ` Paulo Zanoni [this message]
2012-10-24 14:55 ` [PATCH 06/18] drm/i915: convert PIPE_CLK_SEL to transcoder Lespiau, Damien
2012-10-23 20:29 ` [PATCH 07/18] drm/i915: convert DDI_FUNC_CTL " Paulo Zanoni
2012-10-24 15:12 ` Lespiau, Damien
2012-10-24 15:30 ` Lespiau, Damien
2012-10-24 16:44 ` Paulo Zanoni
2012-10-24 18:06 ` Paulo Zanoni
2012-10-25 10:24 ` Lespiau, Damien
2012-10-23 20:29 ` [PATCH 08/18] drm/i915: check TRANSCODER_EDP on intel_modeset_setup_hw_state Paulo Zanoni
2012-10-24 12:38 ` Daniel Vetter
2012-10-24 15:45 ` Lespiau, Damien
2012-10-24 15:50 ` Daniel Vetter
2012-10-24 18:09 ` Paulo Zanoni
2012-10-25 10:26 ` Lespiau, Damien
2012-10-23 20:29 ` [PATCH 09/18] drm/i915: convert PIPECONF to use transcoder instead of pipe Paulo Zanoni
2012-10-25 11:12 ` Lespiau, Damien
2012-10-23 20:30 ` [PATCH 10/18] drm/i915: convert PIPE_MSA_MISC to transcoder Paulo Zanoni
2012-10-25 11:09 ` Lespiau, Damien
2012-10-23 20:30 ` [PATCH 11/18] drm/i915: convert CPU M/N timings " Paulo Zanoni
2012-10-25 11:10 ` Lespiau, Damien
2012-10-23 20:30 ` [PATCH 12/18] drm/i915: convert pipe timing definitions " Paulo Zanoni
2012-10-25 11:12 ` Lespiau, Damien
2012-10-23 20:30 ` [PATCH 13/18] drm/i915: implement workaround for VTOTAL when using TRANSCODER_EDP Paulo Zanoni
2012-10-23 20:44 ` Daniel Vetter
2012-10-24 13:34 ` Paulo Zanoni
2012-10-24 15:24 ` Rodrigo Vivi
2012-10-23 20:30 ` [PATCH 14/18] drm/i915: select the correct pipe " Paulo Zanoni
2012-10-24 13:58 ` Rodrigo Vivi
2012-10-23 20:30 ` [PATCH 15/18] drm/i915: set the correct eDP aux channel clock divider on DDI Paulo Zanoni
2012-10-24 14:07 ` Rodrigo Vivi
2012-10-23 20:30 ` [PATCH 16/18] drm/i915: set/unset the DDI eDP backlight Paulo Zanoni
2012-10-24 14:11 ` Rodrigo Vivi
2012-10-24 14:22 ` Daniel Vetter
2012-10-24 14:43 ` Paulo Zanoni
2012-10-23 20:30 ` [PATCH 17/18] drm/i915: turn the eDP DDI panel on/off Paulo Zanoni
2012-10-24 15:20 ` Rodrigo Vivi
2012-10-23 20:30 ` [PATCH 18/18] drm/i915: enable DDI eDP Paulo Zanoni
2012-10-24 14:24 ` Rodrigo Vivi
2012-10-25 20:17 ` Daniel Vetter
2012-10-24 13:31 ` [PATCH 02-1/18] drm/i915: fix checks inside ironlake_crtc_{enable, disable} Paulo Zanoni
2012-10-24 13:32 ` [PATCH 02-2/18] drm/i915: fix checks inside haswell_crtc_{enable, disable} Paulo Zanoni
2012-10-25 11:07 ` Jani Nikula
2012-10-25 11:04 ` [PATCH 02-1/18] drm/i915: fix checks inside ironlake_crtc_{enable, disable} Jani Nikula
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=1351024208-3489-7-git-send-email-przanoni@gmail.com \
--to=przanoni@gmail.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=paulo.r.zanoni@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox