summaryrefslogtreecommitdiff
path: root/linux-core/drm_crtc.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/drm_crtc.c
parent1c4b25a2b1c31df190eab173128702d1b5871906 (diff)
drm: attach an encoder.
Time to do some renaming on the connectors I think
Diffstat (limited to 'linux-core/drm_crtc.c')
-rw-r--r--linux-core/drm_crtc.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/linux-core/drm_crtc.c b/linux-core/drm_crtc.c
index 400df98e..bb527413 100644
--- a/linux-core/drm_crtc.c
+++ b/linux-core/drm_crtc.c
@@ -77,7 +77,7 @@ static struct drm_prop_enum_list drm_conn_enum_list[] =
};
static struct drm_prop_enum_list drm_output_enum_list[] =
{ { DRM_MODE_OUTPUT_NONE, "None" },
- { DRM_MODE_OUTPUT_DAC, "DAC" },
+ { DRM_MODE_OUTPUT_VGA, "VGA" },
{ DRM_MODE_OUTPUT_TMDS, "TMDS" },
{ DRM_MODE_OUTPUT_LVDS, "LVDS" },
{ DRM_MODE_OUTPUT_TVDAC, "TV" },
@@ -541,11 +541,13 @@ EXPORT_SYMBOL(drm_output_cleanup);
void drm_encoder_init(struct drm_device *dev,
struct drm_encoder *encoder,
+ const struct drm_encoder_funcs *funcs,
int encoder_type)
{
encoder->dev = dev;
encoder->id = drm_idr_get(dev, encoder);
encoder->encoder_type = encoder_type;
+ encoder->funcs = funcs;
mutex_lock(&dev->mode_config.mutex);
list_add_tail(&encoder->head, &dev->mode_config.encoder_list);
@@ -791,6 +793,10 @@ void drm_mode_config_cleanup(struct drm_device *dev)
struct drm_framebuffer *fb, *fbt;
struct drm_property *property, *pt;
+ list_for_each_entry_safe(encoder, enct, &dev->mode_config.encoder_list, head) {
+ encoder->funcs->destroy(encoder);
+ }
+
list_for_each_entry_safe(output, ot, &dev->mode_config.output_list, head) {
drm_sysfs_output_remove(output);
output->funcs->destroy(output);
@@ -808,10 +814,6 @@ void drm_mode_config_cleanup(struct drm_device *dev)
dev->driver->fb_remove(dev, fb);
}
- list_for_each_entry_safe(encoder, enct, &dev->mode_config.encoder_list, head) {
- encoder->funcs->destroy(encoder);
- }
-
list_for_each_entry_safe(crtc, ct, &dev->mode_config.crtc_list, head) {
crtc->funcs->destroy(crtc);
}