From 6a4cccb68eac718df3056d7da8bcf86da94c550a Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Mon, 27 Jul 2009 16:44:32 +0100 Subject: [PATCH] --- yaml --- r: 161368 b: refs/heads/master c: 56ec4c1e72865c6d99f643b6574e6e074c3e8823 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/char/agp/backend.c | 23 +++++++++++++---------- trunk/drivers/char/agp/intel-agp.c | 8 ++------ 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/[refs] b/[refs] index 790250a39d7a..bae1f04cf5fc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 176616814d700f19914d8509d9f65dec51a6ebf7 +refs/heads/master: 56ec4c1e72865c6d99f643b6574e6e074c3e8823 diff --git a/trunk/drivers/char/agp/backend.c b/trunk/drivers/char/agp/backend.c index 19ac3663acdc..3c3a487f7b9d 100644 --- a/trunk/drivers/char/agp/backend.c +++ b/trunk/drivers/char/agp/backend.c @@ -150,17 +150,20 @@ static int agp_backend_initialize(struct agp_bridge_data *bridge) } bridge->scratch_page_real = phys_to_gart(page_to_phys(page)); - bridge->scratch_page = bridge->driver->mask_memory(bridge, - phys_to_gart(page_to_phys(page)), 0); - - if (bridge->driver->agp_map_page && - bridge->driver->agp_map_page(phys_to_virt(page_to_phys(page)), - &bridge->scratch_page_dma)) { - dev_err(&bridge->dev->dev, - "unable to dma-map scratch page\n"); - rc = -ENOMEM; - goto err_out_nounmap; + if (bridge->driver->agp_map_page) { + if (bridge->driver->agp_map_page(phys_to_virt(page_to_phys(page)), + &bridge->scratch_page_dma)) { + dev_err(&bridge->dev->dev, + "unable to dma-map scratch page\n"); + rc = -ENOMEM; + goto err_out_nounmap; + } + } else { + bridge->scratch_page_dma = phys_to_gart(page_to_phys(page)); } + + bridge->scratch_page = bridge->driver->mask_memory(bridge, + bridge->scratch_page_dma, 0); } size_value = bridge->driver->fetch_size(); diff --git a/trunk/drivers/char/agp/intel-agp.c b/trunk/drivers/char/agp/intel-agp.c index 20fe82b99fdb..b8f2c75b98d1 100644 --- a/trunk/drivers/char/agp/intel-agp.c +++ b/trunk/drivers/char/agp/intel-agp.c @@ -1138,13 +1138,9 @@ static int intel_i915_configure(void) writel(agp_bridge->gatt_bus_addr|I810_PGETBL_ENABLED, intel_private.registers+I810_PGETBL_CTL); readl(intel_private.registers+I810_PGETBL_CTL); /* PCI Posting. */ -#ifndef USE_PCI_DMA_API - agp_bridge->scratch_page_dma = agp_bridge->scratch_page; -#endif - if (agp_bridge->driver->needs_scratch_page) { for (i = intel_private.gtt_entries; i < current_size->num_entries; i++) { - writel(agp_bridge->scratch_page_dma, intel_private.gtt+i); + writel(agp_bridge->scratch_page, intel_private.gtt+i); } readl(intel_private.gtt+i-1); /* PCI Posting. */ } @@ -1242,7 +1238,7 @@ static int intel_i915_remove_entries(struct agp_memory *mem, off_t pg_start, } for (i = pg_start; i < (mem->page_count + pg_start); i++) - writel(agp_bridge->scratch_page_dma, intel_private.gtt+i); + writel(agp_bridge->scratch_page, intel_private.gtt+i); readl(intel_private.gtt+i-1);