From: Tony Cheng <tony.cheng@xxxxxxx> - ddc instantiation - default i2c speed from dc_cap. Signed-off-by: Tony Cheng <tony.cheng at amd.com> Acked-by: Harry Wentland <harry.wentland at amd.com> --- .../gpu/drm/amd/dal/dc/adapter/adapter_service.c | 26 ---------------------- .../amd/dal/dc/asic_capability/asic_capability.c | 1 - .../dc/asic_capability/carrizo_asic_capability.c | 1 - .../dc/asic_capability/hawaii_asic_capability.c | 2 -- .../dc/asic_capability/polaris10_asic_capability.c | 1 - .../dal/dc/asic_capability/tonga_asic_capability.c | 1 - drivers/gpu/drm/amd/dal/dc/bios/bios_parser.c | 4 +++- drivers/gpu/drm/amd/dal/dc/core/dc_link_ddc.c | 9 +++----- .../amd/dal/include/adapter_service_interface.h | 8 ------- .../drm/amd/dal/include/asic_capability_types.h | 1 - 10 files changed, 6 insertions(+), 48 deletions(-) diff --git a/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c b/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c index 6d2f5762ef63..d25f9da35b07 100644 --- a/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c +++ b/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c @@ -118,7 +118,6 @@ static const struct feature_source_entry feature_entry_table[] = { {FEATURE_DP_DISPLAY_FORCE_SS_ENABLE, false, true}, {FEATURE_REPORT_CE_MODE_ONLY, false, true}, {FEATURE_ALLOW_OPTIMIZED_MODE_AS_DEFAULT, false, true}, - {FEATURE_DDC_READ_FORCE_REPEATED_START, false, true}, {FEATURE_FORCE_TIMING_RESYNC, false, true}, {FEATURE_TMDS_DISABLE_DITHERING, false, true}, {FEATURE_HDMI_DISABLE_DITHERING, false, true}, @@ -136,7 +135,6 @@ static const struct feature_source_entry feature_entry_table[] = { {FEATURE_PSR_ENABLE, false, true}, {FEATURE_WIRELESS_ENABLE_COMPRESSED_AUDIO, false, true}, {FEATURE_WIRELESS_INCLUDE_UNVERIFIED_TIMINGS, true, true}, - {FEATURE_EDID_STRESS_READ, false, true}, {FEATURE_DP_FRAME_PACK_STEREO3D, false, true}, {FEATURE_DISPLAY_PREFERRED_VIEW, 0, false}, {FEATURE_ALLOW_HDMI_WITHOUT_AUDIO, false, true}, @@ -928,30 +926,6 @@ bool dal_adapter_service_is_dfs_bypass_enabled( } /* - * dal_adapter_service_get_sw_i2c_speed - * - * Get SW I2C speed - */ -uint32_t dal_adapter_service_get_sw_i2c_speed( - struct adapter_service *as) -{ - /* TODO: only from ASIC caps. Feature key is not implemented*/ - return as->asic_cap->data[ASIC_DATA_DEFAULT_I2C_SPEED_IN_KHZ]; -} - -/* - * dal_adapter_service_get_hw_i2c_speed - * - * Get HW I2C speed - */ -uint32_t dal_adapter_service_get_hw_i2c_speed( - struct adapter_service *as) -{ - /* TODO: only from ASIC caps. Feature key is not implemented*/ - return as->asic_cap->data[ASIC_DATA_DEFAULT_I2C_SPEED_IN_KHZ]; -} - -/* * dal_adapter_service_get_asic_vram_bit_width * * Get the video RAM bit width set on the ASIC diff --git a/drivers/gpu/drm/amd/dal/dc/asic_capability/asic_capability.c b/drivers/gpu/drm/amd/dal/dc/asic_capability/asic_capability.c index 24ab4a5b5232..543fee50c21a 100644 --- a/drivers/gpu/drm/amd/dal/dc/asic_capability/asic_capability.c +++ b/drivers/gpu/drm/amd/dal/dc/asic_capability/asic_capability.c @@ -58,7 +58,6 @@ static bool construct( cap->runtime_flags = init->runtime_flags; cap->data[ASIC_DATA_MAX_UNDERSCAN_PERCENTAGE] = 10; cap->data[ASIC_DATA_VIEWPORT_PIXEL_GRANULARITY] = 4; - cap->data[ASIC_DATA_DEFAULT_I2C_SPEED_IN_KHZ] = 25; cap->data[ASIC_DATA_DOWNSCALE_LIMIT] = 200; /* ASIC basic capability */ diff --git a/drivers/gpu/drm/amd/dal/dc/asic_capability/carrizo_asic_capability.c b/drivers/gpu/drm/amd/dal/dc/asic_capability/carrizo_asic_capability.c index d23d186c670f..982d1cd5bad9 100644 --- a/drivers/gpu/drm/amd/dal/dc/asic_capability/carrizo_asic_capability.c +++ b/drivers/gpu/drm/amd/dal/dc/asic_capability/carrizo_asic_capability.c @@ -56,7 +56,6 @@ void carrizo_asic_capability_create(struct asic_capability *cap, cap->data[ASIC_DATA_STUTTERMODE] = 0x200A; cap->data[ASIC_DATA_VIEWPORT_PIXEL_GRANULARITY] = 2; cap->data[ASIC_DATA_MEMORYTYPE_MULTIPLIER] = 2; - cap->data[ASIC_DATA_DEFAULT_I2C_SPEED_IN_KHZ] = 100; cap->data[ASIC_DATA_DOWNSCALE_LIMIT] = 150; /* ASIC basic capability */ diff --git a/drivers/gpu/drm/amd/dal/dc/asic_capability/hawaii_asic_capability.c b/drivers/gpu/drm/amd/dal/dc/asic_capability/hawaii_asic_capability.c index 6678053d4601..628f985acf23 100644 --- a/drivers/gpu/drm/amd/dal/dc/asic_capability/hawaii_asic_capability.c +++ b/drivers/gpu/drm/amd/dal/dc/asic_capability/hawaii_asic_capability.c @@ -69,8 +69,6 @@ void dal_hawaii_asic_capability_create(struct asic_capability *cap, cap->data[ASIC_DATA_PATH_NUM_PER_DPMST_CONNECTOR] = 4; cap->data[ASIC_DATA_VIEWPORT_PIXEL_GRANULARITY] = 2; - cap->data[ASIC_DATA_DEFAULT_I2C_SPEED_IN_KHZ] = 40; - mc_seq_misc0 = dm_read_reg(cap->ctx, mmMC_SEQ_MISC0); switch (mc_seq_misc0 & MC_MISC0__MEMORY_TYPE_MASK) { diff --git a/drivers/gpu/drm/amd/dal/dc/asic_capability/polaris10_asic_capability.c b/drivers/gpu/drm/amd/dal/dc/asic_capability/polaris10_asic_capability.c index 15b1f7a59066..1b1524b2e6e4 100644 --- a/drivers/gpu/drm/amd/dal/dc/asic_capability/polaris10_asic_capability.c +++ b/drivers/gpu/drm/amd/dal/dc/asic_capability/polaris10_asic_capability.c @@ -58,7 +58,6 @@ void polaris10_asic_capability_create(struct asic_capability *cap, cap->data[ASIC_DATA_VIEWPORT_PIXEL_GRANULARITY] = 2; cap->data[ASIC_DATA_MEMORYTYPE_MULTIPLIER] = 4; - cap->data[ASIC_DATA_DEFAULT_I2C_SPEED_IN_KHZ] = 100; cap->data[ASIC_DATA_MIN_DISPCLK_FOR_UNDERSCAN] = 300000; diff --git a/drivers/gpu/drm/amd/dal/dc/asic_capability/tonga_asic_capability.c b/drivers/gpu/drm/amd/dal/dc/asic_capability/tonga_asic_capability.c index 2475de9c0bf5..58d4913e3aea 100644 --- a/drivers/gpu/drm/amd/dal/dc/asic_capability/tonga_asic_capability.c +++ b/drivers/gpu/drm/amd/dal/dc/asic_capability/tonga_asic_capability.c @@ -58,7 +58,6 @@ void tonga_asic_capability_create(struct asic_capability *cap, cap->data[ASIC_DATA_DCE_VERSION] = 0x100; /* DCE 11 */ cap->data[ASIC_DATA_MEMORYTYPE_MULTIPLIER] = 4; - cap->data[ASIC_DATA_DEFAULT_I2C_SPEED_IN_KHZ] = 40; /* ASIC basic capability */ cap->caps.IS_FUSION = true; diff --git a/drivers/gpu/drm/amd/dal/dc/bios/bios_parser.c b/drivers/gpu/drm/amd/dal/dc/bios/bios_parser.c index 79669d9516cb..eae92f53694f 100644 --- a/drivers/gpu/drm/amd/dal/dc/bios/bios_parser.c +++ b/drivers/gpu/drm/amd/dal/dc/bios/bios_parser.c @@ -44,6 +44,8 @@ /* TODO remove - only needed for gpio_service */ #include "adapter/adapter_service.h" +/* TODO remove - only needed for default i2c speed */ +#include "dc.h" #define THREE_PERCENT_OF_10000 300 @@ -2940,7 +2942,7 @@ static bool i2c_read( /*Using SW engine */ cmd.engine = I2C_COMMAND_ENGINE_SW; - cmd.speed = dal_adapter_service_get_sw_i2c_speed(as); + cmd.speed = ddc->ctx->dc->caps.i2c_speed_in_khz; { struct i2c_payload payloads[] = { diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_link_ddc.c b/drivers/gpu/drm/amd/dal/dc/core/dc_link_ddc.c index cc4c238ed0a6..c440d9d123ad 100644 --- a/drivers/gpu/drm/amd/dal/dc/core/dc_link_ddc.c +++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link_ddc.c @@ -303,9 +303,7 @@ static bool construct( } ddc_service->flags.EDID_QUERY_DONE_ONCE = false; - ddc_service->flags.FORCE_READ_REPEATED_START = false; - ddc_service->flags.EDID_STRESS_READ = false; ddc_service->flags.IS_INTERNAL_DISPLAY = @@ -450,7 +448,7 @@ static bool i2c_read( .payloads = payloads, .number_of_payloads = 2, .engine = DDC_I2C_COMMAND_ENGINE, - .speed = dal_adapter_service_get_sw_i2c_speed(ddc->as) }; + .speed = ddc->ctx->dc->caps.i2c_speed_in_khz }; return dm_helpers_submit_i2c( ddc->ctx, @@ -561,7 +559,7 @@ static uint8_t i2c_read_edid_block( .payloads = NULL, .number_of_payloads = 0, .engine = DDC_I2C_COMMAND_ENGINE, - .speed = dal_adapter_service_get_sw_i2c_speed(ddc->as) }; + .speed = ddc->ctx->dc->caps.i2c_speed_in_khz }; struct i2c_payload payloads[3] = { { @@ -943,8 +941,7 @@ bool dal_ddc_service_query_ddc_data( .payloads = dal_ddc_i2c_payloads_get(payloads), .number_of_payloads = 0, .engine = DDC_I2C_COMMAND_ENGINE, - .speed = - dal_adapter_service_get_sw_i2c_speed(ddc->as) }; + .speed = ddc->ctx->dc->caps.i2c_speed_in_khz }; dal_ddc_i2c_payloads_add( payloads, address, write_size, write_buf, true); diff --git a/drivers/gpu/drm/amd/dal/include/adapter_service_interface.h b/drivers/gpu/drm/amd/dal/include/adapter_service_interface.h index 052cd9ab5cf3..ef45693925d6 100644 --- a/drivers/gpu/drm/amd/dal/include/adapter_service_interface.h +++ b/drivers/gpu/drm/amd/dal/include/adapter_service_interface.h @@ -87,7 +87,6 @@ enum adapter_feature_id { FEATURE_DP_DISPLAY_FORCE_SS_ENABLE, FEATURE_REPORT_CE_MODE_ONLY, FEATURE_ALLOW_OPTIMIZED_MODE_AS_DEFAULT, - FEATURE_DDC_READ_FORCE_REPEATED_START, FEATURE_FORCE_TIMING_RESYNC, FEATURE_TMDS_DISABLE_DITHERING, FEATURE_HDMI_DISABLE_DITHERING, @@ -111,7 +110,6 @@ enum adapter_feature_id { FEATURE_PREFER_3D_TIMING, FEATURE_VARI_BRIGHT_ENABLE, FEATURE_PSR_ENABLE, - FEATURE_EDID_STRESS_READ, FEATURE_DP_FRAME_PACK_STEREO3D, FEATURE_ALLOW_HDMI_WITHOUT_AUDIO, FEATURE_RESTORE_USAGE_I2C_SW_ENGING, @@ -380,12 +378,6 @@ bool dal_adapter_service_get_feature_value(struct adapter_service *as, void *data, uint32_t size); -/* Get SW I2C speed */ -uint32_t dal_adapter_service_get_sw_i2c_speed(struct adapter_service *as); - -/* Get HW I2C speed */ -uint32_t dal_adapter_service_get_hw_i2c_speed(struct adapter_service *as); - /* Get I2C information from BIOS */ bool dal_adapter_service_get_i2c_info( struct adapter_service *as, diff --git a/drivers/gpu/drm/amd/dal/include/asic_capability_types.h b/drivers/gpu/drm/amd/dal/include/asic_capability_types.h index 1f78dc9f52f3..8c6c40247e02 100644 --- a/drivers/gpu/drm/amd/dal/include/asic_capability_types.h +++ b/drivers/gpu/drm/amd/dal/include/asic_capability_types.h @@ -97,7 +97,6 @@ enum asic_data { ASIC_DATA_MAX_UNDERSCAN_PERCENTAGE, ASIC_DATA_VIEWPORT_PIXEL_GRANULARITY, ASIC_DATA_MIN_DISPCLK_FOR_UNDERSCAN, - ASIC_DATA_DEFAULT_I2C_SPEED_IN_KHZ, ASIC_DATA_DOWNSCALE_LIMIT, ASIC_DATA_MAX_NUMBER /* end of enum */ }; -- 2.10.1