diff options
author | Dave Airlie <airlied@redhat.com> | 2016-05-08 23:49:56 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2016-05-08 23:49:56 -0400 |
commit | bafb86f5bc3173479002555dea7f31d943b12332 (patch) | |
tree | 6ec94c96460faf782cdb8781339560e13e0918b0 /drivers/gpu/drm/amd | |
parent | ba391646d0d43aee3596b616113cce0f22dde627 (diff) | |
parent | 44549e8f5eea4e0a41b487b63e616cb089922b99 (diff) |
Merge tag 'v4.6-rc7' into drm-next
Merge this back as we've built up a fair few conflicts, and I have
some newer trees to pull in.
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c | 11 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 13 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/atombios_encoders.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/tonga_ih.c | 2 |
13 files changed, 46 insertions, 20 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index 1012bd3f3482..113fd4bf9b64 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h | |||
@@ -1639,6 +1639,7 @@ struct amdgpu_uvd { | |||
1639 | struct amdgpu_bo *vcpu_bo; | 1639 | struct amdgpu_bo *vcpu_bo; |
1640 | void *cpu_addr; | 1640 | void *cpu_addr; |
1641 | uint64_t gpu_addr; | 1641 | uint64_t gpu_addr; |
1642 | unsigned fw_version; | ||
1642 | void *saved_bo; | 1643 | void *saved_bo; |
1643 | unsigned max_handles; | 1644 | unsigned max_handles; |
1644 | atomic_t handles[AMDGPU_MAX_UVD_HANDLES]; | 1645 | atomic_t handles[AMDGPU_MAX_UVD_HANDLES]; |
@@ -2074,6 +2075,7 @@ struct amdgpu_device { | |||
2074 | 2075 | ||
2075 | /* tracking pinned memory */ | 2076 | /* tracking pinned memory */ |
2076 | u64 vram_pin_size; | 2077 | u64 vram_pin_size; |
2078 | u64 invisible_pin_size; | ||
2077 | u64 gart_pin_size; | 2079 | u64 gart_pin_size; |
2078 | 2080 | ||
2079 | /* amdkfd interface */ | 2081 | /* amdkfd interface */ |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c index da764e193fb9..49838dfe9bda 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c | |||
@@ -425,6 +425,10 @@ static int acp_resume(void *handle) | |||
425 | struct acp_pm_domain *apd; | 425 | struct acp_pm_domain *apd; |
426 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; | 426 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; |
427 | 427 | ||
428 | /* return early if no ACP */ | ||
429 | if (!adev->acp.acp_genpd) | ||
430 | return 0; | ||
431 | |||
428 | /* SMU block will power on ACP irrespective of ACP runtime status. | 432 | /* SMU block will power on ACP irrespective of ACP runtime status. |
429 | * Power off explicitly based on genpd ACP runtime status so that ACP | 433 | * Power off explicitly based on genpd ACP runtime status so that ACP |
430 | * hw and ACP-genpd status are in sync. | 434 | * hw and ACP-genpd status are in sync. |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c index 0020a0ea43ff..35a1248aaa77 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c | |||
@@ -63,10 +63,6 @@ bool amdgpu_has_atpx(void) { | |||
63 | return amdgpu_atpx_priv.atpx_detected; | 63 | return amdgpu_atpx_priv.atpx_detected; |
64 | } | 64 | } |
65 | 65 | ||
66 | bool amdgpu_has_atpx_dgpu_power_cntl(void) { | ||
67 | return amdgpu_atpx_priv.atpx.functions.power_cntl; | ||
68 | } | ||
69 | |||
70 | /** | 66 | /** |
71 | * amdgpu_atpx_call - call an ATPX method | 67 | * amdgpu_atpx_call - call an ATPX method |
72 | * | 68 | * |
@@ -146,6 +142,13 @@ static void amdgpu_atpx_parse_functions(struct amdgpu_atpx_functions *f, u32 mas | |||
146 | */ | 142 | */ |
147 | static int amdgpu_atpx_validate(struct amdgpu_atpx *atpx) | 143 | static int amdgpu_atpx_validate(struct amdgpu_atpx *atpx) |
148 | { | 144 | { |
145 | /* make sure required functions are enabled */ | ||
146 | /* dGPU power control is required */ | ||
147 | if (atpx->functions.power_cntl == false) { | ||
148 | printk("ATPX dGPU power cntl not present, forcing\n"); | ||
149 | atpx->functions.power_cntl = true; | ||
150 | } | ||
151 | |||
149 | if (atpx->functions.px_params) { | 152 | if (atpx->functions.px_params) { |
150 | union acpi_object *info; | 153 | union acpi_object *info; |
151 | struct atpx_px_params output; | 154 | struct atpx_px_params output; |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 8f037e5e08fa..778330529ff5 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |||
@@ -64,12 +64,6 @@ static const char *amdgpu_asic_name[] = { | |||
64 | "LAST", | 64 | "LAST", |
65 | }; | 65 | }; |
66 | 66 | ||
67 | #if defined(CONFIG_VGA_SWITCHEROO) | ||
68 | bool amdgpu_has_atpx_dgpu_power_cntl(void); | ||
69 | #else | ||
70 | static inline bool amdgpu_has_atpx_dgpu_power_cntl(void) { return false; } | ||
71 | #endif | ||
72 | |||
73 | bool amdgpu_device_is_px(struct drm_device *dev) | 67 | bool amdgpu_device_is_px(struct drm_device *dev) |
74 | { | 68 | { |
75 | struct amdgpu_device *adev = dev->dev_private; | 69 | struct amdgpu_device *adev = dev->dev_private; |
@@ -1494,7 +1488,7 @@ int amdgpu_device_init(struct amdgpu_device *adev, | |||
1494 | 1488 | ||
1495 | if (amdgpu_runtime_pm == 1) | 1489 | if (amdgpu_runtime_pm == 1) |
1496 | runtime = true; | 1490 | runtime = true; |
1497 | if (amdgpu_device_is_px(ddev) && amdgpu_has_atpx_dgpu_power_cntl()) | 1491 | if (amdgpu_device_is_px(ddev)) |
1498 | runtime = true; | 1492 | runtime = true; |
1499 | vga_switcheroo_register_client(adev->pdev, &amdgpu_switcheroo_ops, runtime); | 1493 | vga_switcheroo_register_client(adev->pdev, &amdgpu_switcheroo_ops, runtime); |
1500 | if (runtime) | 1494 | if (runtime) |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c index 4ac83c8b40d9..7db271278e70 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | |||
@@ -303,7 +303,7 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file | |||
303 | fw_info.feature = adev->vce.fb_version; | 303 | fw_info.feature = adev->vce.fb_version; |
304 | break; | 304 | break; |
305 | case AMDGPU_INFO_FW_UVD: | 305 | case AMDGPU_INFO_FW_UVD: |
306 | fw_info.ver = 0; | 306 | fw_info.ver = adev->uvd.fw_version; |
307 | fw_info.feature = 0; | 307 | fw_info.feature = 0; |
308 | break; | 308 | break; |
309 | case AMDGPU_INFO_FW_GMC: | 309 | case AMDGPU_INFO_FW_GMC: |
@@ -384,7 +384,7 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file | |||
384 | vram_gtt.vram_size = adev->mc.real_vram_size; | 384 | vram_gtt.vram_size = adev->mc.real_vram_size; |
385 | vram_gtt.vram_size -= adev->vram_pin_size; | 385 | vram_gtt.vram_size -= adev->vram_pin_size; |
386 | vram_gtt.vram_cpu_accessible_size = adev->mc.visible_vram_size; | 386 | vram_gtt.vram_cpu_accessible_size = adev->mc.visible_vram_size; |
387 | vram_gtt.vram_cpu_accessible_size -= adev->vram_pin_size; | 387 | vram_gtt.vram_cpu_accessible_size -= (adev->vram_pin_size - adev->invisible_pin_size); |
388 | vram_gtt.gtt_size = adev->mc.gtt_size; | 388 | vram_gtt.gtt_size = adev->mc.gtt_size; |
389 | vram_gtt.gtt_size -= adev->gart_pin_size; | 389 | vram_gtt.gtt_size -= adev->gart_pin_size; |
390 | return copy_to_user(out, &vram_gtt, | 390 | return copy_to_user(out, &vram_gtt, |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 5b6639faa731..7ecea83ce453 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | |||
@@ -424,9 +424,11 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 domain, | |||
424 | bo->pin_count = 1; | 424 | bo->pin_count = 1; |
425 | if (gpu_addr != NULL) | 425 | if (gpu_addr != NULL) |
426 | *gpu_addr = amdgpu_bo_gpu_offset(bo); | 426 | *gpu_addr = amdgpu_bo_gpu_offset(bo); |
427 | if (domain == AMDGPU_GEM_DOMAIN_VRAM) | 427 | if (domain == AMDGPU_GEM_DOMAIN_VRAM) { |
428 | bo->adev->vram_pin_size += amdgpu_bo_size(bo); | 428 | bo->adev->vram_pin_size += amdgpu_bo_size(bo); |
429 | else | 429 | if (bo->flags & AMDGPU_GEM_CREATE_NO_CPU_ACCESS) |
430 | bo->adev->invisible_pin_size += amdgpu_bo_size(bo); | ||
431 | } else | ||
430 | bo->adev->gart_pin_size += amdgpu_bo_size(bo); | 432 | bo->adev->gart_pin_size += amdgpu_bo_size(bo); |
431 | } else { | 433 | } else { |
432 | dev_err(bo->adev->dev, "%p pin failed\n", bo); | 434 | dev_err(bo->adev->dev, "%p pin failed\n", bo); |
@@ -456,9 +458,11 @@ int amdgpu_bo_unpin(struct amdgpu_bo *bo) | |||
456 | } | 458 | } |
457 | r = ttm_bo_validate(&bo->tbo, &bo->placement, false, false); | 459 | r = ttm_bo_validate(&bo->tbo, &bo->placement, false, false); |
458 | if (likely(r == 0)) { | 460 | if (likely(r == 0)) { |
459 | if (bo->tbo.mem.mem_type == TTM_PL_VRAM) | 461 | if (bo->tbo.mem.mem_type == TTM_PL_VRAM) { |
460 | bo->adev->vram_pin_size -= amdgpu_bo_size(bo); | 462 | bo->adev->vram_pin_size -= amdgpu_bo_size(bo); |
461 | else | 463 | if (bo->flags & AMDGPU_GEM_CREATE_NO_CPU_ACCESS) |
464 | bo->adev->invisible_pin_size -= amdgpu_bo_size(bo); | ||
465 | } else | ||
462 | bo->adev->gart_pin_size -= amdgpu_bo_size(bo); | 466 | bo->adev->gart_pin_size -= amdgpu_bo_size(bo); |
463 | } else { | 467 | } else { |
464 | dev_err(bo->adev->dev, "%p validate failed for unpin\n", bo); | 468 | dev_err(bo->adev->dev, "%p validate failed for unpin\n", bo); |
@@ -537,6 +541,7 @@ int amdgpu_bo_set_metadata (struct amdgpu_bo *bo, void *metadata, | |||
537 | if (!metadata_size) { | 541 | if (!metadata_size) { |
538 | if (bo->metadata_size) { | 542 | if (bo->metadata_size) { |
539 | kfree(bo->metadata); | 543 | kfree(bo->metadata); |
544 | bo->metadata = NULL; | ||
540 | bo->metadata_size = 0; | 545 | bo->metadata_size = 0; |
541 | } | 546 | } |
542 | return 0; | 547 | return 0; |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index a0065765ed2d..3b9053af4762 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | |||
@@ -223,6 +223,8 @@ static int amdgpu_verify_access(struct ttm_buffer_object *bo, struct file *filp) | |||
223 | { | 223 | { |
224 | struct amdgpu_bo *rbo = container_of(bo, struct amdgpu_bo, tbo); | 224 | struct amdgpu_bo *rbo = container_of(bo, struct amdgpu_bo, tbo); |
225 | 225 | ||
226 | if (amdgpu_ttm_tt_get_usermm(bo->ttm)) | ||
227 | return -EPERM; | ||
226 | return drm_vma_node_verify_access(&rbo->gem_base.vma_node, filp); | 228 | return drm_vma_node_verify_access(&rbo->gem_base.vma_node, filp); |
227 | } | 229 | } |
228 | 230 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c index db86012deb67..abda242980ba 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | |||
@@ -181,6 +181,9 @@ int amdgpu_uvd_sw_init(struct amdgpu_device *adev) | |||
181 | ((version_major == 0x01) && (version_minor >= 0x50))) | 181 | ((version_major == 0x01) && (version_minor >= 0x50))) |
182 | adev->uvd.max_handles = AMDGPU_MAX_UVD_HANDLES; | 182 | adev->uvd.max_handles = AMDGPU_MAX_UVD_HANDLES; |
183 | 183 | ||
184 | adev->uvd.fw_version = ((version_major << 24) | (version_minor << 16) | | ||
185 | (family_id << 8)); | ||
186 | |||
184 | bo_size = AMDGPU_GPU_PAGE_ALIGN(le32_to_cpu(hdr->ucode_size_bytes) + 8) | 187 | bo_size = AMDGPU_GPU_PAGE_ALIGN(le32_to_cpu(hdr->ucode_size_bytes) + 8) |
185 | + AMDGPU_UVD_STACK_SIZE + AMDGPU_UVD_HEAP_SIZE | 188 | + AMDGPU_UVD_STACK_SIZE + AMDGPU_UVD_HEAP_SIZE |
186 | + AMDGPU_UVD_SESSION_SIZE * adev->uvd.max_handles; | 189 | + AMDGPU_UVD_SESSION_SIZE * adev->uvd.max_handles; |
@@ -279,6 +282,8 @@ int amdgpu_uvd_suspend(struct amdgpu_device *adev) | |||
279 | if (i == AMDGPU_MAX_UVD_HANDLES) | 282 | if (i == AMDGPU_MAX_UVD_HANDLES) |
280 | return 0; | 283 | return 0; |
281 | 284 | ||
285 | cancel_delayed_work_sync(&adev->uvd.idle_work); | ||
286 | |||
282 | size = amdgpu_bo_size(adev->uvd.vcpu_bo); | 287 | size = amdgpu_bo_size(adev->uvd.vcpu_bo); |
283 | ptr = adev->uvd.cpu_addr; | 288 | ptr = adev->uvd.cpu_addr; |
284 | 289 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c index 80c1048f3324..22a4d96fedb7 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | |||
@@ -244,6 +244,7 @@ int amdgpu_vce_suspend(struct amdgpu_device *adev) | |||
244 | if (i == AMDGPU_MAX_VCE_HANDLES) | 244 | if (i == AMDGPU_MAX_VCE_HANDLES) |
245 | return 0; | 245 | return 0; |
246 | 246 | ||
247 | cancel_delayed_work_sync(&adev->vce.idle_work); | ||
247 | /* TODO: suspending running encoding sessions isn't supported */ | 248 | /* TODO: suspending running encoding sessions isn't supported */ |
248 | return -EINVAL; | 249 | return -EINVAL; |
249 | } | 250 | } |
diff --git a/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c b/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c index a873780183d5..48b6bd671cda 100644 --- a/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c +++ b/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c | |||
@@ -298,6 +298,10 @@ bool amdgpu_atombios_encoder_mode_fixup(struct drm_encoder *encoder, | |||
298 | && (mode->crtc_vsync_start < (mode->crtc_vdisplay + 2))) | 298 | && (mode->crtc_vsync_start < (mode->crtc_vdisplay + 2))) |
299 | adjusted_mode->crtc_vsync_start = adjusted_mode->crtc_vdisplay + 2; | 299 | adjusted_mode->crtc_vsync_start = adjusted_mode->crtc_vdisplay + 2; |
300 | 300 | ||
301 | /* vertical FP must be at least 1 */ | ||
302 | if (mode->crtc_vsync_start == mode->crtc_vdisplay) | ||
303 | adjusted_mode->crtc_vsync_start++; | ||
304 | |||
301 | /* get the native mode for scaling */ | 305 | /* get the native mode for scaling */ |
302 | if (amdgpu_encoder->active_device & (ATOM_DEVICE_LCD_SUPPORT)) | 306 | if (amdgpu_encoder->active_device & (ATOM_DEVICE_LCD_SUPPORT)) |
303 | amdgpu_panel_mode_fixup(encoder, adjusted_mode); | 307 | amdgpu_panel_mode_fixup(encoder, adjusted_mode); |
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c index 3b620a8e8682..48e4800eafcc 100644 --- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | |||
@@ -910,7 +910,10 @@ static int gmc_v7_0_late_init(void *handle) | |||
910 | { | 910 | { |
911 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; | 911 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; |
912 | 912 | ||
913 | return amdgpu_irq_get(adev, &adev->mc.vm_fault, 0); | 913 | if (amdgpu_vm_fault_stop != AMDGPU_VM_FAULT_STOP_ALWAYS) |
914 | return amdgpu_irq_get(adev, &adev->mc.vm_fault, 0); | ||
915 | else | ||
916 | return 0; | ||
914 | } | 917 | } |
915 | 918 | ||
916 | static int gmc_v7_0_sw_init(void *handle) | 919 | static int gmc_v7_0_sw_init(void *handle) |
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c index c0de22f7311d..53c3339e2cfd 100644 --- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | |||
@@ -905,7 +905,10 @@ static int gmc_v8_0_late_init(void *handle) | |||
905 | { | 905 | { |
906 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; | 906 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; |
907 | 907 | ||
908 | return amdgpu_irq_get(adev, &adev->mc.vm_fault, 0); | 908 | if (amdgpu_vm_fault_stop != AMDGPU_VM_FAULT_STOP_ALWAYS) |
909 | return amdgpu_irq_get(adev, &adev->mc.vm_fault, 0); | ||
910 | else | ||
911 | return 0; | ||
909 | } | 912 | } |
910 | 913 | ||
911 | #define mmMC_SEQ_MISC0_FIJI 0xA71 | 914 | #define mmMC_SEQ_MISC0_FIJI 0xA71 |
diff --git a/drivers/gpu/drm/amd/amdgpu/tonga_ih.c b/drivers/gpu/drm/amd/amdgpu/tonga_ih.c index dd9e5e36fec9..55cdab849089 100644 --- a/drivers/gpu/drm/amd/amdgpu/tonga_ih.c +++ b/drivers/gpu/drm/amd/amdgpu/tonga_ih.c | |||
@@ -307,7 +307,7 @@ static int tonga_ih_sw_fini(void *handle) | |||
307 | 307 | ||
308 | amdgpu_irq_fini(adev); | 308 | amdgpu_irq_fini(adev); |
309 | amdgpu_ih_ring_fini(adev); | 309 | amdgpu_ih_ring_fini(adev); |
310 | amdgpu_irq_add_domain(adev); | 310 | amdgpu_irq_remove_domain(adev); |
311 | 311 | ||
312 | return 0; | 312 | return 0; |
313 | } | 313 | } |