From: Paulo Zanoni <przanoni@gmail.com>
To: intel-gfx@lists.freedesktop.org
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Subject: [PATCH 08/09] drm/i915: fix DP AUX register definitions on Haswell
Date: Fri, 29 Jun 2012 16:03:40 -0300 [thread overview]
Message-ID: <1340996621-14345-8-git-send-email-przanoni@gmail.com> (raw)
In-Reply-To: <1340996621-14345-1-git-send-email-przanoni@gmail.com>
From: Paulo Zanoni <paulo.r.zanoni@intel.com>
The old rule that the AUX registers are just an offset (+4 and +10)
from output_reg is not true anymore, since output_reg in on the CPU
and some AUX regs are on the PCH.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
---
drivers/gpu/drm/i915/i915_reg.h | 8 ++++++++
drivers/gpu/drm/i915/intel_dp.c | 21 +++++++++++++++++++++
2 files changed, 29 insertions(+)
The previous patch series didn't need this patch because they were calling
intel_dp_init with PCH_DP_B as the second argument. IMHO this is ugly because
PCH_DP_B does not exist on Haswell. This value will become intel_dp->output_reg
and then eventually some functions will even write to it.
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index f28f2b2..475ada8 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -2493,6 +2493,14 @@
#define DPD_AUX_CH_DATA4 0x64320
#define DPD_AUX_CH_DATA5 0x64324
+#define PCH_DPB_AUX_CH_CTL 0xe4110
+#define PCH_DPC_AUX_CH_CTL 0xe4210
+#define PCH_DPD_AUX_CH_CTL 0xe4310
+
+#define PCH_DPB_AUX_CH_DATA 0xe4114
+#define PCH_DPC_AUX_CH_DATA 0xe4214
+#define PCH_DPD_AUX_CH_DATA 0xe4314
+
#define DP_AUX_CH_CTL_SEND_BUSY (1 << 31)
#define DP_AUX_CH_CTL_DONE (1 << 30)
#define DP_AUX_CH_CTL_INTERRUPT (1 << 29)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 287bef9..22dae6d 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -356,6 +356,27 @@ intel_dp_aux_ch(struct intel_dp *intel_dp,
uint32_t aux_clock_divider;
int try, precharge;
+ if (IS_HASWELL(dev)) {
+ switch (intel_dp->port) {
+ case PORT_A:
+ ch_ctl = DPA_AUX_CH_CTL;
+ ch_data = DPA_AUX_CH_DATA1;
+ break;
+ case PORT_B:
+ ch_ctl = PCH_DPB_AUX_CH_CTL;
+ ch_data = PCH_DPB_AUX_CH_DATA;
+ break;
+ case PORT_C:
+ ch_ctl = PCH_DPC_AUX_CH_CTL;
+ ch_data = PCH_DPC_AUX_CH_DATA;
+ break;
+ case PORT_D:
+ ch_ctl = PCH_DPD_AUX_CH_CTL;
+ ch_data = PCH_DPD_AUX_CH_DATA;
+ break;
+ }
+ }
+
intel_dp_check_edp(intel_dp);
/* The clock divider is based off the hrawclk,
* and would like to run at 2MHz. So, take the
--
1.7.10.2
next prev parent reply other threads:[~2012-06-29 19:04 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-29 19:03 [PATCH 01/09] drm/i915: move common code to intel_dp_set_link_train Paulo Zanoni
2012-06-29 19:03 ` [PATCH 02/09] drm/i915: try to train DP even harder Paulo Zanoni
2012-07-12 14:58 ` Daniel Vetter
2012-06-29 19:03 ` [PATCH 03/09] drm/i915: Move DP structs to shared location Paulo Zanoni
2012-07-12 15:13 ` Daniel Vetter
2012-06-29 19:03 ` [PATCH 04/09] drm/i915: Add "port" field to struct intel_dp Paulo Zanoni
2012-07-12 15:04 ` Daniel Vetter
2012-06-29 19:03 ` [PATCH 05/09] drm/i915: add basic Haswell DP enablement Paulo Zanoni
2012-06-29 19:03 ` [PATCH 06/09] drm/i915: fix Haswell M/N registers Paulo Zanoni
2012-06-29 19:03 ` [PATCH 07/09] drm/i915: implement Haswell DP link train Paulo Zanoni
2012-06-29 19:03 ` Paulo Zanoni [this message]
2012-06-29 19:03 ` [PATCH 09/09] drm/i915: init DP instead of HDMI on port B Paulo Zanoni
2012-07-12 14:52 ` [PATCH 01/09] drm/i915: move common code to intel_dp_set_link_train Daniel Vetter
2012-07-17 19:55 ` [PATCH 1/2] " Paulo Zanoni
2012-07-17 20:53 ` [PATCH 2/2] drm/i915: add port field to struct intel_dp and use it Paulo Zanoni
2012-07-18 10:42 ` 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=1340996621-14345-8-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