Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 161369
b: refs/heads/master
c: c2980d8
h: refs/heads/master
i:
  161367: 71245c0
v: v3
  • Loading branch information
David Woodhouse authored and David Woodhouse committed Aug 3, 2009
1 parent 6a4cccb commit 1f184e3
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 19 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 56ec4c1e72865c6d99f643b6574e6e074c3e8823
refs/heads/master: c2980d8c2961113f24863f70d8ad016f55224c81
6 changes: 3 additions & 3 deletions trunk/drivers/char/agp/agp.h
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,8 @@ struct agp_bridge_driver {
int (*agp_type_to_mask_type) (struct agp_bridge_data *, int);
void (*chipset_flush)(struct agp_bridge_data *);

int (*agp_map_page)(void *addr, dma_addr_t *ret);
void (*agp_unmap_page)(void *addr, dma_addr_t dma);
int (*agp_map_page)(struct page *page, dma_addr_t *ret);
void (*agp_unmap_page)(struct page *page, dma_addr_t dma);
int (*agp_map_memory)(struct agp_memory *mem);
void (*agp_unmap_memory)(struct agp_memory *mem);
};
Expand All @@ -139,7 +139,7 @@ struct agp_bridge_data {
u32 __iomem *gatt_table;
u32 *gatt_table_real;
unsigned long scratch_page;
unsigned long scratch_page_real;
struct page *scratch_page_page;
dma_addr_t scratch_page_dma;
unsigned long gart_bus_addr;
unsigned long gatt_bus_addr;
Expand Down
17 changes: 8 additions & 9 deletions trunk/drivers/char/agp/backend.c
Original file line number Diff line number Diff line change
Expand Up @@ -149,9 +149,9 @@ static int agp_backend_initialize(struct agp_bridge_data *bridge)
return -ENOMEM;
}

bridge->scratch_page_real = phys_to_gart(page_to_phys(page));
bridge->scratch_page_page = page;
if (bridge->driver->agp_map_page) {
if (bridge->driver->agp_map_page(phys_to_virt(page_to_phys(page)),
if (bridge->driver->agp_map_page(page,
&bridge->scratch_page_dma)) {
dev_err(&bridge->dev->dev,
"unable to dma-map scratch page\n");
Expand Down Expand Up @@ -205,13 +205,12 @@ static int agp_backend_initialize(struct agp_bridge_data *bridge)
err_out:
if (bridge->driver->needs_scratch_page &&
bridge->driver->agp_unmap_page) {
void *va = gart_to_virt(bridge->scratch_page_real);

bridge->driver->agp_unmap_page(va, bridge->scratch_page_dma);
bridge->driver->agp_unmap_page(bridge->scratch_page_page,
bridge->scratch_page_dma);
}
err_out_nounmap:
if (bridge->driver->needs_scratch_page) {
void *va = gart_to_virt(bridge->scratch_page_real);
void *va = page_address(bridge->scratch_page_page);

bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_UNMAP);
bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_FREE);
Expand All @@ -238,11 +237,11 @@ static void agp_backend_cleanup(struct agp_bridge_data *bridge)

if (bridge->driver->agp_destroy_page &&
bridge->driver->needs_scratch_page) {
void *va = gart_to_virt(bridge->scratch_page_real);
void *va = page_address(bridge->scratch_page_page);

if (bridge->driver->agp_unmap_page)
bridge->driver->agp_unmap_page(va,
bridge->scratch_page_dma);
bridge->driver->agp_unmap_page(bridge->scratch_page_page,
bridge->scratch_page_dma);

bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_UNMAP);
bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_FREE);
Expand Down
12 changes: 6 additions & 6 deletions trunk/drivers/char/agp/intel-agp.c
Original file line number Diff line number Diff line change
Expand Up @@ -181,19 +181,19 @@ static struct _intel_private {
} intel_private;

#ifdef USE_PCI_DMA_API
static int intel_agp_map_page(void *addr, dma_addr_t *ret)
static int intel_agp_map_page(struct page *page, dma_addr_t *ret)
{
*ret = pci_map_single(intel_private.pcidev, addr,
PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
*ret = pci_map_page(intel_private.pcidev, page, 0,
PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
if (pci_dma_mapping_error(intel_private.pcidev, *ret))
return -EINVAL;
return 0;
}

static void intel_agp_unmap_page(void *addr, dma_addr_t dma)
static void intel_agp_unmap_page(struct page *page, dma_addr_t dma)
{
pci_unmap_single(intel_private.pcidev, dma,
PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
pci_unmap_page(intel_private.pcidev, dma,
PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
}

static int intel_agp_map_memory(struct agp_memory *mem)
Expand Down

0 comments on commit 1f184e3

Please sign in to comment.