diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-09-15 07:03:59 -0400 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-09-15 11:45:25 -0400 |
commit | 373a3cf744c774478f44921c50011b896ab08f9d (patch) | |
tree | 78725e96b9d17190c05baa50a96bf1afdcab0e7f /drivers/gpu/drm/i915/intel_hdmi.c | |
parent | 2f551c84563df2bf144a819993b2d729c66583ee (diff) |
drm/i915: call drm_encoder_init first
Later initialisation of the encoder often requires that
drm_encoder_init() has already been called, for instance, initialiasing
the DDC buses.
Yet another recent regression, as 819f3fb7 depended upon these fixes
which I missed when cherry-picking.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_hdmi.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_hdmi.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c index 93d5b61bf5bd..783924c7682a 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c | |||
@@ -228,6 +228,9 @@ void intel_hdmi_init(struct drm_device *dev, int sdvox_reg) | |||
228 | } | 228 | } |
229 | 229 | ||
230 | intel_encoder = &intel_hdmi->base; | 230 | intel_encoder = &intel_hdmi->base; |
231 | drm_encoder_init(dev, &intel_encoder->base, &intel_hdmi_enc_funcs, | ||
232 | DRM_MODE_ENCODER_TMDS); | ||
233 | |||
231 | connector = &intel_connector->base; | 234 | connector = &intel_connector->base; |
232 | drm_connector_init(dev, connector, &intel_hdmi_connector_funcs, | 235 | drm_connector_init(dev, connector, &intel_hdmi_connector_funcs, |
233 | DRM_MODE_CONNECTOR_HDMIA); | 236 | DRM_MODE_CONNECTOR_HDMIA); |
@@ -272,8 +275,6 @@ void intel_hdmi_init(struct drm_device *dev, int sdvox_reg) | |||
272 | 275 | ||
273 | intel_hdmi->sdvox_reg = sdvox_reg; | 276 | intel_hdmi->sdvox_reg = sdvox_reg; |
274 | 277 | ||
275 | drm_encoder_init(dev, &intel_encoder->base, &intel_hdmi_enc_funcs, | ||
276 | DRM_MODE_ENCODER_TMDS); | ||
277 | drm_encoder_helper_add(&intel_encoder->base, &intel_hdmi_helper_funcs); | 278 | drm_encoder_helper_add(&intel_encoder->base, &intel_hdmi_helper_funcs); |
278 | 279 | ||
279 | intel_connector_attach_encoder(intel_connector, intel_encoder); | 280 | intel_connector_attach_encoder(intel_connector, intel_encoder); |
@@ -291,6 +292,7 @@ void intel_hdmi_init(struct drm_device *dev, int sdvox_reg) | |||
291 | return; | 292 | return; |
292 | 293 | ||
293 | err_connector: | 294 | err_connector: |
295 | drm_encoder_cleanup(&intel_encoder->base); | ||
294 | drm_connector_cleanup(connector); | 296 | drm_connector_cleanup(connector); |
295 | kfree(intel_hdmi); | 297 | kfree(intel_hdmi); |
296 | kfree(intel_connector); | 298 | kfree(intel_connector); |