sync with OpenBSD -current
This commit is contained in:
parent
ee68147dcd
commit
1cefe29c7e
1651 changed files with 283292 additions and 68089 deletions
|
@ -78,11 +78,12 @@ static void vcn_v3_0_dec_ring_set_wptr(struct amdgpu_ring *ring);
|
|||
static void vcn_v3_0_enc_ring_set_wptr(struct amdgpu_ring *ring);
|
||||
|
||||
/**
|
||||
* vcn_v3_0_early_init - set function pointers
|
||||
* vcn_v3_0_early_init - set function pointers and load microcode
|
||||
*
|
||||
* @handle: amdgpu_device pointer
|
||||
*
|
||||
* Set ring and irq function pointers
|
||||
* Load microcode from filesystem
|
||||
*/
|
||||
static int vcn_v3_0_early_init(void *handle)
|
||||
{
|
||||
|
@ -109,7 +110,7 @@ static int vcn_v3_0_early_init(void *handle)
|
|||
vcn_v3_0_set_enc_ring_funcs(adev);
|
||||
vcn_v3_0_set_irq_funcs(adev);
|
||||
|
||||
return 0;
|
||||
return amdgpu_vcn_early_init(adev);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -188,6 +189,7 @@ static int vcn_v3_0_sw_init(void *handle)
|
|||
} else {
|
||||
ring->doorbell_index = (adev->doorbell_index.vcn.vcn_ring0_1 << 1) + 8 * i;
|
||||
}
|
||||
ring->vm_hub = AMDGPU_MMHUB0(0);
|
||||
snprintf(ring->name, sizeof(ring->name), "vcn_dec_%d", i);
|
||||
r = amdgpu_ring_init(adev, ring, 512, &adev->vcn.inst[i].irq, 0,
|
||||
AMDGPU_RING_PRIO_DEFAULT,
|
||||
|
@ -211,6 +213,7 @@ static int vcn_v3_0_sw_init(void *handle)
|
|||
} else {
|
||||
ring->doorbell_index = (adev->doorbell_index.vcn.vcn_ring0_1 << 1) + 2 + j + 8 * i;
|
||||
}
|
||||
ring->vm_hub = AMDGPU_MMHUB0(0);
|
||||
snprintf(ring->name, sizeof(ring->name), "vcn_enc_%d.%d", i, j);
|
||||
r = amdgpu_ring_init(adev, ring, 512, &adev->vcn.inst[i].irq, 0,
|
||||
hw_prio, &adev->vcn.inst[i].sched_score);
|
||||
|
@ -1034,9 +1037,7 @@ static int vcn_v3_0_start_dpg_mode(struct amdgpu_device *adev, int inst_idx, boo
|
|||
VCN, inst_idx, mmUVD_VCPU_CNTL), tmp, 0, indirect);
|
||||
|
||||
if (indirect)
|
||||
psp_update_vcn_sram(adev, inst_idx, adev->vcn.inst[inst_idx].dpg_sram_gpu_addr,
|
||||
(uint32_t)((uintptr_t)adev->vcn.inst[inst_idx].dpg_sram_curr_addr -
|
||||
(uintptr_t)adev->vcn.inst[inst_idx].dpg_sram_cpu_addr));
|
||||
amdgpu_vcn_psp_update_sram(adev, inst_idx, 0);
|
||||
|
||||
ring = &adev->vcn.inst[inst_idx].ring_dec;
|
||||
/* force RBC into idle state */
|
||||
|
@ -1104,7 +1105,7 @@ static int vcn_v3_0_start(struct amdgpu_device *adev)
|
|||
if (adev->vcn.harvest_config & (1 << i))
|
||||
continue;
|
||||
|
||||
if (adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG){
|
||||
if (adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG) {
|
||||
r = vcn_v3_0_start_dpg_mode(adev, i, adev->vcn.indirect_sram);
|
||||
continue;
|
||||
}
|
||||
|
@ -1310,7 +1311,7 @@ static int vcn_v3_0_start_sriov(struct amdgpu_device *adev)
|
|||
|
||||
header.version = MMSCH_VERSION;
|
||||
header.total_size = sizeof(struct mmsch_v3_0_init_header) >> 2;
|
||||
for (i = 0; i < AMDGPU_MAX_VCN_INSTANCES; i++) {
|
||||
for (i = 0; i < MMSCH_V3_0_VCN_INSTANCES; i++) {
|
||||
header.inst[i].init_status = 0;
|
||||
header.inst[i].table_offset = 0;
|
||||
header.inst[i].table_size = 0;
|
||||
|
@ -1737,7 +1738,6 @@ static const struct amdgpu_ring_funcs vcn_v3_0_dec_sw_ring_vm_funcs = {
|
|||
.align_mask = 0x3f,
|
||||
.nop = VCN_DEC_SW_CMD_NO_OP,
|
||||
.secure_submission_supported = true,
|
||||
.vmhub = AMDGPU_MMHUB_0,
|
||||
.get_rptr = vcn_v3_0_dec_ring_get_rptr,
|
||||
.get_wptr = vcn_v3_0_dec_ring_get_wptr,
|
||||
.set_wptr = vcn_v3_0_dec_ring_set_wptr,
|
||||
|
@ -1770,6 +1770,10 @@ static int vcn_v3_0_limit_sched(struct amdgpu_cs_parser *p,
|
|||
if (atomic_read(&job->base.entity->fence_seq))
|
||||
return -EINVAL;
|
||||
|
||||
/* if VCN0 is harvested, we can't support AV1 */
|
||||
if (p->adev->vcn.harvest_config & AMDGPU_VCN_HARVEST_VCN0)
|
||||
return -EINVAL;
|
||||
|
||||
scheds = p->adev->gpu_sched[AMDGPU_HW_IP_VCN_DEC]
|
||||
[AMDGPU_RING_PRIO_DEFAULT].sched;
|
||||
drm_sched_entity_modify_sched(job->base.entity, scheds, 1);
|
||||
|
@ -1785,7 +1789,7 @@ static int vcn_v3_0_dec_msg(struct amdgpu_cs_parser *p, struct amdgpu_job *job,
|
|||
struct amdgpu_bo *bo;
|
||||
uint64_t start, end;
|
||||
unsigned int i;
|
||||
void * ptr;
|
||||
void *ptr;
|
||||
int r;
|
||||
|
||||
addr &= AMDGPU_GMC_HOLE_MASK;
|
||||
|
@ -1894,7 +1898,6 @@ static const struct amdgpu_ring_funcs vcn_v3_0_dec_ring_vm_funcs = {
|
|||
.type = AMDGPU_RING_TYPE_VCN_DEC,
|
||||
.align_mask = 0xf,
|
||||
.secure_submission_supported = true,
|
||||
.vmhub = AMDGPU_MMHUB_0,
|
||||
.get_rptr = vcn_v3_0_dec_ring_get_rptr,
|
||||
.get_wptr = vcn_v3_0_dec_ring_get_wptr,
|
||||
.set_wptr = vcn_v3_0_dec_ring_set_wptr,
|
||||
|
@ -1995,7 +1998,6 @@ static const struct amdgpu_ring_funcs vcn_v3_0_enc_ring_vm_funcs = {
|
|||
.type = AMDGPU_RING_TYPE_VCN_ENC,
|
||||
.align_mask = 0x3f,
|
||||
.nop = VCN_ENC_CMD_NO_OP,
|
||||
.vmhub = AMDGPU_MMHUB_0,
|
||||
.get_rptr = vcn_v3_0_enc_ring_get_rptr,
|
||||
.get_wptr = vcn_v3_0_enc_ring_get_wptr,
|
||||
.set_wptr = vcn_v3_0_enc_ring_set_wptr,
|
||||
|
@ -2093,7 +2095,7 @@ static int vcn_v3_0_set_clockgating_state(void *handle,
|
|||
enum amd_clockgating_state state)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||
bool enable = (state == AMD_CG_STATE_GATE) ? true : false;
|
||||
bool enable = state == AMD_CG_STATE_GATE;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < adev->vcn.num_vcn_inst; ++i) {
|
||||
|
@ -2127,7 +2129,7 @@ static int vcn_v3_0_set_powergating_state(void *handle,
|
|||
return 0;
|
||||
}
|
||||
|
||||
if(state == adev->vcn.cur_state)
|
||||
if (state == adev->vcn.cur_state)
|
||||
return 0;
|
||||
|
||||
if (state == AMD_PG_STATE_GATE)
|
||||
|
@ -2135,7 +2137,7 @@ static int vcn_v3_0_set_powergating_state(void *handle,
|
|||
else
|
||||
ret = vcn_v3_0_start(adev);
|
||||
|
||||
if(!ret)
|
||||
if (!ret)
|
||||
adev->vcn.cur_state = state;
|
||||
|
||||
return ret;
|
||||
|
@ -2226,8 +2228,7 @@ static const struct amd_ip_funcs vcn_v3_0_ip_funcs = {
|
|||
.set_powergating_state = vcn_v3_0_set_powergating_state,
|
||||
};
|
||||
|
||||
const struct amdgpu_ip_block_version vcn_v3_0_ip_block =
|
||||
{
|
||||
const struct amdgpu_ip_block_version vcn_v3_0_ip_block = {
|
||||
.type = AMD_IP_BLOCK_TYPE_VCN,
|
||||
.major = 3,
|
||||
.minor = 0,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue