summaryrefslogtreecommitdiffstats
path: root/drivers/staging/gma500/psb_intel_lvds.c
diff options
context:
space:
mode:
authorAlan Cox <alan@linux.intel.com>2011-07-05 15:38:40 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2011-07-05 08:20:40 -0700
commit6a7afe3acc4bfa54b1433b7f6b5b467ec05ee15b (patch)
tree86e369afb6494bf0819e5869c0b1acd64a96051b /drivers/staging/gma500/psb_intel_lvds.c
parent92367fe1bca91efa7f689127ba45080d4303d609 (diff)
downloadop-kernel-dev-6a7afe3acc4bfa54b1433b7f6b5b467ec05ee15b.zip
op-kernel-dev-6a7afe3acc4bfa54b1433b7f6b5b467ec05ee15b.tar.gz
gma500: continue abstracting platform specific code
Next obvious target - backlight support Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/gma500/psb_intel_lvds.c')
-rw-r--r--drivers/staging/gma500/psb_intel_lvds.c31
1 files changed, 17 insertions, 14 deletions
diff --git a/drivers/staging/gma500/psb_intel_lvds.c b/drivers/staging/gma500/psb_intel_lvds.c
index 850d07d..41b96d2 100644
--- a/drivers/staging/gma500/psb_intel_lvds.c
+++ b/drivers/staging/gma500/psb_intel_lvds.c
@@ -575,11 +575,12 @@ int psb_intel_lvds_set_property(struct drm_connector *connector,
struct drm_property *property,
uint64_t value)
{
- struct drm_encoder *pEncoder = connector->encoder;
+ struct drm_encoder *encoder = connector->encoder;
+ struct drm_psb_private *dev_priv = encoder->dev->dev_private;
- if (!strcmp(property->name, "scaling mode") && pEncoder) {
+ if (!strcmp(property->name, "scaling mode") && encoder) {
struct psb_intel_crtc *pPsbCrtc =
- to_psb_intel_crtc(pEncoder->crtc);
+ to_psb_intel_crtc(encoder->crtc);
uint64_t curValue;
if (!pPsbCrtc)
@@ -611,29 +612,31 @@ int psb_intel_lvds_set_property(struct drm_connector *connector,
if (pPsbCrtc->saved_mode.hdisplay != 0 &&
pPsbCrtc->saved_mode.vdisplay != 0) {
- if (!drm_crtc_helper_set_mode(pEncoder->crtc,
+ if (!drm_crtc_helper_set_mode(encoder->crtc,
&pPsbCrtc->saved_mode,
- pEncoder->crtc->x,
- pEncoder->crtc->y,
- pEncoder->crtc->fb))
+ encoder->crtc->x,
+ encoder->crtc->y,
+ encoder->crtc->fb))
goto set_prop_error;
}
- } else if (!strcmp(property->name, "backlight") && pEncoder) {
+ } else if (!strcmp(property->name, "backlight") && encoder) {
if (drm_connector_property_set_value(connector,
property,
value))
goto set_prop_error;
else {
#ifdef CONFIG_BACKLIGHT_CLASS_DEVICE
- struct backlight_device bd;
- bd.props.brightness = value;
- psb_set_brightness(&bd);
+ struct backlight_device *bd = dev_priv->backlight_device;
+ if (bd) {
+ bd->props.brightness = value;
+ backlight_update_status(bd);
+ }
#endif
}
- } else if (!strcmp(property->name, "DPMS") && pEncoder) {
+ } else if (!strcmp(property->name, "DPMS") && encoder) {
struct drm_encoder_helper_funcs *pEncHFuncs
- = pEncoder->helper_private;
- pEncHFuncs->dpms(pEncoder, value);
+ = encoder->helper_private;
+ pEncHFuncs->dpms(encoder, value);
}
set_prop_done:
OpenPOWER on IntegriCloud