summaryrefslogtreecommitdiff
path: root/linux-core/intel_sdvo.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_sdvo.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_sdvo.c')
-rw-r--r--linux-core/intel_sdvo.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/linux-core/intel_sdvo.c b/linux-core/intel_sdvo.c
index ba6fe9a8..41da034d 100644
--- a/linux-core/intel_sdvo.c
+++ b/linux-core/intel_sdvo.c
@@ -972,18 +972,21 @@ static void intel_sdvo_destroy(struct drm_output *output)
}
}
-static const struct drm_output_funcs intel_sdvo_output_funcs = {
- .dpms = intel_sdvo_dpms,
- .save = intel_sdvo_save,
- .restore = intel_sdvo_restore,
- .mode_valid = intel_sdvo_mode_valid,
+static const struct drm_output_helper_funcs intel_sdvo_helper_funcs = {
.mode_fixup = intel_sdvo_mode_fixup,
.prepare = intel_output_prepare,
.mode_set = intel_sdvo_mode_set,
.commit = intel_output_commit,
+};
+
+static const struct drm_output_funcs intel_sdvo_output_funcs = {
+ .dpms = intel_sdvo_dpms,
+ .save = intel_sdvo_save,
+ .restore = intel_sdvo_restore,
.detect = intel_sdvo_detect,
.get_modes = intel_sdvo_get_modes,
- .cleanup = intel_sdvo_destroy
+ .cleanup = intel_sdvo_destroy,
+ .mode_valid = intel_sdvo_mode_valid,
};
void intel_sdvo_init(struct drm_device *dev, int output_device)
@@ -1010,6 +1013,7 @@ void intel_sdvo_init(struct drm_device *dev, int output_device)
sdvo_priv = (struct intel_sdvo_priv *)(intel_output + 1);
intel_output->type = INTEL_OUTPUT_SDVO;
+ drm_output_helper_add(output, &intel_sdvo_helper_funcs);
output->driver_private = intel_output;
output->interlace_allowed = 0;
output->doublescan_allowed = 0;