Deleted Added
full compact
ati_pcigart.c (145132) ati_pcigart.c (148211)
1/* ati_pcigart.h -- ATI PCI GART support -*- linux-c -*-
2 * Created: Wed Dec 13 21:52:19 2000 by gareth@valinux.com
3 */
4/*-
5 * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
6 * All Rights Reserved.
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a

--- 13 unchanged lines hidden (view full) ---

22 * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
23 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 * DEALINGS IN THE SOFTWARE.
26 *
27 * Authors:
28 * Gareth Hughes <gareth@valinux.com>
29 *
1/* ati_pcigart.h -- ATI PCI GART support -*- linux-c -*-
2 * Created: Wed Dec 13 21:52:19 2000 by gareth@valinux.com
3 */
4/*-
5 * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
6 * All Rights Reserved.
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a

--- 13 unchanged lines hidden (view full) ---

22 * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
23 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 * DEALINGS IN THE SOFTWARE.
26 *
27 * Authors:
28 * Gareth Hughes <gareth@valinux.com>
29 *
30 * $FreeBSD: head/sys/dev/drm/ati_pcigart.c 145132 2005-04-16 03:44:47Z anholt $
30 * $FreeBSD: head/sys/dev/drm/ati_pcigart.c 148211 2005-07-20 21:10:57Z anholt $
31 */
32
33#include "dev/drm/drmP.h"
34
35#if PAGE_SIZE == 8192
36# define ATI_PCIGART_TABLE_ORDER 2
37# define ATI_PCIGART_TABLE_PAGES (1 << 2)
38#elif PAGE_SIZE == 4096
39# define ATI_PCIGART_TABLE_ORDER 3
40# define ATI_PCIGART_TABLE_PAGES (1 << 3)
41#elif
42# error - PAGE_SIZE not 8K or 4K
43#endif
44
45# define ATI_MAX_PCIGART_PAGES 8192 /* 32 MB aperture, 4K pages */
46# define ATI_PCIGART_PAGE_SIZE 4096 /* PCI GART page size */
47
48int drm_ati_pcigart_init(drm_device_t *dev, unsigned long *addr,
31 */
32
33#include "dev/drm/drmP.h"
34
35#if PAGE_SIZE == 8192
36# define ATI_PCIGART_TABLE_ORDER 2
37# define ATI_PCIGART_TABLE_PAGES (1 << 2)
38#elif PAGE_SIZE == 4096
39# define ATI_PCIGART_TABLE_ORDER 3
40# define ATI_PCIGART_TABLE_PAGES (1 << 3)
41#elif
42# error - PAGE_SIZE not 8K or 4K
43#endif
44
45# define ATI_MAX_PCIGART_PAGES 8192 /* 32 MB aperture, 4K pages */
46# define ATI_PCIGART_PAGE_SIZE 4096 /* PCI GART page size */
47
48int drm_ati_pcigart_init(drm_device_t *dev, unsigned long *addr,
49 dma_addr_t *bus_addr)
49 dma_addr_t *bus_addr, int is_pcie)
50{
51 drm_sg_mem_t *entry = dev->sg;
52 unsigned long address = 0;
53 unsigned long pages;
54 u32 *pci_gart=0, page_base, bus_address = 0;
55 int i, j, ret = 0;
56
57 if ( !entry ) {

--- 18 unchanged lines hidden (view full) ---

76
77 bzero( pci_gart, ATI_MAX_PCIGART_PAGES * sizeof(u32) );
78
79 for ( i = 0 ; i < pages ; i++ ) {
80 entry->busaddr[i] = vtophys( entry->handle + (i*PAGE_SIZE) );
81 page_base = (u32) entry->busaddr[i];
82
83 for (j = 0; j < (PAGE_SIZE / ATI_PCIGART_PAGE_SIZE); j++) {
50{
51 drm_sg_mem_t *entry = dev->sg;
52 unsigned long address = 0;
53 unsigned long pages;
54 u32 *pci_gart=0, page_base, bus_address = 0;
55 int i, j, ret = 0;
56
57 if ( !entry ) {

--- 18 unchanged lines hidden (view full) ---

76
77 bzero( pci_gart, ATI_MAX_PCIGART_PAGES * sizeof(u32) );
78
79 for ( i = 0 ; i < pages ; i++ ) {
80 entry->busaddr[i] = vtophys( entry->handle + (i*PAGE_SIZE) );
81 page_base = (u32) entry->busaddr[i];
82
83 for (j = 0; j < (PAGE_SIZE / ATI_PCIGART_PAGE_SIZE); j++) {
84 *pci_gart++ = cpu_to_le32( page_base );
84 if (is_pcie) {
85 *pci_gart = (cpu_to_le32(page_base)>>8) | 0xc;
86 DRM_DEBUG("PCIE: %d %08X %08X to %p\n", i,
87 page_base, (cpu_to_le32(page_base)>>8)|0xc,
88 pci_gart);
89 } else
90 *pci_gart = cpu_to_le32(page_base);
91 pci_gart++;
85 page_base += ATI_PCIGART_PAGE_SIZE;
86 }
87 }
88
89 DRM_MEMORYBARRIER();
90
91 ret = 1;
92

--- 24 unchanged lines hidden ---
92 page_base += ATI_PCIGART_PAGE_SIZE;
93 }
94 }
95
96 DRM_MEMORYBARRIER();
97
98 ret = 1;
99

--- 24 unchanged lines hidden ---