On Fri, 28 Jan 2011, Rafael J. Wysocki wrote:
On Friday, January 28, 2011, Robert P. J. Day wrote:
On Fri, 28 Jan 2011, Chris Wilson wrote:
On Fri, 28 Jan 2011 09:51:01 -0500 (EST), "Robert P. J. Day" rpjday@crashcourse.ca wrote:
sadly, no change -- still black screen. again, rebooted successfully under commit 8a327f23. just to be clear, here's "git diff":
$ git diff diff --git a/include/linux/acpi_io.h b/include/linux/acpi_io.h index 7180013..e035f3c 100644 --- a/include/linux/acpi_io.h +++ b/include/linux/acpi_io.h @@ -7,7 +7,7 @@ static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size) {
return ioremap_cache(phys, size);
return ioremap(phys, size);
}
Ok, that implies the new mapping is fine and not the cause of the issue.
Instead you have some OpRegion related regression hidden until till now because the conflicting mapping disabled it for i915.
That would be easy to test by returning early in intel_opregion_setup():
diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_ index 9efccb9..8c93201 100644 --- a/drivers/gpu/drm/i915/intel_opregion.c +++ b/drivers/gpu/drm/i915/intel_opregion.c @@ -470,6 +470,8 @@ int intel_opregion_setup(struct drm_device *dev) u32 asls, mboxes; int err = 0;
return -ENOTSUPP;
pci_read_config_dword(dev->pdev, PCI_ASLS, &asls); DRM_DEBUG_DRIVER("graphic opregion physical addr: 0x%x\n", asls); if (asls == 0) {
so you want me to revert to a stock b705120e before doing the above?
Alternatively, you could take the vanilla Linus' tree and replace ioremap_cache() with ioremap() in include/linux/acpi_io.h . Please try that and see if it makes a difference.
been there, done that, that's all so ... this morning. i continued bisecting and playing and eventually verified the following workaround for an earlier working version of the kernel:
$ git diff 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;
this was based on a suggestion by chris wilson to deactivate the "mboxes" tests in that single source file and see what happened. adding the "return 0" above suddenly gave me a properly booting kernel. i applied the same diff to the current kernel and it's building as we speak.
rday
p.s. having that "return 0" *after* that test but before the next one still gave me a black screen.