Commit dc43d958 authored by Nicholas Kazlauskas's avatar Nicholas Kazlauskas Committed by Alex Deucher

drm/amd/display: Fill in dmub_srv fw_version from firmware metadata

[Why]
DMCUB firmware version is now available from firmware metadata block.

We should be passing this into dmub_srv so we can know when to apply
firmware version specific functionality like using CW4 only instead
of the REGION4.

[How]
We don't have the helpers for DM to actually extract out firmware
metadata block themselves.

We could add that and add helpers in DM to grab this, but not every
creation sequence has firmware instruction before dmub_srv_create.

Easiest way to handle this is to fill this in automatically per DM in
the place we do have it - when calculating the region parameters. But
only fill it in if DM already hasn't in case we need to override with
a specific version.

We aren't do anything firmware version specific in dmub_srv_create
today that does require fw_version, so while it's a little unituitive
to do it when calculating region parameters it works for now.
Signed-off-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: default avatarTony Cheng <Tony.Cheng@amd.com>
Acked-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 86cf3a61
...@@ -281,6 +281,16 @@ dmub_srv_calc_region_info(struct dmub_srv *dmub, ...@@ -281,6 +281,16 @@ dmub_srv_calc_region_info(struct dmub_srv *dmub,
if (fw_info) { if (fw_info) {
fw_state_size = fw_info->fw_region_size; fw_state_size = fw_info->fw_region_size;
trace_buffer_size = fw_info->trace_buffer_size; trace_buffer_size = fw_info->trace_buffer_size;
/**
* If DM didn't fill in a version, then fill it in based on
* the firmware meta now that we have it.
*
* TODO: Make it easier for driver to extract this out to
* pass during creation.
*/
if (dmub->fw_version == 0)
dmub->fw_version = fw_info->fw_version;
} }
trace_buff->base = dmub_align(mail->top, 256); trace_buff->base = dmub_align(mail->top, 256);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment