But disabled by default. This essentially reverts

commit bcd5023c961a44c7149936553b6929b2b233dd27
Author: Dave Airlie <airl...@redhat.com>
Date:   Mon Mar 14 14:17:55 2011 +1000

    drm/i915: disable opregion lid detection for now

but leaves the autodetect mode disabled. There's also the explicit lid
status option added in

commit fca874092597ef946b8f07031d8c31c58b212144
Author: Chris Wilson <ch...@chris-wilson.co.uk>
Date:   Thu Feb 17 13:44:48 2011 +0000

    drm/i915: Add a module parameter to ignore lid status

Which overloaded the meaning for the panel_ignore_lid parameter even
more. To fix up this mess, give the non-negative numbers 0,1 the
original meaning back and use negative numbers to force a given state.
So now we have

1  - disable autodetect, return unknown
0  - enable autodetect
-1 - force to disconnected/lid closed
-2 - force to connected/lid open

v2: My C programmer license has been revoked ...

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=27622
Tested-by: Andreas Sturmlechner <andreas.sturmlech...@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vet...@ffwll.ch>
---
 drivers/gpu/drm/i915/i915_drv.c    |    6 +++---
 drivers/gpu/drm/i915/intel_panel.c |   18 +++++++-----------
 2 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index a3d754d..f5b505a 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -47,11 +47,11 @@ MODULE_PARM_DESC(modeset,
 unsigned int i915_fbpercrtc __always_unused = 0;
 module_param_named(fbpercrtc, i915_fbpercrtc, int, 0400);
 
-int i915_panel_ignore_lid __read_mostly = 0;
+int i915_panel_ignore_lid __read_mostly = 1;
 module_param_named(panel_ignore_lid, i915_panel_ignore_lid, int, 0600);
 MODULE_PARM_DESC(panel_ignore_lid,
-               "Override lid status (0=autodetect [default], 1=lid open, "
-               "-1=lid closed)");
+               "Override lid status (0=autodetect, 1=autodetect disabled 
[default], "
+               "-1=force lid closed, -2=force lid open)");
 
 unsigned int i915_powersave __read_mostly = 1;
 module_param_named(powersave, i915_powersave, int, 0600);
diff --git a/drivers/gpu/drm/i915/intel_panel.c 
b/drivers/gpu/drm/i915/intel_panel.c
index 41d4635..4e77a83 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -275,7 +275,7 @@ static void intel_panel_actually_set_backlight(struct 
drm_device *dev, u32 level
        }
 
        tmp = I915_READ(BLC_PWM_CTL);
-       if (INTEL_INFO(dev)->gen < 4) 
+       if (INTEL_INFO(dev)->gen < 4)
                level <<= 1;
        tmp &= ~BACKLIGHT_DUTY_CYCLE_MASK;
        I915_WRITE(BLC_PWM_CTL, tmp | level);
@@ -374,24 +374,20 @@ static void intel_panel_init_backlight(struct drm_device 
*dev)
 enum drm_connector_status
 intel_panel_detect(struct drm_device *dev)
 {
-#if 0
        struct drm_i915_private *dev_priv = dev->dev_private;
-#endif
 
-       if (i915_panel_ignore_lid)
-               return i915_panel_ignore_lid > 0 ?
-                       connector_status_connected :
-                       connector_status_disconnected;
+       if (i915_panel_ignore_lid == -2)
+               return connector_status_connected;
+       else if (i915_panel_ignore_lid == -1)
+               return connector_status_disconnected;
+       else if (i915_panel_ignore_lid == 1)
+               return connector_status_unknown;
 
-       /* opregion lid state on HP 2540p is wrong at boot up,
-        * appears to be either the BIOS or Linux ACPI fault */
-#if 0
        /* Assume that the BIOS does not lie through the OpRegion... */
        if (dev_priv->opregion.lid_state)
                return ioread32(dev_priv->opregion.lid_state) & 0x1 ?
                        connector_status_connected :
                        connector_status_disconnected;
-#endif
 
        return connector_status_unknown;
 }
-- 
1.7.10.4

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

Reply via email to