Re: [Intel-gfx] [PATCH] gpu/drm/i915: Don't disable panel for modesetting if pfit hasn't changed

2010-09-08 Thread Matthew Garrett
On Tue, May 18, 2010 at 01:12:32PM -0700, Jesse Barnes wrote:
 On Tue, 18 May 2010 13:53:16 -0400
 Matthew Garrett m...@redhat.com wrote:
 
  It seems to be possible to program a new mode without disabling the panel
  if the panel fitter setup doesn't change. Add support for that.
  
  Signed-off-by: Matthew Garrett m...@redhat.com
  ---
   drivers/gpu/drm/i915/intel_lvds.c |   22 --
   1 files changed, 20 insertions(+), 2 deletions(-)
 
 Looks good, we should get it upstream early in this cycle to get it
 some test coverage.  If it doesn't work out it's easy to revert.

It doesn't look like this got merged?

-- 
Matthew Garrett | mj...@srcf.ucam.org
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] gpu/drm/i915: Don't disable panel for modesetting if pfit hasn't changed

2010-05-18 Thread Matthew Garrett
It seems to be possible to program a new mode without disabling the panel
if the panel fitter setup doesn't change. Add support for that.

Signed-off-by: Matthew Garrett m...@redhat.com
---
 drivers/gpu/drm/i915/intel_lvds.c |   22 --
 1 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_lvds.c 
b/drivers/gpu/drm/i915/intel_lvds.c
index b66806a..1da0030 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -84,6 +84,16 @@ static u32 intel_lvds_get_max_backlight(struct drm_device 
*dev)
BACKLIGHT_MODULATION_FREQ_SHIFT) * 2;
 }
 
+static void intel_lvds_lock_panel(struct drm_device *dev, bool lock)
+{
+   struct drm_i915_private *dev_priv = dev-dev_private;
+
+   if (lock)
+   I915_WRITE(PP_CONTROL, I915_READ(PP_CONTROL)  0x3);
+   else
+   I915_WRITE(PP_CONTROL, I915_READ(PP_CONTROL) | (0xabcd  16));
+}
+
 /**
  * Sets the power state for the panel.
  */
@@ -555,6 +565,8 @@ static void intel_lvds_prepare(struct drm_encoder *encoder)
 {
struct drm_device *dev = encoder-dev;
struct drm_i915_private *dev_priv = dev-dev_private;
+   struct intel_encoder *intel_encoder = enc_to_intel_encoder(encoder);
+   struct intel_lvds_priv *lvds_priv = intel_encoder-dev_priv;
u32 reg;
 
if (HAS_PCH_SPLIT(dev))
@@ -566,7 +578,10 @@ static void intel_lvds_prepare(struct drm_encoder *encoder)
dev_priv-backlight_duty_cycle = (dev_priv-saveBLC_PWM_CTL 
   BACKLIGHT_DUTY_CYCLE_MASK);
 
-   intel_lvds_set_power(dev, false);
+   if (lvds_priv-pfit_control == I915_READ(PFIT_CONTROL))
+   intel_lvds_lock_panel(dev, false);
+   else
+   intel_lvds_set_power(dev, false);
 }
 
 static void intel_lvds_commit( struct drm_encoder *encoder)
@@ -578,7 +593,10 @@ static void intel_lvds_commit( struct drm_encoder *encoder)
dev_priv-backlight_duty_cycle =
intel_lvds_get_max_backlight(dev);
 
-   intel_lvds_set_power(dev, true);
+   if ((I915_READ(PP_CONTROL)  (0xabcd  16)) == (0xabcd  16))
+   intel_lvds_lock_panel(dev, true);
+   else
+   intel_lvds_set_power(dev, true);
 }
 
 static void intel_lvds_mode_set(struct drm_encoder *encoder,
-- 
1.6.5.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] gpu/drm/i915: Don't disable panel for modesetting if pfit hasn't changed

2010-05-18 Thread Jesse Barnes
On Tue, 18 May 2010 13:53:16 -0400
Matthew Garrett m...@redhat.com wrote:

 It seems to be possible to program a new mode without disabling the panel
 if the panel fitter setup doesn't change. Add support for that.
 
 Signed-off-by: Matthew Garrett m...@redhat.com
 ---
  drivers/gpu/drm/i915/intel_lvds.c |   22 --
  1 files changed, 20 insertions(+), 2 deletions(-)

Looks good, we should get it upstream early in this cycle to get it
some test coverage.  If it doesn't work out it's easy to revert.

Acked-by: Jesse Barnes jbar...@virtuousgeek.org

-- 
Jesse Barnes, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx