|
@@ -1135,12 +1135,19 @@ static void i9xx_chipset_flush(void)
|
|
|
writel(1, intel_private.i9xx_flush_page);
|
|
|
}
|
|
|
|
|
|
-static void i965_write_entry(dma_addr_t addr, unsigned int entry,
|
|
|
+static void i965_write_entry(dma_addr_t addr,
|
|
|
+ unsigned int entry,
|
|
|
unsigned int flags)
|
|
|
{
|
|
|
+ u32 pte_flags;
|
|
|
+
|
|
|
+ pte_flags = I810_PTE_VALID;
|
|
|
+ if (flags == AGP_USER_CACHED_MEMORY)
|
|
|
+ pte_flags |= I830_PTE_SYSTEM_CACHED;
|
|
|
+
|
|
|
/* Shift high bits down */
|
|
|
addr |= (addr >> 28) & 0xf0;
|
|
|
- writel(addr | I810_PTE_VALID, intel_private.gtt + entry);
|
|
|
+ writel(addr | pte_flags, intel_private.gtt + entry);
|
|
|
}
|
|
|
|
|
|
static bool gen6_check_flags(unsigned int flags)
|