Hi Dave,

Dave Airlie schrieb:
> Major:
> AGP:
> Change AGP to use pages instead of arrays of unsigned long - since 
> pageattr grew page array interfaces this is possible and should solve
> GEM on PAE issues. Run tested on my i945 and misc AGP boxes, cross 
> compiled on IA64.

Sorry for not testing earlier, but you missed one tiny bit here: i965
style address handling in intel_i965_mask_memory pushes bits 32 to 35 of
the address down to bits 4 to 7. For this to work, those bits need to be
preserved, not dropped at the upper end of an unsigned long. Attached
patch uses dma_addr_t instead of unsigned long, and works on my i965
with 4GB of ram installed.
With this small addition, your patch fixes fd.o bug #17993.

Regards,
  Pierre

commit 0ca12d44198d02ccf4452c6030fb100d683f3288
Author: Pierre Willenbrock <[email protected]>
Date:   Fri Jun 19 18:26:12 2009 +0200

    Make intel_i965_mask_memory use dma_addr_t for physical addresses
    
    Otherwise, the high bits to be stuffed in the unused lower bits of the
    page address are lost.
    
    Signed-off-by: Pierre Willenbrock <[email protected]>

diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c
index 35977bf..8c9d50d 100644
--- a/drivers/char/agp/intel-agp.c
+++ b/drivers/char/agp/intel-agp.c
@@ -1198,7 +1198,7 @@ static int intel_i915_create_gatt_table(struct agp_bridge_data *bridge)
 static unsigned long intel_i965_mask_memory(struct agp_bridge_data *bridge,
 					    struct page *page, int type)
 {
-	unsigned long addr = phys_to_gart(page_to_phys(page));
+	dma_addr_t addr = phys_to_gart(page_to_phys(page));
 	/* Shift high bits down */
 	addr |= (addr >> 28) & 0xf0;
 
------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to