summaryrefslogtreecommitdiffstats
path: root/meta-moblin/packages/linux/linux-moblin-2.6.31.5/linux-2.6.31-drm-i915-opregion.patch
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-01-26 15:59:18 +0000
committerRichard Purdie <rpurdie@linux.intel.com>2010-01-26 15:59:18 +0000
commit684d263e75a6a7ede638afa60e35a238e24c12ba (patch)
tree5ab1d38848909494b693e31d0a29659bcaa365e4 /meta-moblin/packages/linux/linux-moblin-2.6.31.5/linux-2.6.31-drm-i915-opregion.patch
parent3a32c2c6e9d1d9823971a17c0ee8f8839bd79b1f (diff)
downloadpoky-684d263e75a6a7ede638afa60e35a238e24c12ba.tar.gz
linux-moblin: Add 2.6.31.5
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta-moblin/packages/linux/linux-moblin-2.6.31.5/linux-2.6.31-drm-i915-opregion.patch')
-rw-r--r--meta-moblin/packages/linux/linux-moblin-2.6.31.5/linux-2.6.31-drm-i915-opregion.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/meta-moblin/packages/linux/linux-moblin-2.6.31.5/linux-2.6.31-drm-i915-opregion.patch b/meta-moblin/packages/linux/linux-moblin-2.6.31.5/linux-2.6.31-drm-i915-opregion.patch
new file mode 100644
index 0000000000..a9b5e03cec
--- /dev/null
+++ b/meta-moblin/packages/linux/linux-moblin-2.6.31.5/linux-2.6.31-drm-i915-opregion.patch
@@ -0,0 +1,43 @@
1diff --git a/drivers/gpu/drm/i915/i915_opregion.c b/drivers/gpu/drm/i915/i915_opregion.c
2index e4b4e88..2d51935 100644
3--- a/drivers/gpu/drm/i915/i915_opregion.c
4+++ b/drivers/gpu/drm/i915/i915_opregion.c
5@@ -148,6 +148,7 @@ static u32 asle_set_backlight(struct drm_device *dev, u32 bclp)
6 struct drm_i915_private *dev_priv = dev->dev_private;
7 struct opregion_asle *asle = dev_priv->opregion.asle;
8 u32 blc_pwm_ctl, blc_pwm_ctl2;
9+ u32 max_backlight, level, shift;
10
11 if (!(bclp & ASLE_BCLP_VALID))
12 return ASLE_BACKLIGHT_FAIL;
13@@ -157,14 +158,25 @@ static u32 asle_set_backlight(struct drm_device *dev, u32 bclp)
14 return ASLE_BACKLIGHT_FAIL;
15
16 blc_pwm_ctl = I915_READ(BLC_PWM_CTL);
17- blc_pwm_ctl &= ~BACKLIGHT_DUTY_CYCLE_MASK;
18 blc_pwm_ctl2 = I915_READ(BLC_PWM_CTL2);
19
20- if (blc_pwm_ctl2 & BLM_COMBINATION_MODE)
21+ if (IS_I965G(dev) && (blc_pwm_ctl2 & BLM_COMBINATION_MODE))
22 pci_write_config_dword(dev->pdev, PCI_LBPC, bclp);
23- else
24- I915_WRITE(BLC_PWM_CTL, blc_pwm_ctl | ((bclp * 0x101)-1));
25-
26+ else {
27+ if (IS_IGD(dev)) {
28+ blc_pwm_ctl &= ~(BACKLIGHT_DUTY_CYCLE_MASK - 1);
29+ max_backlight = (blc_pwm_ctl & BACKLIGHT_MODULATION_FREQ_MASK) >>
30+ BACKLIGHT_MODULATION_FREQ_SHIFT;
31+ shift = BACKLIGHT_DUTY_CYCLE_SHIFT + 1;
32+ } else {
33+ blc_pwm_ctl &= ~BACKLIGHT_DUTY_CYCLE_MASK;
34+ max_backlight = ((blc_pwm_ctl & BACKLIGHT_MODULATION_FREQ_MASK) >>
35+ BACKLIGHT_MODULATION_FREQ_SHIFT) * 2;
36+ shift = BACKLIGHT_DUTY_CYCLE_SHIFT;
37+ }
38+ level = (bclp * max_backlight) / 255;
39+ I915_WRITE(BLC_PWM_CTL, blc_pwm_ctl | (level << shift));
40+ }
41 asle->cblv = (bclp*0x64)/0xff | ASLE_CBLV_VALID;
42
43 return 0;