apparent workaround for i915 "black screen" issue
i'm fairly sure some folks here are at least aware of the recent intel intergrated graphics i915 issue that produced a totally black screen upon booting, even though the system quite clearly booted. after swapping numerous posts on the intel free desktop mailing list and getting piles of guidance from chris wilson, i isolated a workaround to applying this simple patch: diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c index 64fd644..28adc6d 100644 --- a/drivers/gpu/drm/i915/intel_opregion.c +++ b/drivers/gpu/drm/i915/intel_opregion.c @@ -495,6 +495,8 @@ int intel_opregion_setup(struct drm_device *dev) opregion->acpi = base + OPREGION_ACPI_OFFSET; } +return 0; // rday + if (mboxes & MBOX_SWSCI) { DRM_DEBUG_DRIVER("SWSCI supported\n"); opregion->swsci = base + OPREGION_SWSCI_OFFSET; i isolated the workaround to this file using "git bisect", then used chris' advice to return earlier than normal to see which of those conditional snippets was causing the problem. i won't pretend to know what's going on there, but if anyone else is seeing the i915-related black screen issue and wants to test the above, it would be nice to verify that this workaround works for someone else. rday -- ======================================================================== Robert P. J. Day Waterloo, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ========================================================================
On Sat, Jan 29, 2011 at 4:13 PM, Robert P. J. Day <rpjday@crashcourse.ca> wrote:
diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c index 64fd644..28adc6d 100644 --- a/drivers/gpu/drm/i915/intel_opregion.c +++ b/drivers/gpu/drm/i915/intel_opregion.c @@ -495,6 +495,8 @@ int intel_opregion_setup(struct drm_device *dev) opregion->acpi = base + OPREGION_ACPI_OFFSET; }
+return 0; // rday + if (mboxes & MBOX_SWSCI) { DRM_DEBUG_DRIVER("SWSCI supported\n"); opregion->swsci = base + OPREGION_SWSCI_OFFSET;
Yes. I was also facing similar issue. This workaround works for me. Tested using lenovo R61. 00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c) (prog-if 00 [VGA controller]) Subsystem: Lenovo T61 Flags: bus master, fast devsel, latency 0, IRQ 16 Memory at f8100000 (64-bit, non-prefetchable) [size=1M] Memory at e0000000 (64-bit, prefetchable) [size=256M] I/O ports at 1800 [size=8] Capabilities: [90] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable- Capabilities: [d0] Power Management version 3 Kernel modules: intelfb
On Mon, 31 Jan 2011, selvamuthukumar v wrote:
On Sat, Jan 29, 2011 at 4:13 PM, Robert P. J. Day <rpjday@crashcourse.ca> wrote:
diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c index 64fd644..28adc6d 100644 --- a/drivers/gpu/drm/i915/intel_opregion.c +++ b/drivers/gpu/drm/i915/intel_opregion.c @@ -495,6 +495,8 @@ int intel_opregion_setup(struct drm_device *dev) opregion->acpi = base + OPREGION_ACPI_OFFSET; }
+return 0; // rday + if (mboxes & MBOX_SWSCI) { DRM_DEBUG_DRIVER("SWSCI supported\n"); opregion->swsci = base + OPREGION_SWSCI_OFFSET;
Yes. I was also facing similar issue. This workaround works for me. Tested using lenovo R61.
so you're saying that you were persistently getting a black screen boot, but that that simple tweak solved the problem? i'm not scared to admit that i still don't understand *how* that fixes things, i was just following the guidance of the appropriate mailing list and, so far, things have been working. i'm sure there will be a formal fix in the near future. rday -- ======================================================================== Robert P. J. Day Waterloo, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ========================================================================
On Mon, Jan 31, 2011 at 6:46 PM, Robert P. J. Day <rpjday@crashcourse.ca> wrote:
On Mon, 31 Jan 2011, selvamuthukumar v wrote:
On Sat, Jan 29, 2011 at 4:13 PM, Robert P. J. Day <rpjday@crashcourse.ca> wrote:
diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c index 64fd644..28adc6d 100644 --- a/drivers/gpu/drm/i915/intel_opregion.c +++ b/drivers/gpu/drm/i915/intel_opregion.c @@ -495,6 +495,8 @@ int intel_opregion_setup(struct drm_device *dev) opregion->acpi = base + OPREGION_ACPI_OFFSET; }
+return 0; // rday + if (mboxes & MBOX_SWSCI) { DRM_DEBUG_DRIVER("SWSCI supported\n"); opregion->swsci = base + OPREGION_SWSCI_OFFSET;
Yes. I was also facing similar issue. This workaround works for me. Tested using lenovo R61.
so you're saying that you were persistently getting a black screen boot, but that that simple tweak solved the problem? i'm not scared to admit that i still don't understand *how* that fixes things, i was just following the guidance of the appropriate mailing list and, so far, things have been working. i'm sure there will be a formal fix in the near future.
Yes. I was getting black screen consistently. I do not remember exactly from which version issue started happening. But behavior was different with different kernel version. In 2.6.37 I used to get scrambled output. In 2.6.38-rc2 I get black screen, but CAPSLOCK LED is blinking continuously, probably a kernel panic. With this workaround I get the desktop.
rday
--
======================================================================== Robert P. J. Day Waterloo, Ontario, CANADA http://crashcourse.ca
Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ========================================================================
On Mon, 31 Jan 2011, selvamuthukumar v wrote:
On Mon, Jan 31, 2011 at 6:46 PM, Robert P. J. Day <rpjday@crashcourse.ca> wrote:
On Mon, 31 Jan 2011, selvamuthukumar v wrote:
On Sat, Jan 29, 2011 at 4:13 PM, Robert P. J. Day <rpjday@crashcourse.ca> wrote:
diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c index 64fd644..28adc6d 100644 --- a/drivers/gpu/drm/i915/intel_opregion.c +++ b/drivers/gpu/drm/i915/intel_opregion.c @@ -495,6 +495,8 @@ int intel_opregion_setup(struct drm_device *dev) opregion->acpi = base + OPREGION_ACPI_OFFSET; }
+return 0; // rday + if (mboxes & MBOX_SWSCI) { DRM_DEBUG_DRIVER("SWSCI supported\n"); opregion->swsci = base + OPREGION_SWSCI_OFFSET;
Yes. I was also facing similar issue. This workaround works for me. Tested using lenovo R61.
so you're saying that you were persistently getting a black screen boot, but that that simple tweak solved the problem? i'm not scared to admit that i still don't understand *how* that fixes things, i was just following the guidance of the appropriate mailing list and, so far, things have been working. i'm sure there will be a formal fix in the near future.
Yes. I was getting black screen consistently. I do not remember exactly from which version issue started happening. But behavior was different with different kernel version. In 2.6.37 I used to get scrambled output. In 2.6.38-rc2 I get black screen, but CAPSLOCK LED is blinking continuously, probably a kernel panic. With this workaround I get the desktop.
ok, thanks for clearing that up. i still haven't heard back from the intel mailing list so if anyone wants to try to narrow things down further, feel free. i don't know why this fixes things but, until i do, i'm just going to keep applying this patch to my git build. rday -- ======================================================================== Robert P. J. Day Waterloo, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ========================================================================
participants (2)
-
Robert P. J. Day -
selvamuthukumar v