-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 14/04/12 18:37, Steven Newbury wrote:
> On 12/04/12 17:40, Steven Newbury wrote:
>> On Thu, 12 Apr 2012, 17:07:33 BST, Yinghai Lu
>> <yinghai@xxxxxxxxxx> wrote:
>
>>> On Thu, Apr 12, 2012 at 4:22 AM, Steven Newbury
>>> <steve@xxxxxxxxxxxxxxx> wrote:
>>>> Thanks, that fixed it! :) I had a similar patch I've been
>>>> working on but I had my fix in the wrong place!
>>>>
>>>> In the working case, initially the BIOS has set GMA to
>>>> within the low system DRAM 0xC0000000 obviously invalid.
>>>> This conflict is detected and it's relallocated to
>>>> 0x12000000.
>>>>
>>>> I've attempted to modify probe.c to disable 64-bit BARs not
>>>> allocated above 4G so they get reallocated above when
>>>> possible later. It seemed to work, but again broke GMA
>>>> despite the BAR originally containing an invalid address as
>>>> mentioned above, it seems for some reason something is
>>>> different when the conflict is detected and rellocated,
>>>> compared to disabling it early then allocating a valid
>>>> value..?
>>>>
> I've created a new quirk utilising an extra PCI resource flag to
> force reallocation of the resource. It's the first approach I've
> had any success at. It does work. Only "Intel Page Flush" now
> gets allocated @0xe0000000!
>
>
Hopefully this should fix "Intel Flush Page"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAk+JvIQACgkQGcb56gMuC63G3ACgma4pUxuwjAAJ0ACS5A32xFwa
k1MAn21y2w6m+Ar+3DwH4Swy1IlicHmN
=nBpy
-----END PGP SIGNATURE-----
commit ccc1099a1474815f4094e8689ca0b518de464230
Author: Steven Newbury <steve@xxxxxxxxxxxxxxx>
Date: Sat Apr 14 19:02:47 2012 +0100
intel-gtt: Use pci_bus_alloc_resource_fit() to allocate "Intel Flush Page".
diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c
index 77e150e..30b1ea2 100644
--- a/drivers/char/agp/intel-gtt.c
+++ b/drivers/char/agp/intel-gtt.c
@@ -1036,9 +1036,9 @@ static struct agp_memory *intel_fake_agp_alloc_by_type(size_t pg_count,
static int intel_alloc_chipset_flush_resource(void)
{
int ret;
- ret = pci_bus_alloc_resource(intel_private.bridge_dev->bus, &intel_private.ifp_resource, PAGE_SIZE,
+ ret = pci_bus_alloc_resource_fit(intel_private.bridge_dev->bus, &intel_private.ifp_resource, PAGE_SIZE,
PAGE_SIZE, PCIBIOS_MIN_MEM, 0,
- pcibios_align_resource, intel_private.bridge_dev);
+ pcibios_align_resource, intel_private.bridge_dev, 1);
return ret;
}
[Home]
[Linux USB Devel]
[Video for Linux]
[Linux Audio Users]
[Photo]
[Yosemite News]
[Yosemite Photos]
[Free Online Dating]
[Linux Kernel]
[Linux SCSI]
[XFree86]