View | Details | Raw Unified | Return to bug 115800
Collapse All | Expand All

(-)NVIDIA-Linux-x86-1.0-7676-pkg1/usr/src/nv.orig/nv-linux.h (-6 / +18 lines)
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
(-)NVIDIA-Linux-x86-1.0-7676-pkg1/usr/src/nv.orig/nv-vm.c (-2 / +3 lines)
Lines 151-157 int nv_vm_malloc_pages( Link Here
151
    /* point page_ptr at the start of the actual page list */
151
    /* point page_ptr at the start of the actual page list */
152
    nv_pte_t *page_ptr = *at->page_table;
152
    nv_pte_t *page_ptr = *at->page_table;
153
    unsigned int i, j;
153
    unsigned int i, j;
154
    unsigned long virt_addr = 0, phys_addr;
154
    unsigned long virt_addr = 0, phys_addr, gart_addr;
155
#if defined(NV_SG_MAP_BUFFERS)
155
#if defined(NV_SG_MAP_BUFFERS)
156
    nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
156
    nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
157
    struct pci_dev *dev = nvl->dev;
157
    struct pci_dev *dev = nvl->dev;
Lines 238-243 int nv_vm_malloc_pages( Link Here
238
        }
238
        }
239
239
240
        phys_addr = nv_get_kern_phys_address(virt_addr);
240
        phys_addr = nv_get_kern_phys_address(virt_addr);
241
        gart_addr = phys_to_gart(phys_addr);
241
        if (phys_addr == 0)
242
        if (phys_addr == 0)
242
        {
243
        {
243
            nv_printf(NV_DBG_ERRORS,
244
            nv_printf(NV_DBG_ERRORS,
Lines 251-257 int nv_vm_malloc_pages( Link Here
251
        page_ptr = at->page_table[i];
252
        page_ptr = at->page_table[i];
252
        page_ptr->phys_addr = phys_addr;
253
        page_ptr->phys_addr = phys_addr;
253
        page_ptr->virt_addr = virt_addr;
254
        page_ptr->virt_addr = virt_addr;
254
        page_ptr->dma_addr = page_ptr->phys_addr;
255
        page_ptr->dma_addr = gart_addr;
255
256
256
#if defined(NV_SG_MAP_BUFFERS)
257
#if defined(NV_SG_MAP_BUFFERS)
257
        if (!NV_ALLOC_MAPPING_CONTIG(at->flags))
258
        if (!NV_ALLOC_MAPPING_CONTIG(at->flags))

Return to bug 115800