diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-18 13:58:50 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-18 13:58:50 -0400 |
commit | 76dcd9392af63ef8a1801ca727c20b3ccd1bff96 (patch) | |
tree | 238b557947b695692fd64f1c6903298d907c204d | |
parent | 184ca823481c99dadd7d946e5afd4bb921eab30d (diff) | |
parent | 91d62d9f30206be6f7749a0e6f7fa58c6d70c702 (diff) |
Merge tag 'drm-fixes-for-4.8-rc3' of git://people.freedesktop.org/~airlied/linux
Pull drm fixes from Dave Airlie:
"Pretty quiet so far:
- a few amdgpu/radeon fixup for pcie pm changes
- a couple of amdgpu fixes
- some build fixes
- printk fix"
* tag 'drm-fixes-for-4.8-rc3' of git://people.freedesktop.org/~airlied/linux:
drm/amdgpu: Change GART offset to 64-bit
drm/mediatek: add ARM_SMCCC dependency
drm/mediatek: add CONFIG_OF dependency
drm/mediatek: add COMMON_CLK dependency
drm/amdgpu: Fix memory trashing if UVD ring test fails
drm/amdgpu: fix vm init error path
drm/amdkfd: print doorbell offset as a hex value
Revert "drm/radeon: work around lack of upstream ACPI support for D3cold"
Revert "drm/amdgpu: work around lack of upstream ACPI support for D3cold"
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/mediatek/Kconfig | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_atpx_handler.c | 9 |
8 files changed, 14 insertions, 25 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index 8ebc5f1eb4c0..8c704c86597b 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h | |||
@@ -646,9 +646,9 @@ int amdgpu_gart_table_vram_pin(struct amdgpu_device *adev); | |||
646 | void amdgpu_gart_table_vram_unpin(struct amdgpu_device *adev); | 646 | void amdgpu_gart_table_vram_unpin(struct amdgpu_device *adev); |
647 | int amdgpu_gart_init(struct amdgpu_device *adev); | 647 | int amdgpu_gart_init(struct amdgpu_device *adev); |
648 | void amdgpu_gart_fini(struct amdgpu_device *adev); | 648 | void amdgpu_gart_fini(struct amdgpu_device *adev); |
649 | void amdgpu_gart_unbind(struct amdgpu_device *adev, unsigned offset, | 649 | void amdgpu_gart_unbind(struct amdgpu_device *adev, uint64_t offset, |
650 | int pages); | 650 | int pages); |
651 | int amdgpu_gart_bind(struct amdgpu_device *adev, unsigned offset, | 651 | int amdgpu_gart_bind(struct amdgpu_device *adev, uint64_t offset, |
652 | int pages, struct page **pagelist, | 652 | int pages, struct page **pagelist, |
653 | dma_addr_t *dma_addr, uint32_t flags); | 653 | dma_addr_t *dma_addr, uint32_t flags); |
654 | 654 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c index 49de92600074..10b5ddf2c588 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c | |||
@@ -200,16 +200,7 @@ static int amdgpu_atpx_validate(struct amdgpu_atpx *atpx) | |||
200 | atpx->is_hybrid = false; | 200 | atpx->is_hybrid = false; |
201 | if (valid_bits & ATPX_MS_HYBRID_GFX_SUPPORTED) { | 201 | if (valid_bits & ATPX_MS_HYBRID_GFX_SUPPORTED) { |
202 | printk("ATPX Hybrid Graphics\n"); | 202 | printk("ATPX Hybrid Graphics\n"); |
203 | #if 1 | ||
204 | /* This is a temporary hack until the D3 cold support | ||
205 | * makes it upstream. The ATPX power_control method seems | ||
206 | * to still work on even if the system should be using | ||
207 | * the new standardized hybrid D3 cold ACPI interface. | ||
208 | */ | ||
209 | atpx->functions.power_cntl = true; | ||
210 | #else | ||
211 | atpx->functions.power_cntl = false; | 203 | atpx->functions.power_cntl = false; |
212 | #endif | ||
213 | atpx->is_hybrid = true; | 204 | atpx->is_hybrid = true; |
214 | } | 205 | } |
215 | 206 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c index 921bce2df0b0..0feea347f680 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | |||
@@ -221,7 +221,7 @@ void amdgpu_gart_table_vram_free(struct amdgpu_device *adev) | |||
221 | * Unbinds the requested pages from the gart page table and | 221 | * Unbinds the requested pages from the gart page table and |
222 | * replaces them with the dummy page (all asics). | 222 | * replaces them with the dummy page (all asics). |
223 | */ | 223 | */ |
224 | void amdgpu_gart_unbind(struct amdgpu_device *adev, unsigned offset, | 224 | void amdgpu_gart_unbind(struct amdgpu_device *adev, uint64_t offset, |
225 | int pages) | 225 | int pages) |
226 | { | 226 | { |
227 | unsigned t; | 227 | unsigned t; |
@@ -268,7 +268,7 @@ void amdgpu_gart_unbind(struct amdgpu_device *adev, unsigned offset, | |||
268 | * (all asics). | 268 | * (all asics). |
269 | * Returns 0 for success, -EINVAL for failure. | 269 | * Returns 0 for success, -EINVAL for failure. |
270 | */ | 270 | */ |
271 | int amdgpu_gart_bind(struct amdgpu_device *adev, unsigned offset, | 271 | int amdgpu_gart_bind(struct amdgpu_device *adev, uint64_t offset, |
272 | int pages, struct page **pagelist, dma_addr_t *dma_addr, | 272 | int pages, struct page **pagelist, dma_addr_t *dma_addr, |
273 | uint32_t flags) | 273 | uint32_t flags) |
274 | { | 274 | { |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c index b11f4e8868d7..4aa993d19018 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | |||
@@ -1187,7 +1187,8 @@ int amdgpu_uvd_ring_test_ib(struct amdgpu_ring *ring, long timeout) | |||
1187 | r = 0; | 1187 | r = 0; |
1188 | } | 1188 | } |
1189 | 1189 | ||
1190 | error: | ||
1191 | fence_put(fence); | 1190 | fence_put(fence); |
1191 | |||
1192 | error: | ||
1192 | return r; | 1193 | return r; |
1193 | } | 1194 | } |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index 8e642fc48df4..80120fa4092c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | |||
@@ -1535,7 +1535,7 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm) | |||
1535 | r = amd_sched_entity_init(&ring->sched, &vm->entity, | 1535 | r = amd_sched_entity_init(&ring->sched, &vm->entity, |
1536 | rq, amdgpu_sched_jobs); | 1536 | rq, amdgpu_sched_jobs); |
1537 | if (r) | 1537 | if (r) |
1538 | return r; | 1538 | goto err; |
1539 | 1539 | ||
1540 | vm->page_directory_fence = NULL; | 1540 | vm->page_directory_fence = NULL; |
1541 | 1541 | ||
@@ -1565,6 +1565,9 @@ error_free_page_directory: | |||
1565 | error_free_sched_entity: | 1565 | error_free_sched_entity: |
1566 | amd_sched_entity_fini(&ring->sched, &vm->entity); | 1566 | amd_sched_entity_fini(&ring->sched, &vm->entity); |
1567 | 1567 | ||
1568 | err: | ||
1569 | drm_free_large(vm->page_tables); | ||
1570 | |||
1568 | return r; | 1571 | return r; |
1569 | } | 1572 | } |
1570 | 1573 | ||
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c b/drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c index e621eba63126..a7d3cb3fead0 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c | |||
@@ -184,7 +184,7 @@ u32 __iomem *kfd_get_kernel_doorbell(struct kfd_dev *kfd, | |||
184 | sizeof(u32)) + inx; | 184 | sizeof(u32)) + inx; |
185 | 185 | ||
186 | pr_debug("kfd: get kernel queue doorbell\n" | 186 | pr_debug("kfd: get kernel queue doorbell\n" |
187 | " doorbell offset == 0x%08d\n" | 187 | " doorbell offset == 0x%08X\n" |
188 | " kernel address == 0x%08lX\n", | 188 | " kernel address == 0x%08lX\n", |
189 | *doorbell_off, (uintptr_t)(kfd->doorbell_kernel_ptr + inx)); | 189 | *doorbell_off, (uintptr_t)(kfd->doorbell_kernel_ptr + inx)); |
190 | 190 | ||
diff --git a/drivers/gpu/drm/mediatek/Kconfig b/drivers/gpu/drm/mediatek/Kconfig index 23ac8041c562..294de4549922 100644 --- a/drivers/gpu/drm/mediatek/Kconfig +++ b/drivers/gpu/drm/mediatek/Kconfig | |||
@@ -2,6 +2,9 @@ config DRM_MEDIATEK | |||
2 | tristate "DRM Support for Mediatek SoCs" | 2 | tristate "DRM Support for Mediatek SoCs" |
3 | depends on DRM | 3 | depends on DRM |
4 | depends on ARCH_MEDIATEK || (ARM && COMPILE_TEST) | 4 | depends on ARCH_MEDIATEK || (ARM && COMPILE_TEST) |
5 | depends on COMMON_CLK | ||
6 | depends on HAVE_ARM_SMCCC | ||
7 | depends on OF | ||
5 | select DRM_GEM_CMA_HELPER | 8 | select DRM_GEM_CMA_HELPER |
6 | select DRM_KMS_HELPER | 9 | select DRM_KMS_HELPER |
7 | select DRM_MIPI_DSI | 10 | select DRM_MIPI_DSI |
diff --git a/drivers/gpu/drm/radeon/radeon_atpx_handler.c b/drivers/gpu/drm/radeon/radeon_atpx_handler.c index 6de342861202..ddef0d494084 100644 --- a/drivers/gpu/drm/radeon/radeon_atpx_handler.c +++ b/drivers/gpu/drm/radeon/radeon_atpx_handler.c | |||
@@ -198,16 +198,7 @@ static int radeon_atpx_validate(struct radeon_atpx *atpx) | |||
198 | atpx->is_hybrid = false; | 198 | atpx->is_hybrid = false; |
199 | if (valid_bits & ATPX_MS_HYBRID_GFX_SUPPORTED) { | 199 | if (valid_bits & ATPX_MS_HYBRID_GFX_SUPPORTED) { |
200 | printk("ATPX Hybrid Graphics\n"); | 200 | printk("ATPX Hybrid Graphics\n"); |
201 | #if 1 | ||
202 | /* This is a temporary hack until the D3 cold support | ||
203 | * makes it upstream. The ATPX power_control method seems | ||
204 | * to still work on even if the system should be using | ||
205 | * the new standardized hybrid D3 cold ACPI interface. | ||
206 | */ | ||
207 | atpx->functions.power_cntl = true; | ||
208 | #else | ||
209 | atpx->functions.power_cntl = false; | 201 | atpx->functions.power_cntl = false; |
210 | #endif | ||
211 | atpx->is_hybrid = true; | 202 | atpx->is_hybrid = true; |
212 | } | 203 | } |
213 | 204 | ||