Commit fdcf62fb authored by Dmytro Laktyushkin's avatar Dmytro Laktyushkin Committed by Alex Deucher
Browse files

drm/amd/display: correct rn NUM_VMID



Save the correct num vmid during resource creation and fix RN gpuvm
level from 1 to 16 vmid entries.

Signed-off-by: default avatarDmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Reviewed-by: default avatarEric Bernstein <Eric.Bernstein@amd.com>
Acked-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent b6dbb8ff
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -80,6 +80,7 @@ struct dcn20_hubbub {
	const struct dcn_hubbub_mask *masks;
	unsigned int debug_test_index_pstate;
	struct dcn_watermark_set watermarks;
	int num_vmid;
	struct dcn20_vmid vmid[16];
	unsigned int detile_buf_size;
};
+1 −6
Original line number Diff line number Diff line
@@ -49,11 +49,6 @@
#define FN(reg_name, field_name) \
	hubbub1->shifts->field_name, hubbub1->masks->field_name

#ifdef NUM_VMID
#undef NUM_VMID
#endif
#define NUM_VMID 16

static uint32_t convert_and_clamp(
	uint32_t wm_ns,
	uint32_t refclk_mhz,
@@ -138,7 +133,7 @@ int hubbub21_init_dchub(struct hubbub *hubbub,

	dcn21_dchvm_init(hubbub);

	return NUM_VMID;
	return hubbub1->num_vmid;
}

bool hubbub21_program_urgent_watermarks(
+2 −1
Original line number Diff line number Diff line
@@ -805,7 +805,7 @@ static const struct resource_caps res_cap_rn = {
		.num_pll = 5,  // maybe 3 because the last two used for USB-c
		.num_dwb = 1,
		.num_ddc = 5,
		.num_vmid = 1,
		.num_vmid = 16,
		.num_dsc = 3,
};

@@ -1295,6 +1295,7 @@ static struct hubbub *dcn21_hubbub_create(struct dc_context *ctx)
		vmid->shifts = &vmid_shifts;
		vmid->masks = &vmid_masks;
	}
	hubbub->num_vmid = res_cap_rn.num_vmid;

	return &hubbub->base;
}
+5 −2
Original line number Diff line number Diff line
@@ -112,9 +112,12 @@ uint8_t mod_vmid_get_for_ptb(struct mod_vmid *mod_vmid, uint64_t ptb)
			evict_vmids(core_vmid);

		vmid = get_next_available_vmid(core_vmid);
		if (vmid != -1) {
			add_ptb_to_table(core_vmid, vmid, ptb);

			dc_setup_vm_context(core_vmid->dc, &va_config, vmid);
		} else
			ASSERT(0);
	}

	return vmid;