aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0733-drm-amd-dal-Disable-dithering-for-Diagnostics-enviro.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0733-drm-amd-dal-Disable-dithering-for-Diagnostics-enviro.patch')
-rw-r--r--common/recipes-kernel/linux/files/0733-drm-amd-dal-Disable-dithering-for-Diagnostics-enviro.patch366
1 files changed, 0 insertions, 366 deletions
diff --git a/common/recipes-kernel/linux/files/0733-drm-amd-dal-Disable-dithering-for-Diagnostics-enviro.patch b/common/recipes-kernel/linux/files/0733-drm-amd-dal-Disable-dithering-for-Diagnostics-enviro.patch
deleted file mode 100644
index a301c2dd..00000000
--- a/common/recipes-kernel/linux/files/0733-drm-amd-dal-Disable-dithering-for-Diagnostics-enviro.patch
+++ /dev/null
@@ -1,366 +0,0 @@
-From 0a6fcf118b9bfaeffd3ff647afafc14638f0ea3e Mon Sep 17 00:00:00 2001
-From: David Rokhvarg <David.Rokhvarg@amd.com>
-Date: Fri, 22 Jan 2016 15:38:15 -0500
-Subject: [PATCH 0733/1110] drm/amd/dal: Disable dithering for Diagnostics
- environment.
-
-Signed-off-by: David Rokhvarg <David.Rokhvarg@amd.com>
-Acked-by: Harry Wentland <harry.wentland@amd.com>
----
- .../gpu/drm/amd/dal/dc/adapter/adapter_service.c | 6 +----
- drivers/gpu/drm/amd/dal/dc/core/dc_stream.c | 25 ++++++++++++--------
- drivers/gpu/drm/amd/dal/dc/dc_types.h | 23 ++++++++++++++++++
- .../drm/amd/dal/dc/dce110/dce110_hw_sequencer.c | 5 ++--
- .../gpu/drm/amd/dal/dc/dce110/dce110_mem_input.c | 4 ++--
- .../gpu/drm/amd/dal/dc/dce110/dce110_transform.h | 3 ++-
- .../amd/dal/dc/dce110/dce110_transform_bit_depth.c | 27 +++++++++++++++-------
- drivers/gpu/drm/amd/dal/dc/gpio/hw_factory.c | 5 +---
- drivers/gpu/drm/amd/dal/dc/gpio/hw_translate.c | 5 +---
- drivers/gpu/drm/amd/dal/dc/i2caux/i2caux.c | 5 +---
- drivers/gpu/drm/amd/dal/dc/inc/core_types.h | 2 +-
- drivers/gpu/drm/amd/dal/dc/inc/transform.h | 3 ++-
- drivers/gpu/drm/amd/dal/include/dal_types.h | 8 -------
- 13 files changed, 72 insertions(+), 49 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 66c5034..d0dd6c9 100644
---- a/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c
-+++ b/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c
-@@ -661,12 +661,8 @@ static struct hw_ctx_adapter_service *create_hw_ctx(
- enum dce_environment dce_environment,
- struct dc_context *ctx)
- {
-- switch (dce_environment) {
-- case DCE_ENV_DIAG_FPGA_MAXIMUS:
-+ if (IS_FPGA_MAXIMUS_DC(dce_environment))
- return dal_adapter_service_create_hw_ctx_diag(ctx);
-- default:
-- break;
-- }
-
- switch (dce_version) {
- #if defined(CONFIG_DRM_AMD_DAL_DCE10_0)
-diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_stream.c b/drivers/gpu/drm/amd/dal/dc/core/dc_stream.c
-index 986368a..ab8999b 100644
---- a/drivers/gpu/drm/amd/dal/dc/core/dc_stream.c
-+++ b/drivers/gpu/drm/amd/dal/dc/core/dc_stream.c
-@@ -41,26 +41,33 @@ struct stream {
- /*******************************************************************************
- * Private functions
- ******************************************************************************/
--
- static void build_bit_depth_reduction_params(
-+ const struct core_stream *stream,
- struct bit_depth_reduction_params *fmt_bit_depth)
- {
-+ dc_service_memset(fmt_bit_depth, 0, sizeof(*fmt_bit_depth));
-+
- /*TODO: Need to un-hardcode, refer to function with same name
- * in dal2 hw_sequencer*/
-
- fmt_bit_depth->flags.TRUNCATE_ENABLED = 0;
- fmt_bit_depth->flags.SPATIAL_DITHER_ENABLED = 0;
- fmt_bit_depth->flags.FRAME_MODULATION_ENABLED = 0;
-- fmt_bit_depth->flags.SPATIAL_DITHER_DEPTH = 1;
-
-- fmt_bit_depth->flags.SPATIAL_DITHER_ENABLED = 1;
-- /* frame random is on by default */
-- fmt_bit_depth->flags.FRAME_RANDOM = 1;
-- /* apply RGB dithering */
-- fmt_bit_depth->flags.RGB_RANDOM = true;
-+ /* Diagnostics need consistent CRC of the image, that means
-+ * dithering should not be enabled for Diagnostics. */
-+ if (IS_DIAG_DC(stream->ctx->dce_environment) == false) {
-
-- return;
-+ fmt_bit_depth->flags.SPATIAL_DITHER_DEPTH = 1;
-+ fmt_bit_depth->flags.SPATIAL_DITHER_ENABLED = 1;
-
-+ /* frame random is on by default */
-+ fmt_bit_depth->flags.FRAME_RANDOM = 1;
-+ /* apply RGB dithering */
-+ fmt_bit_depth->flags.RGB_RANDOM = true;
-+ }
-+
-+ return;
- }
-
- static void setup_pixel_encoding(
-@@ -85,7 +92,7 @@ static bool construct(struct core_stream *stream,
-
- dc_sink_retain(dc_sink_data);
-
-- build_bit_depth_reduction_params(&stream->fmt_bit_depth);
-+ build_bit_depth_reduction_params(stream, &stream->bit_depth_params);
- setup_pixel_encoding(&stream->clamping);
-
- /* Copy audio modes */
-diff --git a/drivers/gpu/drm/amd/dal/dc/dc_types.h b/drivers/gpu/drm/amd/dal/dc/dc_types.h
-index b932ec1..18ecb0d 100644
---- a/drivers/gpu/drm/amd/dal/dc/dc_types.h
-+++ b/drivers/gpu/drm/amd/dal/dc/dc_types.h
-@@ -39,6 +39,29 @@ struct dc_link;
- struct dc_sink;
- struct dal;
-
-+/********************************
-+ * Environment definitions
-+ ********************************/
-+enum dce_environment {
-+ DCE_ENV_PRODUCTION_DRV = 0,
-+ /* Emulation on FPGA, in "Maximus" System.
-+ * This environment enforces that *only* DC registers accessed.
-+ * (access to non-DC registers will hang FPGA) */
-+ DCE_ENV_FPGA_MAXIMUS,
-+ /* Emulation on real HW or on FPGA. Used by Diagnostics, enforces
-+ * requirements of Diagnostics team. */
-+ DCE_ENV_DIAG
-+};
-+
-+/* Note: use these macro definitions instead of direct comparison! */
-+#define IS_FPGA_MAXIMUS_DC(dce_environment) \
-+ (dce_environment == DCE_ENV_FPGA_MAXIMUS)
-+
-+#define IS_DIAG_DC(dce_environment) \
-+ (IS_FPGA_MAXIMUS_DC(dce_environment) || (dce_environment == DCE_ENV_DIAG))
-+
-+/********************************/
-+
- #define MAX_EDID_BUFFER_SIZE 512
-
- /*Displayable pixel format in fb*/
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
-index 1fc4c07..e716219 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
-+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
-@@ -847,7 +847,7 @@ static enum dc_status apply_single_controller_ctx_to_hw(uint8_t controller_idx,
- stream->public.timing.display_color_depth,
- stream->sink->public.sink_signal);
-
-- program_fmt(opp, &stream->fmt_bit_depth, &stream->clamping);
-+ program_fmt(opp, &stream->bit_depth_params, &stream->clamping);
-
- stream->sink->link->link_enc->funcs->setup(
- stream->sink->link->link_enc,
-@@ -1350,7 +1350,8 @@ static bool setup_line_buffer_pixel_depth(
- if (blank)
- tg->funcs->wait_for_state(tg, CRTC_STATE_VBLANK);
-
-- return xfm->funcs->transform_set_pixel_storage_depth(xfm, depth);
-+ return xfm->funcs->transform_set_pixel_storage_depth(xfm, depth,
-+ &stream->bit_depth_params);
- }
-
- return false;
-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 392a075..f5cf5ad 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
-@@ -842,7 +842,7 @@ void dce110_mem_input_allocate_dmif_buffer(
- * 02 - enable DMIF rdreq limit, disable by DMIF stall = 1
- * 03 - force enable DMIF rdreq limit, ignore DMIF stall / urgent
- */
-- if (!IS_DIAG_MAXIMUS_DC(mi->ctx)) {
-+ if (!IS_FPGA_MAXIMUS_DC(mi->ctx->dce_environment)) {
- addr = mmMC_HUB_RDREQ_DMIF_LIMIT;
- value = dal_read_reg(mi->ctx, addr);
-
-@@ -912,7 +912,7 @@ void dce110_mem_input_deallocate_dmif_buffer(
- * 02 - enable dmif rdreq limit, disable by dmif stall=1
- * 03 - force enable dmif rdreq limit, ignore dmif stall/urgent
- * Stella Wong proposed this change. */
-- if (!IS_DIAG_MAXIMUS_DC(mi->ctx)) {
-+ if (!IS_FPGA_MAXIMUS_DC(mi->ctx->dce_environment)) {
- value = dal_read_reg(mi->ctx, mmMC_HUB_RDREQ_DMIF_LIMIT);
- if (paths_num > 1)
- set_reg_field_value(value, 0, MC_HUB_RDREQ_DMIF_LIMIT, ENABLE);
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform.h b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform.h
-index 229f588..117aca3 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform.h
-+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform.h
-@@ -76,7 +76,8 @@ void dce110_transform_set_gamut_remap(
- /* BIT DEPTH RELATED */
- bool dce110_transform_set_pixel_storage_depth(
- struct transform *xfm,
-- enum lb_pixel_depth depth);
-+ enum lb_pixel_depth depth,
-+ const struct bit_depth_reduction_params *bit_depth_params);
-
- bool dce110_transform_get_current_pixel_storage_depth(
- struct transform *xfm,
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform_bit_depth.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform_bit_depth.c
-index 747f2c7..3e0d151 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform_bit_depth.c
-+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform_bit_depth.c
-@@ -114,7 +114,8 @@ static bool set_dither(
- */
- static bool program_bit_depth_reduction(
- struct dce110_transform *xfm110,
-- enum dc_color_depth depth)
-+ enum dc_color_depth depth,
-+ const struct bit_depth_reduction_params *bit_depth_params)
- {
- enum dcp_bit_depth_reduction_mode depth_reduction_mode;
- enum dcp_spatial_dither_mode spatial_dither_mode;
-@@ -127,19 +128,27 @@ static bool program_bit_depth_reduction(
- return false;
- }
-
-- depth_reduction_mode = DCP_BIT_DEPTH_REDUCTION_MODE_DITHER;
-+ if (bit_depth_params->flags.SPATIAL_DITHER_ENABLED) {
-+ depth_reduction_mode = DCP_BIT_DEPTH_REDUCTION_MODE_DITHER;
-+ frame_random_enable = true;
-+ rgb_random_enable = true;
-+ highpass_random_enable = true;
-+
-+ } else {
-+ depth_reduction_mode = DCP_BIT_DEPTH_REDUCTION_MODE_DISABLED;
-+ frame_random_enable = false;
-+ rgb_random_enable = false;
-+ highpass_random_enable = false;
-+ }
-
- spatial_dither_mode = DCP_SPATIAL_DITHER_MODE_A_AA_A;
-
-- frame_random_enable = true;
-- rgb_random_enable = true;
-- highpass_random_enable = true;
--
- if (!set_clamp(xfm110, depth)) {
- /* Failure in set_clamp() */
- ASSERT_CRITICAL(false);
- return false;
- }
-+
- switch (depth_reduction_mode) {
- case DCP_BIT_DEPTH_REDUCTION_MODE_DITHER:
- /* Spatial Dither: Set round/truncate to bypass (12bit),
-@@ -754,7 +763,8 @@ static void set_denormalization(
-
- bool dce110_transform_set_pixel_storage_depth(
- struct transform *xfm,
-- enum lb_pixel_depth depth)
-+ enum lb_pixel_depth depth,
-+ const struct bit_depth_reduction_params *bit_depth_params)
- {
- struct dce110_transform *xfm110 = TO_DCE110_TRANSFORM(xfm);
- bool ret = true;
-@@ -792,7 +802,8 @@ bool dce110_transform_set_pixel_storage_depth(
-
- if (ret == true) {
- set_denormalization(xfm110, color_depth);
-- ret = program_bit_depth_reduction(xfm110, color_depth);
-+ ret = program_bit_depth_reduction(xfm110, color_depth,
-+ bit_depth_params);
-
- set_reg_field_value(value, 0, LB_DATA_FORMAT, ALPHA_EN);
- dal_write_reg(
-diff --git a/drivers/gpu/drm/amd/dal/dc/gpio/hw_factory.c b/drivers/gpu/drm/amd/dal/dc/gpio/hw_factory.c
-index 7e93014..17b5fdf 100644
---- a/drivers/gpu/drm/amd/dal/dc/gpio/hw_factory.c
-+++ b/drivers/gpu/drm/amd/dal/dc/gpio/hw_factory.c
-@@ -56,12 +56,9 @@ bool dal_hw_factory_init(
- enum dce_version dce_version,
- enum dce_environment dce_environment)
- {
-- switch (dce_environment) {
-- case DCE_ENV_DIAG_FPGA_MAXIMUS:
-+ if (IS_FPGA_MAXIMUS_DC(dce_environment)) {
- dal_hw_factory_diag_fpga_init(factory);
- return true;
-- default:
-- break;
- }
-
- switch (dce_version) {
-diff --git a/drivers/gpu/drm/amd/dal/dc/gpio/hw_translate.c b/drivers/gpu/drm/amd/dal/dc/gpio/hw_translate.c
-index 0e768df..d22504f 100644
---- a/drivers/gpu/drm/amd/dal/dc/gpio/hw_translate.c
-+++ b/drivers/gpu/drm/amd/dal/dc/gpio/hw_translate.c
-@@ -56,12 +56,9 @@ bool dal_hw_translate_init(
- enum dce_version dce_version,
- enum dce_environment dce_environment)
- {
-- switch (dce_environment) {
-- case DCE_ENV_DIAG_FPGA_MAXIMUS:
-+ if (IS_FPGA_MAXIMUS_DC(dce_environment)) {
- dal_hw_translate_diag_fpga_init(translate);
- return true;
-- default:
-- break;
- }
-
- switch (dce_version) {
-diff --git a/drivers/gpu/drm/amd/dal/dc/i2caux/i2caux.c b/drivers/gpu/drm/amd/dal/dc/i2caux/i2caux.c
-index 941213d..68409b3 100644
---- a/drivers/gpu/drm/amd/dal/dc/i2caux/i2caux.c
-+++ b/drivers/gpu/drm/amd/dal/dc/i2caux/i2caux.c
-@@ -75,11 +75,8 @@ struct i2caux *dal_i2caux_create(
- dce_version = dal_adapter_service_get_dce_version(as);
- dce_environment = dal_adapter_service_get_dce_environment(as);
-
-- switch (dce_environment) {
-- case DCE_ENV_DIAG_FPGA_MAXIMUS:
-+ if (IS_FPGA_MAXIMUS_DC(dce_environment)) {
- return dal_i2caux_diag_fpga_create(as, ctx);
-- default:
-- break;
- }
-
- switch (dce_version) {
-diff --git a/drivers/gpu/drm/amd/dal/dc/inc/core_types.h b/drivers/gpu/drm/amd/dal/dc/inc/core_types.h
-index b0654ca..8282f99 100644
---- a/drivers/gpu/drm/amd/dal/dc/inc/core_types.h
-+++ b/drivers/gpu/drm/amd/dal/dc/inc/core_types.h
-@@ -120,7 +120,7 @@ struct core_stream {
- /*fmt*/
- /*TODO: AUTO new codepath in apply_context to hw to
- * generate these bw unrelated/no fail params*/
-- struct bit_depth_reduction_params fmt_bit_depth;
-+ struct bit_depth_reduction_params bit_depth_params;/* used by DCP and FMT */
- struct clamping_and_pixel_encoding_params clamping;
- struct hw_info_frame info_frame;
- struct encoder_info_frame encoder_info_frame;
-diff --git a/drivers/gpu/drm/amd/dal/dc/inc/transform.h b/drivers/gpu/drm/amd/dal/dc/inc/transform.h
-index 50dde2d..d453aac 100644
---- a/drivers/gpu/drm/amd/dal/dc/inc/transform.h
-+++ b/drivers/gpu/drm/amd/dal/dc/inc/transform.h
-@@ -204,7 +204,8 @@ struct transform_funcs {
-
- bool (*transform_set_pixel_storage_depth)(
- struct transform *xfm,
-- enum lb_pixel_depth depth);
-+ enum lb_pixel_depth depth,
-+ const struct bit_depth_reduction_params *bit_depth_params);
-
- bool (*transform_get_current_pixel_storage_depth)(
- struct transform *xfm,
-diff --git a/drivers/gpu/drm/amd/dal/include/dal_types.h b/drivers/gpu/drm/amd/dal/include/dal_types.h
-index 77bd09b..fe884da 100644
---- a/drivers/gpu/drm/amd/dal/include/dal_types.h
-+++ b/drivers/gpu/drm/amd/dal/include/dal_types.h
-@@ -44,12 +44,6 @@ enum dce_version {
- DCE_VERSION_MAX
- };
-
--enum dce_environment {
-- DCE_ENV_PRODUCTION_DRV = 0,
-- DCE_ENV_DIAG_FPGA_MAXIMUS, /* Emulation on FPGA, in Maximus System. */
-- DCE_ENV_DIAG_SILICON, /* Emulation on real HW */
--};
--
- /*
- * ASIC Runtime Flags
- */
-@@ -183,8 +177,6 @@ struct dc_context {
- enum dce_environment dce_environment;
- };
-
--#define IS_DIAG_MAXIMUS_DC(dcctx) ((dcctx)->dce_environment == DCE_ENV_DIAG_FPGA_MAXIMUS)
--
- /* Wireless display structs */
-
- union dal_remote_display_cea_mode_bitmap {
---
-2.7.4
-