|
Lines 118-123
Link Here
|
| 118 |
#define AGPGART |
118 |
#define AGPGART |
| 119 |
#include <linux/agp_backend.h> |
119 |
#include <linux/agp_backend.h> |
| 120 |
#include <linux/agpgart.h> |
120 |
#include <linux/agpgart.h> |
|
|
121 |
#include <asm/agp.h> |
| 122 |
#ifndef phys_to_gart |
| 123 |
#define phys_to_gart(x) (virt_to_bus(phys_to_virt(x))) |
| 124 |
#define gart_to_phys(x) (virt_to_phys(bus_to_virt(x))) |
| 125 |
#define virt_to_gart(x) (virt_to_bus(x)) |
| 126 |
#define gart_to_virt(x) (bus_to_virt(x)) |
| 127 |
#else |
| 128 |
#ifndef virt_to_gart |
| 129 |
#define virt_to_gart(x) (phys_to_gart(virt_to_phys(x))) |
| 130 |
#define gart_to_virt(x) (phys_to_virt(gart_to_phys(x))) |
| 131 |
#endif |
| 132 |
#endif |
| 121 |
#endif |
133 |
#endif |
| 122 |
|
134 |
|
| 123 |
#if defined(NVCPU_X86) || defined(NVCPU_X86_64) |
135 |
#if defined(NVCPU_X86) || defined(NVCPU_X86_64) |
|
Lines 637-650
typedef void irqreturn_t;
Link Here
|
| 637 |
|
649 |
|
| 638 |
#if defined(NV_REMAP_PFN_RANGE_PRESENT) |
650 |
#if defined(NV_REMAP_PFN_RANGE_PRESENT) |
| 639 |
#define NV_REMAP_PAGE_RANGE(from, offset, x...) \ |
651 |
#define NV_REMAP_PAGE_RANGE(from, offset, x...) \ |
| 640 |
remap_pfn_range(vma, from, ((offset) >> PAGE_SHIFT), x) |
652 |
io_remap_pfn_range(vma, from, ((offset) >> PAGE_SHIFT), x) |
| 641 |
#elif defined(NV_REMAP_PAGE_RANGE_5_PRESENT) |
653 |
#elif defined(NV_REMAP_PAGE_RANGE_5_PRESENT) |
| 642 |
#define NV_REMAP_PAGE_RANGE(x...) remap_page_range(vma, x) |
654 |
#define NV_REMAP_PAGE_RANGE(x...) io_remap_page_range(vma, x) |
| 643 |
#elif defined(NV_REMAP_PAGE_RANGE_4_PRESENT) |
655 |
#elif defined(NV_REMAP_PAGE_RANGE_4_PRESENT) |
| 644 |
#define NV_REMAP_PAGE_RANGE(x...) remap_page_range(x) |
656 |
#define NV_REMAP_PAGE_RANGE(x...) io_remap_page_range(x) |
| 645 |
#else |
657 |
#else |
| 646 |
#warning "conftest.sh failed, assuming remap_page_range(4)!" |
658 |
#warning "conftest.sh failed, assuming remap_page_range(4)!" |
| 647 |
#define NV_REMAP_PAGE_RANGE(x...) remap_page_range(x) |
659 |
#define NV_REMAP_PAGE_RANGE(x...) io_remap_page_range(x) |
| 648 |
#endif |
660 |
#endif |
| 649 |
|
661 |
|
| 650 |
|
662 |
|
|
Lines 1054-1060
static inline int nv_sg_map_buffer(
Link Here
|
| 1054 |
sg_ptr->offset = (unsigned long)base & ~PAGE_MASK; |
1066 |
sg_ptr->offset = (unsigned long)base & ~PAGE_MASK; |
| 1055 |
sg_ptr->length = num_pages * PAGE_SIZE; |
1067 |
sg_ptr->length = num_pages * PAGE_SIZE; |
| 1056 |
|
1068 |
|
| 1057 |
if (virt_to_phys(base) & ~dev->dma_mask) |
1069 |
if (virt_to_gart(base) & ~dev->dma_mask) |
| 1058 |
{ |
1070 |
{ |
| 1059 |
if (nv_remap_count + sg_ptr->length > nv_remap_limit) |
1071 |
if (nv_remap_count + sg_ptr->length > nv_remap_limit) |
| 1060 |
{ |
1072 |
{ |
|
Lines 1135-1141
static inline int nv_sg_load(
Link Here
|
| 1135 |
page_ptr->orig_phys_addr = page_ptr->phys_addr; |
1147 |
page_ptr->orig_phys_addr = page_ptr->phys_addr; |
| 1136 |
page_ptr->phys_addr = page_ptr->dma_addr; |
1148 |
page_ptr->phys_addr = page_ptr->dma_addr; |
| 1137 |
page_ptr->orig_virt_addr = page_ptr->virt_addr; |
1149 |
page_ptr->orig_virt_addr = page_ptr->virt_addr; |
| 1138 |
page_ptr->virt_addr = (unsigned long) __va(page_ptr->dma_addr); |
1150 |
page_ptr->virt_addr = gart_to_virt(page_ptr->dma_addr); |
| 1139 |
} |
1151 |
} |
| 1140 |
#endif |
1152 |
#endif |
| 1141 |
|
1153 |
|