r300.c (1614f8b17b8cc3ad143541d41569623d30dbc9ec) | r300.c (4c7886791264f03428d5424befb1b96f08fc90f4) |
---|---|
1/* 2 * Copyright 2008 Advanced Micro Devices, Inc. 3 * Copyright 2008 Red Hat Inc. 4 * Copyright 2009 Jerome Glisse. 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a 7 * copy of this software and associated documentation files (the "Software"), 8 * to deal in the Software without restriction, including without limitation --- 123 unchanged lines hidden (view full) --- 132 DRM_INFO("PCIE GART of %uM enabled (table at 0x%08X).\n", 133 (unsigned)(rdev->mc.gtt_size >> 20), table_addr); 134 rdev->gart.ready = true; 135 return 0; 136} 137 138void rv370_pcie_gart_disable(struct radeon_device *rdev) 139{ | 1/* 2 * Copyright 2008 Advanced Micro Devices, Inc. 3 * Copyright 2008 Red Hat Inc. 4 * Copyright 2009 Jerome Glisse. 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a 7 * copy of this software and associated documentation files (the "Software"), 8 * to deal in the Software without restriction, including without limitation --- 123 unchanged lines hidden (view full) --- 132 DRM_INFO("PCIE GART of %uM enabled (table at 0x%08X).\n", 133 (unsigned)(rdev->mc.gtt_size >> 20), table_addr); 134 rdev->gart.ready = true; 135 return 0; 136} 137 138void rv370_pcie_gart_disable(struct radeon_device *rdev) 139{ |
140 uint32_t tmp; | 140 u32 tmp; 141 int r; |
141 142 tmp = RREG32_PCIE(RADEON_PCIE_TX_GART_CNTL); 143 tmp |= RADEON_PCIE_TX_GART_UNMAPPED_ACCESS_DISCARD; 144 WREG32_PCIE(RADEON_PCIE_TX_GART_CNTL, tmp & ~RADEON_PCIE_TX_GART_EN); 145 if (rdev->gart.table.vram.robj) { | 142 143 tmp = RREG32_PCIE(RADEON_PCIE_TX_GART_CNTL); 144 tmp |= RADEON_PCIE_TX_GART_UNMAPPED_ACCESS_DISCARD; 145 WREG32_PCIE(RADEON_PCIE_TX_GART_CNTL, tmp & ~RADEON_PCIE_TX_GART_EN); 146 if (rdev->gart.table.vram.robj) { |
146 radeon_object_kunmap(rdev->gart.table.vram.robj); 147 radeon_object_unpin(rdev->gart.table.vram.robj); | 147 r = radeon_bo_reserve(rdev->gart.table.vram.robj, false); 148 if (likely(r == 0)) { 149 radeon_bo_kunmap(rdev->gart.table.vram.robj); 150 radeon_bo_unpin(rdev->gart.table.vram.robj); 151 radeon_bo_unreserve(rdev->gart.table.vram.robj); 152 } |
148 } 149} 150 151void rv370_pcie_gart_fini(struct radeon_device *rdev) 152{ 153 rv370_pcie_gart_disable(rdev); 154 radeon_gart_table_vram_free(rdev); 155 radeon_gart_fini(rdev); --- 1109 unchanged lines hidden (view full) --- 1265 r100_ib_fini(rdev); 1266 radeon_gem_fini(rdev); 1267 if (rdev->flags & RADEON_IS_PCIE) 1268 rv370_pcie_gart_fini(rdev); 1269 if (rdev->flags & RADEON_IS_PCI) 1270 r100_pci_gart_fini(rdev); 1271 radeon_irq_kms_fini(rdev); 1272 radeon_fence_driver_fini(rdev); | 153 } 154} 155 156void rv370_pcie_gart_fini(struct radeon_device *rdev) 157{ 158 rv370_pcie_gart_disable(rdev); 159 radeon_gart_table_vram_free(rdev); 160 radeon_gart_fini(rdev); --- 1109 unchanged lines hidden (view full) --- 1270 r100_ib_fini(rdev); 1271 radeon_gem_fini(rdev); 1272 if (rdev->flags & RADEON_IS_PCIE) 1273 rv370_pcie_gart_fini(rdev); 1274 if (rdev->flags & RADEON_IS_PCI) 1275 r100_pci_gart_fini(rdev); 1276 radeon_irq_kms_fini(rdev); 1277 radeon_fence_driver_fini(rdev); |
1273 radeon_object_fini(rdev); | 1278 radeon_bo_fini(rdev); |
1274 radeon_atombios_fini(rdev); 1275 kfree(rdev->bios); 1276 rdev->bios = NULL; 1277} 1278 1279int r300_init(struct radeon_device *rdev) 1280{ 1281 int r; --- 41 unchanged lines hidden (view full) --- 1323 /* Fence driver */ 1324 r = radeon_fence_driver_init(rdev); 1325 if (r) 1326 return r; 1327 r = radeon_irq_kms_init(rdev); 1328 if (r) 1329 return r; 1330 /* Memory manager */ | 1279 radeon_atombios_fini(rdev); 1280 kfree(rdev->bios); 1281 rdev->bios = NULL; 1282} 1283 1284int r300_init(struct radeon_device *rdev) 1285{ 1286 int r; --- 41 unchanged lines hidden (view full) --- 1328 /* Fence driver */ 1329 r = radeon_fence_driver_init(rdev); 1330 if (r) 1331 return r; 1332 r = radeon_irq_kms_init(rdev); 1333 if (r) 1334 return r; 1335 /* Memory manager */ |
1331 r = radeon_object_init(rdev); | 1336 r = radeon_bo_init(rdev); |
1332 if (r) 1333 return r; 1334 if (rdev->flags & RADEON_IS_PCIE) { 1335 r = rv370_pcie_gart_init(rdev); 1336 if (r) 1337 return r; 1338 } 1339 if (rdev->flags & RADEON_IS_PCI) { --- 23 unchanged lines hidden --- | 1337 if (r) 1338 return r; 1339 if (rdev->flags & RADEON_IS_PCIE) { 1340 r = rv370_pcie_gart_init(rdev); 1341 if (r) 1342 return r; 1343 } 1344 if (rdev->flags & RADEON_IS_PCI) { --- 23 unchanged lines hidden --- |