/* Initialize hardware. */
memset(&hw_params, 0, sizeof(hw_params));
- hw_params.fb_base = adev->gmc.fb_start;
- hw_params.fb_offset = adev->vm_manager.vram_base_offset;
+ hw_params.soc_fb_info.fb_base = adev->gmc.fb_start;
+ hw_params.soc_fb_info.fb_offset = adev->vm_manager.vram_base_offset;
/* backdoor load firmware and trigger dmub running */
if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP)
struct dmub_fb fb[DMUB_WINDOW_TOTAL];
};
+/**
+ * struct dmub_soc_fb_info - relevant addresses from the frame buffer
+ * @fb_base: base of the framebuffer aperture
+ * @fb_offset: offset of the framebuffer aperture
+ */
+struct dmub_soc_fb_info {
+ uint64_t fb_base;
+ uint64_t fb_offset;
+};
+
/*
* struct dmub_srv_hw_params - params for dmub hardware initialization
* @fb: framebuffer info for each region
*/
struct dmub_srv_hw_params {
struct dmub_fb *fb[DMUB_WINDOW_TOTAL];
- uint64_t fb_base;
- uint64_t fb_offset;
+ struct dmub_soc_fb_info soc_fb_info;
uint32_t psp_version;
bool load_inst_const;
bool skip_panel_power_sequence;
bool hw_init;
bool dpia_supported;
- uint64_t fb_base;
- uint64_t fb_offset;
+ struct dmub_soc_fb_info soc_fb_info;
uint32_t psp_version;
/* Feature capabilities reported by fw */
{
uint32_t tmp;
- if (dmub->fb_base || dmub->fb_offset) {
- *fb_base = dmub->fb_base;
- *fb_offset = dmub->fb_offset;
+ if (dmub->soc_fb_info.fb_base || dmub->soc_fb_info.fb_offset) {
+ *fb_base = dmub->soc_fb_info.fb_base;
+ *fb_offset = dmub->soc_fb_info.fb_offset;
return;
}
{
uint32_t tmp;
- if (dmub->fb_base || dmub->fb_offset) {
- *fb_base = dmub->fb_base;
- *fb_offset = dmub->fb_offset;
+ if (dmub->soc_fb_info.fb_base || dmub->soc_fb_info.fb_offset) {
+ *fb_base = dmub->soc_fb_info.fb_base;
+ *fb_offset = dmub->soc_fb_info.fb_offset;
return;
}
{
uint32_t tmp;
- if (dmub->fb_base || dmub->fb_offset) {
- *fb_base = dmub->fb_base;
- *fb_offset = dmub->fb_offset;
+ if (dmub->soc_fb_info.fb_base || dmub->soc_fb_info.fb_offset) {
+ *fb_base = dmub->soc_fb_info.fb_base;
+ *fb_offset = dmub->soc_fb_info.fb_offset;
return;
}
{
uint32_t tmp;
- if (dmub->fb_base || dmub->fb_offset) {
- *fb_base = dmub->fb_base;
- *fb_offset = dmub->fb_offset;
+ if (dmub->soc_fb_info.fb_base || dmub->soc_fb_info.fb_offset) {
+ *fb_base = dmub->soc_fb_info.fb_base;
+ *fb_offset = dmub->soc_fb_info.fb_offset;
return;
}
uint32_t tmp;
/*
- if (dmub->fb_base || dmub->fb_offset) {
- *fb_base = dmub->fb_base;
- *fb_offset = dmub->fb_offset;
+ if (dmub->soc_fb_info.fb_base || dmub->soc_fb_info.fb_offset) {
+ *fb_base = dmub->soc_fb_info.fb_base;
+ *fb_offset = dmub->soc_fb_info.fb_offset;
return;
}
*/
{
uint32_t tmp;
- if (dmub->fb_base || dmub->fb_offset) {
- *fb_base = dmub->fb_base;
- *fb_offset = dmub->fb_offset;
+ if (dmub->soc_fb_info.fb_base || dmub->soc_fb_info.fb_offset) {
+ *fb_base = dmub->soc_fb_info.fb_base;
+ *fb_offset = dmub->soc_fb_info.fb_offset;
return;
}
}
}
- dmub->fb_base = params->fb_base;
- dmub->fb_offset = params->fb_offset;
+ memcpy(&dmub->soc_fb_info, ¶ms->soc_fb_info, sizeof(params->soc_fb_info));
dmub->psp_version = params->psp_version;
if (dmub->hw_funcs.reset)