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