|
@@ -406,6 +406,18 @@ intel_dvo_get_current_mode(struct drm_connector *connector)
|
|
|
return mode;
|
|
|
}
|
|
|
|
|
|
+static char intel_dvo_port_name(i915_reg_t dvo_reg)
|
|
|
+{
|
|
|
+ if (i915_mmio_reg_equal(dvo_reg, DVOA))
|
|
|
+ return 'A';
|
|
|
+ else if (i915_mmio_reg_equal(dvo_reg, DVOB))
|
|
|
+ return 'B';
|
|
|
+ else if (i915_mmio_reg_equal(dvo_reg, DVOC))
|
|
|
+ return 'C';
|
|
|
+ else
|
|
|
+ return '?';
|
|
|
+}
|
|
|
+
|
|
|
void intel_dvo_init(struct drm_device *dev)
|
|
|
{
|
|
|
struct drm_i915_private *dev_priv = dev->dev_private;
|
|
@@ -428,8 +440,6 @@ void intel_dvo_init(struct drm_device *dev)
|
|
|
intel_dvo->attached_connector = intel_connector;
|
|
|
|
|
|
intel_encoder = &intel_dvo->base;
|
|
|
- drm_encoder_init(dev, &intel_encoder->base,
|
|
|
- &intel_dvo_enc_funcs, encoder_type, NULL);
|
|
|
|
|
|
intel_encoder->disable = intel_disable_dvo;
|
|
|
intel_encoder->enable = intel_enable_dvo;
|
|
@@ -496,6 +506,10 @@ void intel_dvo_init(struct drm_device *dev)
|
|
|
if (!dvoinit)
|
|
|
continue;
|
|
|
|
|
|
+ drm_encoder_init(dev, &intel_encoder->base,
|
|
|
+ &intel_dvo_enc_funcs, encoder_type,
|
|
|
+ "DVO %c", intel_dvo_port_name(dvo->dvo_reg));
|
|
|
+
|
|
|
intel_encoder->type = INTEL_OUTPUT_DVO;
|
|
|
intel_encoder->crtc_mask = (1 << 0) | (1 << 1);
|
|
|
switch (dvo->type) {
|