Home | History | Annotate | Download | only in radeon

Lines Matching defs:ib

407 	struct radeon_ib ib;
411 r = radeon_ib_get(rdev, ring, &ib, NULL, ib_size_dw * 4);
413 DRM_ERROR("radeon: failed to get ib (%d).\n", r);
417 dummy = ib.gpu_addr + 1024;
420 ib.length_dw = 0;
421 ib.ptr[ib.length_dw++] = cpu_to_le32(0x0000000c); /* len */
422 ib.ptr[ib.length_dw++] = cpu_to_le32(0x00000001); /* session cmd */
423 ib.ptr[ib.length_dw++] = cpu_to_le32(handle);
425 ib.ptr[ib.length_dw++] = cpu_to_le32(0x00000030); /* len */
426 ib.ptr[ib.length_dw++] = cpu_to_le32(0x01000001); /* create cmd */
427 ib.ptr[ib.length_dw++] = cpu_to_le32(0x00000000);
428 ib.ptr[ib.length_dw++] = cpu_to_le32(0x00000042);
429 ib.ptr[ib.length_dw++] = cpu_to_le32(0x0000000a);
430 ib.ptr[ib.length_dw++] = cpu_to_le32(0x00000001);
431 ib.ptr[ib.length_dw++] = cpu_to_le32(0x00000080);
432 ib.ptr[ib.length_dw++] = cpu_to_le32(0x00000060);
433 ib.ptr[ib.length_dw++] = cpu_to_le32(0x00000100);
434 ib.ptr[ib.length_dw++] = cpu_to_le32(0x00000100);
435 ib.ptr[ib.length_dw++] = cpu_to_le32(0x0000000c);
436 ib.ptr[ib.length_dw++] = cpu_to_le32(0x00000000);
438 ib.ptr[ib.length_dw++] = cpu_to_le32(0x00000014); /* len */
439 ib.ptr[ib.length_dw++] = cpu_to_le32(0x05000005); /* feedback buffer */
440 ib.ptr[ib.length_dw++] = cpu_to_le32(upper_32_bits(dummy));
441 ib.ptr[ib.length_dw++] = cpu_to_le32(dummy);
442 ib.ptr[ib.length_dw++] = cpu_to_le32(0x00000001);
444 for (i = ib.length_dw; i < ib_size_dw; ++i)
445 ib.ptr[i] = cpu_to_le32(0x0);
447 r = radeon_ib_schedule(rdev, &ib, NULL, false);
449 DRM_ERROR("radeon: failed to schedule ib (%d).\n", r);
453 *fence = radeon_fence_ref(ib.fence);
455 radeon_ib_free(rdev, &ib);
474 struct radeon_ib ib;
478 r = radeon_ib_get(rdev, ring, &ib, NULL, ib_size_dw * 4);
480 DRM_ERROR("radeon: failed to get ib (%d).\n", r);
484 dummy = ib.gpu_addr + 1024;
487 ib.length_dw = 0;
488 ib.ptr[ib.length_dw++] = cpu_to_le32(0x0000000c); /* len */
489 ib.ptr[ib.length_dw++] = cpu_to_le32(0x00000001); /* session cmd */
490 ib.ptr[ib.length_dw++] = cpu_to_le32(handle);
492 ib.ptr[ib.length_dw++] = cpu_to_le32(0x00000014); /* len */
493 ib.ptr[ib.length_dw++] = cpu_to_le32(0x05000005); /* feedback buffer */
494 ib.ptr[ib.length_dw++] = cpu_to_le32(upper_32_bits(dummy));
495 ib.ptr[ib.length_dw++] = cpu_to_le32(dummy);
496 ib.ptr[ib.length_dw++] = cpu_to_le32(0x00000001);
498 ib.ptr[ib.length_dw++] = cpu_to_le32(0x00000008); /* len */
499 ib.ptr[ib.length_dw++] = cpu_to_le32(0x02000001); /* destroy cmd */
501 for (i = ib.length_dw; i < ib_size_dw; ++i)
502 ib.ptr[i] = cpu_to_le32(0x0);
504 r = radeon_ib_schedule(rdev, &ib, NULL, false);
506 DRM_ERROR("radeon: failed to schedule ib (%d).\n", r);
510 *fence = radeon_fence_ref(ib.fence);
512 radeon_ib_free(rdev, &ib);
550 p->ib.ptr[lo] = start & 0xFFFFFFFF;
551 p->ib.ptr[hi] = start >> 32;
717 DRM_ERROR("no session command at start of IB\n");
733 * IB contains a destroy msg or we have allocated an
773 * @ib: the IB to execute
776 void radeon_vce_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
778 struct radeon_ring *ring = &rdev->ring[ib->ring];
780 radeon_ring_write(ring, cpu_to_le32(ib->gpu_addr));
781 radeon_ring_write(ring, cpu_to_le32(upper_32_bits(ib->gpu_addr)));
782 radeon_ring_write(ring, cpu_to_le32(ib->length_dw));
866 DRM_ERROR("radeon: failed to get destroy ib (%d).\n", r);
878 DRM_INFO("ib test on ring %d succeeded\n", ring->idx);