rs600.c (1614f8b17b8cc3ad143541d41569623d30dbc9ec) | rs600.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 --- 132 unchanged lines hidden (view full) --- 141 WREG32_MC(R_000009_MC_CNTL1, (tmp | S_000009_ENABLE_PAGE_TABLES(1))); 142 rs600_gart_tlb_flush(rdev); 143 rdev->gart.ready = true; 144 return 0; 145} 146 147void rs600_gart_disable(struct radeon_device *rdev) 148{ | 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 --- 132 unchanged lines hidden (view full) --- 141 WREG32_MC(R_000009_MC_CNTL1, (tmp | S_000009_ENABLE_PAGE_TABLES(1))); 142 rs600_gart_tlb_flush(rdev); 143 rdev->gart.ready = true; 144 return 0; 145} 146 147void rs600_gart_disable(struct radeon_device *rdev) 148{ |
149 uint32_t tmp; | 149 u32 tmp; 150 int r; |
150 151 /* FIXME: disable out of gart access */ 152 WREG32_MC(R_000100_MC_PT0_CNTL, 0); 153 tmp = RREG32_MC(R_000009_MC_CNTL1); 154 WREG32_MC(R_000009_MC_CNTL1, tmp & C_000009_ENABLE_PAGE_TABLES); 155 if (rdev->gart.table.vram.robj) { | 151 152 /* FIXME: disable out of gart access */ 153 WREG32_MC(R_000100_MC_PT0_CNTL, 0); 154 tmp = RREG32_MC(R_000009_MC_CNTL1); 155 WREG32_MC(R_000009_MC_CNTL1, tmp & C_000009_ENABLE_PAGE_TABLES); 156 if (rdev->gart.table.vram.robj) { |
156 radeon_object_kunmap(rdev->gart.table.vram.robj); 157 radeon_object_unpin(rdev->gart.table.vram.robj); | 157 r = radeon_bo_reserve(rdev->gart.table.vram.robj, false); 158 if (r == 0) { 159 radeon_bo_kunmap(rdev->gart.table.vram.robj); 160 radeon_bo_unpin(rdev->gart.table.vram.robj); 161 radeon_bo_unreserve(rdev->gart.table.vram.robj); 162 } |
158 } 159} 160 161void rs600_gart_fini(struct radeon_device *rdev) 162{ 163 rs600_gart_disable(rdev); 164 radeon_gart_table_vram_free(rdev); 165 radeon_gart_fini(rdev); --- 273 unchanged lines hidden (view full) --- 439 rs600_suspend(rdev); 440 r100_cp_fini(rdev); 441 r100_wb_fini(rdev); 442 r100_ib_fini(rdev); 443 radeon_gem_fini(rdev); 444 rs600_gart_fini(rdev); 445 radeon_irq_kms_fini(rdev); 446 radeon_fence_driver_fini(rdev); | 163 } 164} 165 166void rs600_gart_fini(struct radeon_device *rdev) 167{ 168 rs600_gart_disable(rdev); 169 radeon_gart_table_vram_free(rdev); 170 radeon_gart_fini(rdev); --- 273 unchanged lines hidden (view full) --- 444 rs600_suspend(rdev); 445 r100_cp_fini(rdev); 446 r100_wb_fini(rdev); 447 r100_ib_fini(rdev); 448 radeon_gem_fini(rdev); 449 rs600_gart_fini(rdev); 450 radeon_irq_kms_fini(rdev); 451 radeon_fence_driver_fini(rdev); |
447 radeon_object_fini(rdev); | 452 radeon_bo_fini(rdev); |
448 radeon_atombios_fini(rdev); 449 kfree(rdev->bios); 450 rdev->bios = NULL; 451} 452 453int rs600_init(struct radeon_device *rdev) 454{ 455 int r; --- 42 unchanged lines hidden (view full) --- 498 /* Fence driver */ 499 r = radeon_fence_driver_init(rdev); 500 if (r) 501 return r; 502 r = radeon_irq_kms_init(rdev); 503 if (r) 504 return r; 505 /* Memory manager */ | 453 radeon_atombios_fini(rdev); 454 kfree(rdev->bios); 455 rdev->bios = NULL; 456} 457 458int rs600_init(struct radeon_device *rdev) 459{ 460 int r; --- 42 unchanged lines hidden (view full) --- 503 /* Fence driver */ 504 r = radeon_fence_driver_init(rdev); 505 if (r) 506 return r; 507 r = radeon_irq_kms_init(rdev); 508 if (r) 509 return r; 510 /* Memory manager */ |
506 r = radeon_object_init(rdev); | 511 r = radeon_bo_init(rdev); |
507 if (r) 508 return r; 509 r = rs600_gart_init(rdev); 510 if (r) 511 return r; 512 rs600_set_safe_registers(rdev); 513 rdev->accel_working = true; 514 r = rs600_startup(rdev); --- 13 unchanged lines hidden --- | 512 if (r) 513 return r; 514 r = rs600_gart_init(rdev); 515 if (r) 516 return r; 517 rs600_set_safe_registers(rdev); 518 rdev->accel_working = true; 519 r = rs600_startup(rdev); --- 13 unchanged lines hidden --- |