1*855e3e19SSonny Jiang /* 2*855e3e19SSonny Jiang * Copyright 2025-2026 Advanced Micro Devices, Inc. 3*855e3e19SSonny Jiang * 4*855e3e19SSonny Jiang * Permission is hereby granted, free of charge, to any person obtaining a 5*855e3e19SSonny Jiang * copy of this software and associated documentation files (the "Software"), 6*855e3e19SSonny Jiang * to deal in the Software without restriction, including without limitation 7*855e3e19SSonny Jiang * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8*855e3e19SSonny Jiang * and/or sell copies of the Software, and to permit persons to whom the 9*855e3e19SSonny Jiang * Software is furnished to do so, subject to the following conditions: 10*855e3e19SSonny Jiang * 11*855e3e19SSonny Jiang * The above copyright notice and this permission notice shall be included in 12*855e3e19SSonny Jiang * all copies or substantial portions of the Software. 13*855e3e19SSonny Jiang * 14*855e3e19SSonny Jiang * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15*855e3e19SSonny Jiang * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16*855e3e19SSonny Jiang * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17*855e3e19SSonny Jiang * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 18*855e3e19SSonny Jiang * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19*855e3e19SSonny Jiang * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20*855e3e19SSonny Jiang * OTHER DEALINGS IN THE SOFTWARE. 21*855e3e19SSonny Jiang * 22*855e3e19SSonny Jiang */ 23*855e3e19SSonny Jiang 24*855e3e19SSonny Jiang #ifndef __JPEG_V5_0_2_H__ 25*855e3e19SSonny Jiang #define __JPEG_V5_0_2_H__ 26*855e3e19SSonny Jiang 27*855e3e19SSonny Jiang extern const struct amdgpu_ip_block_version jpeg_v5_0_2_ip_block; 28*855e3e19SSonny Jiang 29*855e3e19SSonny Jiang #define regUVD_JRBC0_UVD_JRBC_SCRATCH0_INTERNAL_OFFSET 0x4094 30*855e3e19SSonny Jiang #define regUVD_JRBC_EXTERNAL_MCM_ADDR_INTERNAL_OFFSET 0x1bffe 31*855e3e19SSonny Jiang 32*855e3e19SSonny Jiang #define regUVD_JRBC0_UVD_JRBC_RB_WPTR 0x0640 33*855e3e19SSonny Jiang #define regUVD_JRBC0_UVD_JRBC_RB_WPTR_BASE_IDX 1 34*855e3e19SSonny Jiang #define regUVD_JRBC0_UVD_JRBC_STATUS 0x0649 35*855e3e19SSonny Jiang #define regUVD_JRBC0_UVD_JRBC_STATUS_BASE_IDX 1 36*855e3e19SSonny Jiang #define regUVD_JRBC0_UVD_JRBC_RB_RPTR 0x064a 37*855e3e19SSonny Jiang #define regUVD_JRBC0_UVD_JRBC_RB_RPTR_BASE_IDX 1 38*855e3e19SSonny Jiang #define regUVD_JRBC1_UVD_JRBC_RB_WPTR 0x0000 39*855e3e19SSonny Jiang #define regUVD_JRBC1_UVD_JRBC_RB_WPTR_BASE_IDX 0 40*855e3e19SSonny Jiang #define regUVD_JRBC1_UVD_JRBC_STATUS 0x0009 41*855e3e19SSonny Jiang #define regUVD_JRBC1_UVD_JRBC_STATUS_BASE_IDX 0 42*855e3e19SSonny Jiang #define regUVD_JRBC1_UVD_JRBC_RB_RPTR 0x000a 43*855e3e19SSonny Jiang #define regUVD_JRBC1_UVD_JRBC_RB_RPTR_BASE_IDX 0 44*855e3e19SSonny Jiang #define regUVD_JRBC2_UVD_JRBC_RB_WPTR 0x0040 45*855e3e19SSonny Jiang #define regUVD_JRBC2_UVD_JRBC_RB_WPTR_BASE_IDX 0 46*855e3e19SSonny Jiang #define regUVD_JRBC2_UVD_JRBC_STATUS 0x0049 47*855e3e19SSonny Jiang #define regUVD_JRBC2_UVD_JRBC_STATUS_BASE_IDX 0 48*855e3e19SSonny Jiang #define regUVD_JRBC2_UVD_JRBC_RB_RPTR 0x004a 49*855e3e19SSonny Jiang #define regUVD_JRBC2_UVD_JRBC_RB_RPTR_BASE_IDX 0 50*855e3e19SSonny Jiang #define regUVD_JRBC3_UVD_JRBC_RB_WPTR 0x0080 51*855e3e19SSonny Jiang #define regUVD_JRBC3_UVD_JRBC_RB_WPTR_BASE_IDX 0 52*855e3e19SSonny Jiang #define regUVD_JRBC3_UVD_JRBC_STATUS 0x0089 53*855e3e19SSonny Jiang #define regUVD_JRBC3_UVD_JRBC_STATUS_BASE_IDX 0 54*855e3e19SSonny Jiang #define regUVD_JRBC3_UVD_JRBC_RB_RPTR 0x008a 55*855e3e19SSonny Jiang #define regUVD_JRBC3_UVD_JRBC_RB_RPTR_BASE_IDX 0 56*855e3e19SSonny Jiang #define regUVD_JRBC4_UVD_JRBC_RB_WPTR 0x00c0 57*855e3e19SSonny Jiang #define regUVD_JRBC4_UVD_JRBC_RB_WPTR_BASE_IDX 0 58*855e3e19SSonny Jiang #define regUVD_JRBC4_UVD_JRBC_STATUS 0x00c9 59*855e3e19SSonny Jiang #define regUVD_JRBC4_UVD_JRBC_STATUS_BASE_IDX 0 60*855e3e19SSonny Jiang #define regUVD_JRBC4_UVD_JRBC_RB_RPTR 0x00ca 61*855e3e19SSonny Jiang #define regUVD_JRBC4_UVD_JRBC_RB_RPTR_BASE_IDX 0 62*855e3e19SSonny Jiang #define regUVD_JRBC5_UVD_JRBC_RB_WPTR 0x0100 63*855e3e19SSonny Jiang #define regUVD_JRBC5_UVD_JRBC_RB_WPTR_BASE_IDX 0 64*855e3e19SSonny Jiang #define regUVD_JRBC5_UVD_JRBC_STATUS 0x0109 65*855e3e19SSonny Jiang #define regUVD_JRBC5_UVD_JRBC_STATUS_BASE_IDX 0 66*855e3e19SSonny Jiang #define regUVD_JRBC5_UVD_JRBC_RB_RPTR 0x010a 67*855e3e19SSonny Jiang #define regUVD_JRBC5_UVD_JRBC_RB_RPTR_BASE_IDX 0 68*855e3e19SSonny Jiang #define regUVD_JRBC6_UVD_JRBC_RB_WPTR 0x0140 69*855e3e19SSonny Jiang #define regUVD_JRBC6_UVD_JRBC_RB_WPTR_BASE_IDX 0 70*855e3e19SSonny Jiang #define regUVD_JRBC6_UVD_JRBC_STATUS 0x0149 71*855e3e19SSonny Jiang #define regUVD_JRBC6_UVD_JRBC_STATUS_BASE_IDX 0 72*855e3e19SSonny Jiang #define regUVD_JRBC6_UVD_JRBC_RB_RPTR 0x014a 73*855e3e19SSonny Jiang #define regUVD_JRBC6_UVD_JRBC_RB_RPTR_BASE_IDX 0 74*855e3e19SSonny Jiang #define regUVD_JRBC7_UVD_JRBC_RB_WPTR 0x0180 75*855e3e19SSonny Jiang #define regUVD_JRBC7_UVD_JRBC_RB_WPTR_BASE_IDX 0 76*855e3e19SSonny Jiang #define regUVD_JRBC7_UVD_JRBC_STATUS 0x0189 77*855e3e19SSonny Jiang #define regUVD_JRBC7_UVD_JRBC_STATUS_BASE_IDX 0 78*855e3e19SSonny Jiang #define regUVD_JRBC7_UVD_JRBC_RB_RPTR 0x018a 79*855e3e19SSonny Jiang #define regUVD_JRBC7_UVD_JRBC_RB_RPTR_BASE_IDX 0 80*855e3e19SSonny Jiang #define regUVD_JRBC8_UVD_JRBC_RB_WPTR 0x01c0 81*855e3e19SSonny Jiang #define regUVD_JRBC8_UVD_JRBC_RB_WPTR_BASE_IDX 0 82*855e3e19SSonny Jiang #define regUVD_JRBC8_UVD_JRBC_STATUS 0x01c9 83*855e3e19SSonny Jiang #define regUVD_JRBC8_UVD_JRBC_STATUS_BASE_IDX 0 84*855e3e19SSonny Jiang #define regUVD_JRBC8_UVD_JRBC_RB_RPTR 0x01ca 85*855e3e19SSonny Jiang #define regUVD_JRBC8_UVD_JRBC_RB_RPTR_BASE_IDX 0 86*855e3e19SSonny Jiang #define regUVD_JRBC9_UVD_JRBC_RB_WPTR 0x0440 87*855e3e19SSonny Jiang #define regUVD_JRBC9_UVD_JRBC_RB_WPTR_BASE_IDX 1 88*855e3e19SSonny Jiang #define regUVD_JRBC9_UVD_JRBC_STATUS 0x0449 89*855e3e19SSonny Jiang #define regUVD_JRBC9_UVD_JRBC_STATUS_BASE_IDX 1 90*855e3e19SSonny Jiang #define regUVD_JRBC9_UVD_JRBC_RB_RPTR 0x044a 91*855e3e19SSonny Jiang #define regUVD_JRBC9_UVD_JRBC_RB_RPTR_BASE_IDX 1 92*855e3e19SSonny Jiang #define regUVD_JMI0_JPEG_LMI_DROP 0x0663 93*855e3e19SSonny Jiang #define regUVD_JMI0_JPEG_LMI_DROP_BASE_IDX 1 94*855e3e19SSonny Jiang #define regUVD_JMI0_UVD_JMI_CLIENT_STALL 0x067a 95*855e3e19SSonny Jiang #define regUVD_JMI0_UVD_JMI_CLIENT_STALL_BASE_IDX 1 96*855e3e19SSonny Jiang #define regUVD_JMI0_UVD_JMI_CLIENT_CLEAN_STATUS 0x067b 97*855e3e19SSonny Jiang #define regUVD_JMI0_UVD_JMI_CLIENT_CLEAN_STATUS_BASE_IDX 1 98*855e3e19SSonny Jiang #define regJPEG_CORE_RST_CTRL 0x072e 99*855e3e19SSonny Jiang #define regJPEG_CORE_RST_CTRL_BASE_IDX 1 100*855e3e19SSonny Jiang 101*855e3e19SSonny Jiang #define regVCN_RRMT_CNTL 0x0940 102*855e3e19SSonny Jiang #define regVCN_RRMT_CNTL_BASE_IDX 1 103*855e3e19SSonny Jiang 104*855e3e19SSonny Jiang enum amdgpu_jpeg_v5_0_2_sub_block { 105*855e3e19SSonny Jiang AMDGPU_JPEG_V5_0_2_JPEG0 = 0, 106*855e3e19SSonny Jiang AMDGPU_JPEG_V5_0_2_JPEG1, 107*855e3e19SSonny Jiang 108*855e3e19SSonny Jiang AMDGPU_JPEG_V5_0_2_MAX_SUB_BLOCK, 109*855e3e19SSonny Jiang }; 110*855e3e19SSonny Jiang 111*855e3e19SSonny Jiang #endif /* __JPEG_V5_0_2_H__ */ 112