Commit 0c75d5ac authored by Jerry (Fangzhi) Zuo's avatar Jerry (Fangzhi) Zuo Committed by Alex Deucher

drm/amd/display: Implement VEGAM device IDs in DC

Implement device IDs for VEGAM
Signed-off-by: default avatarJerry (Fangzhi) Zuo <Jerry.Zuo@amd.com>
Reviewed-by: default avatarHarry Wentland <harry.wentland@amd.com>
Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent e9307932
...@@ -34,4 +34,10 @@ config DEBUG_KERNEL_DC ...@@ -34,4 +34,10 @@ config DEBUG_KERNEL_DC
if you want to hit if you want to hit
kdgb_break in assert. kdgb_break in assert.
config DRM_AMD_DC_VEGAM
bool "VEGAM support"
depends on DRM_AMD_DC
help
Choose this option if you want to have
VEGAM support for display engine
endmenu endmenu
...@@ -51,6 +51,9 @@ bool dal_bios_parser_init_cmd_tbl_helper( ...@@ -51,6 +51,9 @@ bool dal_bios_parser_init_cmd_tbl_helper(
return true; return true;
case DCE_VERSION_11_2: case DCE_VERSION_11_2:
#if defined(CONFIG_DRM_AMD_DC_VEGAM)
case DCE_VERSION_11_22:
#endif
*h = dal_cmd_tbl_helper_dce112_get_table(); *h = dal_cmd_tbl_helper_dce112_get_table();
return true; return true;
......
...@@ -52,6 +52,9 @@ bool dal_bios_parser_init_cmd_tbl_helper2( ...@@ -52,6 +52,9 @@ bool dal_bios_parser_init_cmd_tbl_helper2(
return true; return true;
case DCE_VERSION_11_2: case DCE_VERSION_11_2:
#if defined(CONFIG_DRM_AMD_DC_VEGAM)
case DCE_VERSION_11_22:
#endif
*h = dal_cmd_tbl_helper_dce112_get_table2(); *h = dal_cmd_tbl_helper_dce112_get_table2();
return true; return true;
#if defined(CONFIG_DRM_AMD_DC_DCN1_0) #if defined(CONFIG_DRM_AMD_DC_DCN1_0)
......
...@@ -59,6 +59,10 @@ static enum bw_calcs_version bw_calcs_version_from_asic_id(struct hw_asic_id asi ...@@ -59,6 +59,10 @@ static enum bw_calcs_version bw_calcs_version_from_asic_id(struct hw_asic_id asi
return BW_CALCS_VERSION_POLARIS10; return BW_CALCS_VERSION_POLARIS10;
if (ASIC_REV_IS_POLARIS11_M(asic_id.hw_internal_rev)) if (ASIC_REV_IS_POLARIS11_M(asic_id.hw_internal_rev))
return BW_CALCS_VERSION_POLARIS11; return BW_CALCS_VERSION_POLARIS11;
#if defined(CONFIG_DRM_AMD_DC_VEGAM)
if (ASIC_REV_IS_VEGAM(asic_id.hw_internal_rev))
return BW_CALCS_VERSION_VEGAM;
#endif
return BW_CALCS_VERSION_INVALID; return BW_CALCS_VERSION_INVALID;
case FAMILY_AI: case FAMILY_AI:
...@@ -2147,6 +2151,11 @@ void bw_calcs_init(struct bw_calcs_dceip *bw_dceip, ...@@ -2147,6 +2151,11 @@ void bw_calcs_init(struct bw_calcs_dceip *bw_dceip,
dceip.mcifwr_all_surfaces_burst_time = bw_int_to_fixed(0); /* todo: this is a bug*/ dceip.mcifwr_all_surfaces_burst_time = bw_int_to_fixed(0); /* todo: this is a bug*/
break; break;
case BW_CALCS_VERSION_POLARIS10: case BW_CALCS_VERSION_POLARIS10:
#if defined(CONFIG_DRM_AMD_DC_VEGAM)
/* TODO: Treat VEGAM the same as P10 for now
* Need to tune the para for VEGAM if needed */
case BW_CALCS_VERSION_VEGAM:
#endif
vbios.memory_type = bw_def_gddr5; vbios.memory_type = bw_def_gddr5;
vbios.dram_channel_width_in_bits = 32; vbios.dram_channel_width_in_bits = 32;
vbios.number_of_dram_channels = asic_id.vram_width / vbios.dram_channel_width_in_bits; vbios.number_of_dram_channels = asic_id.vram_width / vbios.dram_channel_width_in_bits;
......
...@@ -79,6 +79,10 @@ enum dce_version resource_parse_asic_id(struct hw_asic_id asic_id) ...@@ -79,6 +79,10 @@ enum dce_version resource_parse_asic_id(struct hw_asic_id asic_id)
ASIC_REV_IS_POLARIS12_V(asic_id.hw_internal_rev)) { ASIC_REV_IS_POLARIS12_V(asic_id.hw_internal_rev)) {
dc_version = DCE_VERSION_11_2; dc_version = DCE_VERSION_11_2;
} }
#if defined(CONFIG_DRM_AMD_DC_VEGAM)
if (ASIC_REV_IS_VEGAM(asic_id.hw_internal_rev))
dc_version = DCE_VERSION_11_22;
#endif
break; break;
case FAMILY_AI: case FAMILY_AI:
dc_version = DCE_VERSION_12_0; dc_version = DCE_VERSION_12_0;
...@@ -125,6 +129,9 @@ struct resource_pool *dc_create_resource_pool( ...@@ -125,6 +129,9 @@ struct resource_pool *dc_create_resource_pool(
num_virtual_links, dc, asic_id); num_virtual_links, dc, asic_id);
break; break;
case DCE_VERSION_11_2: case DCE_VERSION_11_2:
#if defined(CONFIG_DRM_AMD_DC_VEGAM)
case DCE_VERSION_11_22:
#endif
res_pool = dce112_create_resource_pool( res_pool = dce112_create_resource_pool(
num_virtual_links, dc); num_virtual_links, dc);
break; break;
......
...@@ -590,6 +590,9 @@ static uint32_t dce110_get_pix_clk_dividers( ...@@ -590,6 +590,9 @@ static uint32_t dce110_get_pix_clk_dividers(
pll_settings, pix_clk_params); pll_settings, pix_clk_params);
break; break;
case DCE_VERSION_11_2: case DCE_VERSION_11_2:
#if defined(CONFIG_DRM_AMD_DC_VEGAM)
case DCE_VERSION_11_22:
#endif
case DCE_VERSION_12_0: case DCE_VERSION_12_0:
#if defined(CONFIG_DRM_AMD_DC_DCN1_0) #if defined(CONFIG_DRM_AMD_DC_DCN1_0)
case DCN_VERSION_1_0: case DCN_VERSION_1_0:
...@@ -979,6 +982,9 @@ static bool dce110_program_pix_clk( ...@@ -979,6 +982,9 @@ static bool dce110_program_pix_clk(
break; break;
case DCE_VERSION_11_2: case DCE_VERSION_11_2:
#if defined(CONFIG_DRM_AMD_DC_VEGAM)
case DCE_VERSION_11_22:
#endif
case DCE_VERSION_12_0: case DCE_VERSION_12_0:
#if defined(CONFIG_DRM_AMD_DC_DCN1_0) #if defined(CONFIG_DRM_AMD_DC_DCN1_0)
case DCN_VERSION_1_0: case DCN_VERSION_1_0:
......
...@@ -75,6 +75,9 @@ bool dal_hw_factory_init( ...@@ -75,6 +75,9 @@ bool dal_hw_factory_init(
return true; return true;
case DCE_VERSION_11_0: case DCE_VERSION_11_0:
case DCE_VERSION_11_2: case DCE_VERSION_11_2:
#if defined(CONFIG_DRM_AMD_DC_VEGAM)
case DCE_VERSION_11_22:
#endif
dal_hw_factory_dce110_init(factory); dal_hw_factory_dce110_init(factory);
return true; return true;
case DCE_VERSION_12_0: case DCE_VERSION_12_0:
......
...@@ -72,6 +72,9 @@ bool dal_hw_translate_init( ...@@ -72,6 +72,9 @@ bool dal_hw_translate_init(
case DCE_VERSION_10_0: case DCE_VERSION_10_0:
case DCE_VERSION_11_0: case DCE_VERSION_11_0:
case DCE_VERSION_11_2: case DCE_VERSION_11_2:
#if defined(CONFIG_DRM_AMD_DC_VEGAM)
case DCE_VERSION_11_22:
#endif
dal_hw_translate_dce110_init(translate); dal_hw_translate_dce110_init(translate);
return true; return true;
case DCE_VERSION_12_0: case DCE_VERSION_12_0:
......
...@@ -83,6 +83,9 @@ struct i2caux *dal_i2caux_create( ...@@ -83,6 +83,9 @@ struct i2caux *dal_i2caux_create(
case DCE_VERSION_8_3: case DCE_VERSION_8_3:
return dal_i2caux_dce80_create(ctx); return dal_i2caux_dce80_create(ctx);
case DCE_VERSION_11_2: case DCE_VERSION_11_2:
#if defined(CONFIG_DRM_AMD_DC_VEGAM)
case DCE_VERSION_11_22:
#endif
return dal_i2caux_dce112_create(ctx); return dal_i2caux_dce112_create(ctx);
case DCE_VERSION_11_0: case DCE_VERSION_11_0:
return dal_i2caux_dce110_create(ctx); return dal_i2caux_dce110_create(ctx);
......
...@@ -43,6 +43,9 @@ enum bw_calcs_version { ...@@ -43,6 +43,9 @@ enum bw_calcs_version {
BW_CALCS_VERSION_POLARIS10, BW_CALCS_VERSION_POLARIS10,
BW_CALCS_VERSION_POLARIS11, BW_CALCS_VERSION_POLARIS11,
BW_CALCS_VERSION_POLARIS12, BW_CALCS_VERSION_POLARIS12,
#if defined(CONFIG_DRM_AMD_DC_VEGAM)
BW_CALCS_VERSION_VEGAM,
#endif
BW_CALCS_VERSION_STONEY, BW_CALCS_VERSION_STONEY,
BW_CALCS_VERSION_VEGA10 BW_CALCS_VERSION_VEGA10
}; };
......
...@@ -98,7 +98,14 @@ ...@@ -98,7 +98,14 @@
(eChipRev < VI_POLARIS11_M_A0)) (eChipRev < VI_POLARIS11_M_A0))
#define ASIC_REV_IS_POLARIS11_M(eChipRev) ((eChipRev >= VI_POLARIS11_M_A0) && \ #define ASIC_REV_IS_POLARIS11_M(eChipRev) ((eChipRev >= VI_POLARIS11_M_A0) && \
(eChipRev < VI_POLARIS12_V_A0)) (eChipRev < VI_POLARIS12_V_A0))
#if defined(CONFIG_DRM_AMD_DC_VEGAM)
#define VI_VEGAM_A0 110
#define ASIC_REV_IS_POLARIS12_V(eChipRev) ((eChipRev >= VI_POLARIS12_V_A0) && \
(eChipRev < VI_VEGAM_A0))
#define ASIC_REV_IS_VEGAM(eChipRev) (eChipRev >= VI_VEGAM_A0)
#else
#define ASIC_REV_IS_POLARIS12_V(eChipRev) (eChipRev >= VI_POLARIS12_V_A0) #define ASIC_REV_IS_POLARIS12_V(eChipRev) (eChipRev >= VI_POLARIS12_V_A0)
#endif
/* DCE11 */ /* DCE11 */
#define CZ_CARRIZO_A0 0x01 #define CZ_CARRIZO_A0 0x01
......
...@@ -40,6 +40,9 @@ enum dce_version { ...@@ -40,6 +40,9 @@ enum dce_version {
DCE_VERSION_10_0, DCE_VERSION_10_0,
DCE_VERSION_11_0, DCE_VERSION_11_0,
DCE_VERSION_11_2, DCE_VERSION_11_2,
#if defined(CONFIG_DRM_AMD_DC_VEGAM)
DCE_VERSION_11_22,
#endif
DCE_VERSION_12_0, DCE_VERSION_12_0,
DCE_VERSION_MAX, DCE_VERSION_MAX,
DCN_VERSION_1_0, DCN_VERSION_1_0,
......
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