summaryrefslogtreecommitdiff
path: root/linux-core/intel_crt.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2008-05-30 13:57:27 +1000
committerDave Airlie <airlied@redhat.com>2008-05-30 13:57:27 +1000
commit6aeef92c0cad784a5019ea90d97ab81f4e51fdd9 (patch)
tree51b7cb6c9e5d049a28242d78d11ac774fb85b3ed /linux-core/intel_crt.c
parent1c4b25a2b1c31df190eab173128702d1b5871906 (diff)
drm: attach an encoder.
Time to do some renaming on the connectors I think
Diffstat (limited to 'linux-core/intel_crt.c')
-rw-r--r--linux-core/intel_crt.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/linux-core/intel_crt.c b/linux-core/intel_crt.c
index 584dea21..44035783 100644
--- a/linux-core/intel_crt.c
+++ b/linux-core/intel_crt.c
@@ -242,6 +242,15 @@ static const struct drm_output_funcs intel_crt_output_funcs = {
};
+void intel_crt_enc_destroy(struct drm_encoder *encoder)
+{
+ drm_encoder_cleanup(encoder);
+}
+
+static const struct drm_encoder_funcs intel_crt_enc_funcs = {
+ .destroy = intel_crt_enc_destroy,
+};
+
void intel_crt_init(struct drm_device *dev)
{
struct drm_output *output;
@@ -252,7 +261,11 @@ void intel_crt_init(struct drm_device *dev)
return;
output = &intel_output->base;
- drm_output_init(dev, &intel_output->base, &intel_crt_output_funcs, DRM_MODE_OUTPUT_DAC);
+ drm_output_init(dev, &intel_output->base, &intel_crt_output_funcs, DRM_MODE_OUTPUT_VGA);
+
+ drm_encoder_init(dev, &intel_output->enc, &intel_crt_enc_funcs, DRM_MODE_ENCODER_DAC);
+
+ drm_mode_output_attach_encoder(&intel_output->base, &intel_output->enc);
/* Set up the DDC bus. */
intel_output->ddc_bus = intel_i2c_create(dev, GPIOA, "CRTDDC_A");
@@ -268,7 +281,6 @@ void intel_crt_init(struct drm_device *dev)
output->doublescan_allowed = 0;
drm_output_helper_add(output, &intel_crt_helper_funcs);
- drm_sysfs_output_add(output);
- drm_output_attach_property(output, dev->mode_config.connector_type_property, ConnectorVGA);
+ drm_sysfs_output_add(output);
}