From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: Re: [PATCH 20/24] drm/i915: add support for DDI-controlled digital outputs Date: Mon, 30 Apr 2012 17:28:49 -0700 Message-ID: <20120430172849.6c79039a@jbarnes-desktop> References: <1335464479-648-1-git-send-email-eugeni.dodonov@intel.com> <1335464479-648-21-git-send-email-eugeni.dodonov@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from oproxy9.bluehost.com (oproxy9.bluehost.com [69.89.24.6]) by gabe.freedesktop.org (Postfix) with SMTP id 1607EA024F for ; Mon, 30 Apr 2012 17:28:51 -0700 (PDT) In-Reply-To: <1335464479-648-21-git-send-email-eugeni.dodonov@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Eugeni Dodonov Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Thu, 26 Apr 2012 15:21:15 -0300 Eugeni Dodonov wrote: > Those are driven by DDIs on Haswell architecture, so we need to keep track > of which DDI is being used on each output. > > Signed-off-by: Eugeni Dodonov > --- > drivers/gpu/drm/i915/intel_hdmi.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c > index d73a16c..06ff2d8 100644 > --- a/drivers/gpu/drm/i915/intel_hdmi.c > +++ b/drivers/gpu/drm/i915/intel_hdmi.c > @@ -41,6 +41,7 @@ struct intel_hdmi { > struct intel_encoder base; > u32 sdvox_reg; > int ddc_bus; > + int ddi_port; > uint32_t color_range; > bool has_hdmi_sink; > bool has_audio; > @@ -606,6 +607,24 @@ void intel_hdmi_init(struct drm_device *dev, int sdvox_reg) > intel_encoder->clone_mask = (1 << INTEL_HDMIF_CLONE_BIT); > intel_hdmi->ddc_bus = GMBUS_PORT_DPD; > dev_priv->hotplug_supported_mask |= HDMID_HOTPLUG_INT_STATUS; > + } else if (sdvox_reg == DDI_BUF_CTL(PORT_B)) { > + DRM_DEBUG_DRIVER("LPT: detected output on DDI B\n"); > + intel_encoder->clone_mask = (1 << INTEL_HDMIB_CLONE_BIT); > + intel_hdmi->ddc_bus = GMBUS_PORT_DPB; > + intel_hdmi->ddi_port = PORT_B; > + dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS; > + } else if (sdvox_reg == DDI_BUF_CTL(PORT_C)) { > + DRM_DEBUG_DRIVER("LPT: detected output on DDI C\n"); > + intel_encoder->clone_mask = (1 << INTEL_HDMIC_CLONE_BIT); > + intel_hdmi->ddc_bus = GMBUS_PORT_DPC; > + intel_hdmi->ddi_port = PORT_C; > + dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS; > + } else if (sdvox_reg == DDI_BUF_CTL(PORT_D)) { > + DRM_DEBUG_DRIVER("LPT: detected output on DDI D\n"); > + intel_encoder->clone_mask = (1 << INTEL_HDMID_CLONE_BIT); > + intel_hdmi->ddc_bus = GMBUS_PORT_DPD; > + intel_hdmi->ddi_port = PORT_D; > + dev_priv->hotplug_supported_mask |= HDMID_HOTPLUG_INT_STATUS; > } else { > DRM_ERROR("Unknown sdvox register on HDMI init: %x\n", sdvox_reg); > } I think this'll work unless we want to split out the accessor functions some more. Reviewed-by: Jesse Barnes -- Jesse Barnes, Intel Open Source Technology Center