From: Paulo Zanoni <przanoni@gmail.com>
To: intel-gfx@lists.freedesktop.org
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Subject: [PATCH 04/14] drm/i915: touch the DIP control register after enabling the HDMI port
Date: Fri, 4 May 2012 17:18:16 -0300 [thread overview]
Message-ID: <1336162707-3504-3-git-send-email-przanoni@gmail.com> (raw)
In-Reply-To: <1336162707-3504-1-git-send-email-przanoni@gmail.com>
From: Paulo Zanoni <paulo.r.zanoni@intel.com>
This is not documented anywhere, but it seems necessary to make the
InfoFrames work, especially when all you have is an HDMI monitor.
Some bugs get fixed just by running "./intel_infoframes -d". This
patch fixes this problem on my machine.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
---
drivers/gpu/drm/i915/intel_hdmi.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 1eef50d..8646a50 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -113,6 +113,20 @@ static u32 intel_infoframe_flags(struct dip_infoframe *frame)
return flags;
}
+static u32 intel_get_dip_ctl_reg(struct drm_encoder *encoder)
+{
+ struct drm_device *dev = encoder->dev;
+ struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc);
+
+ if (!HAS_PCH_SPLIT(dev)) {
+ return VIDEO_DIP_CTL;
+ } else if (IS_VALLEYVIEW(dev)) {
+ return VLV_TVIDEO_DIP_CTL(intel_crtc->pipe);
+ } else {
+ return TVIDEO_DIP_CTL(intel_crtc->pipe);
+ }
+}
+
static void i9xx_write_infoframe(struct drm_encoder *encoder,
struct dip_infoframe *frame)
{
@@ -331,6 +345,14 @@ static void intel_hdmi_dpms(struct drm_encoder *encoder, int mode)
I915_WRITE(intel_hdmi->sdvox_reg, temp);
POSTING_READ(intel_hdmi->sdvox_reg);
}
+
+ if ((mode == DRM_MODE_DPMS_ON) && encoder->crtc) {
+ /* We've just enabled the HDMI port. Now we need to touch the
+ * DIP control register to make sure the infoframes are sent.
+ */
+ u32 dip_reg = intel_get_dip_ctl_reg(encoder);
+ I915_WRITE(dip_reg, I915_READ(dip_reg));
+ }
}
static int intel_hdmi_mode_valid(struct drm_connector *connector,
--
1.7.10
next prev parent reply other threads:[~2012-05-04 20:18 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-03 1:55 [PATCH 01/12] drm/i915: enable dip before writing data on gen4 Paulo Zanoni
2012-05-03 1:55 ` [PATCH 02/12] drm/i915: DSL_LINEMASK is 12 bits only on gen2 Paulo Zanoni
2012-05-03 11:55 ` Chris Wilson
2012-05-03 1:55 ` [PATCH 03/12] drm/i915: implement ironlake_wait_for_vblank Paulo Zanoni
2012-05-03 12:00 ` Chris Wilson
2012-05-03 1:55 ` [PATCH 04/12] drm/i915: touch the DIP control register after enabling the HDMI port Paulo Zanoni
2012-05-03 1:55 ` [PATCH 05/12] drm/i915: change coding style of the write_infoframe functions Paulo Zanoni
2012-05-03 1:55 ` [PATCH 06/12] drm/i915: start writing infoframes at address 0 on gen 4 Paulo Zanoni
2012-05-03 1:55 ` [PATCH 07/12] drm/i915: mask the video DIP port select Paulo Zanoni
2012-05-03 20:32 ` Eugeni Dodonov
2012-05-03 1:55 ` [PATCH 08/12] drm/i915: break intel_infoframe_flags into _enable and _index Paulo Zanoni
2012-05-03 20:54 ` Eugeni Dodonov
2012-05-04 14:09 ` Paulo Zanoni
2012-05-03 1:55 ` [PATCH 09/12] drm/i915: disable the infoframe before changing it Paulo Zanoni
2012-05-03 20:42 ` Eugeni Dodonov
2012-05-03 1:55 ` [PATCH 10/12] drm/i915: mask the video DIP frequency when " Paulo Zanoni
2012-05-03 20:42 ` Eugeni Dodonov
2012-05-03 1:55 ` [PATCH 11/12] drm/i915: split ironlake_write_infoframe into ibx_ and cpt_ Paulo Zanoni
2012-05-03 1:55 ` [PATCH 12/12] drm/i915: simplify intel_encoder_commit Paulo Zanoni
2012-05-03 9:41 ` [PATCH 01/12] drm/i915: enable dip before writing data on gen4 Daniel Vetter
2012-05-03 13:46 ` Eugeni Dodonov
2012-05-04 20:18 ` [PATCH 02/14] drm/i915: DSL_LINEMASK is 12 bits only on gen2 Paulo Zanoni
2012-05-04 20:18 ` [PATCH 03/14] drm/i915: implement ironlake_wait_for_vblank Paulo Zanoni
2012-05-08 11:55 ` Daniel Vetter
2012-05-08 12:34 ` Paulo Zanoni
2012-05-08 12:44 ` Daniel Vetter
2012-05-08 12:50 ` Daniel Vetter
2012-05-04 20:18 ` Paulo Zanoni [this message]
2012-05-08 11:59 ` [PATCH 04/14] drm/i915: touch the DIP control register after enabling the HDMI port Daniel Vetter
2012-05-08 12:29 ` Daniel Vetter
2012-05-04 20:18 ` [PATCH 05/14] drm/i915: change coding style of the write_infoframe functions Paulo Zanoni
2012-05-04 20:18 ` [PATCH 06/14] drm/i915: start writing infoframes at address 0 on gen 4 Paulo Zanoni
2012-05-04 20:18 ` [PATCH 07/14] drm/i915: mask the video DIP port select Paulo Zanoni
2012-05-08 12:07 ` Daniel Vetter
2012-05-04 20:18 ` [PATCH 08/14] drm/i915: break intel_infoframe_flags into _enable and _frequency Paulo Zanoni
2012-05-08 12:10 ` Daniel Vetter
2012-05-04 20:18 ` [PATCH 09/14] drm/i915: disable the infoframe before changing it Paulo Zanoni
2012-05-04 20:18 ` [PATCH 10/14] drm/i915: mask the video DIP frequency when " Paulo Zanoni
2012-05-04 20:18 ` [PATCH 11/14] drm/i915: simplify intel_encoder_commit Paulo Zanoni
2012-05-04 20:18 ` [PATCH 12/14] drm/i915: split ironlake_write_infoframe into ibx_ and cpt_ Paulo Zanoni
2012-05-04 20:18 ` [PATCH 13/14] drm/i915: ibx_write_infoframe can disable AVI Paulo Zanoni
2012-05-04 20:36 ` Daniel Vetter
2012-05-04 20:18 ` [PATCH 14/14] drm/i915: set the DIP port on ibx_write_infoframe Paulo Zanoni
2012-05-08 12:51 ` Daniel Vetter
2012-05-08 11:49 ` [PATCH 02/14] drm/i915: DSL_LINEMASK is 12 bits only on gen2 Daniel Vetter
2012-05-08 12: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=1336162707-3504-3-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