xf86-video-intel: 3 commits - src/i830_lvds.c src/i830_memory.c src/xvmc/intel_xvmc.c
Zhenyu Wang
zhen at kemper.freedesktop.org
Sun Jun 15 03:43:04 PDT 2008
src/i830_lvds.c | 28 +++++++++++++++++++++++-----
src/i830_memory.c | 2 ++
src/xvmc/intel_xvmc.c | 2 +-
3 files changed, 26 insertions(+), 6 deletions(-)
New commits:
commit 66418cc99cfd360e303efcdf74a9ee31d435ff15
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date: Thu Jun 12 14:04:41 2008 +0800
Fix compiler warning when disable xvmc config
(cherry picked from commit df0bbdc7cbb6ff357a81ed28d12e56c9c7d643f7)
diff --git a/src/i830_memory.c b/src/i830_memory.c
index 02b1679..6f7d7cc 100644
--- a/src/i830_memory.c
+++ b/src/i830_memory.c
@@ -2023,6 +2023,7 @@ I830CheckAvailableMemory(ScrnInfoPtr pScrn)
return maxPages * 4;
}
+#ifdef INTEL_XVMC
/*
* Allocate memory for MC compensation
*/
@@ -2044,3 +2045,4 @@ Bool i830_allocate_xvmc_buffer(ScrnInfoPtr pScrn, const char *name,
return TRUE;
}
+#endif
commit 078d05865884ca5784b532c0a79c8440632002ac
Author: Shuang He <shuang.he at intel.com>
Date: Mon May 26 09:20:53 2008 +0800
Fix typo in xvmc block destroy
(cherry picked from commit 87ace420a34df7425641d089f71830e44fced098)
diff --git a/src/xvmc/intel_xvmc.c b/src/xvmc/intel_xvmc.c
index ae357aa..0db3ca6 100644
--- a/src/xvmc/intel_xvmc.c
+++ b/src/xvmc/intel_xvmc.c
@@ -588,7 +588,7 @@ Status XvMCCreateBlocks(Display *display, XvMCContext *context,
*/
Status XvMCDestroyBlocks(Display *display, XvMCBlockArray *block)
{
- if (!display || block)
+ if (!display || !block)
return BadValue;
if (block->blocks)
commit 4c4ef27779aebf4df90b6233de05be2bb972de4c
Author: Lukas Hejtmanek <xhejtman at ics.muni.cz>
Date: Mon Jun 16 02:49:41 2008 +0800
Fix maximum backlight issue
diff --git a/src/i830_lvds.c b/src/i830_lvds.c
index 899c6cb..ecb41c9 100644
--- a/src/i830_lvds.c
+++ b/src/i830_lvds.c
@@ -63,6 +63,9 @@ struct i830_lvds_priv {
/* The panel needs dithering enabled */
Bool panel_wants_dither;
+ /* The panel is in DPMS off */
+ Bool dpmsoff;
+
/* restore backlight to this value */
int backlight_duty_cycle;
@@ -334,6 +337,7 @@ i830_lvds_get_backlight_kernel(xf86OutputPtr output)
return 0;
}
+ memset(val, 0, sizeof(val));
if (read(fd, val, BACKLIGHT_VALUE_LEN) == -1)
goto out_err;
@@ -388,6 +392,10 @@ i830SetLVDSPanelPower(xf86OutputPtr output, Bool on)
uint32_t pp_status;
if (on) {
+ /* if we're going from on->on, be aware to current level. */
+ if ((INREG(PP_CONTROL) & POWER_TARGET_ON) && !dev_priv->dpmsoff)
+ dev_priv->backlight_duty_cycle = dev_priv->get_backlight(output);
+
/*
* If we're going from off->on we may need to turn on the backlight.
* We should use the saved value whenever possible, but on some
@@ -405,12 +413,13 @@ i830SetLVDSPanelPower(xf86OutputPtr output, Bool on)
} while ((pp_status & PP_ON) == 0);
dev_priv->set_backlight(output, dev_priv->backlight_duty_cycle);
+ dev_priv->dpmsoff = FALSE;
} else {
/*
* Only save the current backlight value if we're going from
* on to off.
*/
- if (INREG(PP_CONTROL) & POWER_TARGET_ON)
+ if ((INREG(PP_CONTROL) & POWER_TARGET_ON) && !dev_priv->dpmsoff)
dev_priv->backlight_duty_cycle = dev_priv->get_backlight(output);
dev_priv->set_backlight(output, 0);
@@ -418,6 +427,8 @@ i830SetLVDSPanelPower(xf86OutputPtr output, Bool on)
do {
pp_status = INREG(PP_STATUS);
} while (pp_status & PP_ON);
+
+ dev_priv->dpmsoff = TRUE;
}
}
@@ -447,7 +458,8 @@ i830_lvds_save (xf86OutputPtr output)
pI830->savePP_CONTROL = INREG(PP_CONTROL);
pI830->savePP_CYCLE = INREG(PP_CYCLE);
pI830->saveBLC_PWM_CTL = INREG(BLC_PWM_CTL);
- dev_priv->backlight_duty_cycle = dev_priv->get_backlight(output);
+ if ((INREG(PP_CONTROL) & POWER_TARGET_ON) && !dev_priv->dpmsoff)
+ dev_priv->backlight_duty_cycle = dev_priv->get_backlight(output);
}
static void
@@ -1081,7 +1093,10 @@ i830_lvds_set_property(xf86OutputPtr output, Atom property,
"RRConfigureOutputProperty error, %d\n", ret);
}
/* Set the current value of the backlight property */
- data = dev_priv->get_backlight(output);
+ if ((INREG(PP_CONTROL) & POWER_TARGET_ON) && !dev_priv->dpmsoff)
+ data = dev_priv->get_backlight(output);
+ else
+ data = dev_priv->backlight_duty_cycle;
ret = RRChangeOutputProperty(output->randr_output, backlight_atom,
XA_INTEGER, 32, PropModeReplace, 1, &data,
FALSE, TRUE);
@@ -1140,8 +1155,11 @@ i830_lvds_get_property(xf86OutputPtr output, Atom property)
*/
if (property == backlight_atom) {
int val;
- val = dev_priv->get_backlight(output);
- dev_priv->backlight_duty_cycle = val;
+ if ((INREG(PP_CONTROL) & POWER_TARGET_ON) && !dev_priv->dpmsoff) {
+ val = dev_priv->get_backlight(output);
+ dev_priv->backlight_duty_cycle = val;
+ } else
+ val = dev_priv->backlight_duty_cycle;
ret = RRChangeOutputProperty(output->randr_output, backlight_atom,
XA_INTEGER, 32, PropModeReplace, 1, &val,
FALSE, TRUE);
More information about the xorg-commit
mailing list