diff options
author | Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> | 2019-05-23 01:05:41 +0300 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2019-06-22 17:34:14 +0300 |
commit | bda9afdacf8942c313a47cc95582737345a91c5e (patch) | |
tree | 93c6ddff82040a2b1baba38e14026d800da59767 /drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h | |
parent | a6465d1f3b8f863bd4ffd4048d10de3558b378d5 (diff) | |
download | linux-bda9afdacf8942c313a47cc95582737345a91c5e.tar.xz |
drm/amd/display: move vmid determination logic to a module
Currently vmid is decided internally inside dc. With the introduction
of new asics we are required to coordinate vmid use with external
components.
This change converts vmid logic to a DAL module allowing vmid to be
passed in as a parameter to DC.
Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h')
-rw-r--r-- | drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h b/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h index d56fd7d87bbc..959f5b654611 100644 --- a/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h +++ b/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h @@ -87,6 +87,7 @@ struct dcn_hubbub_virt_addr_config { uint64_t page_table_end_addr; enum dcn_hubbub_page_table_block_size page_table_block_size; enum dcn_hubbub_page_table_depth page_table_depth; + uint64_t page_table_base_addr; }; struct hubbub_addr_config { @@ -105,18 +106,13 @@ struct hubbub_funcs { struct dchub_init_data *dh_data); #ifdef CONFIG_DRM_AMD_DC_DCN2_0 - void (*init_dchub)( + int (*init_dchub_sys_ctx)( struct hubbub *hubbub, - struct hubbub_addr_config *config); - void (*setup_vmid_ptb)( + struct dcn_hubbub_phys_addr_config *pa_config); + void (*init_vm_ctx)( struct hubbub *hubbub, - uint64_t ptb, - uint8_t vmid); - - void (*set_ptb)( - struct hubbub *hubbub, - uint8_t vmid, - uint64_t base_addr); + struct dcn_hubbub_virt_addr_config *va_config, + int vmid); #endif bool (*get_dcc_compression_cap)(struct hubbub *hubbub, |