[PATCH 48/76] drm/amd/dal: remove dal_adapter_service_get_feature_value
Harry Wentland
harry.wentland at amd.com
Mon Nov 21 23:01:08 UTC 2016
From: Tony Cheng <tony.cheng at amd.com>
- STUTTER_MODE_NO_DMIF_BUFFER_ALLOCATION always = 0.
-- this is a debug option when dmif first got introduced. no need to keep it. always allocate DMIF
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 | 59 ----------------------
.../dc/asic_capability/carrizo_asic_capability.c | 1 -
.../dc/asic_capability/hawaii_asic_capability.c | 3 --
.../dc/asic_capability/polaris10_asic_capability.c | 1 -
.../dal/dc/asic_capability/tonga_asic_capability.c | 1 -
.../gpu/drm/amd/dal/dc/dce110/dce110_mem_input.c | 26 ++++------
.../gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h | 23 ---------
.../gpu/drm/amd/dal/dc/dce110/dce110_mem_input_v.c | 5 --
drivers/gpu/drm/amd/dal/dc/dce80/dce80_mem_input.c | 14 ++---
drivers/gpu/drm/amd/dal/dc/inc/hw/mem_input.h | 7 +++
.../amd/dal/include/adapter_service_interface.h | 17 +------
.../drm/amd/dal/include/asic_capability_types.h | 1 -
12 files changed, 21 insertions(+), 137 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 a6e0763c21e5..41d9a6125e14 100644
--- a/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c
+++ b/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c
@@ -100,7 +100,6 @@ static const struct feature_source_entry feature_entry_table[] = {
{FEATURE_LB_HIGH_RESOLUTION, false, true},
{FEATURE_MAX_CONTROLLER_NUM, 0, false},
{FEATURE_DRR_SUPPORT, AS_DRR_SUPPORT_ENABLED, false},
- {FEATURE_STUTTER_MODE, 15, false},
{FEATURE_DP_DISPLAY_FORCE_SS_ENABLE, false, true},
{FEATURE_REPORT_CE_MODE_ONLY, false, true},
{FEATURE_ALLOW_OPTIMIZED_MODE_AS_DEFAULT, false, true},
@@ -360,10 +359,6 @@ static bool get_feature_value_from_data_sources(
*data = as->asic_cap->caps.HPD_CHECK_FOR_EDID;
break;
- case FEATURE_STUTTER_MODE:
- *data = as->asic_cap->data[ASIC_DATA_STUTTERMODE];
- break;
-
case FEATURE_8BPP_SUPPORTED:
*data = as->asic_cap->caps.SUPPORT_8BPP;
break;
@@ -627,58 +622,4 @@ void dal_adapter_service_destroy(
*as = NULL;
}
-/*
- * dal_adapter_service_get_feature_value
- *
- * Get the cached value of a given feature. This value can be a boolean, int,
- * or characters.
- */
-bool dal_adapter_service_get_feature_value(struct adapter_service *as,
- const enum adapter_feature_id feature_id,
- void *data,
- uint32_t size)
-{
- uint32_t entry_idx = 0;
- uint32_t set_idx = 0;
- uint32_t set_internal_idx = 0;
-
- if (feature_id >= FEATURE_MAXIMUM || feature_id <= FEATURE_UNKNOWN) {
- ASSERT_CRITICAL(false);
- return false;
- }
-
- if (data == NULL) {
- ASSERT_CRITICAL(false);
- return false;
- }
-
- entry_idx = lookup_feature_entry(as, feature_id);
- set_idx = (uint32_t)((feature_id - 1)/32);
- set_internal_idx = (uint32_t)((feature_id - 1) % 32);
-
- if (entry_idx >= get_feature_entries_num()) {
- /* Cannot find this entry */
- ASSERT_CRITICAL(false);
- return false;
- }
-
- if (feature_entry_table[entry_idx].is_boolean_type) {
- if (size != sizeof(bool)) {
- ASSERT_CRITICAL(false);
- return false;
- }
-
- *(bool *)data = get_bool_value(as->adapter_feature_set[set_idx],
- set_internal_idx);
- } else {
- if (size != sizeof(uint32_t)) {
- ASSERT_CRITICAL(false);
- return false;
- }
-
- *(uint32_t *)data = as->adapter_feature_set[set_idx];
- }
-
- return true;
-}
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 90050e8856dd..7243e51e909f 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
@@ -53,7 +53,6 @@ void carrizo_asic_capability_create(struct asic_capability *cap,
cap->data[ASIC_DATA_LINEBUFFER_SIZE] = 1712 * 144;
cap->data[ASIC_DATA_DRAM_BANDWIDTH_EFFICIENCY] = 45;
cap->data[ASIC_DATA_MC_LATENCY] = 5000;
- 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_DOWNSCALE_LIMIT] = 150;
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 f5a3cda8c5b3..e0c9ef4557e7 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
@@ -63,9 +63,6 @@ void dal_hawaii_asic_capability_create(struct asic_capability *cap,
cap->data[ASIC_DATA_LINEBUFFER_SIZE] = 1712 * 144;
cap->data[ASIC_DATA_DRAM_BANDWIDTH_EFFICIENCY] = 70;
cap->data[ASIC_DATA_MC_LATENCY] = 5000; /* units of ns */
-
- /* StutterModeEnhanced; Quad DMIF Buffer */
- cap->data[ASIC_DATA_STUTTERMODE] = 0x2002;
cap->data[ASIC_DATA_PATH_NUM_PER_DPMST_CONNECTOR] = 4;
cap->data[ASIC_DATA_VIEWPORT_PIXEL_GRANULARITY] = 2;
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 89bb01f436b9..7716d6587793 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
@@ -54,7 +54,6 @@ void polaris10_asic_capability_create(struct asic_capability *cap,
cap->data[ASIC_DATA_DRAM_BANDWIDTH_EFFICIENCY] = 70;
cap->data[ASIC_DATA_MC_LATENCY] = 3000;
- cap->data[ASIC_DATA_STUTTERMODE] = 0x200A;
cap->data[ASIC_DATA_VIEWPORT_PIXEL_GRANULARITY] = 2;
cap->data[ASIC_DATA_MEMORYTYPE_MULTIPLIER] = 4;
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 aa2333f9dc07..6c819ab8fd6e 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
@@ -50,7 +50,6 @@ void tonga_asic_capability_create(struct asic_capability *cap,
cap->data[ASIC_DATA_LINEBUFFER_SIZE] = 1712 * 144;
cap->data[ASIC_DATA_DRAM_BANDWIDTH_EFFICIENCY] = 70;
cap->data[ASIC_DATA_MC_LATENCY] = 5000;
- cap->data[ASIC_DATA_STUTTERMODE] = 0x2002;
cap->data[ASIC_DATA_PATH_NUM_PER_DPMST_CONNECTOR] = 4;
cap->data[ASIC_DATA_VIEWPORT_PIXEL_GRANULARITY] = 2;
cap->data[ASIC_DATA_MIN_DISPCLK_FOR_UNDERSCAN] = 300000;
diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.c
index 3eb0e73d2eb6..a78ad8ddcaf8 100644
--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.c
+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.c
@@ -836,10 +836,6 @@ void dce110_allocate_mem_input(
uint32_t field;
uint32_t pix_dur;
- if (bm110->supported_stutter_mode
- & STUTTER_MODE_NO_DMIF_BUFFER_ALLOCATION)
- goto register_underflow_int;
-
/*Allocate DMIF buffer*/
value = dm_read_reg(mi->ctx, addr);
field = get_reg_field_value(
@@ -950,14 +946,10 @@ void dce110_free_mem_input(
struct dce110_mem_input *bm_dce110 = TO_DCE110_MEM_INPUT(mi);
uint32_t value;
- if (!(bm_dce110->supported_stutter_mode &
- STUTTER_MODE_NO_DMIF_BUFFER_ALLOCATION)) {
-
- /* De-allocate DMIF buffer first */
- if (mmPIPE0_DMIF_BUFFER_CONTROL + bm_dce110->offsets.pipe != 0)
- deallocate_dmif_buffer_helper(
- mi->ctx, bm_dce110->offsets.pipe);
- }
+ /* De-allocate DMIF buffer first */
+ if (mmPIPE0_DMIF_BUFFER_CONTROL + bm_dce110->offsets.pipe != 0)
+ deallocate_dmif_buffer_helper(
+ mi->ctx, bm_dce110->offsets.pipe);
/* TODO: unregister underflow interrupt
unregisterInterrupt();
@@ -1005,6 +997,11 @@ bool dce110_mem_input_construct(
uint32_t inst,
const struct dce110_mem_input_reg_offsets *offsets)
{
+ /* supported stutter method
+ * STUTTER_MODE_ENHANCED
+ * STUTTER_MODE_QUAD_DMIF_BUFFER
+ * STUTTER_MODE_WATERMARK_NBP_STATE
+ */
mem_input110->base.funcs = &dce110_mem_input_funcs;
mem_input110->base.ctx = ctx;
@@ -1012,10 +1009,5 @@ bool dce110_mem_input_construct(
mem_input110->offsets = *offsets;
- mem_input110->supported_stutter_mode = 0;
- dal_adapter_service_get_feature_value(as, FEATURE_STUTTER_MODE,
- &(mem_input110->supported_stutter_mode),
- sizeof(mem_input110->supported_stutter_mode));
-
return true;
}
diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h
index 7a521c56e8d9..8edd25ab19a6 100644
--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h
+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h
@@ -36,32 +36,9 @@ struct dce110_mem_input_reg_offsets {
uint32_t pipe;
};
-enum stutter_mode_type {
-/* TODO: Clean up these enums, right now only one is being used
- * STUTTER_MODE_LEGACY = 0X00000001,
- * STUTTER_MODE_ENHANCED = 0X00000002,
- * STUTTER_MODE_FID_NBP_STATE = 0X00000004,
- * STUTTER_MODE_WATERMARK_NBP_STATE = 0X00000008,
- * STUTTER_MODE_SINGLE_DISPLAY_MODEL = 0X00000010,
- * STUTTER_MODE_MIXED_DISPLAY_MODEL = 0X00000020,
- * STUTTER_MODE_DUAL_DMIF_BUFFER = 0X00000040,
- */
- STUTTER_MODE_NO_DMIF_BUFFER_ALLOCATION = 0X00000080,
-/*
- * STUTTER_MODE_NO_ADVANCED_REQUEST = 0X00000100,
- * STUTTER_MODE_NO_LB_RESET = 0X00000200,
- * STUTTER_MODE_DISABLED = 0X00000400,
- * STUTTER_MODE_AGGRESSIVE_MARKS = 0X00000800,
- * STUTTER_MODE_URGENCY = 0X00001000,
- * STUTTER_MODE_QUAD_DMIF_BUFFER = 0X00002000,
- * STUTTER_MODE_NOT_USED = 0X00008000
- */
-};
-
struct dce110_mem_input {
struct mem_input base;
struct dce110_mem_input_reg_offsets offsets;
- uint32_t supported_stutter_mode;
};
bool dce110_mem_input_construct(
diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input_v.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input_v.c
index 0903d3b4913d..78c63680cc0b 100644
--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input_v.c
+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input_v.c
@@ -1071,11 +1071,6 @@ bool dce110_mem_input_v_construct(
mem_input110->offsets = dce110_mi_v_reg_offsets[0];
- mem_input110->supported_stutter_mode = 0;
- dal_adapter_service_get_feature_value(as, FEATURE_STUTTER_MODE,
- &(mem_input110->supported_stutter_mode),
- sizeof(mem_input110->supported_stutter_mode));
-
return true;
}
diff --git a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_mem_input.c b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_mem_input.c
index 5e08a2dfb039..be822d1b5989 100644
--- a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_mem_input.c
+++ b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_mem_input.c
@@ -108,10 +108,6 @@ static void allocate_mem_input(
uint32_t value;
uint32_t field;
- if (bm80->supported_stutter_mode
- & STUTTER_MODE_NO_DMIF_BUFFER_ALLOCATION)
- goto register_underflow_int;
-
/*Allocate DMIF buffer*/
value = dm_read_reg(mi->ctx, addr);
field = get_reg_field_value(
@@ -194,7 +190,10 @@ bool dce80_mem_input_construct(
uint32_t inst,
const struct dce110_mem_input_reg_offsets *offsets)
{
-
+ /* supported stutter method
+ * STUTTER_MODE_ENHANCED
+ * STUTTER_MODE_QUAD_DMIF_BUFFER
+ */
mem_input80->base.funcs = &dce80_mem_input_funcs;
mem_input80->base.ctx = ctx;
@@ -202,11 +201,6 @@ bool dce80_mem_input_construct(
mem_input80->offsets = *offsets;
- mem_input80->supported_stutter_mode = 0;
- dal_adapter_service_get_feature_value(as, FEATURE_STUTTER_MODE,
- &(mem_input80->supported_stutter_mode),
- sizeof(mem_input80->supported_stutter_mode));
-
return true;
}
diff --git a/drivers/gpu/drm/amd/dal/dc/inc/hw/mem_input.h b/drivers/gpu/drm/amd/dal/dc/inc/hw/mem_input.h
index c743ae13cdf5..c4a78eefd362 100644
--- a/drivers/gpu/drm/amd/dal/dc/inc/hw/mem_input.h
+++ b/drivers/gpu/drm/amd/dal/dc/inc/hw/mem_input.h
@@ -29,12 +29,19 @@
#include "include/grph_object_id.h"
#include "inc/bandwidth_calcs.h"
+struct stutter_modes {
+ bool enhanced;
+ bool quad_dmif_buffer;
+ bool watermark_nb_pstate;
+};
+
struct mem_input {
struct mem_input_funcs *funcs;
struct dc_context *ctx;
struct dc_plane_address request_address;
struct dc_plane_address current_address;
uint32_t inst;
+ struct stutter_modes stutter_mode;
};
struct mem_input_funcs {
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 a88c94d0ef45..48484b0de5bb 100644
--- a/drivers/gpu/drm/amd/dal/include/adapter_service_interface.h
+++ b/drivers/gpu/drm/amd/dal/include/adapter_service_interface.h
@@ -149,13 +149,8 @@ enum adapter_feature_id {
FEATURE_SET_10_START = FEATURE_DRR_SUPPORT,
FEATURE_SET_10_END = FEATURE_SET_10_START + 31,
- /* UInt set, 1 entry: Stutter mode support */
- FEATURE_STUTTER_MODE = FEATURE_SET_10_END + 1,
- FEATURE_SET_11_START = FEATURE_STUTTER_MODE,
- FEATURE_SET_11_END = FEATURE_SET_11_START + 31,
-
/* UInt set, 1 entry: Measure PSR setup time */
- FEATURE_PSR_SETUP_TIME_TEST = FEATURE_SET_11_END + 1,
+ FEATURE_PSR_SETUP_TIME_TEST = FEATURE_SET_10_END + 1,
FEATURE_SET_12_START = FEATURE_PSR_SETUP_TIME_TEST,
FEATURE_SET_12_END = FEATURE_SET_12_START + 31,
@@ -322,14 +317,4 @@ struct adapter_service *dal_adapter_service_create(
void dal_adapter_service_destroy(
struct adapter_service **as);
-/* Get the cached value of a given feature */
-bool dal_adapter_service_get_feature_value(struct adapter_service *as,
- const enum adapter_feature_id feature_id,
- void *data,
- uint32_t size);
-
-/* Reports whether driver settings allow requested optimization */
-bool dal_adapter_service_should_optimize(
- struct adapter_service *as, enum optimization_feature feature);
-
#endif /* __DAL_ADAPTER_SERVICE_INTERFACE_H__ */
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 b0915e7f7048..c44dae043599 100644
--- a/drivers/gpu/drm/amd/dal/include/asic_capability_types.h
+++ b/drivers/gpu/drm/amd/dal/include/asic_capability_types.h
@@ -90,7 +90,6 @@ enum asic_data {
ASIC_DATA_MC_LATENCY,
ASIC_DATA_MC_LATENCY_SLOW,
ASIC_DATA_MEMORYTYPE_MULTIPLIER,
- ASIC_DATA_STUTTERMODE,
ASIC_DATA_PATH_NUM_PER_DPMST_CONNECTOR,
ASIC_DATA_MAX_UNDERSCAN_PERCENTAGE,
ASIC_DATA_VIEWPORT_PIXEL_GRANULARITY,
--
2.10.1
More information about the amd-gfx
mailing list