| /OK3568_Linux_fs/kernel/drivers/dma-buf/ |
| H A D | sync_file.c | 149 struct dma_fence **fences, int num_fences) in sync_file_set_fence() argument 160 sync_file->fence = fences[0]; in sync_file_set_fence() 161 kfree(fences); in sync_file_set_fence() 163 array = dma_fence_array_create(num_fences, fences, in sync_file_set_fence() 182 return array->fences; in get_fences() 189 static void add_fence(struct dma_fence **fences, in add_fence() argument 192 fences[*i] = fence; in add_fence() 214 struct dma_fence **fences = NULL, **nfences, **a_fences, **b_fences; in sync_file_merge() local 228 fences = kcalloc(num_fences, sizeof(*fences), GFP_KERNEL); in sync_file_merge() 229 if (!fences) in sync_file_merge() [all …]
|
| H A D | st-dma-fence-chain.c | 108 struct dma_fence **fences; member 130 fc->fences = kvmalloc_array(count, sizeof(*fc->fences), in fence_chains_init() 132 if (!fc->fences) { in fence_chains_init() 139 fc->fences[i] = mock_fence(); in fence_chains_init() 140 if (!fc->fences[i]) { in fence_chains_init() 146 fc->fences[i], in fence_chains_init() 161 dma_fence_put(fc->fences[i]); in fence_chains_init() 164 kvfree(fc->fences); in fence_chains_init() 175 dma_fence_signal(fc->fences[i]); in fence_chains_fini() 176 dma_fence_put(fc->fences[i]); in fence_chains_fini() [all …]
|
| H A D | dma-fence-array.c | 87 if (dma_fence_add_callback(array->fences[i], &cb[i].cb, in dma_fence_array_enable_signaling() 89 int error = array->fences[i]->error; in dma_fence_array_enable_signaling() 120 dma_fence_put(array->fences[i]); in dma_fence_array_release() 122 kfree(array->fences); in dma_fence_array_release() 155 struct dma_fence **fences, in dma_fence_array_create() argument 175 array->fences = fences; in dma_fence_array_create() 201 if (array->fences[i]->context != context) in dma_fence_match_context()
|
| H A D | dma-fence.c | 783 dma_fence_test_signaled_any(struct dma_fence **fences, uint32_t count, in dma_fence_test_signaled_any() argument 789 struct dma_fence *fence = fences[i]; in dma_fence_test_signaled_any() 820 dma_fence_wait_any_timeout(struct dma_fence **fences, uint32_t count, in dma_fence_wait_any_timeout() argument 827 if (WARN_ON(!fences || !count || timeout < 0)) in dma_fence_wait_any_timeout() 832 if (dma_fence_is_signaled(fences[i])) { in dma_fence_wait_any_timeout() 848 struct dma_fence *fence = fences[i]; in dma_fence_wait_any_timeout() 866 if (dma_fence_test_signaled_any(fences, count, idx)) in dma_fence_wait_any_timeout() 879 dma_fence_remove_callback(fences[i], &cb[i].base); in dma_fence_wait_any_timeout()
|
| /OK3568_Linux_fs/kernel/drivers/gpu/arm/mali400/mali/linux/ |
| H A D | mali_internal_sync.c | 343 return fence_array->fences; in mali_internal_get_fences() 349 return fence_array->fences; in mali_internal_get_fences() 357 static void mali_internal_add_fence_array(struct fence **fences, int *num_fences, struct fence *fen… in mali_internal_add_fence_array() argument 359 static void mali_internal_add_fence_array(struct dma_fence **fences, int *num_fences, struct dma_fe… in mali_internal_add_fence_array() 362 fences[*num_fences] = fence; in mali_internal_add_fence_array() 378 struct fence **fences, int num_fences) in mali_internal_sync_fence_set_fence_array() argument 381 struct dma_fence **fences, int num_fences) in mali_internal_sync_fence_set_fence_array() 390 sync_fence->fence =fences[0]; in mali_internal_sync_fence_set_fence_array() 391 kfree(fences); in mali_internal_sync_fence_set_fence_array() 394 array = fence_array_create(num_fences, fences, in mali_internal_sync_fence_set_fence_array() [all …]
|
| /OK3568_Linux_fs/yocto/meta-rockchip/dynamic-layers/recipes-browser/chromium/chromium_111.0.5563/ |
| H A D | 0010-Create-new-fence-when-there-s-no-in-fences.patch | 4 Subject: [PATCH 10/18] Create new fence when there's no in-fences 6 There're cases that in-fences are not provided. 27 void WaitForGpuFences(std::vector<std::unique_ptr<gfx::GpuFence>> fences) { 28 for (auto& fence : fences) 35 std::vector<std::unique_ptr<gfx::GpuFence>> fences; 36 + // Uset in-fences provided in the overlays. If there are none, we insert our 40 fences.push_back(std::make_unique<gfx::GpuFence>( 45 - fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences)); 47 + if (!fences.empty()) { 48 + fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences));
|
| /OK3568_Linux_fs/yocto/meta-rockchip/dynamic-layers/recipes-browser/chromium/chromium_109.0.5414/ |
| H A D | 0010-Create-new-fence-when-there-s-no-in-fences.patch | 4 Subject: [PATCH 10/17] Create new fence when there's no in-fences 6 There're cases that in-fences are not provided. 27 void WaitForGpuFences(std::vector<std::unique_ptr<gfx::GpuFence>> fences) { 28 for (auto& fence : fences) 35 std::vector<std::unique_ptr<gfx::GpuFence>> fences; 36 + // Uset in-fences provided in the overlays. If there are none, we insert our 40 fences.push_back(std::make_unique<gfx::GpuFence>( 45 - fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences)); 47 + if (!fences.empty()) { 48 + fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences));
|
| /OK3568_Linux_fs/yocto/meta-rockchip/dynamic-layers/recipes-browser/chromium/chromium_105.0.5195/ |
| H A D | 0009-Create-new-fence-when-there-s-no-in-fences.patch | 4 Subject: [PATCH 09/17] Create new fence when there's no in-fences 6 There're cases that in-fences are not provided. 27 void WaitForGpuFences(std::vector<std::unique_ptr<gfx::GpuFence>> fences) { 28 for (auto& fence : fences) 35 std::vector<std::unique_ptr<gfx::GpuFence>> fences; 36 + // Uset in-fences provided in the overlays. If there are none, we insert our 40 fences.push_back(std::make_unique<gfx::GpuFence>( 45 - fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences)); 47 + if (!fences.empty()) { 48 + fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences));
|
| /OK3568_Linux_fs/yocto/meta-rockchip/dynamic-layers/recipes-browser/chromium/chromium_96.0.4664/ |
| H A D | 0010-Create-new-fence-when-there-s-no-in-fences.patch | 4 Subject: [PATCH 10/14] Create new fence when there's no in-fences 6 There're cases that in-fences are not provided. 27 void WaitForGpuFences(std::vector<std::unique_ptr<gfx::GpuFence>> fences) { 28 for (auto& fence : fences) 35 std::vector<std::unique_ptr<gfx::GpuFence>> fences; 36 + // Uset in-fences provided in the overlays. If there are none, we insert our 40 fences.push_back(std::move(plane.second.gpu_fence)); 43 - fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences)); 45 + if (!fences.empty()) { 46 + fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences));
|
| /OK3568_Linux_fs/yocto/meta-rockchip/dynamic-layers/recipes-browser/chromium/chromium_97.0.4692/ |
| H A D | 0010-Create-new-fence-when-there-s-no-in-fences.patch | 4 Subject: [PATCH 10/14] Create new fence when there's no in-fences 6 There're cases that in-fences are not provided. 27 void WaitForGpuFences(std::vector<std::unique_ptr<gfx::GpuFence>> fences) { 28 for (auto& fence : fences) 35 std::vector<std::unique_ptr<gfx::GpuFence>> fences; 36 + // Uset in-fences provided in the overlays. If there are none, we insert our 40 fences.push_back(std::move(plane.second.gpu_fence)); 43 - fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences)); 45 + if (!fences.empty()) { 46 + fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences));
|
| /OK3568_Linux_fs/yocto/meta-rockchip/dynamic-layers/recipes-browser/chromium/chromium_98.0.4758/ |
| H A D | 0011-Create-new-fence-when-there-s-no-in-fences.patch | 4 Subject: [PATCH 11/17] Create new fence when there's no in-fences 6 There're cases that in-fences are not provided. 27 void WaitForGpuFences(std::vector<std::unique_ptr<gfx::GpuFence>> fences) { 28 for (auto& fence : fences) 35 std::vector<std::unique_ptr<gfx::GpuFence>> fences; 36 + // Uset in-fences provided in the overlays. If there are none, we insert our 40 fences.push_back(std::move(plane.second.gpu_fence)); 43 - fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences)); 45 + if (!fences.empty()) { 46 + fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences));
|
| /OK3568_Linux_fs/yocto/meta-rockchip/dynamic-layers/recipes-browser/chromium/chromium_103.0.5060/ |
| H A D | 0009-Create-new-fence-when-there-s-no-in-fences.patch | 4 Subject: [PATCH 09/14] Create new fence when there's no in-fences 6 There're cases that in-fences are not provided. 27 void WaitForGpuFences(std::vector<std::unique_ptr<gfx::GpuFence>> fences) { 28 for (auto& fence : fences) 35 std::vector<std::unique_ptr<gfx::GpuFence>> fences; 36 + // Uset in-fences provided in the overlays. If there are none, we insert our 40 fences.push_back(std::make_unique<gfx::GpuFence>( 45 - fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences)); 47 + if (!fences.empty()) { 48 + fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences));
|
| /OK3568_Linux_fs/yocto/meta-rockchip/dynamic-layers/recipes-browser/chromium/chromium_104.0.5112/ |
| H A D | 0009-Create-new-fence-when-there-s-no-in-fences.patch | 4 Subject: [PATCH 09/17] Create new fence when there's no in-fences 6 There're cases that in-fences are not provided. 27 void WaitForGpuFences(std::vector<std::unique_ptr<gfx::GpuFence>> fences) { 28 for (auto& fence : fences) 35 std::vector<std::unique_ptr<gfx::GpuFence>> fences; 36 + // Uset in-fences provided in the overlays. If there are none, we insert our 40 fences.push_back(std::make_unique<gfx::GpuFence>( 45 - fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences)); 47 + if (!fences.empty()) { 48 + fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences));
|
| /OK3568_Linux_fs/yocto/meta-rockchip/dynamic-layers/recipes-browser/chromium/chromium_100.0.4896/ |
| H A D | 0009-Create-new-fence-when-there-s-no-in-fences.patch | 4 Subject: [PATCH 09/15] Create new fence when there's no in-fences 6 There're cases that in-fences are not provided. 27 void WaitForGpuFences(std::vector<std::unique_ptr<gfx::GpuFence>> fences) { 28 for (auto& fence : fences) 35 std::vector<std::unique_ptr<gfx::GpuFence>> fences; 36 + // Uset in-fences provided in the overlays. If there are none, we insert our 40 fences.push_back(std::move(plane.second.gpu_fence)); 43 - fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences)); 45 + if (!fences.empty()) { 46 + fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences));
|
| /OK3568_Linux_fs/yocto/meta-rockchip/dynamic-layers/recipes-browser/chromium/chromium_101.0.4951/ |
| H A D | 0009-Create-new-fence-when-there-s-no-in-fences.patch | 4 Subject: [PATCH 09/15] Create new fence when there's no in-fences 6 There're cases that in-fences are not provided. 27 void WaitForGpuFences(std::vector<std::unique_ptr<gfx::GpuFence>> fences) { 28 for (auto& fence : fences) 35 std::vector<std::unique_ptr<gfx::GpuFence>> fences; 36 + // Uset in-fences provided in the overlays. If there are none, we insert our 40 fences.push_back(std::move(plane.second.gpu_fence)); 43 - fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences)); 45 + if (!fences.empty()) { 46 + fence_wait_task = base::BindOnce(&WaitForGpuFences, std::move(fences));
|
| /OK3568_Linux_fs/kernel/drivers/gpu/drm/amd/amdgpu/ |
| H A D | amdgpu_ids.c | 110 struct dma_fence *fence, **fences; in amdgpu_pasid_free_delayed() local 115 r = dma_resv_get_fences_rcu(resv, NULL, &count, &fences); in amdgpu_pasid_free_delayed() 125 fence = fences[0]; in amdgpu_pasid_free_delayed() 126 kfree(fences); in amdgpu_pasid_free_delayed() 131 array = dma_fence_array_create(count, fences, context, in amdgpu_pasid_free_delayed() 134 kfree(fences); in amdgpu_pasid_free_delayed() 204 struct dma_fence **fences; in amdgpu_vmid_grab_idle() local 211 fences = kmalloc_array(sizeof(void *), id_mgr->num_ids, GFP_KERNEL); in amdgpu_vmid_grab_idle() 212 if (!fences) in amdgpu_vmid_grab_idle() 222 fences[i] = amdgpu_sync_peek_fence(&(*idle)->active, r); in amdgpu_vmid_grab_idle() [all …]
|
| H A D | amdgpu_sync.c | 51 hash_init(sync->fences); in amdgpu_sync_create() 135 hash_for_each_possible(sync->fences, e, node, f->context) { in amdgpu_sync_add_later() 167 hash_add(sync->fences, &e->node, f->context); in amdgpu_sync_fence() 293 hash_for_each_safe(sync->fences, i, tmp, e, node) { in amdgpu_sync_peek_fence() 334 hash_for_each_safe(sync->fences, i, tmp, e, node) { in amdgpu_sync_get_fence() 365 hash_for_each_safe(source->fences, i, tmp, e, node) { in amdgpu_sync_clone() 390 hash_for_each_safe(sync->fences, i, tmp, e, node) { in amdgpu_sync_wait() 416 hash_for_each_safe(sync->fences, i, tmp, e, node) { in amdgpu_sync_free()
|
| H A D | amdgpu_sa.c | 207 struct dma_fence **fences, in amdgpu_sa_bo_next_hole() argument 229 fences[i] = NULL; in amdgpu_sa_bo_next_hole() 238 fences[i] = sa_bo->fence; in amdgpu_sa_bo_next_hole() 279 struct dma_fence *fences[AMDGPU_SA_NUM_FENCE_LISTS]; in amdgpu_sa_bo_new() local 314 } while (amdgpu_sa_bo_next_hole(sa_manager, fences, tries)); in amdgpu_sa_bo_new() 317 if (fences[i]) in amdgpu_sa_bo_new() 318 fences[count++] = dma_fence_get(fences[i]); in amdgpu_sa_bo_new() 322 t = dma_fence_wait_any_timeout(fences, count, false, in amdgpu_sa_bo_new() 326 dma_fence_put(fences[i]); in amdgpu_sa_bo_new()
|
| H A D | amdgpu_dma_buf.c | 129 struct dma_fence **fences; in __dma_resv_make_exclusive() local 136 r = dma_resv_get_fences_rcu(obj, NULL, &count, &fences); in __dma_resv_make_exclusive() 143 dma_resv_add_excl_fence(obj, fences[0]); in __dma_resv_make_exclusive() 144 dma_fence_put(fences[0]); in __dma_resv_make_exclusive() 145 kfree(fences); in __dma_resv_make_exclusive() 149 array = dma_fence_array_create(count, fences, in __dma_resv_make_exclusive() 163 dma_fence_put(fences[count]); in __dma_resv_make_exclusive() 164 kfree(fences); in __dma_resv_make_exclusive()
|
| H A D | amdgpu_fence.c | 159 ptr = &ring->fence_drv.fences[seq & ring->fence_drv.num_fences_mask]; in amdgpu_fence_emit() 271 ptr = &drv->fences[last_seq]; in amdgpu_fence_process() 328 ptr = &ring->fence_drv.fences[seq & ring->fence_drv.num_fences_mask]; in amdgpu_fence_wait_empty() 465 ring->fence_drv.fences = kcalloc(num_hw_submission * 2, sizeof(void *), in amdgpu_fence_driver_init_ring() 467 if (!ring->fence_drv.fences) in amdgpu_fence_driver_init_ring() 548 dma_fence_put(ring->fence_drv.fences[j]); in amdgpu_fence_driver_fini() 549 kfree(ring->fence_drv.fences); in amdgpu_fence_driver_fini() 550 ring->fence_drv.fences = NULL; in amdgpu_fence_driver_fini()
|
| /OK3568_Linux_fs/kernel/Documentation/driver-api/ |
| H A D | sync_file.rst | 9 the fences(struct dma_fence) that are needed to synchronize between drivers or 29 in-fences and out-fences 33 the driver to userspace we call the fences it contains 'out-fences'. They are 37 Out-fences are fences that the driver creates. 40 userspace we call these fence(s) 'in-fences'. Receiving in-fences means that 42 the in-fences. 72 of the Sync File to the kernel. The kernel can then retrieve the fences
|
| H A D | dma-buf.rst | 134 :doc: DMA fences overview 187 * Future fences, used in HWC1 to signal when a buffer isn't used by the display 191 * Proxy fences, proposed to handle &drm_syncobj for which the fence has not yet 194 * Userspace fences or gpu futexes, fine-grained locking within a command buffer 200 batch DMA fences for memory management instead of context preemption DMA 201 fences which get reattached when the compute job is rescheduled. 204 fences and controls when they fire. Mixing indefinite fences with normal 205 in-kernel DMA fences does not work, even when a fallback timeout is included to 211 * Only userspace knows about all dependencies in indefinite fences and when 215 for memory management needs, which means we must support indefinite fences being [all …]
|
| /OK3568_Linux_fs/kernel/drivers/gpu/drm/i915/selftests/ |
| H A D | i915_sw_fence.c | 453 struct i915_sw_fence **fences; in test_chain() local 457 fences = kmalloc_array(nfences, sizeof(*fences), GFP_KERNEL); in test_chain() 458 if (!fences) in test_chain() 462 fences[i] = alloc_fence(); in test_chain() 463 if (!fences[i]) { in test_chain() 470 ret = i915_sw_fence_await_sw_fence_gfp(fences[i], in test_chain() 471 fences[i - 1], in test_chain() 478 i915_sw_fence_commit(fences[i]); in test_chain() 484 if (i915_sw_fence_done(fences[i])) { in test_chain() 490 i915_sw_fence_commit(fences[0]); in test_chain() [all …]
|
| /OK3568_Linux_fs/kernel/drivers/gpu/drm/radeon/ |
| H A D | radeon_sa.c | 248 struct radeon_fence **fences, in radeon_sa_bo_next_hole() argument 278 fences[i] = sa_bo->fence; in radeon_sa_bo_next_hole() 317 struct radeon_fence *fences[RADEON_NUM_RINGS]; in radeon_sa_bo_new() local 336 fences[i] = NULL; in radeon_sa_bo_new() 350 } while (radeon_sa_bo_next_hole(sa_manager, fences, tries)); in radeon_sa_bo_new() 353 radeon_fence_ref(fences[i]); in radeon_sa_bo_new() 356 r = radeon_fence_wait_any(rdev, fences, false); in radeon_sa_bo_new() 358 radeon_fence_unref(&fences[i]); in radeon_sa_bo_new()
|
| /OK3568_Linux_fs/kernel/include/linux/ |
| H A D | dma-fence-array.h | 43 struct dma_fence **fences; member 78 struct dma_fence **fences,
|