• C
    drm/i915: Fix detection of base of stolen memory · e12a2d53
    Chris Wilson 提交于
    The routine to query the base of stolen memory was using the wrong
    registers and the wrong encodings on virtually every platform.
    
    It was not until the G33 refresh, that a PCI config register was
    introduced that explicitly said where the stolen memory was. Prior to
    865G there was not even a register that said where the end of usable
    low memory was and where the stolen memory began (or ended depending
    upon chipset). Before then, one has to look at the BIOS memory maps to
    find the Top of Memory. Alas that is not exported by arch/x86 and so we
    have to resort to disabling stolen memory on gen2 for the time being.
    
    Then SandyBridge enlarged the PCI register to a full 32-bits and change
    the encoding of the address, so even though we happened to be querying
    the right register, we read the wrong bits and ended up using address 0
    for our stolen data, i.e. notably FBC.
    Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
    e12a2d53
i915_drv.h 53.1 KB