Skip to content

Commit

Permalink
gma500: Use the mrst helpers and power control for mode commit
Browse files Browse the repository at this point in the history
We want to hit the MM panel backlight when appropriate

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Alan Cox authored and Greg Kroah-Hartman committed Jul 15, 2011
1 parent 83c871e commit f75c753
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 6 deletions.
29 changes: 27 additions & 2 deletions drivers/staging/gma500/mrst_lvds.c
Original file line number Diff line number Diff line change
Expand Up @@ -147,13 +147,38 @@ static void mrst_lvds_mode_set(struct drm_encoder *encoder,
gma_power_end(dev);
}

static void mrst_lvds_prepare(struct drm_encoder *encoder)
{
struct drm_device *dev = encoder->dev;
struct psb_intel_output *output = enc_to_psb_intel_output(encoder);

if (!gma_power_begin(dev, true))
return;

mode_dev->saveBLC_PWM_CTL = REG_READ(BLC_PWM_CTL);
mode_dev->backlight_duty_cycle = (mode_dev->saveBLC_PWM_CTL &
BACKLIGHT_DUTY_CYCLE_MASK);
mrst_lvds_set_power(dev, output, false);
gma_power_end(dev);
}

static void mrst_lvds_commit(struct drm_encoder *encoder)
{
struct drm_device *dev = encoder->dev;
struct psb_intel_output *output = enc_to_psb_intel_output(encoder);

if (mode_dev->backlight_duty_cycle == 0)
mode_dev->backlight_duty_cycle =
psb_intel_lvds_get_max_backlight(dev);
mrst_lvds_set_power(dev, output, true);
}

static const struct drm_encoder_helper_funcs mrst_lvds_helper_funcs = {
.dpms = mrst_lvds_dpms,
.mode_fixup = psb_intel_lvds_mode_fixup,
.prepare = psb_intel_lvds_prepare,
.prepare = mrst_intel_lvds_prepare,
.mode_set = mrst_lvds_mode_set,
.commit = psb_intel_lvds_commit,
.commit = mrst_intel_lvds_commit,
};

static struct drm_display_mode lvds_configuration_modes[] = {
Expand Down
2 changes: 0 additions & 2 deletions drivers/staging/gma500/psb_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -792,8 +792,6 @@ extern const struct drm_crtc_helper_funcs psb_intel_helper_funcs;
extern const struct drm_crtc_funcs psb_intel_crtc_funcs;

/* psb_intel_lvds.c */
extern void psb_intel_lvds_prepare(struct drm_encoder *encoder);
extern void psb_intel_lvds_commit(struct drm_encoder *encoder);
extern const struct drm_connector_helper_funcs
psb_intel_lvds_connector_helper_funcs;
extern const struct drm_connector_funcs psb_intel_lvds_connector_funcs;
Expand Down
4 changes: 2 additions & 2 deletions drivers/staging/gma500/psb_intel_lvds.c
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,7 @@ bool psb_intel_lvds_mode_fixup(struct drm_encoder *encoder,
return true;
}

void psb_intel_lvds_prepare(struct drm_encoder *encoder)
static void psb_intel_lvds_prepare(struct drm_encoder *encoder)
{
struct drm_device *dev = encoder->dev;
struct psb_intel_output *output = enc_to_psb_intel_output(encoder);
Expand All @@ -450,7 +450,7 @@ void psb_intel_lvds_prepare(struct drm_encoder *encoder)
gma_power_end(dev);
}

void psb_intel_lvds_commit(struct drm_encoder *encoder)
static void psb_intel_lvds_commit(struct drm_encoder *encoder)
{
struct drm_device *dev = encoder->dev;
struct psb_intel_output *output = enc_to_psb_intel_output(encoder);
Expand Down

0 comments on commit f75c753

Please sign in to comment.