diff options
author | Leo Liu <leo.liu@amd.com> | 2019-07-09 11:04:39 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2019-07-18 15:18:04 -0400 |
commit | cdbd115eaf1d17cff0d84c99e53774acba96eca7 (patch) | |
tree | 3f5ec10bb0225614f6dc0cd965774973b7a6ca06 | |
parent | 22a8f442866bf539c7a659923155d9afa03d77bb (diff) |
drm/amdgpu/VCN2: expose rings functions
They can be reused by VCN2.x family
Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 87 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/vcn_v2_0.h | 38 |
2 files changed, 79 insertions, 46 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c index 9bb29cd3aa50..ebef2f663654 100644 --- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | |||
@@ -1490,7 +1490,7 @@ static void vcn_v2_0_dec_ring_set_wptr(struct amdgpu_ring *ring) | |||
1490 | * | 1490 | * |
1491 | * Write a start command to the ring. | 1491 | * Write a start command to the ring. |
1492 | */ | 1492 | */ |
1493 | static void vcn_v2_0_dec_ring_insert_start(struct amdgpu_ring *ring) | 1493 | void vcn_v2_0_dec_ring_insert_start(struct amdgpu_ring *ring) |
1494 | { | 1494 | { |
1495 | struct amdgpu_device *adev = ring->adev; | 1495 | struct amdgpu_device *adev = ring->adev; |
1496 | 1496 | ||
@@ -1507,7 +1507,7 @@ static void vcn_v2_0_dec_ring_insert_start(struct amdgpu_ring *ring) | |||
1507 | * | 1507 | * |
1508 | * Write a end command to the ring. | 1508 | * Write a end command to the ring. |
1509 | */ | 1509 | */ |
1510 | static void vcn_v2_0_dec_ring_insert_end(struct amdgpu_ring *ring) | 1510 | void vcn_v2_0_dec_ring_insert_end(struct amdgpu_ring *ring) |
1511 | { | 1511 | { |
1512 | struct amdgpu_device *adev = ring->adev; | 1512 | struct amdgpu_device *adev = ring->adev; |
1513 | 1513 | ||
@@ -1522,7 +1522,7 @@ static void vcn_v2_0_dec_ring_insert_end(struct amdgpu_ring *ring) | |||
1522 | * | 1522 | * |
1523 | * Write a nop command to the ring. | 1523 | * Write a nop command to the ring. |
1524 | */ | 1524 | */ |
1525 | static void vcn_v2_0_dec_ring_insert_nop(struct amdgpu_ring *ring, uint32_t count) | 1525 | void vcn_v2_0_dec_ring_insert_nop(struct amdgpu_ring *ring, uint32_t count) |
1526 | { | 1526 | { |
1527 | struct amdgpu_device *adev = ring->adev; | 1527 | struct amdgpu_device *adev = ring->adev; |
1528 | int i; | 1528 | int i; |
@@ -1543,8 +1543,8 @@ static void vcn_v2_0_dec_ring_insert_nop(struct amdgpu_ring *ring, uint32_t coun | |||
1543 | * | 1543 | * |
1544 | * Write a fence and a trap command to the ring. | 1544 | * Write a fence and a trap command to the ring. |
1545 | */ | 1545 | */ |
1546 | static void vcn_v2_0_dec_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seq, | 1546 | void vcn_v2_0_dec_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seq, |
1547 | unsigned flags) | 1547 | unsigned flags) |
1548 | { | 1548 | { |
1549 | struct amdgpu_device *adev = ring->adev; | 1549 | struct amdgpu_device *adev = ring->adev; |
1550 | 1550 | ||
@@ -1580,10 +1580,10 @@ static void vcn_v2_0_dec_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 | |||
1580 | * | 1580 | * |
1581 | * Write ring commands to execute the indirect buffer | 1581 | * Write ring commands to execute the indirect buffer |
1582 | */ | 1582 | */ |
1583 | static void vcn_v2_0_dec_ring_emit_ib(struct amdgpu_ring *ring, | 1583 | void vcn_v2_0_dec_ring_emit_ib(struct amdgpu_ring *ring, |
1584 | struct amdgpu_job *job, | 1584 | struct amdgpu_job *job, |
1585 | struct amdgpu_ib *ib, | 1585 | struct amdgpu_ib *ib, |
1586 | uint32_t flags) | 1586 | uint32_t flags) |
1587 | { | 1587 | { |
1588 | struct amdgpu_device *adev = ring->adev; | 1588 | struct amdgpu_device *adev = ring->adev; |
1589 | unsigned vmid = AMDGPU_JOB_GET_VMID(job); | 1589 | unsigned vmid = AMDGPU_JOB_GET_VMID(job); |
@@ -1599,9 +1599,8 @@ static void vcn_v2_0_dec_ring_emit_ib(struct amdgpu_ring *ring, | |||
1599 | amdgpu_ring_write(ring, ib->length_dw); | 1599 | amdgpu_ring_write(ring, ib->length_dw); |
1600 | } | 1600 | } |
1601 | 1601 | ||
1602 | static void vcn_v2_0_dec_ring_emit_reg_wait(struct amdgpu_ring *ring, | 1602 | void vcn_v2_0_dec_ring_emit_reg_wait(struct amdgpu_ring *ring, uint32_t reg, |
1603 | uint32_t reg, uint32_t val, | 1603 | uint32_t val, uint32_t mask) |
1604 | uint32_t mask) | ||
1605 | { | 1604 | { |
1606 | struct amdgpu_device *adev = ring->adev; | 1605 | struct amdgpu_device *adev = ring->adev; |
1607 | 1606 | ||
@@ -1619,8 +1618,8 @@ static void vcn_v2_0_dec_ring_emit_reg_wait(struct amdgpu_ring *ring, | |||
1619 | amdgpu_ring_write(ring, VCN_DEC_CMD_REG_READ_COND_WAIT << 1); | 1618 | amdgpu_ring_write(ring, VCN_DEC_CMD_REG_READ_COND_WAIT << 1); |
1620 | } | 1619 | } |
1621 | 1620 | ||
1622 | static void vcn_v2_0_dec_ring_emit_vm_flush(struct amdgpu_ring *ring, | 1621 | void vcn_v2_0_dec_ring_emit_vm_flush(struct amdgpu_ring *ring, |
1623 | unsigned vmid, uint64_t pd_addr) | 1622 | unsigned vmid, uint64_t pd_addr) |
1624 | { | 1623 | { |
1625 | struct amdgpu_vmhub *hub = &ring->adev->vmhub[ring->funcs->vmhub]; | 1624 | struct amdgpu_vmhub *hub = &ring->adev->vmhub[ring->funcs->vmhub]; |
1626 | uint32_t data0, data1, mask; | 1625 | uint32_t data0, data1, mask; |
@@ -1634,8 +1633,8 @@ static void vcn_v2_0_dec_ring_emit_vm_flush(struct amdgpu_ring *ring, | |||
1634 | vcn_v2_0_dec_ring_emit_reg_wait(ring, data0, data1, mask); | 1633 | vcn_v2_0_dec_ring_emit_reg_wait(ring, data0, data1, mask); |
1635 | } | 1634 | } |
1636 | 1635 | ||
1637 | static void vcn_v2_0_dec_ring_emit_wreg(struct amdgpu_ring *ring, | 1636 | void vcn_v2_0_dec_ring_emit_wreg(struct amdgpu_ring *ring, |
1638 | uint32_t reg, uint32_t val) | 1637 | uint32_t reg, uint32_t val) |
1639 | { | 1638 | { |
1640 | struct amdgpu_device *adev = ring->adev; | 1639 | struct amdgpu_device *adev = ring->adev; |
1641 | 1640 | ||
@@ -1727,8 +1726,8 @@ static void vcn_v2_0_enc_ring_set_wptr(struct amdgpu_ring *ring) | |||
1727 | * | 1726 | * |
1728 | * Write enc a fence and a trap command to the ring. | 1727 | * Write enc a fence and a trap command to the ring. |
1729 | */ | 1728 | */ |
1730 | static void vcn_v2_0_enc_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, | 1729 | void vcn_v2_0_enc_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, |
1731 | u64 seq, unsigned flags) | 1730 | u64 seq, unsigned flags) |
1732 | { | 1731 | { |
1733 | WARN_ON(flags & AMDGPU_FENCE_FLAG_64BIT); | 1732 | WARN_ON(flags & AMDGPU_FENCE_FLAG_64BIT); |
1734 | 1733 | ||
@@ -1739,7 +1738,7 @@ static void vcn_v2_0_enc_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, | |||
1739 | amdgpu_ring_write(ring, VCN_ENC_CMD_TRAP); | 1738 | amdgpu_ring_write(ring, VCN_ENC_CMD_TRAP); |
1740 | } | 1739 | } |
1741 | 1740 | ||
1742 | static void vcn_v2_0_enc_ring_insert_end(struct amdgpu_ring *ring) | 1741 | void vcn_v2_0_enc_ring_insert_end(struct amdgpu_ring *ring) |
1743 | { | 1742 | { |
1744 | amdgpu_ring_write(ring, VCN_ENC_CMD_END); | 1743 | amdgpu_ring_write(ring, VCN_ENC_CMD_END); |
1745 | } | 1744 | } |
@@ -1752,10 +1751,10 @@ static void vcn_v2_0_enc_ring_insert_end(struct amdgpu_ring *ring) | |||
1752 | * | 1751 | * |
1753 | * Write enc ring commands to execute the indirect buffer | 1752 | * Write enc ring commands to execute the indirect buffer |
1754 | */ | 1753 | */ |
1755 | static void vcn_v2_0_enc_ring_emit_ib(struct amdgpu_ring *ring, | 1754 | void vcn_v2_0_enc_ring_emit_ib(struct amdgpu_ring *ring, |
1756 | struct amdgpu_job *job, | 1755 | struct amdgpu_job *job, |
1757 | struct amdgpu_ib *ib, | 1756 | struct amdgpu_ib *ib, |
1758 | uint32_t flags) | 1757 | uint32_t flags) |
1759 | { | 1758 | { |
1760 | unsigned vmid = AMDGPU_JOB_GET_VMID(job); | 1759 | unsigned vmid = AMDGPU_JOB_GET_VMID(job); |
1761 | 1760 | ||
@@ -1766,9 +1765,8 @@ static void vcn_v2_0_enc_ring_emit_ib(struct amdgpu_ring *ring, | |||
1766 | amdgpu_ring_write(ring, ib->length_dw); | 1765 | amdgpu_ring_write(ring, ib->length_dw); |
1767 | } | 1766 | } |
1768 | 1767 | ||
1769 | static void vcn_v2_0_enc_ring_emit_reg_wait(struct amdgpu_ring *ring, | 1768 | void vcn_v2_0_enc_ring_emit_reg_wait(struct amdgpu_ring *ring, uint32_t reg, |
1770 | uint32_t reg, uint32_t val, | 1769 | uint32_t val, uint32_t mask) |
1771 | uint32_t mask) | ||
1772 | { | 1770 | { |
1773 | amdgpu_ring_write(ring, VCN_ENC_CMD_REG_WAIT); | 1771 | amdgpu_ring_write(ring, VCN_ENC_CMD_REG_WAIT); |
1774 | amdgpu_ring_write(ring, reg << 2); | 1772 | amdgpu_ring_write(ring, reg << 2); |
@@ -1776,8 +1774,8 @@ static void vcn_v2_0_enc_ring_emit_reg_wait(struct amdgpu_ring *ring, | |||
1776 | amdgpu_ring_write(ring, val); | 1774 | amdgpu_ring_write(ring, val); |
1777 | } | 1775 | } |
1778 | 1776 | ||
1779 | static void vcn_v2_0_enc_ring_emit_vm_flush(struct amdgpu_ring *ring, | 1777 | void vcn_v2_0_enc_ring_emit_vm_flush(struct amdgpu_ring *ring, |
1780 | unsigned int vmid, uint64_t pd_addr) | 1778 | unsigned int vmid, uint64_t pd_addr) |
1781 | { | 1779 | { |
1782 | struct amdgpu_vmhub *hub = &ring->adev->vmhub[ring->funcs->vmhub]; | 1780 | struct amdgpu_vmhub *hub = &ring->adev->vmhub[ring->funcs->vmhub]; |
1783 | 1781 | ||
@@ -1788,8 +1786,7 @@ static void vcn_v2_0_enc_ring_emit_vm_flush(struct amdgpu_ring *ring, | |||
1788 | lower_32_bits(pd_addr), 0xffffffff); | 1786 | lower_32_bits(pd_addr), 0xffffffff); |
1789 | } | 1787 | } |
1790 | 1788 | ||
1791 | static void vcn_v2_0_enc_ring_emit_wreg(struct amdgpu_ring *ring, | 1789 | void vcn_v2_0_enc_ring_emit_wreg(struct amdgpu_ring *ring, uint32_t reg, uint32_t val) |
1792 | uint32_t reg, uint32_t val) | ||
1793 | { | 1790 | { |
1794 | amdgpu_ring_write(ring, VCN_ENC_CMD_REG_WRITE); | 1791 | amdgpu_ring_write(ring, VCN_ENC_CMD_REG_WRITE); |
1795 | amdgpu_ring_write(ring, reg << 2); | 1792 | amdgpu_ring_write(ring, reg << 2); |
@@ -1853,7 +1850,7 @@ static void vcn_v2_0_jpeg_ring_set_wptr(struct amdgpu_ring *ring) | |||
1853 | * | 1850 | * |
1854 | * Write a start command to the ring. | 1851 | * Write a start command to the ring. |
1855 | */ | 1852 | */ |
1856 | static void vcn_v2_0_jpeg_ring_insert_start(struct amdgpu_ring *ring) | 1853 | void vcn_v2_0_jpeg_ring_insert_start(struct amdgpu_ring *ring) |
1857 | { | 1854 | { |
1858 | amdgpu_ring_write(ring, PACKETJ(mmUVD_JRBC_EXTERNAL_REG_INTERNAL_OFFSET, | 1855 | amdgpu_ring_write(ring, PACKETJ(mmUVD_JRBC_EXTERNAL_REG_INTERNAL_OFFSET, |
1859 | 0, 0, PACKETJ_TYPE0)); | 1856 | 0, 0, PACKETJ_TYPE0)); |
@@ -1871,7 +1868,7 @@ static void vcn_v2_0_jpeg_ring_insert_start(struct amdgpu_ring *ring) | |||
1871 | * | 1868 | * |
1872 | * Write a end command to the ring. | 1869 | * Write a end command to the ring. |
1873 | */ | 1870 | */ |
1874 | static void vcn_v2_0_jpeg_ring_insert_end(struct amdgpu_ring *ring) | 1871 | void vcn_v2_0_jpeg_ring_insert_end(struct amdgpu_ring *ring) |
1875 | { | 1872 | { |
1876 | amdgpu_ring_write(ring, PACKETJ(mmUVD_JRBC_EXTERNAL_REG_INTERNAL_OFFSET, | 1873 | amdgpu_ring_write(ring, PACKETJ(mmUVD_JRBC_EXTERNAL_REG_INTERNAL_OFFSET, |
1877 | 0, 0, PACKETJ_TYPE0)); | 1874 | 0, 0, PACKETJ_TYPE0)); |
@@ -1890,8 +1887,8 @@ static void vcn_v2_0_jpeg_ring_insert_end(struct amdgpu_ring *ring) | |||
1890 | * | 1887 | * |
1891 | * Write a fence and a trap command to the ring. | 1888 | * Write a fence and a trap command to the ring. |
1892 | */ | 1889 | */ |
1893 | static void vcn_v2_0_jpeg_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seq, | 1890 | void vcn_v2_0_jpeg_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seq, |
1894 | unsigned flags) | 1891 | unsigned flags) |
1895 | { | 1892 | { |
1896 | WARN_ON(flags & AMDGPU_FENCE_FLAG_64BIT); | 1893 | WARN_ON(flags & AMDGPU_FENCE_FLAG_64BIT); |
1897 | 1894 | ||
@@ -1939,10 +1936,10 @@ static void vcn_v2_0_jpeg_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u6 | |||
1939 | * | 1936 | * |
1940 | * Write ring commands to execute the indirect buffer. | 1937 | * Write ring commands to execute the indirect buffer. |
1941 | */ | 1938 | */ |
1942 | static void vcn_v2_0_jpeg_ring_emit_ib(struct amdgpu_ring *ring, | 1939 | void vcn_v2_0_jpeg_ring_emit_ib(struct amdgpu_ring *ring, |
1943 | struct amdgpu_job *job, | 1940 | struct amdgpu_job *job, |
1944 | struct amdgpu_ib *ib, | 1941 | struct amdgpu_ib *ib, |
1945 | uint32_t flags) | 1942 | uint32_t flags) |
1946 | { | 1943 | { |
1947 | unsigned vmid = AMDGPU_JOB_GET_VMID(job); | 1944 | unsigned vmid = AMDGPU_JOB_GET_VMID(job); |
1948 | 1945 | ||
@@ -1990,9 +1987,8 @@ static void vcn_v2_0_jpeg_ring_emit_ib(struct amdgpu_ring *ring, | |||
1990 | amdgpu_ring_write(ring, 0x2); | 1987 | amdgpu_ring_write(ring, 0x2); |
1991 | } | 1988 | } |
1992 | 1989 | ||
1993 | static void vcn_v2_0_jpeg_ring_emit_reg_wait(struct amdgpu_ring *ring, | 1990 | void vcn_v2_0_jpeg_ring_emit_reg_wait(struct amdgpu_ring *ring, uint32_t reg, |
1994 | uint32_t reg, uint32_t val, | 1991 | uint32_t val, uint32_t mask) |
1995 | uint32_t mask) | ||
1996 | { | 1992 | { |
1997 | uint32_t reg_offset = (reg << 2); | 1993 | uint32_t reg_offset = (reg << 2); |
1998 | 1994 | ||
@@ -2018,8 +2014,8 @@ static void vcn_v2_0_jpeg_ring_emit_reg_wait(struct amdgpu_ring *ring, | |||
2018 | amdgpu_ring_write(ring, mask); | 2014 | amdgpu_ring_write(ring, mask); |
2019 | } | 2015 | } |
2020 | 2016 | ||
2021 | static void vcn_v2_0_jpeg_ring_emit_vm_flush(struct amdgpu_ring *ring, | 2017 | void vcn_v2_0_jpeg_ring_emit_vm_flush(struct amdgpu_ring *ring, |
2022 | unsigned vmid, uint64_t pd_addr) | 2018 | unsigned vmid, uint64_t pd_addr) |
2023 | { | 2019 | { |
2024 | struct amdgpu_vmhub *hub = &ring->adev->vmhub[ring->funcs->vmhub]; | 2020 | struct amdgpu_vmhub *hub = &ring->adev->vmhub[ring->funcs->vmhub]; |
2025 | uint32_t data0, data1, mask; | 2021 | uint32_t data0, data1, mask; |
@@ -2033,8 +2029,7 @@ static void vcn_v2_0_jpeg_ring_emit_vm_flush(struct amdgpu_ring *ring, | |||
2033 | vcn_v2_0_jpeg_ring_emit_reg_wait(ring, data0, data1, mask); | 2029 | vcn_v2_0_jpeg_ring_emit_reg_wait(ring, data0, data1, mask); |
2034 | } | 2030 | } |
2035 | 2031 | ||
2036 | static void vcn_v2_0_jpeg_ring_emit_wreg(struct amdgpu_ring *ring, | 2032 | void vcn_v2_0_jpeg_ring_emit_wreg(struct amdgpu_ring *ring, uint32_t reg, uint32_t val) |
2037 | uint32_t reg, uint32_t val) | ||
2038 | { | 2033 | { |
2039 | uint32_t reg_offset = (reg << 2); | 2034 | uint32_t reg_offset = (reg << 2); |
2040 | 2035 | ||
@@ -2052,7 +2047,7 @@ static void vcn_v2_0_jpeg_ring_emit_wreg(struct amdgpu_ring *ring, | |||
2052 | amdgpu_ring_write(ring, val); | 2047 | amdgpu_ring_write(ring, val); |
2053 | } | 2048 | } |
2054 | 2049 | ||
2055 | static void vcn_v2_0_jpeg_ring_nop(struct amdgpu_ring *ring, uint32_t count) | 2050 | void vcn_v2_0_jpeg_ring_nop(struct amdgpu_ring *ring, uint32_t count) |
2056 | { | 2051 | { |
2057 | int i; | 2052 | int i; |
2058 | 2053 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.h b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.h index a74227f4663b..8467292f32e5 100644 --- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.h +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.h | |||
@@ -24,6 +24,44 @@ | |||
24 | #ifndef __VCN_V2_0_H__ | 24 | #ifndef __VCN_V2_0_H__ |
25 | #define __VCN_V2_0_H__ | 25 | #define __VCN_V2_0_H__ |
26 | 26 | ||
27 | extern void vcn_v2_0_dec_ring_insert_start(struct amdgpu_ring *ring); | ||
28 | extern void vcn_v2_0_dec_ring_insert_end(struct amdgpu_ring *ring); | ||
29 | extern void vcn_v2_0_dec_ring_insert_nop(struct amdgpu_ring *ring, uint32_t count); | ||
30 | extern void vcn_v2_0_dec_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seq, | ||
31 | unsigned flags); | ||
32 | extern void vcn_v2_0_dec_ring_emit_ib(struct amdgpu_ring *ring, struct amdgpu_job *job, | ||
33 | struct amdgpu_ib *ib, uint32_t flags); | ||
34 | extern void vcn_v2_0_dec_ring_emit_reg_wait(struct amdgpu_ring *ring, uint32_t reg, | ||
35 | uint32_t val, uint32_t mask); | ||
36 | extern void vcn_v2_0_dec_ring_emit_vm_flush(struct amdgpu_ring *ring, | ||
37 | unsigned vmid, uint64_t pd_addr); | ||
38 | extern void vcn_v2_0_dec_ring_emit_wreg(struct amdgpu_ring *ring, | ||
39 | uint32_t reg, uint32_t val); | ||
40 | |||
41 | extern void vcn_v2_0_enc_ring_insert_end(struct amdgpu_ring *ring); | ||
42 | extern void vcn_v2_0_enc_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, | ||
43 | u64 seq, unsigned flags); | ||
44 | extern void vcn_v2_0_enc_ring_emit_ib(struct amdgpu_ring *ring, struct amdgpu_job *job, | ||
45 | struct amdgpu_ib *ib, uint32_t flags); | ||
46 | extern void vcn_v2_0_enc_ring_emit_reg_wait(struct amdgpu_ring *ring, uint32_t reg, | ||
47 | uint32_t val, uint32_t mask); | ||
48 | extern void vcn_v2_0_enc_ring_emit_vm_flush(struct amdgpu_ring *ring, | ||
49 | unsigned int vmid, uint64_t pd_addr); | ||
50 | extern void vcn_v2_0_enc_ring_emit_wreg(struct amdgpu_ring *ring, uint32_t reg, uint32_t val); | ||
51 | |||
52 | extern void vcn_v2_0_jpeg_ring_insert_start(struct amdgpu_ring *ring); | ||
53 | extern void vcn_v2_0_jpeg_ring_insert_end(struct amdgpu_ring *ring); | ||
54 | extern void vcn_v2_0_jpeg_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seq, | ||
55 | unsigned flags); | ||
56 | extern void vcn_v2_0_jpeg_ring_emit_ib(struct amdgpu_ring *ring, struct amdgpu_job *job, | ||
57 | struct amdgpu_ib *ib, uint32_t flags); | ||
58 | extern void vcn_v2_0_jpeg_ring_emit_reg_wait(struct amdgpu_ring *ring, uint32_t reg, | ||
59 | uint32_t val, uint32_t mask); | ||
60 | extern void vcn_v2_0_jpeg_ring_emit_vm_flush(struct amdgpu_ring *ring, | ||
61 | unsigned vmid, uint64_t pd_addr); | ||
62 | extern void vcn_v2_0_jpeg_ring_emit_wreg(struct amdgpu_ring *ring, uint32_t reg, uint32_t val); | ||
63 | extern void vcn_v2_0_jpeg_ring_nop(struct amdgpu_ring *ring, uint32_t count); | ||
64 | |||
27 | extern const struct amdgpu_ip_block_version vcn_v2_0_ip_block; | 65 | extern const struct amdgpu_ip_block_version vcn_v2_0_ip_block; |
28 | 66 | ||
29 | #endif /* __VCN_V2_0_H__ */ | 67 | #endif /* __VCN_V2_0_H__ */ |