aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0705-drm-amd-dal-IPP-refactoring-part.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0705-drm-amd-dal-IPP-refactoring-part.patch')
-rw-r--r--common/recipes-kernel/linux/files/0705-drm-amd-dal-IPP-refactoring-part.patch413
1 files changed, 0 insertions, 413 deletions
diff --git a/common/recipes-kernel/linux/files/0705-drm-amd-dal-IPP-refactoring-part.patch b/common/recipes-kernel/linux/files/0705-drm-amd-dal-IPP-refactoring-part.patch
deleted file mode 100644
index b7e63ded..00000000
--- a/common/recipes-kernel/linux/files/0705-drm-amd-dal-IPP-refactoring-part.patch
+++ /dev/null
@@ -1,413 +0,0 @@
-From a3b2dec5c70efe7ebe3c65f164ad50fda6b51f33 Mon Sep 17 00:00:00 2001
-From: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com>
-Date: Tue, 19 Jan 2016 14:20:03 -0500
-Subject: [PATCH 0705/1110] drm/amd/dal: IPP refactoring part.
-
-Signed-off-by: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com>
-Acked-by: Harry Wentland <harry.wentland@amd.com>
----
- drivers/gpu/drm/amd/dal/dc/core/dc_target.c | 5 ++-
- .../drm/amd/dal/dc/dce110/dce110_hw_sequencer.c | 23 ++++++-----
- drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.c | 46 ++++++----------------
- drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.h | 16 +++++---
- .../gpu/drm/amd/dal/dc/dce110/dce110_ipp_gamma.c | 14 ++-----
- .../gpu/drm/amd/dal/dc/dce110/dce110_resource.c | 34 +++++++++++++++-
- drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h | 8 ----
- drivers/gpu/drm/amd/dal/dc/inc/ipp.h | 39 ++++++++++++++++++
- 8 files changed, 114 insertions(+), 71 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_target.c b/drivers/gpu/drm/amd/dal/dc/core/dc_target.c
-index b8420bf..e7df2e2 100644
---- a/drivers/gpu/drm/amd/dal/dc/core/dc_target.c
-+++ b/drivers/gpu/drm/amd/dal/dc/core/dc_target.c
-@@ -26,6 +26,7 @@
- #include "core_types.h"
- #include "hw_sequencer.h"
- #include "resource.h"
-+#include "ipp.h"
-
- #define COEFF_RANGE 3
- #define REGAMMA_COEFF_A0 31308
-@@ -364,7 +365,7 @@ bool dc_target_set_cursor_attributes(
- return false;
- }
-
-- if (true == core_target->ctx->dc->hwss.cursor_set_attributes(ipp, attributes))
-+ if (true == ipp->funcs->ipp_cursor_set_attributes(ipp, attributes))
- return true;
-
- return false;
-@@ -396,7 +397,7 @@ bool dc_target_set_cursor_position(
- }
-
-
-- if (true == core_target->ctx->dc->hwss.cursor_set_position(ipp, position))
-+ if (true == ipp->funcs->ipp_cursor_set_position(ipp, position))
- return true;
-
- return false;
-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 612afe5..59a3bce 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
-@@ -187,15 +187,15 @@ static bool set_gamma_ramp(
- if (params->surface_pixel_format == PIXEL_FORMAT_INDEX8 ||
- params->selected_gamma_lut == GRAPHICS_GAMMA_LUT_LEGACY) {
- /* do legacy DCP for 256 colors if we are requested to do so */
-- dce110_ipp_set_legacy_input_gamma_ramp(
-+ ipp->funcs->ipp_set_legacy_input_gamma_ramp(
- ipp, ramp, params);
-
-- dce110_ipp_set_legacy_input_gamma_mode(ipp, true);
-+ ipp->funcs->ipp_set_legacy_input_gamma_mode(ipp, true);
-
- /* set bypass */
-- dce110_ipp_program_prescale(ipp, PIXEL_FORMAT_UNINITIALIZED);
-+ ipp->funcs->ipp_program_prescale(ipp, PIXEL_FORMAT_UNINITIALIZED);
-
-- dce110_ipp_set_degamma(ipp, params, true);
-+ ipp->funcs->ipp_set_degamma(ipp, params, true);
-
- dce110_opp_set_regamma(opp, ramp, params, true);
- } else if (params->selected_gamma_lut ==
-@@ -208,21 +208,21 @@ static bool set_gamma_ramp(
- }
-
- /* do legacy DCP for 256 colors if we are requested to do so */
-- dce110_ipp_set_legacy_input_gamma_ramp(
-+ ipp->funcs->ipp_set_legacy_input_gamma_ramp(
- ipp, ramp, params);
-
-- dce110_ipp_set_legacy_input_gamma_mode(ipp, true);
-+ ipp->funcs->ipp_set_legacy_input_gamma_mode(ipp, true);
-
- /* set bypass */
-- dce110_ipp_program_prescale(ipp, PIXEL_FORMAT_UNINITIALIZED);
-+ ipp->funcs->ipp_program_prescale(ipp, PIXEL_FORMAT_UNINITIALIZED);
- } else {
-- dce110_ipp_set_legacy_input_gamma_mode(ipp, false);
-+ ipp->funcs->ipp_set_legacy_input_gamma_mode(ipp, false);
-
-- dce110_ipp_program_prescale(ipp, params->surface_pixel_format);
-+ ipp->funcs->ipp_program_prescale(ipp, params->surface_pixel_format);
-
- /* Do degamma step : remove the given gamma value from FB.
- * For FP16 or no degamma do by pass */
-- dce110_ipp_set_degamma(ipp, params, false);
-+ ipp->funcs->ipp_set_degamma(ipp, params, false);
-
- dce110_opp_set_regamma(opp, ramp, params, false);
- }
-@@ -1741,6 +1741,7 @@ static void set_mst_bandwidth(struct stream_encoder *stream_enc,
- avg_time_slots_per_mtp);
- }
-
-+
- static const struct hw_sequencer_funcs dce110_funcs = {
- .apply_ctx_to_hw = apply_ctx_to_hw,
- .reset_hw_ctx = reset_hw_ctx,
-@@ -1748,8 +1749,6 @@ static const struct hw_sequencer_funcs dce110_funcs = {
- .update_plane_address = update_plane_address,
- .enable_memory_requests = enable_memory_request,
- .disable_memory_requests = disable_memory_requests,
-- .cursor_set_attributes = dce110_ipp_cursor_set_attributes,
-- .cursor_set_position = dce110_ipp_cursor_set_position,
- .set_gamma_ramp = set_gamma_ramp,
- .power_down = power_down,
- .enable_accelerated_mode = enable_accelerated_mode,
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.c
-index f45da2e..a29dc51 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.c
-+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.c
-@@ -31,31 +31,29 @@
-
- #include "dce110_ipp.h"
-
--static const struct dce110_ipp_reg_offsets reg_offsets[] = {
--{
-- .dcp_offset = (mmDCP0_CUR_CONTROL - mmDCP0_CUR_CONTROL),
--},
--{
-- .dcp_offset = (mmDCP1_CUR_CONTROL - mmDCP0_CUR_CONTROL),
--},
--{
-- .dcp_offset = (mmDCP2_CUR_CONTROL - mmDCP0_CUR_CONTROL),
--}
-+static struct ipp_funcs funcs = {
-+ .ipp_cursor_set_attributes = dce110_ipp_cursor_set_attributes,
-+ .ipp_cursor_set_position = dce110_ipp_cursor_set_position,
-+ .ipp_program_prescale = dce110_ipp_program_prescale,
-+ .ipp_set_degamma = dce110_ipp_set_degamma,
-+ .ipp_set_legacy_input_gamma_mode = dce110_ipp_set_legacy_input_gamma_mode,
-+ .ipp_set_legacy_input_gamma_ramp = dce110_ipp_set_legacy_input_gamma_ramp,
-+ .ipp_set_palette = dce110_ipp_set_palette,
- };
-
- bool dce110_ipp_construct(
- struct dce110_ipp* ipp,
- struct dc_context *ctx,
-- uint32_t inst)
-+ uint32_t inst,
-+ const struct dce110_ipp_reg_offsets *offset)
- {
-- if (inst >= ARRAY_SIZE(reg_offsets))
-- return false;
--
- ipp->base.ctx = ctx;
-
- ipp->base.inst = inst;
-
-- ipp->offsets = reg_offsets[inst];
-+ ipp->offsets = *offset;
-+
-+ ipp->base.funcs = &funcs;
-
- return true;
- }
-@@ -65,21 +63,3 @@ void dce110_ipp_destroy(struct input_pixel_processor **ipp)
- dc_service_free((*ipp)->ctx, TO_DCE110_IPP(*ipp));
- *ipp = NULL;
- }
--
--struct input_pixel_processor *dce110_ipp_create(
-- struct dc_context *ctx,
-- uint32_t inst)
--{
-- struct dce110_ipp *ipp =
-- dc_service_alloc(ctx, sizeof(struct dce110_ipp));
--
-- if (!ipp)
-- return NULL;
--
-- if (dce110_ipp_construct(ipp, ctx, inst))
-- return &ipp->base;
--
-- BREAK_TO_DEBUGGER();
-- dc_service_free(ctx, ipp);
-- return NULL;
--}
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.h b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.h
-index 1da42ff..f0e9e7d 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.h
-+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.h
-@@ -44,14 +44,11 @@ struct dce110_ipp {
- bool dce110_ipp_construct(
- struct dce110_ipp* ipp,
- struct dc_context *ctx,
-- enum controller_id id);
-+ enum controller_id id,
-+ const struct dce110_ipp_reg_offsets *offset);
-
- void dce110_ipp_destroy(struct input_pixel_processor **ipp);
-
--struct input_pixel_processor *dce110_ipp_create(
-- struct dc_context *ctx,
-- enum controller_id id);
--
- /* CURSOR RELATED */
- bool dce110_ipp_cursor_set_position(
- struct input_pixel_processor *ipp,
-@@ -87,4 +84,13 @@ bool dce110_ipp_set_palette(
- uint32_t length,
- enum pixel_format surface_pixel_format);
-
-+/*
-+ * Helper functions to be resused in other ASICs
-+ */
-+void dce110_helper_select_lut(struct dce110_ipp *ipp110);
-+
-+void dce110_helper_program_black_white_offset(
-+ struct dce110_ipp *ipp110,
-+ enum pixel_format surface_pixel_format);
-+
- #endif /*__DC_IPP_DCE110_H__*/
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp_gamma.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp_gamma.c
-index f2e8ef4..b7186b1 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp_gamma.c
-+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp_gamma.c
-@@ -76,8 +76,6 @@ static void set_lut_inc(
- bool is_float,
- bool is_signed);
-
--static void select_lut(struct dce110_ipp *ipp110);
--
- static void program_black_offsets(
- struct dce110_ipp *ipp110,
- struct dev_c_lut16 *offset);
-@@ -86,10 +84,6 @@ static void program_white_offsets(
- struct dce110_ipp *ipp110,
- struct dev_c_lut16 *offset);
-
--static void program_black_white_offset(
-- struct dce110_ipp *ipp110,
-- enum pixel_format surface_pixel_format);
--
- static void program_lut_gamma(
- struct dce110_ipp *ipp110,
- const struct dev_c_lut16 *gamma,
-@@ -264,7 +258,7 @@ static void set_lut_inc(
- dal_write_reg(ipp110->base.ctx, addr, value);
- }
-
--static void select_lut(struct dce110_ipp *ipp110)
-+void dce110_helper_select_lut(struct dce110_ipp *ipp110)
- {
- uint32_t value = 0;
-
-@@ -371,7 +365,7 @@ static void program_white_offsets(
- offset->blue);
- }
-
--static void program_black_white_offset(
-+void dce110_helper_program_black_white_offset(
- struct dce110_ipp *ipp110,
- enum pixel_format surface_pixel_format)
- {
-@@ -482,9 +476,9 @@ static void program_lut_gamma(
- }
- }
-
-- program_black_white_offset(ipp110, params->surface_pixel_format);
-+ dce110_helper_program_black_white_offset(ipp110, params->surface_pixel_format);
-
-- select_lut(ipp110);
-+ dce110_helper_select_lut(ipp110);
-
- if (params->surface_pixel_format == PIXEL_FORMAT_INDEX8) {
- addr = DCP_REG(mmDC_LUT_SEQ_COLOR);
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c
-index 7880ccb..8f04707 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c
-+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c
-@@ -122,6 +122,19 @@ static const struct dce110_transform_reg_offsets dce110_xfm_offsets[] = {
- }
- };
-
-+static const struct dce110_ipp_reg_offsets dce110_ipp_reg_offsets[] = {
-+{
-+ .dcp_offset = (mmDCP0_CUR_CONTROL - mmCUR_CONTROL),
-+},
-+{
-+ .dcp_offset = (mmDCP1_CUR_CONTROL - mmCUR_CONTROL),
-+},
-+{
-+ .dcp_offset = (mmDCP2_CUR_CONTROL - mmCUR_CONTROL),
-+}
-+};
-+
-+
- static struct timing_generator *dce110_timing_generator_create(
- struct adapter_service *as,
- struct dc_context *ctx,
-@@ -207,6 +220,25 @@ static struct transform *dce110_transform_create(
- return NULL;
- }
-
-+static struct input_pixel_processor *dce110_ipp_create(
-+ struct dc_context *ctx,
-+ uint32_t inst,
-+ const struct dce110_ipp_reg_offsets *offsets)
-+{
-+ struct dce110_ipp *ipp =
-+ dc_service_alloc(ctx, sizeof(struct dce110_ipp));
-+
-+ if (!ipp)
-+ return NULL;
-+
-+ if (dce110_ipp_construct(ipp, ctx, inst, offsets))
-+ return &ipp->base;
-+
-+ BREAK_TO_DEBUGGER();
-+ dc_service_free(ctx, ipp);
-+ return NULL;
-+}
-+
- bool dce110_construct_resource_pool(
- struct adapter_service *adapter_serv,
- struct dc *dc,
-@@ -293,7 +325,7 @@ bool dce110_construct_resource_pool(
- goto controller_create_fail;
- }
-
-- pool->ipps[i] = dce110_ipp_create(ctx, i);
-+ pool->ipps[i] = dce110_ipp_create(ctx, i, &dce110_ipp_reg_offsets[i]);
- if (pool->ipps[i] == NULL) {
- BREAK_TO_DEBUGGER();
- dal_error(
-diff --git a/drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h b/drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h
-index a5ccb5e..59ed137 100644
---- a/drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h
-+++ b/drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h
-@@ -51,14 +51,6 @@ struct hw_sequencer_funcs {
-
- bool (*transform_power_up)(struct transform *xfm);
-
-- bool (*cursor_set_attributes)(
-- struct input_pixel_processor *ipp,
-- const struct dc_cursor_attributes *attributes);
--
-- bool (*cursor_set_position)(
-- struct input_pixel_processor *ipp,
-- const struct dc_cursor_position *position);
--
- bool (*set_gamma_ramp)(
- struct input_pixel_processor *ipp,
- struct output_pixel_processor *opp,
-diff --git a/drivers/gpu/drm/amd/dal/dc/inc/ipp.h b/drivers/gpu/drm/amd/dal/dc/inc/ipp.h
-index 602b4cb..20bb785 100644
---- a/drivers/gpu/drm/amd/dal/dc/inc/ipp.h
-+++ b/drivers/gpu/drm/amd/dal/dc/inc/ipp.h
-@@ -41,6 +41,7 @@
- struct input_pixel_processor {
- struct dc_context *ctx;
- uint32_t inst;
-+ struct ipp_funcs *funcs;
- };
-
- enum wide_gamut_degamma_mode {
-@@ -63,4 +64,42 @@ struct dcp_video_matrix {
- int32_t value[MAXTRIX_COEFFICIENTS_NUMBER];
- };
-
-+struct ipp_funcs {
-+
-+ /* CURSOR RELATED */
-+ bool (*ipp_cursor_set_position)(
-+ struct input_pixel_processor *ipp,
-+ const struct dc_cursor_position *position);
-+
-+ bool (*ipp_cursor_set_attributes)(
-+ struct input_pixel_processor *ipp,
-+ const struct dc_cursor_attributes *attributes);
-+
-+ /* DEGAMMA RELATED */
-+ bool (*ipp_set_degamma)(
-+ struct input_pixel_processor *ipp,
-+ const struct gamma_parameters *params,
-+ bool force_bypass);
-+
-+ void (*ipp_program_prescale)(
-+ struct input_pixel_processor *ipp,
-+ enum pixel_format pixel_format);
-+
-+ void (*ipp_set_legacy_input_gamma_mode)(
-+ struct input_pixel_processor *ipp,
-+ bool is_legacy);
-+
-+ bool (*ipp_set_legacy_input_gamma_ramp)(
-+ struct input_pixel_processor *ipp,
-+ const struct gamma_ramp *gamma_ramp,
-+ const struct gamma_parameters *params);
-+
-+ bool (*ipp_set_palette)(
-+ struct input_pixel_processor *ipp,
-+ const struct dev_c_lut *palette,
-+ uint32_t start,
-+ uint32_t length,
-+ enum pixel_format surface_pixel_format);
-+};
-+
- #endif /* __DAL_IPP_H__ */
---
-2.7.4
-