summaryrefslogtreecommitdiff
path: root/linux-core/intel_lvds.c
diff options
context:
space:
mode:
authorAlan Hourihane <alanh@fairlite.demon.co.uk>2007-04-18 11:55:09 +0100
committerAlan Hourihane <alanh@fairlite.demon.co.uk>2007-04-18 11:55:09 +0100
commitef2bce3a16428feb89f447e528bdea00c1066b8b (patch)
tree7a7fcabf3a490200acd6da22c393df994bcbf9a3 /linux-core/intel_lvds.c
parent51e867c57880c85c87e187af0a667e9b99413206 (diff)
parent20b2949e3738bc900407d6aeddc6338f05b0b169 (diff)
Merge remote branch 'origin/modesetting-101' into modesetting-101
Diffstat (limited to 'linux-core/intel_lvds.c')
-rw-r--r--linux-core/intel_lvds.c31
1 files changed, 27 insertions, 4 deletions
diff --git a/linux-core/intel_lvds.c b/linux-core/intel_lvds.c
index db025417..34ed6a9d 100644
--- a/linux-core/intel_lvds.c
+++ b/linux-core/intel_lvds.c
@@ -209,6 +209,30 @@ static bool intel_lvds_mode_fixup(struct drm_output *output,
return true;
}
+static void intel_lvds_prepare(struct drm_output *output)
+{
+ struct drm_device *dev = output->dev;
+ drm_i915_private_t *dev_priv = dev->dev_private;
+
+ dev_priv->saveBLC_PWM_CTL = I915_READ(BLC_PWM_CTL);
+ dev_priv->backlight_duty_cycle = (dev_priv->saveBLC_PWM_CTL &
+ BACKLIGHT_DUTY_CYCLE_MASK);
+
+ intel_lvds_set_power(dev, false);
+}
+
+static void intel_lvds_commit( struct drm_output *output)
+{
+ struct drm_device *dev = output->dev;
+ drm_i915_private_t *dev_priv = dev->dev_private;
+
+ if (dev_priv->backlight_duty_cycle == 0)
+ dev_priv->backlight_duty_cycle =
+ intel_lvds_get_max_backlight(dev);
+
+ intel_lvds_set_power(dev, true);
+}
+
static void intel_lvds_mode_set(struct drm_output *output,
struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode)
@@ -321,9 +345,9 @@ static const struct drm_output_funcs intel_lvds_output_funcs = {
.restore = intel_lvds_restore,
.mode_valid = intel_lvds_mode_valid,
.mode_fixup = intel_lvds_mode_fixup,
- .prepare = intel_output_prepare,
+ .prepare = intel_lvds_prepare,
.mode_set = intel_lvds_mode_set,
- .commit = intel_output_commit,
+ .commit = intel_lvds_commit,
.detect = intel_lvds_detect,
.get_modes = intel_lvds_get_modes,
.cleanup = intel_lvds_destroy
@@ -477,6 +501,5 @@ out:
failed:
DRM_DEBUG("No LVDS modes found, disabling.\n");
- // intel_lvds_destroy(output);
- // drm_output_destroy(output);
+ drm_output_destroy(output); /* calls intel_lvds_destroy above */
}