| From b2e4342340619e75727176da4002db22418a2d8d Mon Sep 17 00:00:00 2001 |
| From: Daniel Vetter <daniel.vetter@ffwll.ch> |
| Date: Wed, 10 Apr 2013 23:28:35 +0200 |
| Subject: drm/i915: don't setup hdmi for port D edp in ddi_init |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| dp_init_connector adjusts the encoder type if it is a eDP panel. Use |
| that to decide whether we should set up a hdmi connector or not. |
| |
| To do so reorder the hdmi connector setup sequence in ddi_init a bit. |
| |
| Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> |
| Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> |
| (cherry picked from commit 21a8e6a4853b2ed39fa4c5188a710f2cf1b92026) |
| [dbasehore: Removed unused variable to solve conflict] |
| Signed-off-by: Derek Basehore <dbasehore@chromium.org> |
| |
| Conflicts: |
| drivers/gpu/drm/i915/intel_ddi.c |
| Signed-off-by: Darren Hart <dvhart@linux.intel.com> |
| --- |
| drivers/gpu/drm/i915/intel_ddi.c | 23 +++++++++++------------ |
| 1 file changed, 11 insertions(+), 12 deletions(-) |
| |
| --- a/drivers/gpu/drm/i915/intel_ddi.c |
| +++ b/drivers/gpu/drm/i915/intel_ddi.c |
| @@ -1496,16 +1496,6 @@ void intel_ddi_init(struct drm_device *d |
| return; |
| } |
| |
| - if (port != PORT_A) { |
| - hdmi_connector = kzalloc(sizeof(struct intel_connector), |
| - GFP_KERNEL); |
| - if (!hdmi_connector) { |
| - kfree(dp_connector); |
| - kfree(intel_dig_port); |
| - return; |
| - } |
| - } |
| - |
| intel_encoder = &intel_dig_port->base; |
| encoder = &intel_encoder->base; |
| |
| @@ -1533,7 +1523,16 @@ void intel_ddi_init(struct drm_device *d |
| intel_encoder->cloneable = false; |
| intel_encoder->hot_plug = intel_ddi_hot_plug; |
| |
| - if (hdmi_connector) |
| - intel_hdmi_init_connector(intel_dig_port, hdmi_connector); |
| intel_dp_init_connector(intel_dig_port, dp_connector); |
| + |
| + if (intel_encoder->type != INTEL_OUTPUT_EDP) { |
| + hdmi_connector = kzalloc(sizeof(struct intel_connector), |
| + GFP_KERNEL); |
| + if (!hdmi_connector) { |
| + return; |
| + } |
| + |
| + intel_dig_port->hdmi.hdmi_reg = DDI_BUF_CTL(port); |
| + intel_hdmi_init_connector(intel_dig_port, hdmi_connector); |
| + } |
| } |