aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0739-drm-amd-dal-Clean-up-dc_temp.h.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0739-drm-amd-dal-Clean-up-dc_temp.h.patch')
-rw-r--r--common/recipes-kernel/linux/files/0739-drm-amd-dal-Clean-up-dc_temp.h.patch1390
1 files changed, 0 insertions, 1390 deletions
diff --git a/common/recipes-kernel/linux/files/0739-drm-amd-dal-Clean-up-dc_temp.h.patch b/common/recipes-kernel/linux/files/0739-drm-amd-dal-Clean-up-dc_temp.h.patch
deleted file mode 100644
index c19661c4..00000000
--- a/common/recipes-kernel/linux/files/0739-drm-amd-dal-Clean-up-dc_temp.h.patch
+++ /dev/null
@@ -1,1390 +0,0 @@
-From 7aaf1d3c2261a553a0d07b48afd1666475344727 Mon Sep 17 00:00:00 2001
-From: Jordan Lazare <Jordan.Lazare@amd.com>
-Date: Mon, 25 Jan 2016 17:55:30 -0500
-Subject: [PATCH 0739/1110] drm/amd/dal: Clean up dc_temp.h
-
-Signed-off-by: Jordan Lazare <Jordan.Lazare@amd.com>
-Acked-by: Harry Wentland <harry.wentland@amd.com>
----
- .../gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c | 10 +-
- drivers/gpu/drm/amd/dal/dc/core/dc.c | 45 --
- drivers/gpu/drm/amd/dal/dc/dc.h | 12 +-
- drivers/gpu/drm/amd/dal/dc/dc_temp.h | 507 ---------------------
- drivers/gpu/drm/amd/dal/dc/dc_types.h | 257 ++++++++++-
- .../drm/amd/dal/dc/dce110/dce110_hw_sequencer.c | 1 +
- drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.h | 4 +
- .../gpu/drm/amd/dal/dc/dce110/dce110_ipp_gamma.c | 1 +
- .../gpu/drm/amd/dal/dc/dce110/dce110_mem_input.c | 4 +-
- .../gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h | 2 +-
- drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp.c | 1 +
- drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp.h | 2 +
- .../gpu/drm/amd/dal/dc/dce110/dce110_opp_regamma.c | 1 +
- .../amd/dal/dc/dce110/dce110_transform_bit_depth.c | 2 +-
- drivers/gpu/drm/amd/dal/dc/inc/core_types.h | 1 +
- drivers/gpu/drm/amd/dal/dc/inc/gamma_types.h | 117 +++++
- drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h | 9 +
- drivers/gpu/drm/amd/dal/dc/inc/ipp.h | 1 +
- drivers/gpu/drm/amd/dal/dc/inc/mem_input.h | 2 +-
- drivers/gpu/drm/amd/dal/dc/inc/opp.h | 62 ++-
- drivers/gpu/drm/amd/dal/dc/inc/transform.h | 2 +
- drivers/gpu/drm/amd/dal/include/fixed32_32.h | 2 +
- .../gpu/drm/amd/dal/include/video_gamma_types.h | 1 +
- 23 files changed, 474 insertions(+), 572 deletions(-)
- delete mode 100644 drivers/gpu/drm/amd/dal/dc/dc_temp.h
- create mode 100644 drivers/gpu/drm/amd/dal/dc/inc/gamma_types.h
-
-diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c
-index 5fe5ca4..70d5dae 100644
---- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c
-+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_types.c
-@@ -59,6 +59,7 @@ struct dm_connector_state {
- container_of((x), struct dm_connector_state, base)
-
- #define AMDGPU_CRTC_MODE_PRIVATE_FLAGS_GAMMASET 1
-+#define MAX_TARGET_NUM 6
-
- void amdgpu_dm_encoder_destroy(struct drm_encoder *encoder)
- {
-@@ -314,15 +315,6 @@ static int dm_crtc_cursor_move(struct drm_crtc *crtc,
- return -EINVAL;
- }
-
--#if BUILD_FEATURE_TIMING_SYNC
-- {
-- struct drm_device *dev = crtc->dev;
-- struct amdgpu_device *adev = dev->dev_private;
-- struct amdgpu_display_manager *dm = &adev->dm;
--
-- dc_print_sync_report(dm->dc);
-- }
--#endif
- return 0;
- }
-
-diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc.c b/drivers/gpu/drm/amd/dal/dc/core/dc.c
-index 51a8589..1a17090 100644
---- a/drivers/gpu/drm/amd/dal/dc/core/dc.c
-+++ b/drivers/gpu/drm/amd/dal/dc/core/dc.c
-@@ -55,11 +55,6 @@ struct dc_target_sync_report {
- uint32_t v_count;
- };
-
--struct dc_sync_report {
-- uint32_t targets_num;
-- struct dc_target_sync_report trg_reports[MAX_TARGET_NUM];
--};
--
- /*******************************************************************************
- * Private functions
- ******************************************************************************/
-@@ -794,46 +789,6 @@ void dc_resume(const struct dc *dc)
- core_link_resume(dc->links[i]);
- }
-
--void dc_print_sync_report(
-- const struct dc *dc)
--{
-- uint32_t i;
-- const struct core_target *core_target;
-- const struct core_stream *core_stream;
-- struct dc_context *dc_ctx = dc->ctx;
-- struct dc_target_sync_report *target_sync_report;
-- struct dc_sync_report sync_report = { 0 };
--
-- if (dc->current_context.target_count > MAX_TARGET_NUM) {
-- DC_ERROR("Target count: %d > %d!\n",
-- dc->current_context.target_count,
-- MAX_TARGET_NUM);
-- return;
-- }
--
-- sync_report.targets_num = dc->current_context.target_count;
--
-- /* Step 1: get data for sync validation */
-- for (i = 0; i < dc->current_context.target_count; i++) {
--
-- core_target = dc->current_context.targets[i];
-- target_sync_report = &sync_report.trg_reports[i];
-- core_stream = DC_STREAM_TO_CORE(core_target->public.streams[0]);
--
-- dc->hwss.get_crtc_positions(
-- core_stream->tg,
-- &target_sync_report->h_count,
-- &target_sync_report->v_count);
--
-- DC_SYNC_INFO("GSL:target[%d]: h: %d\t v: %d\n",
-- i,
-- target_sync_report->h_count,
-- target_sync_report->v_count);
-- }
--
-- /* Step 2: validate that display pipes are synchronized (based on
-- * data from Step 1). */
--}
-
- bool dc_read_dpcd(
- struct dc *dc,
-diff --git a/drivers/gpu/drm/amd/dal/dc/dc.h b/drivers/gpu/drm/amd/dal/dc/dc.h
-index a06a8a7..fcc79ed 100644
---- a/drivers/gpu/drm/amd/dal/dc/dc.h
-+++ b/drivers/gpu/drm/amd/dal/dc/dc.h
-@@ -68,7 +68,7 @@ struct dc_surface {
- struct rect clip_rect;
-
- union plane_size plane_size;
-- union plane_tiling_info tiling_info;
-+ union dc_tiling_info tiling_info;
- struct plane_colorimetry colorimetry;
-
- enum surface_pixel_format format;
-@@ -351,6 +351,16 @@ struct dc_sink *dc_sink_create(const struct dc_sink_init_data *init_params);
- /*******************************************************************************
- * Cursor interfaces - To manages the cursor within a target
- ******************************************************************************/
-+/* TODO: Deprecated once we switch to dc_set_cursor_position */
-+bool dc_target_set_cursor_attributes(
-+ struct dc_target *dc_target,
-+ const struct dc_cursor_attributes *attributes);
-+
-+bool dc_target_set_cursor_position(
-+ struct dc_target *dc_target,
-+ const struct dc_cursor_position *position);
-+
-+/* Newer interfaces */
- struct dc_cursor {
- struct dc_plane_address address;
- struct dc_cursor_attributes attributes;
-diff --git a/drivers/gpu/drm/amd/dal/dc/dc_temp.h b/drivers/gpu/drm/amd/dal/dc/dc_temp.h
-deleted file mode 100644
-index fc5b810..0000000
---- a/drivers/gpu/drm/amd/dal/dc/dc_temp.h
-+++ /dev/null
-@@ -1,507 +0,0 @@
--/*
-- * Copyright 2012-15 Advanced Micro Devices, Inc.
-- *
-- * Permission is hereby granted, free of charge, to any person obtaining a
-- * copy of this software and associated documentation files (the "Software"),
-- * to deal in the Software without restriction, including without limitation
-- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
-- * and/or sell copies of the Software, and to permit persons to whom the
-- * Software is furnished to do so, subject to the following conditions:
-- *
-- * The above copyright notice and this permission notice shall be included in
-- * all copies or substantial portions of the Software.
-- *
-- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
-- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-- * OTHER DEALINGS IN THE SOFTWARE.
-- *
-- * Authors: AMD
-- *
-- */
--#ifndef DC_TEMP_H_
--#define DC_TEMP_H_
--
--#include "dc_types.h"
--
--#define MAX_SURFACE_NUM 2
--
--enum clamping_range {
-- CLAMPING_FULL_RANGE = 0, /* No Clamping */
-- CLAMPING_LIMITED_RANGE_8BPC, /* 8 bpc: Clamping 1 to FE */
-- CLAMPING_LIMITED_RANGE_10BPC, /* 10 bpc: Clamping 4 to 3FB */
-- CLAMPING_LIMITED_RANGE_12BPC, /* 12 bpc: Clamping 10 to FEF */
-- /* Use programmable clampping value on FMT_CLAMP_COMPONENT_R/G/B. */
-- CLAMPING_LIMITED_RANGE_PROGRAMMABLE
--};
--
--struct clamping_and_pixel_encoding_params {
-- enum dc_pixel_encoding pixel_encoding; /* Pixel Encoding */
-- enum clamping_range clamping_level; /* Clamping identifier */
-- enum dc_color_depth c_depth; /* Deep color use. */
--};
--
--struct bit_depth_reduction_params {
-- struct {
-- /* truncate/round */
-- /* trunc/round enabled*/
-- uint32_t TRUNCATE_ENABLED:1;
-- /* 2 bits: 0=6 bpc, 1=8 bpc, 2 = 10bpc*/
-- uint32_t TRUNCATE_DEPTH:2;
-- /* truncate or round*/
-- uint32_t TRUNCATE_MODE:1;
--
-- /* spatial dither */
-- /* Spatial Bit Depth Reduction enabled*/
-- uint32_t SPATIAL_DITHER_ENABLED:1;
-- /* 2 bits: 0=6 bpc, 1 = 8 bpc, 2 = 10bpc*/
-- uint32_t SPATIAL_DITHER_DEPTH:2;
-- /* 0-3 to select patterns*/
-- uint32_t SPATIAL_DITHER_MODE:2;
-- /* Enable RGB random dithering*/
-- uint32_t RGB_RANDOM:1;
-- /* Enable Frame random dithering*/
-- uint32_t FRAME_RANDOM:1;
-- /* Enable HighPass random dithering*/
-- uint32_t HIGHPASS_RANDOM:1;
--
-- /* temporal dither*/
-- /* frame modulation enabled*/
-- uint32_t FRAME_MODULATION_ENABLED:1;
-- /* same as for trunc/spatial*/
-- uint32_t FRAME_MODULATION_DEPTH:2;
-- /* 2/4 gray levels*/
-- uint32_t TEMPORAL_LEVEL:1;
-- uint32_t FRC25:2;
-- uint32_t FRC50:2;
-- uint32_t FRC75:2;
-- } flags;
--
-- uint32_t r_seed_value;
-- uint32_t b_seed_value;
-- uint32_t g_seed_value;
--};
--
--enum pipe_gating_control {
-- PIPE_GATING_CONTROL_DISABLE = 0,
-- PIPE_GATING_CONTROL_ENABLE,
-- PIPE_GATING_CONTROL_INIT
--};
--
--enum surface_color_space {
-- SURFACE_COLOR_SPACE_SRGB = 0x0000,
-- SURFACE_COLOR_SPACE_BT601 = 0x0001,
-- SURFACE_COLOR_SPACE_BT709 = 0x0002,
-- SURFACE_COLOR_SPACE_XVYCC_BT601 = 0x0004,
-- SURFACE_COLOR_SPACE_XVYCC_BT709 = 0x0008,
-- SURFACE_COLOR_SPACE_XRRGB = 0x0010
--};
--
--enum {
-- MAX_LANES = 2,
-- MAX_COFUNC_PATH = 6,
-- LAYER_INDEX_PRIMARY = -1,
--};
--
--/* Scaling format */
--enum scaling_transformation {
-- SCALING_TRANSFORMATION_UNINITIALIZED,
-- SCALING_TRANSFORMATION_IDENTITY = 0x0001,
-- SCALING_TRANSFORMATION_CENTER_TIMING = 0x0002,
-- SCALING_TRANSFORMATION_FULL_SCREEN_SCALE = 0x0004,
-- SCALING_TRANSFORMATION_PRESERVE_ASPECT_RATIO_SCALE = 0x0008,
-- SCALING_TRANSFORMATION_DAL_DECIDE = 0x0010,
-- SCALING_TRANSFORMATION_INVALID = 0x80000000,
--
-- /* Flag the first and last */
-- SCALING_TRANSFORMATION_BEGING = SCALING_TRANSFORMATION_IDENTITY,
-- SCALING_TRANSFORMATION_END =
-- SCALING_TRANSFORMATION_PRESERVE_ASPECT_RATIO_SCALE
--};
--
--struct view_stereo_3d_support {
-- enum view_3d_format format;
-- struct {
-- uint32_t CLONE_MODE:1;
-- uint32_t SCALING:1;
-- uint32_t SINGLE_FRAME_SW_PACKED:1;
-- } features;
--};
--
--struct plane_colorimetry {
-- enum surface_color_space color_space;
-- bool limited_range;
--};
--
--enum tiling_mode {
-- TILING_MODE_INVALID,
-- TILING_MODE_LINEAR,
-- TILING_MODE_TILED,
-- TILING_MODE_COUNT
--};
--
--struct view_position {
-- uint32_t x;
-- uint32_t y;
--};
--
--union plane_tiling_info {
--
-- struct {
-- /* Specifies the number of memory banks for tiling
-- * purposes.
-- * Only applies to 2D and 3D tiling modes.
-- * POSSIBLE VALUES: 2,4,8,16
-- */
-- uint32_t NUM_BANKS:5;
-- /* Specifies the number of tiles in the x direction
-- * to be incorporated into the same bank.
-- * Only applies to 2D and 3D tiling modes.
-- * POSSIBLE VALUES: 1,2,4,8
-- */
-- uint32_t BANK_WIDTH:4;
-- /* Specifies the number of tiles in the y direction to
-- * be incorporated into the same bank.
-- * Only applies to 2D and 3D tiling modes.
-- * POSSIBLE VALUES: 1,2,4,8
-- */
-- uint32_t BANK_HEIGHT:4;
-- /* Specifies the macro tile aspect ratio. Only applies
-- * to 2D and 3D tiling modes.
-- */
-- uint32_t TILE_ASPECT:3;
-- /* Specifies the number of bytes that will be stored
-- * contiguously for each tile.
-- * If the tile data requires more storage than this
-- * amount, it is split into multiple slices.
-- * This field must not be larger than
-- * GB_ADDR_CONFIG.DRAM_ROW_SIZE.
-- * Only applies to 2D and 3D tiling modes.
-- * For color render targets, TILE_SPLIT >= 256B.
-- */
-- uint32_t TILE_SPLIT:3;
-- /* Specifies the addressing within a tile.
-- * 0x0 - DISPLAY_MICRO_TILING
-- * 0x1 - THIN_MICRO_TILING
-- * 0x2 - DEPTH_MICRO_TILING
-- * 0x3 - ROTATED_MICRO_TILING
-- */
-- uint32_t TILE_MODE:2;
-- /* Specifies the number of pipes and how they are
-- * interleaved in the surface.
-- * Refer to memory addressing document for complete
-- * details and constraints.
-- */
-- uint32_t PIPE_CONFIG:5;
-- /* Specifies the tiling mode of the surface.
-- * THIN tiles use an 8x8x1 tile size.
-- * THICK tiles use an 8x8x4 tile size.
-- * 2D tiling modes rotate banks for successive Z slices
-- * 3D tiling modes rotate pipes and banks for Z slices
-- * Refer to memory addressing document for complete
-- * details and constraints.
-- */
-- uint32_t ARRAY_MODE:4;
-- } grph;
--
--
-- struct {
-- /*possible values: 2,4,8,16*/
-- uint32_t NUM_BANKS:5;
-- /*must use enum video_array_mode*/
-- uint32_t ARRAY_MODE:4;
-- /*must use enum addr_pipe_config*/
-- uint32_t PIPE_CONFIG:5;
-- /*possible values 1,2,4,8 */
-- uint32_t BANK_WIDTH_LUMA:4;
-- /*possible values 1,2,4,8 */
-- uint32_t BANK_HEIGHT_LUMA:4;
-- /*must use enum macro_tile_aspect*/
-- uint32_t TILE_ASPECT_LUMA:3;
-- /*must use enum tile_split*/
-- uint32_t TILE_SPLIT_LUMA:3;
-- /*must use micro_tile_mode */
-- uint32_t TILE_MODE_LUMA:2;
-- /*possible values: 1,2,4,8*/
-- uint32_t BANK_WIDTH_CHROMA:4;
-- /*possible values: 1,2,4,8*/
-- uint32_t BANK_HEIGHT_CHROMA:4;
-- /*must use enum macro_tile_aspect*/
-- uint32_t TILE_ASPECT_CHROMA:3;
-- /*must use enum tile_split*/
-- uint32_t TILE_SPLIT_CHROMA:3;
-- /*must use enum micro_tile_mode*/
-- uint32_t TILE_MODE_CHROMA:2;
--
-- } video;
--
-- uint64_t value;
--};
--
--union plane_size {
-- /* Grph or Video will be selected
-- * based on format above:
-- * Use Video structure if
-- * format >= DalPixelFormat_VideoBegin
-- * else use Grph structure
-- */
-- struct {
-- struct rect surface_size;
-- /* Graphic surface pitch in pixels.
-- * In LINEAR_GENERAL mode, pitch
-- * is 32 pixel aligned.
-- */
-- uint32_t surface_pitch;
-- } grph;
--
-- struct {
-- struct rect luma_size;
-- /* Graphic surface pitch in pixels.
-- * In LINEAR_GENERAL mode, pitch is
-- * 32 pixel aligned.
-- */
-- uint32_t luma_pitch;
--
-- struct rect chroma_size;
-- /* Graphic surface pitch in pixels.
-- * In LINEAR_GENERAL mode, pitch is
-- * 32 pixel aligned.
-- */
-- uint32_t chroma_pitch;
-- } video;
--};
--
--enum dc_scaling_transform {
-- SCL_TRANS_CENTERED = 0,
-- SCL_TRANS_ASPECT_RATIO,
-- SCL_TRANS_FULL
--};
--
--struct dev_c_lut {
-- uint8_t red;
-- uint8_t green;
-- uint8_t blue;
--};
--
--struct dev_c_lut16 {
-- uint16_t red;
-- uint16_t green;
-- uint16_t blue;
--};
--
--enum gamma_ramp_type {
-- GAMMA_RAMP_UNINITIALIZED = 0,
-- GAMMA_RAMP_DEFAULT,
-- GAMMA_RAMP_RBG256X3X16,
-- GAMMA_RAMP_DXGI_1,
--};
--
--enum surface_type {
-- OVERLAY_SURFACE = 1, GRAPHIC_SURFACE
--};
--
--#define CONST_RGB_GAMMA_VALUE 2400
--
--enum {
-- RGB_256X3X16 = 256, DX_GAMMA_RAMP_MAX = 1025
--};
--
--struct gamma_ramp_rgb256x3x16 {
-- uint16_t red[RGB_256X3X16];
-- uint16_t green[RGB_256X3X16];
-- uint16_t blue[RGB_256X3X16];
--};
--
--struct dxgi_rgb {
-- struct fixed32_32 red;
-- struct fixed32_32 green;
-- struct fixed32_32 blue;
--};
--
--struct gamma_ramp_dxgi_1 {
-- struct dxgi_rgb scale;
-- struct dxgi_rgb offset;
-- struct dxgi_rgb gamma_curve[DX_GAMMA_RAMP_MAX];
--};
--
--struct gamma_ramp {
-- enum gamma_ramp_type type;
-- union {
-- struct gamma_ramp_rgb256x3x16 gamma_ramp_rgb256x3x16;
-- struct gamma_ramp_dxgi_1 gamma_ramp_dxgi1;
-- };
-- uint32_t size;
--};
--
--struct regamma_ramp {
-- uint16_t gamma[RGB_256X3X16 * 3];
--};
--
--/* used by Graphics and Overlay gamma */
--struct gamma_coeff {
-- int32_t gamma[3];
-- int32_t a0[3]; /* index 0 for red, 1 for green, 2 for blue */
-- int32_t a1[3];
-- int32_t a2[3];
-- int32_t a3[3];
--};
--
--struct regamma_lut {
-- union {
-- struct {
-- uint32_t GRAPHICS_DEGAMMA_SRGB :1;
-- uint32_t OVERLAY_DEGAMMA_SRGB :1;
-- uint32_t GAMMA_RAMP_ARRAY :1;
-- uint32_t APPLY_DEGAMMA :1;
-- uint32_t RESERVED :28;
-- } bits;
-- uint32_t value;
-- } features;
--
-- union {
-- struct regamma_ramp regamma_ramp;
-- struct gamma_coeff gamma_coeff;
-- };
--};
--
--union gamma_flag {
-- struct {
-- uint32_t config_is_changed :1;
-- uint32_t both_pipe_req :1;
-- uint32_t regamma_update :1;
-- uint32_t gamma_update :1;
-- uint32_t reserved :28;
-- } bits;
-- uint32_t u_all;
--};
--
--enum graphics_regamma_adjust {
-- GRAPHICS_REGAMMA_ADJUST_BYPASS = 0, GRAPHICS_REGAMMA_ADJUST_HW, /* without adjustments */
-- GRAPHICS_REGAMMA_ADJUST_SW /* use adjustments */
--};
--
--enum graphics_gamma_lut {
-- GRAPHICS_GAMMA_LUT_LEGACY = 0, /* use only legacy LUT */
-- GRAPHICS_GAMMA_LUT_REGAMMA, /* use only regamma LUT */
-- GRAPHICS_GAMMA_LUT_LEGACY_AND_REGAMMA /* use legacy & regamma LUT's */
--};
--
--enum graphics_degamma_adjust {
-- GRAPHICS_DEGAMMA_ADJUST_BYPASS = 0, GRAPHICS_DEGAMMA_ADJUST_HW, /*without adjustments */
-- GRAPHICS_DEGAMMA_ADJUST_SW /* use adjustments */
--};
--
--struct gamma_parameters {
-- union gamma_flag flag;
-- enum pixel_format surface_pixel_format; /*OS surface pixel format*/
-- struct regamma_lut regamma;
--
-- enum graphics_regamma_adjust regamma_adjust_type;
-- enum graphics_degamma_adjust degamma_adjust_type;
--
-- enum graphics_gamma_lut selected_gamma_lut;
--
-- bool disable_adjustments;
--
-- /* here we grow with parameters if necessary */
--};
--
--struct pixel_format_support {
-- bool INDEX8 :1;
-- bool RGB565 :1;
-- bool ARGB8888 :1;
-- bool ARGB2101010 :1;
-- bool ARGB2101010_XRBIAS :1;
-- bool FP16 :1;
--};
--
--struct render_mode {
-- struct view view;
-- enum pixel_format pixel_format;
--};
--
--struct refresh_rate {
-- uint32_t field_rate;
-- bool INTERLACED :1;
-- bool VIDEO_OPTIMIZED_RATE :1;
--};
--
--struct stereo_3d_view {
-- enum view_3d_format view_3d_format;
-- union {
-- uint32_t raw;
-- struct /*stereo_3d_view_flags*/
-- {
-- bool SINGLE_FRAME_SW_PACKED :1;
-- bool EXCLUSIVE_3D :1;
-- } bits;
-- } flags;
--};
--
--enum solution_importance {
-- SOLUTION_IMPORTANCE_PREFERRED = 1,
-- /* Means we want to use this solution
-- * even in wide topology configurations*/
-- SOLUTION_IMPORTANCE_SAFE,
-- SOLUTION_IMPORTANCE_UNSAFE,
-- SOLUTION_IMPORTANCE_DEFAULT
--/* Temporary state , means Solution object
-- * should define importance by itself
-- */
--};
--
--struct solution {
-- const struct dc_mode_timing *dc_mode_timing;
-- enum solution_importance importance;
-- bool is_custom_mode;
-- uint32_t scl_support[NUM_PIXEL_FORMATS];
-- /* bit vector of the scaling that can be supported on the timing */
-- uint32_t scl_support_guaranteed[NUM_PIXEL_FORMATS];
-- /* subset of m_sclSupport that can be guaranteed supported */
--};
--
--enum timing_select {
-- TIMING_SELECT_DEFAULT,
-- TIMING_SELECT_NATIVE_ONLY,
-- TIMING_SELECT_PRESERVE_ASPECT
--};
--
--enum downscale_state {
-- DOWNSCALESTATE_DEFAULT, // Disabled, but not user selected
-- DOWNSCALESTATE_DISABLED, // User disabled through CCC
-- DOWNSCALESTATE_ENABLED // User enabled through CCC
--};
--struct scaling_support {
-- bool IDENTITY :1;
-- bool FULL_SCREEN_SCALE :1;
-- bool PRESERVE_ASPECT_RATIO_SCALE :1;
-- bool CENTER_TIMING :1;
--};
--
--
--/* TODO: combine the two cursor functions into one to make cursor
-- * programming resistant to changes in OS call sequence. */
--bool dc_target_set_cursor_attributes(
-- struct dc_target *dc_target,
-- const struct dc_cursor_attributes *attributes);
--
--bool dc_target_set_cursor_position(
-- struct dc_target *dc_target,
-- const struct dc_cursor_position *position);
--
--/******************************************************************************
-- * TODO: these definitions only for Timing Sync feature bring-up. Remove
-- * when the feature is complete.
-- *****************************************************************************/
--
--#define MAX_TARGET_NUM 6
--
--void dc_print_sync_report(
-- const struct dc *dc);
--
--/******************************************************************************/
--
--#endif /* DC_TEMP_H_ */
-diff --git a/drivers/gpu/drm/amd/dal/dc/dc_types.h b/drivers/gpu/drm/amd/dal/dc/dc_types.h
-index 60e5603..fe7046f 100644
---- a/drivers/gpu/drm/amd/dal/dc/dc_types.h
-+++ b/drivers/gpu/drm/amd/dal/dc/dc_types.h
-@@ -63,6 +63,17 @@ enum dce_environment {
- /********************************/
-
- #define MAX_EDID_BUFFER_SIZE 512
-+#define MAX_SURFACE_NUM 2
-+#define NUM_PIXEL_FORMATS 10
-+
-+enum surface_color_space {
-+ SURFACE_COLOR_SPACE_SRGB = 0x0000,
-+ SURFACE_COLOR_SPACE_BT601 = 0x0001,
-+ SURFACE_COLOR_SPACE_BT709 = 0x0002,
-+ SURFACE_COLOR_SPACE_XVYCC_BT601 = 0x0004,
-+ SURFACE_COLOR_SPACE_XVYCC_BT709 = 0x0008,
-+ SURFACE_COLOR_SPACE_XRRGB = 0x0010
-+};
-
- /*Displayable pixel format in fb*/
- enum surface_pixel_format {
-@@ -174,9 +185,6 @@ enum dc_pixel_encoding {
- * Please increase if pixel_format enum increases
- * num from PIXEL_FORMAT_INDEX8 to PIXEL_FORMAT_444BPP32
- */
--#define NUM_PIXEL_FORMATS 10
--
--
-
- union large_integer {
- struct {
-@@ -211,6 +219,11 @@ enum dc_edid_status {
- EDID_BAD_CHECKSUM,
- };
-
-+struct plane_colorimetry {
-+ enum surface_color_space color_space;
-+ bool limited_range;
-+};
-+
- /* audio capability from EDID*/
- struct dc_cea_audio_mode {
- uint8_t format_code; /* ucData[0] [6:3]*/
-@@ -710,6 +723,47 @@ enum dc_connection_type {
- * returns 0.
- *
- */
-+/* TODO: Deprecated */
-+enum {
-+ RGB_256X3X16 = 256,
-+ DX_GAMMA_RAMP_MAX = 1025
-+};
-+
-+enum gamma_ramp_type {
-+ GAMMA_RAMP_UNINITIALIZED = 0,
-+ GAMMA_RAMP_DEFAULT,
-+ GAMMA_RAMP_RBG256X3X16,
-+ GAMMA_RAMP_DXGI_1,
-+};
-+
-+struct dxgi_rgb {
-+ struct fixed32_32 red;
-+ struct fixed32_32 green;
-+ struct fixed32_32 blue;
-+};
-+
-+struct gamma_ramp_dxgi_1 {
-+ struct dxgi_rgb scale;
-+ struct dxgi_rgb offset;
-+ struct dxgi_rgb gamma_curve[DX_GAMMA_RAMP_MAX];
-+};
-+
-+struct gamma_ramp_rgb256x3x16 {
-+ uint16_t red[RGB_256X3X16];
-+ uint16_t green[RGB_256X3X16];
-+ uint16_t blue[RGB_256X3X16];
-+};
-+
-+struct gamma_ramp {
-+ enum gamma_ramp_type type;
-+ union {
-+ struct gamma_ramp_rgb256x3x16 gamma_ramp_rgb256x3x16;
-+ struct gamma_ramp_dxgi_1 gamma_ramp_dxgi1;
-+ };
-+ uint32_t size;
-+};
-+
-+
- struct dc_gamma_ramp {
- uint32_t (*get_gamma_value) (
- void *context,
-@@ -728,6 +782,201 @@ struct dc_csc_adjustments {
- struct fixed31_32 hue;
- };
-
--#include "dc_temp.h"
-+
-+enum {
-+ MAX_LANES = 2,
-+ MAX_COFUNC_PATH = 6,
-+ LAYER_INDEX_PRIMARY = -1,
-+};
-+
-+/* Scaling format */
-+enum scaling_transformation {
-+ SCALING_TRANSFORMATION_UNINITIALIZED,
-+ SCALING_TRANSFORMATION_IDENTITY = 0x0001,
-+ SCALING_TRANSFORMATION_CENTER_TIMING = 0x0002,
-+ SCALING_TRANSFORMATION_FULL_SCREEN_SCALE = 0x0004,
-+ SCALING_TRANSFORMATION_PRESERVE_ASPECT_RATIO_SCALE = 0x0008,
-+ SCALING_TRANSFORMATION_DAL_DECIDE = 0x0010,
-+ SCALING_TRANSFORMATION_INVALID = 0x80000000,
-+
-+ /* Flag the first and last */
-+ SCALING_TRANSFORMATION_BEGING = SCALING_TRANSFORMATION_IDENTITY,
-+ SCALING_TRANSFORMATION_END =
-+ SCALING_TRANSFORMATION_PRESERVE_ASPECT_RATIO_SCALE
-+};
-+
-+struct view_stereo_3d_support {
-+ enum view_3d_format format;
-+ struct {
-+ uint32_t CLONE_MODE:1;
-+ uint32_t SCALING:1;
-+ uint32_t SINGLE_FRAME_SW_PACKED:1;
-+ } features;
-+};
-+
-+enum tiling_mode {
-+ TILING_MODE_INVALID,
-+ TILING_MODE_LINEAR,
-+ TILING_MODE_TILED,
-+ TILING_MODE_COUNT
-+};
-+
-+struct view_position {
-+ uint32_t x;
-+ uint32_t y;
-+};
-+
-+struct render_mode {
-+ struct view view;
-+ enum pixel_format pixel_format;
-+};
-+
-+struct pixel_format_support {
-+ bool INDEX8 :1;
-+ bool RGB565 :1;
-+ bool ARGB8888 :1;
-+ bool ARGB2101010 :1;
-+ bool ARGB2101010_XRBIAS :1;
-+ bool FP16 :1;
-+};
-+
-+struct stereo_3d_view {
-+ enum view_3d_format view_3d_format;
-+ union {
-+ uint32_t raw;
-+ struct /*stereo_3d_view_flags*/
-+ {
-+ bool SINGLE_FRAME_SW_PACKED :1;
-+ bool EXCLUSIVE_3D :1;
-+ } bits;
-+ } flags;
-+};
-+
-+/* TODO: Rename to dc_tiling_info */
-+union dc_tiling_info {
-+
-+ struct {
-+ /* Specifies the number of memory banks for tiling
-+ * purposes.
-+ * Only applies to 2D and 3D tiling modes.
-+ * POSSIBLE VALUES: 2,4,8,16
-+ */
-+ uint32_t NUM_BANKS:5;
-+ /* Specifies the number of tiles in the x direction
-+ * to be incorporated into the same bank.
-+ * Only applies to 2D and 3D tiling modes.
-+ * POSSIBLE VALUES: 1,2,4,8
-+ */
-+ uint32_t BANK_WIDTH:4;
-+ /* Specifies the number of tiles in the y direction to
-+ * be incorporated into the same bank.
-+ * Only applies to 2D and 3D tiling modes.
-+ * POSSIBLE VALUES: 1,2,4,8
-+ */
-+ uint32_t BANK_HEIGHT:4;
-+ /* Specifies the macro tile aspect ratio. Only applies
-+ * to 2D and 3D tiling modes.
-+ */
-+ uint32_t TILE_ASPECT:3;
-+ /* Specifies the number of bytes that will be stored
-+ * contiguously for each tile.
-+ * If the tile data requires more storage than this
-+ * amount, it is split into multiple slices.
-+ * This field must not be larger than
-+ * GB_ADDR_CONFIG.DRAM_ROW_SIZE.
-+ * Only applies to 2D and 3D tiling modes.
-+ * For color render targets, TILE_SPLIT >= 256B.
-+ */
-+ uint32_t TILE_SPLIT:3;
-+ /* Specifies the addressing within a tile.
-+ * 0x0 - DISPLAY_MICRO_TILING
-+ * 0x1 - THIN_MICRO_TILING
-+ * 0x2 - DEPTH_MICRO_TILING
-+ * 0x3 - ROTATED_MICRO_TILING
-+ */
-+ uint32_t TILE_MODE:2;
-+ /* Specifies the number of pipes and how they are
-+ * interleaved in the surface.
-+ * Refer to memory addressing document for complete
-+ * details and constraints.
-+ */
-+ uint32_t PIPE_CONFIG:5;
-+ /* Specifies the tiling mode of the surface.
-+ * THIN tiles use an 8x8x1 tile size.
-+ * THICK tiles use an 8x8x4 tile size.
-+ * 2D tiling modes rotate banks for successive Z slices
-+ * 3D tiling modes rotate pipes and banks for Z slices
-+ * Refer to memory addressing document for complete
-+ * details and constraints.
-+ */
-+ uint32_t ARRAY_MODE:4;
-+ } grph;
-+
-+
-+ struct {
-+ /*possible values: 2,4,8,16*/
-+ uint32_t NUM_BANKS:5;
-+ /*must use enum video_array_mode*/
-+ uint32_t ARRAY_MODE:4;
-+ /*must use enum addr_pipe_config*/
-+ uint32_t PIPE_CONFIG:5;
-+ /*possible values 1,2,4,8 */
-+ uint32_t BANK_WIDTH_LUMA:4;
-+ /*possible values 1,2,4,8 */
-+ uint32_t BANK_HEIGHT_LUMA:4;
-+ /*must use enum macro_tile_aspect*/
-+ uint32_t TILE_ASPECT_LUMA:3;
-+ /*must use enum tile_split*/
-+ uint32_t TILE_SPLIT_LUMA:3;
-+ /*must use micro_tile_mode */
-+ uint32_t TILE_MODE_LUMA:2;
-+ /*possible values: 1,2,4,8*/
-+ uint32_t BANK_WIDTH_CHROMA:4;
-+ /*possible values: 1,2,4,8*/
-+ uint32_t BANK_HEIGHT_CHROMA:4;
-+ /*must use enum macro_tile_aspect*/
-+ uint32_t TILE_ASPECT_CHROMA:3;
-+ /*must use enum tile_split*/
-+ uint32_t TILE_SPLIT_CHROMA:3;
-+ /*must use enum micro_tile_mode*/
-+ uint32_t TILE_MODE_CHROMA:2;
-+
-+ } video;
-+
-+ uint64_t value;
-+};
-+
-+union plane_size {
-+ /* Grph or Video will be selected
-+ * based on format above:
-+ * Use Video structure if
-+ * format >= DalPixelFormat_VideoBegin
-+ * else use Grph structure
-+ */
-+ struct {
-+ struct rect surface_size;
-+ /* Graphic surface pitch in pixels.
-+ * In LINEAR_GENERAL mode, pitch
-+ * is 32 pixel aligned.
-+ */
-+ uint32_t surface_pitch;
-+ } grph;
-+
-+ struct {
-+ struct rect luma_size;
-+ /* Graphic surface pitch in pixels.
-+ * In LINEAR_GENERAL mode, pitch is
-+ * 32 pixel aligned.
-+ */
-+ uint32_t luma_pitch;
-+
-+ struct rect chroma_size;
-+ /* Graphic surface pitch in pixels.
-+ * In LINEAR_GENERAL mode, pitch is
-+ * 32 pixel aligned.
-+ */
-+ uint32_t chroma_pitch;
-+ } video;
-+};
-
- #endif /* DC_TYPES_H_ */
-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 af7cf0d..046a9a5 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
-@@ -30,6 +30,7 @@
- #include "resource.h"
- #include "hw_sequencer.h"
- #include "dc_helpers.h"
-+#include "gamma_types.h"
-
- #include "dce110/dce110_resource.h"
- #include "dce110/dce110_timing_generator.h"
-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 f0e9e7d..709906f 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.h
-+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.h
-@@ -28,6 +28,10 @@
-
- #include "inc/ipp.h"
-
-+
-+struct gamma_parameters;
-+struct dev_c_lut;
-+
- #define TO_DCE110_IPP(input_pixel_processor)\
- container_of(input_pixel_processor, struct dce110_ipp, base)
-
-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 2aa432a..a30c0da 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
-@@ -32,6 +32,7 @@
- #include "dce/dce_11_0_sh_mask.h"
-
- #include "dce110_ipp.h"
-+#include "gamma_types.h"
-
- #define DCP_REG(reg)\
- (reg + ipp110->offsets.dcp_offset)
-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 4e809b6..b70c8e1 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
-@@ -179,7 +179,7 @@ static void enable(struct dce110_mem_input *mem_input110)
-
- static void program_tiling(
- struct dce110_mem_input *mem_input110,
-- const union plane_tiling_info *info,
-+ const union dc_tiling_info *info,
- const enum surface_pixel_format pixel_format)
- {
- uint32_t value = 0;
-@@ -458,7 +458,7 @@ bool dce110_mem_input_program_surface_flip_and_addr(
- bool dce110_mem_input_program_surface_config(
- struct mem_input *mem_input,
- enum surface_pixel_format format,
-- union plane_tiling_info *tiling_info,
-+ union dc_tiling_info *tiling_info,
- union plane_size *plane_size,
- enum dc_rotation_angle rotation)
- {
-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 997070b..cd19169 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
-@@ -109,7 +109,7 @@ bool dce110_mem_input_program_surface_flip_and_addr(
- bool dce110_mem_input_program_surface_config(
- struct mem_input *mem_input,
- enum surface_pixel_format format,
-- union plane_tiling_info *tiling_info,
-+ union dc_tiling_info *tiling_info,
- union plane_size *plane_size,
- enum dc_rotation_angle rotation);
-
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp.c
-index 99163ee..7dcfd2e 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp.c
-+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp.c
-@@ -30,6 +30,7 @@
- #include "dce/dce_11_0_sh_mask.h"
-
- #include "dce110_opp.h"
-+#include "gamma_types.h"
-
- enum {
- MAX_LUT_ENTRY = 256,
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp.h b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp.h
-index f9b828c..e53eb74 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp.h
-+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp.h
-@@ -27,7 +27,9 @@
-
- #include "dc_types.h"
- #include "inc/opp.h"
-+#include "gamma_types.h"
-
-+struct gamma_parameters;
-
- #define FROM_DCE11_OPP(opp)\
- container_of(opp, struct dce110_opp, base)
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp_regamma.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp_regamma.c
-index dceba7d..f589025 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp_regamma.c
-+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp_regamma.c
-@@ -30,6 +30,7 @@
- #include "dce/dce_11_0_sh_mask.h"
-
- #include "dce110_opp.h"
-+#include "gamma_types.h"
-
- #define DCP_REG(reg)\
- (reg + opp110->offsets.dcp_offset)
-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 d0e4b98..a64a507 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
-@@ -30,7 +30,7 @@
- #include "dce/dce_11_0_sh_mask.h"
-
- #include "dce110_transform.h"
--
-+#include "opp.h"
- #include "include/logger_interface.h"
- #include "include/fixed32_32.h"
-
-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 d075de1..e3b5918 100644
---- a/drivers/gpu/drm/amd/dal/dc/inc/core_types.h
-+++ b/drivers/gpu/drm/amd/dal/dc/inc/core_types.h
-@@ -70,6 +70,7 @@ void enable_surface_flip_reporting(struct dc_surface *dc_surface,
- #include "audio_interface.h"
- #include "scaler_types.h"
- #include "hw_sequencer_types.h"
-+#include "opp.h"
-
- #define DC_STREAM_TO_CORE(dc_stream) container_of( \
- dc_stream, struct core_stream, public)
-diff --git a/drivers/gpu/drm/amd/dal/dc/inc/gamma_types.h b/drivers/gpu/drm/amd/dal/dc/inc/gamma_types.h
-new file mode 100644
-index 0000000..048303e
---- /dev/null
-+++ b/drivers/gpu/drm/amd/dal/dc/inc/gamma_types.h
-@@ -0,0 +1,117 @@
-+/*
-+ * Copyright 2012-15 Advanced Micro Devices, Inc.
-+ *
-+ * Permission is hereby granted, free of charge, to any person obtaining a
-+ * copy of this software and associated documentation files (the "Software"),
-+ * to deal in the Software without restriction, including without limitation
-+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
-+ * and/or sell copies of the Software, and to permit persons to whom the
-+ * Software is furnished to do so, subject to the following conditions:
-+ *
-+ * The above copyright notice and this permission notice shall be included in
-+ * all copies or substantial portions of the Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
-+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-+ * OTHER DEALINGS IN THE SOFTWARE.
-+ *
-+ * Authors: AMD
-+ *
-+ */
-+#ifndef GAMMA_TYPES_H_
-+#define GAMMA_TYPES_H_
-+
-+#include "dc_types.h"
-+#include "dc_services_types.h"
-+
-+/* TODO: Used in IPP and OPP */
-+struct dev_c_lut {
-+ uint8_t red;
-+ uint8_t green;
-+ uint8_t blue;
-+};
-+
-+struct dev_c_lut16 {
-+ uint16_t red;
-+ uint16_t green;
-+ uint16_t blue;
-+};
-+
-+struct regamma_ramp {
-+ uint16_t gamma[RGB_256X3X16 * 3];
-+};
-+
-+/* used by Graphics and Overlay gamma */
-+struct gamma_coeff {
-+ int32_t gamma[3];
-+ int32_t a0[3]; /* index 0 for red, 1 for green, 2 for blue */
-+ int32_t a1[3];
-+ int32_t a2[3];
-+ int32_t a3[3];
-+};
-+
-+struct regamma_lut {
-+ union {
-+ struct {
-+ uint32_t GRAPHICS_DEGAMMA_SRGB :1;
-+ uint32_t OVERLAY_DEGAMMA_SRGB :1;
-+ uint32_t GAMMA_RAMP_ARRAY :1;
-+ uint32_t APPLY_DEGAMMA :1;
-+ uint32_t RESERVED :28;
-+ } bits;
-+ uint32_t value;
-+ } features;
-+
-+ union {
-+ struct regamma_ramp regamma_ramp;
-+ struct gamma_coeff gamma_coeff;
-+ };
-+};
-+
-+union gamma_flag {
-+ struct {
-+ uint32_t config_is_changed :1;
-+ uint32_t both_pipe_req :1;
-+ uint32_t regamma_update :1;
-+ uint32_t gamma_update :1;
-+ uint32_t reserved :28;
-+ } bits;
-+ uint32_t u_all;
-+};
-+
-+enum graphics_regamma_adjust {
-+ GRAPHICS_REGAMMA_ADJUST_BYPASS = 0, GRAPHICS_REGAMMA_ADJUST_HW, /* without adjustments */
-+ GRAPHICS_REGAMMA_ADJUST_SW /* use adjustments */
-+};
-+
-+enum graphics_gamma_lut {
-+ GRAPHICS_GAMMA_LUT_LEGACY = 0, /* use only legacy LUT */
-+ GRAPHICS_GAMMA_LUT_REGAMMA, /* use only regamma LUT */
-+ GRAPHICS_GAMMA_LUT_LEGACY_AND_REGAMMA /* use legacy & regamma LUT's */
-+};
-+
-+enum graphics_degamma_adjust {
-+ GRAPHICS_DEGAMMA_ADJUST_BYPASS = 0, GRAPHICS_DEGAMMA_ADJUST_HW, /*without adjustments */
-+ GRAPHICS_DEGAMMA_ADJUST_SW /* use adjustments */
-+};
-+
-+struct gamma_parameters {
-+ union gamma_flag flag;
-+ enum pixel_format surface_pixel_format; /*OS surface pixel format*/
-+ struct regamma_lut regamma;
-+
-+ enum graphics_regamma_adjust regamma_adjust_type;
-+ enum graphics_degamma_adjust degamma_adjust_type;
-+
-+ enum graphics_gamma_lut selected_gamma_lut;
-+
-+ bool disable_adjustments;
-+
-+ /* here we grow with parameters if necessary */
-+};
-+
-+#endif
-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 0bbf9b5..1dedf7c 100644
---- a/drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h
-+++ b/drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h
-@@ -27,6 +27,15 @@
- #define __DC_HW_SEQUENCER_H__
- #include "core_types.h"
-
-+struct gamma_parameters;
-+
-+enum pipe_gating_control {
-+ PIPE_GATING_CONTROL_DISABLE = 0,
-+ PIPE_GATING_CONTROL_ENABLE,
-+ PIPE_GATING_CONTROL_INIT
-+};
-+
-+
- struct hw_sequencer_funcs {
-
- enum dc_status (*apply_ctx_to_hw)(
-diff --git a/drivers/gpu/drm/amd/dal/dc/inc/ipp.h b/drivers/gpu/drm/amd/dal/dc/inc/ipp.h
-index e7151cd..8e7cc31 100644
---- a/drivers/gpu/drm/amd/dal/dc/inc/ipp.h
-+++ b/drivers/gpu/drm/amd/dal/dc/inc/ipp.h
-@@ -32,6 +32,7 @@
- #include "include/video_csc_types.h"
- #include "include/hw_sequencer_types.h"
-
-+struct dev_c_lut;
-
- #define MAXTRIX_COEFFICIENTS_NUMBER 12
- #define MAXTRIX_COEFFICIENTS_WRAP_NUMBER (MAXTRIX_COEFFICIENTS_NUMBER + 4)
-diff --git a/drivers/gpu/drm/amd/dal/dc/inc/mem_input.h b/drivers/gpu/drm/amd/dal/dc/inc/mem_input.h
-index 2647f84..4d653ab 100644
---- a/drivers/gpu/drm/amd/dal/dc/inc/mem_input.h
-+++ b/drivers/gpu/drm/amd/dal/dc/inc/mem_input.h
-@@ -57,7 +57,7 @@ struct mem_input_funcs {
- bool (*mem_input_program_surface_config)(
- struct mem_input *mem_input,
- enum surface_pixel_format format,
-- union plane_tiling_info *tiling_info,
-+ union dc_tiling_info *tiling_info,
- union plane_size *plane_size,
- enum dc_rotation_angle rotation);
- };
-diff --git a/drivers/gpu/drm/amd/dal/dc/inc/opp.h b/drivers/gpu/drm/amd/dal/dc/inc/opp.h
-index 543848a..f2171de 100644
---- a/drivers/gpu/drm/amd/dal/dc/inc/opp.h
-+++ b/drivers/gpu/drm/amd/dal/dc/inc/opp.h
-@@ -26,14 +26,74 @@
- #ifndef __DAL_OPP_H__
- #define __DAL_OPP_H__
-
--#include "dc_temp.h"
-+#include "dc_types.h"
- #include "grph_object_id.h"
- #include "grph_csc_types.h"
-+#include "dc_services_types.h"
-
- struct fixed31_32;
-+struct gamma_parameters;
-
- /* TODO: Need cleanup */
-
-+enum clamping_range {
-+ CLAMPING_FULL_RANGE = 0, /* No Clamping */
-+ CLAMPING_LIMITED_RANGE_8BPC, /* 8 bpc: Clamping 1 to FE */
-+ CLAMPING_LIMITED_RANGE_10BPC, /* 10 bpc: Clamping 4 to 3FB */
-+ CLAMPING_LIMITED_RANGE_12BPC, /* 12 bpc: Clamping 10 to FEF */
-+ /* Use programmable clampping value on FMT_CLAMP_COMPONENT_R/G/B. */
-+ CLAMPING_LIMITED_RANGE_PROGRAMMABLE
-+};
-+
-+struct clamping_and_pixel_encoding_params {
-+ enum dc_pixel_encoding pixel_encoding; /* Pixel Encoding */
-+ enum clamping_range clamping_level; /* Clamping identifier */
-+ enum dc_color_depth c_depth; /* Deep color use. */
-+};
-+
-+struct bit_depth_reduction_params {
-+ struct {
-+ /* truncate/round */
-+ /* trunc/round enabled*/
-+ uint32_t TRUNCATE_ENABLED:1;
-+ /* 2 bits: 0=6 bpc, 1=8 bpc, 2 = 10bpc*/
-+ uint32_t TRUNCATE_DEPTH:2;
-+ /* truncate or round*/
-+ uint32_t TRUNCATE_MODE:1;
-+
-+ /* spatial dither */
-+ /* Spatial Bit Depth Reduction enabled*/
-+ uint32_t SPATIAL_DITHER_ENABLED:1;
-+ /* 2 bits: 0=6 bpc, 1 = 8 bpc, 2 = 10bpc*/
-+ uint32_t SPATIAL_DITHER_DEPTH:2;
-+ /* 0-3 to select patterns*/
-+ uint32_t SPATIAL_DITHER_MODE:2;
-+ /* Enable RGB random dithering*/
-+ uint32_t RGB_RANDOM:1;
-+ /* Enable Frame random dithering*/
-+ uint32_t FRAME_RANDOM:1;
-+ /* Enable HighPass random dithering*/
-+ uint32_t HIGHPASS_RANDOM:1;
-+
-+ /* temporal dither*/
-+ /* frame modulation enabled*/
-+ uint32_t FRAME_MODULATION_ENABLED:1;
-+ /* same as for trunc/spatial*/
-+ uint32_t FRAME_MODULATION_DEPTH:2;
-+ /* 2/4 gray levels*/
-+ uint32_t TEMPORAL_LEVEL:1;
-+ uint32_t FRC25:2;
-+ uint32_t FRC50:2;
-+ uint32_t FRC75:2;
-+ } flags;
-+
-+ uint32_t r_seed_value;
-+ uint32_t b_seed_value;
-+ uint32_t g_seed_value;
-+};
-+
-+
-+
- enum wide_gamut_regamma_mode {
- /* 0x0 - BITS2:0 Bypass */
- WIDE_GAMUT_REGAMMA_MODE_GRAPHICS_BYPASS,
-diff --git a/drivers/gpu/drm/amd/dal/dc/inc/transform.h b/drivers/gpu/drm/amd/dal/dc/inc/transform.h
-index d453aac..2280357 100644
---- a/drivers/gpu/drm/amd/dal/dc/inc/transform.h
-+++ b/drivers/gpu/drm/amd/dal/dc/inc/transform.h
-@@ -31,6 +31,8 @@
- #include "calcs/scaler_filter.h"
- #include "grph_object_id.h"
-
-+struct bit_depth_reduction_params;
-+
- enum scaling_type {
- SCALING_TYPE_NO_SCALING = 0,
- SCALING_TYPE_UPSCALING,
-diff --git a/drivers/gpu/drm/amd/dal/include/fixed32_32.h b/drivers/gpu/drm/amd/dal/include/fixed32_32.h
-index 5fca957..1a26eea 100644
---- a/drivers/gpu/drm/amd/dal/include/fixed32_32.h
-+++ b/drivers/gpu/drm/amd/dal/include/fixed32_32.h
-@@ -26,6 +26,8 @@
- #ifndef __DAL_FIXED32_32_H__
- #define __DAL_FIXED32_32_H__
-
-+#include "dc_services_types.h"
-+
- struct fixed32_32 {
- uint64_t value;
- };
-diff --git a/drivers/gpu/drm/amd/dal/include/video_gamma_types.h b/drivers/gpu/drm/amd/dal/include/video_gamma_types.h
-index dc294b6..6f9cd3f 100644
---- a/drivers/gpu/drm/amd/dal/include/video_gamma_types.h
-+++ b/drivers/gpu/drm/amd/dal/include/video_gamma_types.h
-@@ -27,6 +27,7 @@
- #define __DAL_VIDEO_GAMMA_TYPES_H__
-
- #include "set_mode_types.h"
-+#include "gamma_types.h"
-
- enum overlay_gamma_adjust {
- OVERLAY_GAMMA_ADJUST_BYPASS,
---
-2.7.4
-