summaryrefslogtreecommitdiff
path: root/linux-core/intel_lvds.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2008-05-29 14:02:14 +1000
committerDave Airlie <airlied@redhat.com>2008-05-29 14:02:14 +1000
commitdf8cd54286fbae5903d8ede390ec4a11cb6c4b6c (patch)
tree915a1b55354bbd6e2f32f68ecd4d1fde8fb5cae6 /linux-core/intel_lvds.c
parentee5afc63428488c9c39e5ecd7d8cdc646a7b65b7 (diff)
modesetting: reorganise code into core and helper functions.
This splits a lot of the core modesetting code out into a file of helper functions, that are only called from themselves and/or the driver. The driver gets called into more often or can call these functions from itself if it is a helper using driver. I've broken framebuffer resize doing this but I didn't like the API for that in any case.
Diffstat (limited to 'linux-core/intel_lvds.c')
-rw-r--r--linux-core/intel_lvds.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/linux-core/intel_lvds.c b/linux-core/intel_lvds.c
index 6b6d3162..f71dd436 100644
--- a/linux-core/intel_lvds.c
+++ b/linux-core/intel_lvds.c
@@ -332,18 +332,21 @@ static void intel_lvds_destroy(struct drm_output *output)
kfree(output->driver_private);
}
-static const struct drm_output_funcs intel_lvds_output_funcs = {
- .dpms = intel_lvds_dpms,
- .save = intel_lvds_save,
- .restore = intel_lvds_restore,
- .mode_valid = intel_lvds_mode_valid,
+static const struct drm_output_helper_funcs intel_lvds_helper_funcs = {
.mode_fixup = intel_lvds_mode_fixup,
.prepare = intel_lvds_prepare,
.mode_set = intel_lvds_mode_set,
.commit = intel_lvds_commit,
+};
+
+static const struct drm_output_funcs intel_lvds_output_funcs = {
+ .dpms = intel_lvds_dpms,
+ .save = intel_lvds_save,
+ .restore = intel_lvds_restore,
.detect = intel_lvds_detect,
.get_modes = intel_lvds_get_modes,
- .cleanup = intel_lvds_destroy
+ .cleanup = intel_lvds_destroy,
+ .mode_valid = intel_lvds_mode_valid,
};
/**
@@ -375,6 +378,7 @@ void intel_lvds_init(struct drm_device *dev)
}
intel_output->type = INTEL_OUTPUT_LVDS;
+ drm_output_helper_add(output, &intel_lvds_helper_funcs);
output->driver_private = intel_output;
output->display_info.subpixel_order = SubPixelHorizontalRGB;
output->interlace_allowed = FALSE;