• Dave Jones's avatar
    AGP: intel-agp bugfix · 33b44013
    Dave Jones authored
    On Sun, Feb 04, 2007 at 04:51:38PM +0100, Eric Piel wrote:
     > Hello,
     > 
     > I've got a regression in 2.6.20-rc7 (-rc6 was fine) due to commit 
     > 4b95320f ([AGPGART] intel_agp: restore 
     > graphics device's pci space early in resume).
    
    I think the key to this failure is the last line here ..
    
     > agpgart-intel 0000:00:00.0: resuming
     > PM: Writing back config space on device 0000:00:02.0 at offset f (was 10b, writing 0)
     > PM: Writing back config space on device 0000:00:02.0 at offset d (was dc, writing 0)
     > PM: Writing back config space on device 0000:00:02.0 at offset b (was 10161025, writing 0)
     > PM: Writing back config space on device 0000:00:02.0 at offset 5 (was f4000000, writing 0)
     > PM: Writing back config space on device 0000:00:02.0 at offset 4 (was f8000008, writing 0)
     > PM: Writing back config space on device 0000:00:02.0 at offset 2 (was 3000011, writing 0)
     > PM: Writing back config space on device 0000:00:02.0 at offset 1 (was 2b00007, writing 0)
     > PM: Writing back config space on device 0000:00:02.0 at offset 0 (was 11328086, writing 0)
     > agpgart: Unable to remap memory.
    
    This then blows up the next access to intel_i810_private.registers, which happens to
    be intel_i810_insert_entries.
    
    Either we need .suspend methods which unmap these regions, or we need
    to skip trying to map them a second time on resume.
    
    There's an ugly patch below which does the latter. Give it a try?
    
    The intel-agp suspend/resume code has really grown into something
    of a monster, and could use some refactoring in a big way.
    
    		Dave
    
    
    From: Dave Jones <davej@redhat.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    33b44013
intel-agp.c 57.7 KB