Lines Matching refs:gart

31 createGARTBuffer(GART_info *gart, size_t size)
35 gart->buffer.size = size = (size + B_PAGE_SIZE - 1) & ~(B_PAGE_SIZE - 1);
51 gart->buffer.area = create_area("Radeon PCI GART buffer",
52 &gart->buffer.ptr, B_ANY_KERNEL_ADDRESS,
56 if (gart->buffer.area < 0) {
58 strerror(gart->buffer.area));
59 return gart->buffer.area;
62 gart->buffer.unaligned_area = -1;
64 memset( gart->buffer.ptr, 0, size );
71 static status_t createGARTBuffer( GART_info *gart, size_t size )
78 gart->buffer.size = size = (size + B_PAGE_SIZE - 1) & ~(B_PAGE_SIZE - 1);
85 gart->buffer.unaligned_area = create_area( "Radeon PCI GART buffer",
90 if (gart->buffer.unaligned_area < 0) {
92 strerror( gart->buffer.unaligned_area ));
93 return gart->buffer.unaligned_area;
103 gart->buffer.area = map_physical_memory( "Radeon aligned PCI GART buffer",
106 B_READ_AREA | B_WRITE_AREA, &gart->buffer.ptr );
108 if( gart->buffer.area < 0 ) {
110 gart->buffer.area = map_physical_memory( "Radeon aligned PCI GART buffer",
113 B_READ_AREA | B_WRITE_AREA, &gart->buffer.ptr );
116 if( gart->buffer.area < 0 ) {
118 delete_area( gart->buffer.unaligned_area );
119 gart->buffer.unaligned_area = -1;
120 return gart->buffer.area;
123 memset( gart->buffer.ptr, 0, size );
131 static status_t initGATT( GART_info *gart )
144 num_pages = (gart->buffer.size + B_PAGE_SIZE - 1) & ~(B_PAGE_SIZE - 1);
147 gart->GATT.area = create_area("Radeon GATT", (void **)&gart->GATT.ptr,
156 if (gart->GATT.area < 0) {
158 strerror(gart->GATT.area));
159 return gart->GATT.area;
162 get_memory_map(gart->GATT.ptr, B_PAGE_SIZE, PTB_map, 1);
163 gart->GATT.phys = PTB_map[0].address;
165 SHOW_INFO(3, "GATT_ptr=%p, GATT_phys=%p", gart->GATT.ptr,
166 (void *)gart->GATT.phys);
169 memset(gart->GATT.ptr, 0, num_pages * sizeof(uint32));
185 get_memory_map( gart->buffer.ptr, gart->buffer.size, map, map_count );
189 gatt_entry = gart->GATT.ptr;
211 delete_area( gart->GATT.area );
212 gart->GATT.area = -1;
221 clear_caches( gart->GATT.ptr, num_pages * sizeof( uint32 ),
236 static void destroyGARTBuffer( GART_info *gart )
238 if( gart->buffer.area > 0 )
239 delete_area( gart->buffer.area );
241 if( gart->buffer.unaligned_area > 0 )
242 delete_area( gart->buffer.unaligned_area );
244 gart->buffer.area = gart->buffer.unaligned_area = -1;
249 static void destroyGATT( GART_info *gart )
251 if( gart->GATT.area > 0 )
252 delete_area( gart->GATT.area );
254 gart->GATT.area = -1;