diff options
author | Eric Anholt <eric@anholt.net> | 2009-12-01 14:56:30 -0500 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2009-12-01 14:56:30 -0500 |
commit | f0217c42c9ab3d772e543f635ce628b9478f70b6 (patch) | |
tree | 01dfcd607f90f250fb27cb303747b3d770879742 /drivers/gpu/drm/i915/i915_suspend.c | |
parent | d09c23de9f967a7b7dcee0ffc57222ddbd821aba (diff) |
drm/i915: Fix DDC on some systems by clearing BIOS GMBUS setup.
This is a sync of a fix I made in the old UMS code. If the BIOS uses
the GMBUS and doesn't clear that setup, then our bit-banging I2C can
fail, leading to monitors not being detected.
Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_suspend.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_suspend.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c index cd10d9b8181f..c5a6df93e1b6 100644 --- a/drivers/gpu/drm/i915/i915_suspend.c +++ b/drivers/gpu/drm/i915/i915_suspend.c | |||
@@ -27,7 +27,7 @@ | |||
27 | #include "drmP.h" | 27 | #include "drmP.h" |
28 | #include "drm.h" | 28 | #include "drm.h" |
29 | #include "i915_drm.h" | 29 | #include "i915_drm.h" |
30 | #include "i915_drv.h" | 30 | #include "intel_drv.h" |
31 | 31 | ||
32 | static bool i915_pipe_enabled(struct drm_device *dev, enum pipe pipe) | 32 | static bool i915_pipe_enabled(struct drm_device *dev, enum pipe pipe) |
33 | { | 33 | { |
@@ -816,6 +816,9 @@ int i915_restore_state(struct drm_device *dev) | |||
816 | for (i = 0; i < 3; i++) | 816 | for (i = 0; i < 3; i++) |
817 | I915_WRITE(SWF30 + (i << 2), dev_priv->saveSWF2[i]); | 817 | I915_WRITE(SWF30 + (i << 2), dev_priv->saveSWF2[i]); |
818 | 818 | ||
819 | /* I2C state */ | ||
820 | intel_i2c_reset_gmbus(dev); | ||
821 | |||
819 | return 0; | 822 | return 0; |
820 | } | 823 | } |
821 | 824 | ||