diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0851-drm-amd-dal-move-virtual-hardware-header-files-to-in.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0851-drm-amd-dal-move-virtual-hardware-header-files-to-in.patch | 2777 |
1 files changed, 2777 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0851-drm-amd-dal-move-virtual-hardware-header-files-to-in.patch b/common/recipes-kernel/linux/files/0851-drm-amd-dal-move-virtual-hardware-header-files-to-in.patch new file mode 100644 index 00000000..b76743e6 --- /dev/null +++ b/common/recipes-kernel/linux/files/0851-drm-amd-dal-move-virtual-hardware-header-files-to-in.patch @@ -0,0 +1,2777 @@ +From a95e1ffaafa9040ac1d5f9187073f2b816b5b2a7 Mon Sep 17 00:00:00 2001 +From: Tony Cheng <Tony.Cheng@amd.com> +Date: Sat, 27 Feb 2016 11:43:43 -0500 +Subject: [PATCH 0851/1110] drm/amd/dal: move virtual hardware header files to + inc/hw + +Signed-off-by: Tony Cheng <Tony.Cheng@amd.com> +Acked-by: Harry Wentland <harry.wentland@amd.com> +--- + drivers/gpu/drm/amd/dal/Makefile | 1 + + drivers/gpu/drm/amd/dal/dc/core/dc_surface.c | 2 +- + drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.h | 2 +- + .../drm/amd/dal/dc/dce110/dce110_link_encoder.h | 2 +- + .../gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h | 2 +- + .../gpu/drm/amd/dal/dc/dce110/dce110_mem_input_v.h | 2 +- + drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp.h | 2 +- + drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp_v.h | 2 +- + .../drm/amd/dal/dc/dce110/dce110_stream_encoder.h | 2 +- + .../amd/dal/dc/dce110/dce110_timing_generator.c | 2 +- + .../amd/dal/dc/dce110/dce110_timing_generator.h | 2 +- + .../amd/dal/dc/dce110/dce110_timing_generator_v.c | 2 +- + .../gpu/drm/amd/dal/dc/dce110/dce110_transform.h | 2 +- + .../gpu/drm/amd/dal/dc/dce110/dce110_transform_v.h | 2 +- + drivers/gpu/drm/amd/dal/dc/dce80/dce80_ipp.h | 2 +- + .../gpu/drm/amd/dal/dc/dce80/dce80_link_encoder.h | 2 +- + drivers/gpu/drm/amd/dal/dc/dce80/dce80_mem_input.h | 2 +- + drivers/gpu/drm/amd/dal/dc/dce80/dce80_opp.h | 2 +- + .../drm/amd/dal/dc/dce80/dce80_stream_encoder.h | 2 +- + .../drm/amd/dal/dc/dce80/dce80_timing_generator.c | 2 +- + .../drm/amd/dal/dc/dce80/dce80_timing_generator.h | 2 +- + drivers/gpu/drm/amd/dal/dc/dce80/dce80_transform.h | 2 +- + drivers/gpu/drm/amd/dal/dc/inc/hw/hw_shared.h | 74 +++++ + drivers/gpu/drm/amd/dal/dc/inc/hw/ipp.h | 126 ++++++++ + drivers/gpu/drm/amd/dal/dc/inc/hw/link_encoder.h | 123 ++++++++ + drivers/gpu/drm/amd/dal/dc/inc/hw/mem_input.h | 69 +++++ + drivers/gpu/drm/amd/dal/dc/inc/hw/opp.h | 325 +++++++++++++++++++++ + drivers/gpu/drm/amd/dal/dc/inc/hw/stream_encoder.h | 88 ++++++ + .../gpu/drm/amd/dal/dc/inc/hw/timing_generator.h | 153 ++++++++++ + drivers/gpu/drm/amd/dal/dc/inc/hw/transform.h | 192 ++++++++++++ + drivers/gpu/drm/amd/dal/dc/inc/hw_shared.h | 74 ----- + drivers/gpu/drm/amd/dal/dc/inc/ipp.h | 126 -------- + drivers/gpu/drm/amd/dal/dc/inc/link_encoder.h | 123 -------- + drivers/gpu/drm/amd/dal/dc/inc/mem_input.h | 69 ----- + drivers/gpu/drm/amd/dal/dc/inc/opp.h | 325 --------------------- + drivers/gpu/drm/amd/dal/dc/inc/stream_encoder.h | 88 ------ + drivers/gpu/drm/amd/dal/dc/inc/timing_generator.h | 153 ---------- + drivers/gpu/drm/amd/dal/dc/inc/transform.h | 192 ------------ + .../drm/amd/dal/dc/virtual/virtual_link_encoder.h | 2 +- + .../amd/dal/dc/virtual/virtual_stream_encoder.h | 2 +- + 40 files changed, 1174 insertions(+), 1173 deletions(-) + create mode 100644 drivers/gpu/drm/amd/dal/dc/inc/hw/hw_shared.h + create mode 100644 drivers/gpu/drm/amd/dal/dc/inc/hw/ipp.h + create mode 100644 drivers/gpu/drm/amd/dal/dc/inc/hw/link_encoder.h + create mode 100644 drivers/gpu/drm/amd/dal/dc/inc/hw/mem_input.h + create mode 100644 drivers/gpu/drm/amd/dal/dc/inc/hw/opp.h + create mode 100644 drivers/gpu/drm/amd/dal/dc/inc/hw/stream_encoder.h + create mode 100644 drivers/gpu/drm/amd/dal/dc/inc/hw/timing_generator.h + create mode 100644 drivers/gpu/drm/amd/dal/dc/inc/hw/transform.h + delete mode 100644 drivers/gpu/drm/amd/dal/dc/inc/hw_shared.h + delete mode 100644 drivers/gpu/drm/amd/dal/dc/inc/ipp.h + delete mode 100644 drivers/gpu/drm/amd/dal/dc/inc/link_encoder.h + delete mode 100644 drivers/gpu/drm/amd/dal/dc/inc/mem_input.h + delete mode 100644 drivers/gpu/drm/amd/dal/dc/inc/opp.h + delete mode 100644 drivers/gpu/drm/amd/dal/dc/inc/stream_encoder.h + delete mode 100644 drivers/gpu/drm/amd/dal/dc/inc/timing_generator.h + delete mode 100644 drivers/gpu/drm/amd/dal/dc/inc/transform.h + +diff --git a/drivers/gpu/drm/amd/dal/Makefile b/drivers/gpu/drm/amd/dal/Makefile +index 25ae464..a140e0b 100644 +--- a/drivers/gpu/drm/amd/dal/Makefile ++++ b/drivers/gpu/drm/amd/dal/Makefile +@@ -10,6 +10,7 @@ subdir-ccflags-y += -Werror + subdir-ccflags-y += -I$(AMDDALPATH)/ -I$(AMDDALPATH)/include + + subdir-ccflags-y += -I$(FULL_AMD_DAL_PATH)/dc/inc/ ++subdir-ccflags-y += -I$(FULL_AMD_DAL_PATH)/dc/inc/hw + + #TODO: remove when Timing Sync feature is complete + subdir-ccflags-y += -DBUILD_FEATURE_TIMING_SYNC=0 +diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_surface.c b/drivers/gpu/drm/amd/dal/dc/core/dc_surface.c +index 7f6f1c3..967b106 100644 +--- a/drivers/gpu/drm/amd/dal/dc/core/dc_surface.c ++++ b/drivers/gpu/drm/amd/dal/dc/core/dc_surface.c +@@ -29,7 +29,7 @@ + + /* DC core (private) */ + #include "core_dc.h" +-#include "inc/transform.h" ++#include "transform.h" + + /******************************************************************************* + * Private structures +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 13b9100..0004d7a 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_ipp.h +@@ -26,7 +26,7 @@ + #ifndef __DC_IPP_DCE110_H__ + #define __DC_IPP_DCE110_H__ + +-#include "inc/ipp.h" ++#include "ipp.h" + + + struct gamma_parameters; +diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.h b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.h +index bbddd0b..d1fa4a7 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.h +@@ -26,7 +26,7 @@ + #ifndef __DC_LINK_ENCODER__DCE110_H__ + #define __DC_LINK_ENCODER__DCE110_H__ + +-#include "inc/link_encoder.h" ++#include "link_encoder.h" + + #define TO_DCE110_LINK_ENC(link_encoder)\ + container_of(link_encoder, struct dce110_link_encoder, base) +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 81b78fd..0383178 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 +@@ -25,7 +25,7 @@ + #ifndef __DC_MEM_INPUT_DCE110_H__ + #define __DC_MEM_INPUT_DCE110_H__ + +-#include "inc/mem_input.h" ++#include "mem_input.h" + + #define TO_DCE110_MEM_INPUT(mi)\ + container_of(mi, struct dce110_mem_input, base) +diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input_v.h b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input_v.h +index 529aace..24b4211 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input_v.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input_v.h +@@ -25,7 +25,7 @@ + #ifndef __DC_MEM_INPUT_V_DCE110_H__ + #define __DC_MEM_INPUT_V_DCE110_H__ + +-#include "inc/mem_input.h" ++#include "mem_input.h" + #include "dce110_mem_input.h" + + bool dce110_mem_input_v_construct( +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 45778e6..abb5a5d 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp.h +@@ -26,7 +26,7 @@ + #define __DC_OPP_DCE110_H__ + + #include "dc_types.h" +-#include "inc/opp.h" ++#include "opp.h" + #include "core_types.h" + + #include "gamma_types.h" /* decprecated */ +diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp_v.h b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp_v.h +index cb257fb..d8d6910 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp_v.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_opp_v.h +@@ -26,7 +26,7 @@ + #define __DC_OPP_DCE110_V_H__ + + #include "dc_types.h" +-#include "inc/opp.h" ++#include "opp.h" + #include "core_types.h" + + #include "gamma_types.h" /* decprecated */ +diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_stream_encoder.h b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_stream_encoder.h +index 5753a1b..f187ad3 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_stream_encoder.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_stream_encoder.h +@@ -26,7 +26,7 @@ + #ifndef __DC_STREAM_ENCODER_DCE110_H__ + #define __DC_STREAM_ENCODER_DCE110_H__ + +-#include "inc/stream_encoder.h" ++#include "stream_encoder.h" + + #define DCE110STRENC_FROM_STRENC(stream_encoder)\ + container_of(stream_encoder, struct dce110_stream_encoder, base) +diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_timing_generator.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_timing_generator.c +index d554332..59ec7f4 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_timing_generator.c ++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_timing_generator.c +@@ -37,7 +37,7 @@ + #include "include/logger_interface.h" + #include "dce110_timing_generator.h" + +-#include "../inc/timing_generator.h" ++#include "timing_generator.h" + + enum black_color_format { + BLACK_COLOR_FORMAT_RGB_FULLRANGE = 0, /* used as index in array */ +diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_timing_generator.h b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_timing_generator.h +index 9c5e390..d09af97 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_timing_generator.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_timing_generator.h +@@ -27,7 +27,7 @@ + #define __DC_TIMING_GENERATOR_DCE110_H__ + + +-#include "../inc/timing_generator.h" ++#include "timing_generator.h" + #include "../include/grph_object_id.h" + #include "../include/hw_sequencer_types.h" + +diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_timing_generator_v.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_timing_generator_v.c +index caf6631..a7ea52e 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_timing_generator_v.c ++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_timing_generator_v.c +@@ -15,7 +15,7 @@ + #include "dce110_timing_generator.h" + #include "dce110_timing_generator_v.h" + +-#include "../inc/timing_generator.h" ++#include "timing_generator.h" + + + /** ******************************************************************************** +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 7acbabc..e906fbf 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform.h +@@ -25,7 +25,7 @@ + #ifndef __DAL_TRANSFORM_DCE110_H__ + #define __DAL_TRANSFORM_DCE110_H__ + +-#include "inc/transform.h" ++#include "transform.h" + + #define TO_DCE110_TRANSFORM(transform)\ + container_of(transform, struct dce110_transform, base) +diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform_v.h b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform_v.h +index eec3872..1fdffac 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform_v.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_transform_v.h +@@ -25,7 +25,7 @@ + #ifndef __DAL_TRANSFORM_V_DCE110_H__ + #define __DAL_TRANSFORM_V_DCE110_H__ + +-#include "inc/transform.h" ++#include "transform.h" + + bool dce110_transform_v_construct( + struct dce110_transform *xfm110, +diff --git a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_ipp.h b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_ipp.h +index bd81693..adf33cd 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_ipp.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_ipp.h +@@ -26,7 +26,7 @@ + #ifndef __DC_IPP_DCE80_H__ + #define __DC_IPP_DCE80_H__ + +-#include "inc/ipp.h" ++#include "ipp.h" + + #define TO_DCE80_IPP(input_pixel_processor)\ + container_of(input_pixel_processor, struct dce110_ipp, base) +diff --git a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_link_encoder.h b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_link_encoder.h +index b894643..06e2c37 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_link_encoder.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_link_encoder.h +@@ -26,7 +26,7 @@ + #ifndef __DC_LINK_ENCODER__DCE80_H__ + #define __DC_LINK_ENCODER__DCE80_H__ + +-#include "inc/link_encoder.h" ++#include "link_encoder.h" + #include "../dce110/dce110_link_encoder.h" + + bool dce80_link_encoder_construct( +diff --git a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_mem_input.h b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_mem_input.h +index 1d299da..f07e94a 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_mem_input.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_mem_input.h +@@ -25,7 +25,7 @@ + #ifndef __DC_MEM_INPUT_DCE80_H__ + #define __DC_MEM_INPUT_DCE80_H__ + +-#include "inc/mem_input.h" ++#include "mem_input.h" + + bool dce80_mem_input_construct( + struct dce110_mem_input *mem_input80, +diff --git a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_opp.h b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_opp.h +index e152306..a3b1c08 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_opp.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_opp.h +@@ -26,7 +26,7 @@ + #define __DC_OPP_DCE80_H__ + + #include "dc_types.h" +-#include "inc/opp.h" ++#include "opp.h" + #include "gamma_types.h" + + struct gamma_parameters; +diff --git a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_stream_encoder.h b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_stream_encoder.h +index f4645a8..8b7edb9 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_stream_encoder.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_stream_encoder.h +@@ -23,7 +23,7 @@ + * + */ + +-#include "inc/stream_encoder.h" ++#include "stream_encoder.h" + + #ifndef __DC_STREAM_ENCODER_DCE80_H__ + #define __DC_STREAM_ENCODER_DCE80_H__ +diff --git a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_timing_generator.c b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_timing_generator.c +index 80391c2..24c1832 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_timing_generator.c ++++ b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_timing_generator.c +@@ -37,7 +37,7 @@ + #include "../dce110/dce110_timing_generator.h" + #include "dce80_timing_generator.h" + +-#include "../inc/timing_generator.h" ++#include "timing_generator.h" + + enum black_color_format { + BLACK_COLOR_FORMAT_RGB_FULLRANGE = 0, /* used as index in array */ +diff --git a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_timing_generator.h b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_timing_generator.h +index 0b88686..06339ed 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_timing_generator.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_timing_generator.h +@@ -27,7 +27,7 @@ + #define __DC_TIMING_GENERATOR_DCE80_H__ + + +-#include "../inc/timing_generator.h" ++#include "timing_generator.h" + #include "../include/grph_object_id.h" + + /* DCE8.0 implementation inherits from DCE11.0 */ +diff --git a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_transform.h b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_transform.h +index ac8e5c9..a0fb2d2 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_transform.h ++++ b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_transform.h +@@ -25,7 +25,7 @@ + #ifndef __DAL_TRANSFORM_DCE80_H__ + #define __DAL_TRANSFORM_DCE80_H__ + +-#include "inc/transform.h" ++#include "transform.h" + + #define TO_DCE80_TRANSFORM(transform)\ + container_of(transform, struct dce80_transform, base) +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/hw/hw_shared.h b/drivers/gpu/drm/amd/dal/dc/inc/hw/hw_shared.h +new file mode 100644 +index 0000000..3b0e616 +--- /dev/null ++++ b/drivers/gpu/drm/amd/dal/dc/inc/hw/hw_shared.h +@@ -0,0 +1,74 @@ ++/* ++ * Copyright 2015 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 __DAL_HW_SHARED_H__ ++#define __DAL_HW_SHARED_H__ ++ ++/****************************************************************************** ++ * Data types shared between different Virtual HW blocks ++ ******************************************************************************/ ++struct gamma_curve { ++ uint32_t offset; ++ uint32_t segments_num; ++}; ++ ++struct curve_points { ++ struct fixed31_32 x; ++ struct fixed31_32 y; ++ struct fixed31_32 offset; ++ struct fixed31_32 slope; ++ ++ uint32_t custom_float_x; ++ uint32_t custom_float_y; ++ uint32_t custom_float_offset; ++ uint32_t custom_float_slope; ++}; ++ ++struct pwl_result_data { ++ struct fixed31_32 red; ++ struct fixed31_32 green; ++ struct fixed31_32 blue; ++ ++ struct fixed31_32 delta_red; ++ struct fixed31_32 delta_green; ++ struct fixed31_32 delta_blue; ++ ++ uint32_t red_reg; ++ uint32_t green_reg; ++ uint32_t blue_reg; ++ ++ uint32_t delta_red_reg; ++ uint32_t delta_green_reg; ++ uint32_t delta_blue_reg; ++}; ++ ++struct pwl_params { ++ uint32_t *data; ++ struct gamma_curve arr_curve_points[16]; ++ struct curve_points arr_points[3]; ++ struct pwl_result_data rgb_resulted[256 + 3]; ++ uint32_t hw_points_num; ++}; ++#endif /* __DAL_HW_SHARED_H__ */ +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/hw/ipp.h b/drivers/gpu/drm/amd/dal/dc/inc/hw/ipp.h +new file mode 100644 +index 0000000..505bf72 +--- /dev/null ++++ b/drivers/gpu/drm/amd/dal/dc/inc/hw/ipp.h +@@ -0,0 +1,126 @@ ++ ++/* ++ * Copyright 2015 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 __DAL_IPP_H__ ++#define __DAL_IPP_H__ ++ ++#include "hw_shared.h" ++ ++#define MAXTRIX_COEFFICIENTS_NUMBER 12 ++#define MAXTRIX_COEFFICIENTS_WRAP_NUMBER (MAXTRIX_COEFFICIENTS_NUMBER + 4) ++#define MAX_OVL_MATRIX_COUNT 12 ++ ++/* IPP RELATED */ ++struct input_pixel_processor { ++ struct dc_context *ctx; ++ uint32_t inst; ++ struct ipp_funcs *funcs; ++}; ++ ++enum ipp_prescale_mode { ++ IPP_PRESCALE_MODE_BYPASS, ++ IPP_PRESCALE_MODE_FIXED_SIGNED, ++ IPP_PRESCALE_MODE_FLOAT_SIGNED, ++ IPP_PRESCALE_MODE_FIXED_UNSIGNED, ++ IPP_PRESCALE_MODE_FLOAT_UNSIGNED ++}; ++ ++struct ipp_prescale_params { ++ enum ipp_prescale_mode mode; ++ uint16_t bias; ++ uint16_t scale; ++}; ++ ++enum ipp_degamma_mode { ++ IPP_DEGAMMA_MODE_BYPASS, ++ IPP_DEGAMMA_MODE_HW_sRGB, ++ IPP_DEGAMMA_MODE_HW_xvYCC, ++ IPP_DEGAMMA_MODE_USER_PWL ++}; ++ ++ ++enum ovl_color_space { ++ OVL_COLOR_SPACE_UNKNOWN = 0, ++ OVL_COLOR_SPACE_RGB, ++ OVL_COLOR_SPACE_YUV601, ++ OVL_COLOR_SPACE_YUV709 ++}; ++ ++struct dcp_video_matrix { ++ enum ovl_color_space color_space; ++ int32_t value[MAXTRIX_COEFFICIENTS_NUMBER]; ++}; ++ ++enum expansion_mode { ++ EXPANSION_MODE_ZERO, ++ EXPANSION_MODE_DYNAMIC ++}; ++ ++enum ipp_output_format { ++ IPP_OUTPUT_FORMAT_12_BIT_FIX, ++ IPP_OUTPUT_FORMAT_16_BIT_BYPASS, ++ IPP_OUTPUT_FORMAT_FLOAT ++}; ++ ++struct ipp_funcs { ++ ++ /*** cursor ***/ ++ void (*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); ++ ++ /*** setup input pixel processing ***/ ++ ++ /* put the entire pixel processor to bypass */ ++ void (*ipp_full_bypass)(struct input_pixel_processor *ipp); ++ ++ /* setup ipp to expand/convert input to pixel processor internal format */ ++ void (*ipp_setup)( ++ enum surface_pixel_format input_format, ++ enum expansion_mode mode, ++ enum ipp_output_format output_format); ++ ++ /* DCE function to setup IPP. TODO: see if we can consolidate to setup */ ++ void (*ipp_program_prescale)( ++ struct input_pixel_processor *ipp, ++ struct ipp_prescale_params *params); ++ ++ /*** DEGAMMA RELATED ***/ ++ bool (*ipp_set_degamma)( ++ struct input_pixel_processor *ipp, ++ enum ipp_degamma_mode mode); ++ ++ bool (*ipp_program_degamma_pwl)( ++ struct input_pixel_processor *ipp, ++ const struct pwl_params *params); ++ ++}; ++ ++#endif /* __DAL_IPP_H__ */ +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/hw/link_encoder.h b/drivers/gpu/drm/amd/dal/dc/inc/hw/link_encoder.h +new file mode 100644 +index 0000000..d11ef05 +--- /dev/null ++++ b/drivers/gpu/drm/amd/dal/dc/inc/hw/link_encoder.h +@@ -0,0 +1,123 @@ ++/* ++ * link_encoder.h ++ * ++ * Created on: Oct 6, 2015 ++ * Author: yonsun ++ */ ++ ++#ifndef LINK_ENCODER_H_ ++#define LINK_ENCODER_H_ ++ ++#include "grph_object_defs.h" ++#include "signal_types.h" ++#include "dc_types.h" ++ ++struct dc_context; ++struct adapter_service; ++struct encoder_set_dp_phy_pattern_param; ++struct link_mst_stream_allocation_table; ++struct dc_link_settings; ++struct link_training_settings; ++struct core_stream; ++struct pipe_ctx; ++ ++struct encoder_init_data { ++ struct adapter_service *adapter_service; ++ enum channel_id channel; ++ struct graphics_object_id connector; ++ enum hpd_source_id hpd_source; ++ /* TODO: in DAL2, here was pointer to EventManagerInterface */ ++ struct graphics_object_id encoder; ++ struct dc_context *ctx; ++ enum transmitter transmitter; ++}; ++ ++struct encoder_feature_support { ++ union { ++ struct { ++ /* 1 - external encoder; 0 - internal encoder */ ++ uint32_t EXTERNAL_ENCODER:1; ++ uint32_t ANALOG_ENCODER:1; ++ uint32_t STEREO_SYNC:1; ++ /* check the DDC data pin ++ * when performing DP Sink detection */ ++ uint32_t DP_SINK_DETECT_POLL_DATA_PIN:1; ++ /* CPLIB authentication ++ * for external DP chip supported */ ++ uint32_t CPLIB_DP_AUTHENTICATION:1; ++ uint32_t IS_HBR2_CAPABLE:1; ++ uint32_t IS_HBR3_CAPABLE:1; ++ uint32_t IS_HBR2_VALIDATED:1; ++ uint32_t IS_TPS3_CAPABLE:1; ++ uint32_t IS_TPS4_CAPABLE:1; ++ uint32_t IS_AUDIO_CAPABLE:1; ++ uint32_t IS_VCE_SUPPORTED:1; ++ uint32_t IS_CONVERTER:1; ++ uint32_t IS_Y_ONLY_CAPABLE:1; ++ uint32_t IS_YCBCR_CAPABLE:1; ++ } bits; ++ uint32_t raw; ++ } flags; ++ /* maximum supported deep color depth */ ++ enum dc_color_depth max_deep_color; ++ /* maximum supported clock */ ++ uint32_t max_pixel_clock; ++}; ++ ++struct link_enc_status { ++ int dummy; /*TODO*/ ++}; ++struct link_encoder { ++ struct link_encoder_funcs *funcs; ++ struct adapter_service *adapter_service; ++ int32_t aux_channel_offset; ++ struct dc_context *ctx; ++ struct graphics_object_id id; ++ struct graphics_object_id connector; ++ uint32_t input_signals; ++ uint32_t output_signals; ++ enum engine_id preferred_engine; ++ struct encoder_feature_support features; ++ enum transmitter transmitter; ++ enum hpd_source_id hpd_source; ++}; ++ ++struct link_encoder_funcs { ++ bool (*validate_output_with_stream)( ++ struct link_encoder *enc, struct pipe_ctx *pipe_ctx); ++ void (*hw_init)(struct link_encoder *enc); ++ void (*setup)(struct link_encoder *enc, ++ enum signal_type signal); ++ void (*enable_tmds_output)(struct link_encoder *enc, ++ enum clock_source_id clock_source, ++ enum dc_color_depth color_depth, ++ bool hdmi, ++ bool dual_link, ++ uint32_t pixel_clock); ++ void (*enable_dp_output)(struct link_encoder *enc, ++ const struct dc_link_settings *link_settings, ++ enum clock_source_id clock_source); ++ void (*enable_dp_mst_output)(struct link_encoder *enc, ++ const struct dc_link_settings *link_settings, ++ enum clock_source_id clock_source); ++ void (*disable_output)(struct link_encoder *link_enc, ++ enum signal_type signal); ++ void (*dp_set_lane_settings)(struct link_encoder *enc, ++ const struct link_training_settings *link_settings); ++ void (*dp_set_phy_pattern)(struct link_encoder *enc, ++ const struct encoder_set_dp_phy_pattern_param *para); ++ void (*update_mst_stream_allocation_table)( ++ struct link_encoder *enc, ++ const struct link_mst_stream_allocation_table *table); ++ void (*set_lcd_backlight_level) (struct link_encoder *enc, ++ uint32_t level); ++ void (*backlight_control) (struct link_encoder *enc, ++ bool enable); ++ void (*power_control) (struct link_encoder *enc, ++ bool power_up); ++ void (*connect_dig_be_to_fe)(struct link_encoder *enc, ++ enum engine_id engine, ++ bool connect); ++}; ++ ++#endif /* LINK_ENCODER_H_ */ +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 +new file mode 100644 +index 0000000..8339d61 +--- /dev/null ++++ b/drivers/gpu/drm/amd/dal/dc/inc/hw/mem_input.h +@@ -0,0 +1,69 @@ ++/* ++ * 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 __DAL_MEM_INPUT_H__ ++#define __DAL_MEM_INPUT_H__ ++ ++#include "include/grph_object_id.h" ++#include "dc.h" ++ ++struct mem_input { ++ struct mem_input_funcs *funcs; ++ struct dc_context *ctx; ++ uint32_t inst; ++}; ++ ++struct mem_input_funcs { ++ void (*mem_input_program_display_marks)( ++ struct mem_input *mem_input, ++ struct bw_watermarks nbp, ++ struct bw_watermarks stutter, ++ struct bw_watermarks urgent, ++ uint32_t total_dest_line_time_ns); ++ ++ void (*allocate_mem_input)( ++ struct mem_input *mem_input, ++ uint32_t h_total,/* for current target */ ++ uint32_t v_total,/* for current target */ ++ uint32_t pix_clk_khz,/* for current target */ ++ uint32_t total_streams_num); ++ ++ void (*free_mem_input)( ++ struct mem_input *mem_input, ++ uint32_t paths_num); ++ ++ bool (*mem_input_program_surface_flip_and_addr)( ++ struct mem_input *mem_input, ++ const struct dc_plane_address *address, ++ bool flip_immediate); ++ ++ bool (*mem_input_program_surface_config)( ++ struct mem_input *mem_input, ++ enum surface_pixel_format format, ++ struct dc_tiling_info *tiling_info, ++ union plane_size *plane_size, ++ enum dc_rotation_angle rotation); ++}; ++ ++#endif +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/hw/opp.h b/drivers/gpu/drm/amd/dal/dc/inc/hw/opp.h +new file mode 100644 +index 0000000..1c9b732 +--- /dev/null ++++ b/drivers/gpu/drm/amd/dal/dc/inc/hw/opp.h +@@ -0,0 +1,325 @@ ++/* ++ * 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 __DAL_OPP_H__ ++#define __DAL_OPP_H__ ++ ++#include "hw_shared.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, ++ /* 0x1 - Fixed curve sRGB 2.4 */ ++ WIDE_GAMUT_REGAMMA_MODE_GRAPHICS_SRGB24, ++ /* 0x2 - Fixed curve xvYCC 2.22 */ ++ WIDE_GAMUT_REGAMMA_MODE_GRAPHICS_XYYCC22, ++ /* 0x3 - Programmable control A */ ++ WIDE_GAMUT_REGAMMA_MODE_GRAPHICS_MATRIX_A, ++ /* 0x4 - Programmable control B */ ++ WIDE_GAMUT_REGAMMA_MODE_GRAPHICS_MATRIX_B, ++ /* 0x0 - BITS6:4 Bypass */ ++ WIDE_GAMUT_REGAMMA_MODE_OVL_BYPASS, ++ /* 0x1 - Fixed curve sRGB 2.4 */ ++ WIDE_GAMUT_REGAMMA_MODE_OVL_SRGB24, ++ /* 0x2 - Fixed curve xvYCC 2.22 */ ++ WIDE_GAMUT_REGAMMA_MODE_OVL_XYYCC22, ++ /* 0x3 - Programmable control A */ ++ WIDE_GAMUT_REGAMMA_MODE_OVL_MATRIX_A, ++ /* 0x4 - Programmable control B */ ++ WIDE_GAMUT_REGAMMA_MODE_OVL_MATRIX_B ++}; ++ ++struct gamma_pixel { ++ struct fixed31_32 r; ++ struct fixed31_32 g; ++ struct fixed31_32 b; ++}; ++ ++enum channel_name { ++ CHANNEL_NAME_RED, ++ CHANNEL_NAME_GREEN, ++ CHANNEL_NAME_BLUE ++}; ++ ++struct custom_float_format { ++ uint32_t mantissa_bits; ++ uint32_t exponenta_bits; ++ bool sign; ++}; ++ ++struct custom_float_value { ++ uint32_t mantissa; ++ uint32_t exponenta; ++ uint32_t value; ++ bool negative; ++}; ++ ++struct hw_x_point { ++ uint32_t custom_float_x; ++ uint32_t custom_float_x_adjusted; ++ struct fixed31_32 x; ++ struct fixed31_32 adjusted_x; ++ struct fixed31_32 regamma_y_red; ++ struct fixed31_32 regamma_y_green; ++ struct fixed31_32 regamma_y_blue; ++ ++}; ++ ++struct pwl_float_data_ex { ++ struct fixed31_32 r; ++ struct fixed31_32 g; ++ struct fixed31_32 b; ++ struct fixed31_32 delta_r; ++ struct fixed31_32 delta_g; ++ struct fixed31_32 delta_b; ++}; ++ ++enum hw_point_position { ++ /* hw point sits between left and right sw points */ ++ HW_POINT_POSITION_MIDDLE, ++ /* hw point lays left from left (smaller) sw point */ ++ HW_POINT_POSITION_LEFT, ++ /* hw point lays stays from right (bigger) sw point */ ++ HW_POINT_POSITION_RIGHT ++}; ++ ++struct gamma_point { ++ int32_t left_index; ++ int32_t right_index; ++ enum hw_point_position pos; ++ struct fixed31_32 coeff; ++}; ++ ++struct pixel_gamma_point { ++ struct gamma_point r; ++ struct gamma_point g; ++ struct gamma_point b; ++}; ++ ++struct gamma_coefficients { ++ struct fixed31_32 a0[3]; ++ struct fixed31_32 a1[3]; ++ struct fixed31_32 a2[3]; ++ struct fixed31_32 a3[3]; ++ struct fixed31_32 user_gamma[3]; ++ struct fixed31_32 user_contrast; ++ struct fixed31_32 user_brightness; ++}; ++ ++struct csc_adjustments { ++ struct fixed31_32 contrast; ++ struct fixed31_32 saturation; ++ struct fixed31_32 brightness; ++ struct fixed31_32 hue; ++}; ++ ++struct pwl_float_data { ++ struct fixed31_32 r; ++ struct fixed31_32 g; ++ struct fixed31_32 b; ++}; ++ ++enum opp_regamma { ++ OPP_REGAMMA_BYPASS = 0, ++ OPP_REGAMMA_SRGB, ++ OPP_REGAMMA_3_6, ++ OPP_REGAMMA_USER, ++}; ++ ++struct output_pixel_processor { ++ struct dc_context *ctx; ++ uint32_t inst; ++ struct opp_funcs *funcs; ++}; ++ ++enum fmt_stereo_action { ++ FMT_STEREO_ACTION_ENABLE = 0, ++ FMT_STEREO_ACTION_DISABLE, ++ FMT_STEREO_ACTION_UPDATE_POLARITY ++}; ++ ++enum graphics_csc_adjust_type { ++ GRAPHICS_CSC_ADJUST_TYPE_BYPASS = 0, ++ GRAPHICS_CSC_ADJUST_TYPE_HW, /* without adjustments */ ++ GRAPHICS_CSC_ADJUST_TYPE_SW /*use adjustments */ ++}; ++ ++struct default_adjustment { ++ uint32_t lb_color_depth; ++ enum dc_color_space out_color_space; ++ enum dc_color_space in_color_space; ++ enum dc_color_depth color_depth; ++ enum pixel_format surface_pixel_format; ++ enum graphics_csc_adjust_type csc_adjust_type; ++ bool force_hw_default; ++}; ++ ++enum grph_color_adjust_option { ++ GRPH_COLOR_MATRIX_HW_DEFAULT = 1, ++ GRPH_COLOR_MATRIX_SW ++}; ++ ++struct opp_grph_csc_adjustment { ++ enum grph_color_adjust_option color_adjust_option; ++ enum dc_color_space c_space; ++ enum dc_color_depth color_depth; /* clean up to uint32_t */ ++ enum graphics_csc_adjust_type csc_adjust_type; ++ int32_t adjust_divider; ++ int32_t grph_cont; ++ int32_t grph_sat; ++ int32_t grph_bright; ++ int32_t grph_hue; ++}; ++ ++ ++/* Underlay related types */ ++ ++struct hw_adjustment_range { ++ int32_t hw_default; ++ int32_t min; ++ int32_t max; ++ int32_t step; ++ uint32_t divider; /* (actually HW range is min/divider; divider !=0) */ ++}; ++ ++enum ovl_csc_adjust_item { ++ OVERLAY_BRIGHTNESS = 0, ++ OVERLAY_GAMMA, ++ OVERLAY_CONTRAST, ++ OVERLAY_SATURATION, ++ OVERLAY_HUE, ++ OVERLAY_ALPHA, ++ OVERLAY_ALPHA_PER_PIX, ++ OVERLAY_COLOR_TEMPERATURE ++}; ++ ++struct opp_funcs { ++ void (*opp_power_on_regamma_lut)( ++ struct output_pixel_processor *opp, ++ bool power_on); ++ ++ bool (*opp_program_regamma_pwl)( ++ struct output_pixel_processor *opp, ++ const struct pwl_params *params); ++ ++ void (*opp_set_regamma_mode)(struct output_pixel_processor *opp, ++ enum opp_regamma mode); ++ ++ void (*opp_set_csc_adjustment)( ++ struct output_pixel_processor *opp, ++ const struct opp_grph_csc_adjustment *adjust); ++ ++ void (*opp_set_csc_default)( ++ struct output_pixel_processor *opp, ++ const struct default_adjustment *default_adjust); ++ ++ /* FORMATTER RELATED */ ++ void (*opp_program_bit_depth_reduction)( ++ struct output_pixel_processor *opp, ++ const struct bit_depth_reduction_params *params); ++ ++ void (*opp_program_clamping_and_pixel_encoding)( ++ struct output_pixel_processor *opp, ++ const struct clamping_and_pixel_encoding_params *params); ++ ++ void (*opp_set_dyn_expansion)( ++ struct output_pixel_processor *opp, ++ enum dc_color_space color_sp, ++ enum dc_color_depth color_dpth, ++ enum signal_type signal); ++ ++ /* underlay related */ ++ void (*opp_get_underlay_adjustment_range)( ++ struct output_pixel_processor *opp, ++ enum ovl_csc_adjust_item overlay_adjust_item, ++ struct hw_adjustment_range *range); ++ ++ ++ void (*opp_destroy)(struct output_pixel_processor **opp); ++}; ++ ++#endif +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/hw/stream_encoder.h b/drivers/gpu/drm/amd/dal/dc/inc/hw/stream_encoder.h +new file mode 100644 +index 0000000..47cf6de +--- /dev/null ++++ b/drivers/gpu/drm/amd/dal/dc/inc/hw/stream_encoder.h +@@ -0,0 +1,88 @@ ++/* ++ * stream_encoder.h ++ * ++ */ ++ ++#ifndef STREAM_ENCODER_H_ ++#define STREAM_ENCODER_H_ ++ ++#include "include/hw_sequencer_types.h" ++ ++struct dc_bios; ++struct dc_context; ++struct dc_crtc_timing; ++ ++ ++struct encoder_info_packet { ++ bool valid; ++ uint8_t hb0; ++ uint8_t hb1; ++ uint8_t hb2; ++ uint8_t hb3; ++ uint8_t sb[28]; ++}; ++ ++struct encoder_info_frame { ++ /* auxiliary video information */ ++ struct encoder_info_packet avi; ++ struct encoder_info_packet gamut; ++ struct encoder_info_packet vendor; ++ /* source product description */ ++ struct encoder_info_packet spd; ++ /* video stream configuration */ ++ struct encoder_info_packet vsc; ++}; ++ ++struct encoder_unblank_param { ++ struct hw_crtc_timing crtc_timing; ++ struct dc_link_settings link_settings; ++}; ++ ++struct encoder_set_dp_phy_pattern_param { ++ enum dp_test_pattern dp_phy_pattern; ++ const uint8_t *custom_pattern; ++ uint32_t custom_pattern_size; ++ enum dp_panel_mode dp_panel_mode; ++}; ++ ++ ++struct stream_encoder { ++ struct stream_encoder_funcs *funcs; ++ struct dc_context *ctx; ++ struct dc_bios *bp; ++ enum engine_id id; ++}; ++ ++struct stream_encoder_funcs { ++ void (*dp_set_stream_attribute)( ++ struct stream_encoder *enc, ++ struct dc_crtc_timing *crtc_timing); ++ void (*hdmi_set_stream_attribute)( ++ struct stream_encoder *enc, ++ struct dc_crtc_timing *crtc_timing, ++ bool enable_audio); ++ void (*dvi_set_stream_attribute)( ++ struct stream_encoder *enc, ++ struct dc_crtc_timing *crtc_timing, ++ bool is_dual_link); ++ void (*set_mst_bandwidth)( ++ struct stream_encoder *enc, ++ struct fixed31_32 avg_time_slots_per_mtp); ++ void (*update_hdmi_info_packets)( ++ struct stream_encoder *enc, ++ const struct encoder_info_frame *info_frame); ++ void (*stop_hdmi_info_packets)( ++ struct stream_encoder *enc); ++ void (*update_dp_info_packets)( ++ struct stream_encoder *enc, ++ const struct encoder_info_frame *info_frame); ++ void (*stop_dp_info_packets)( ++ struct stream_encoder *enc); ++ void (*dp_blank)( ++ struct stream_encoder *enc); ++ void (*dp_unblank)( ++ struct stream_encoder *enc, ++ const struct encoder_unblank_param *param); ++}; ++ ++#endif /* STREAM_ENCODER_H_ */ +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/hw/timing_generator.h b/drivers/gpu/drm/amd/dal/dc/inc/hw/timing_generator.h +new file mode 100644 +index 0000000..374e222 +--- /dev/null ++++ b/drivers/gpu/drm/amd/dal/dc/inc/hw/timing_generator.h +@@ -0,0 +1,153 @@ ++/* ++ * 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 __DAL_TIMING_GENERATOR_TYPES_H__ ++#define __DAL_TIMING_GENERATOR_TYPES_H__ ++ ++struct dc_bios; ++ ++/** ++ * These parameters are required as input when doing blanking/Unblanking ++*/ ++struct crtc_black_color { ++ uint32_t black_color_r_cr; ++ uint32_t black_color_g_y; ++ uint32_t black_color_b_cb; ++}; ++ ++/* Contains CRTC vertical/horizontal pixel counters */ ++struct crtc_position { ++ uint32_t vertical_count; ++ uint32_t horizontal_count; ++ uint32_t nominal_vcount; ++}; ++ ++ ++enum dcp_gsl_purpose { ++ DCP_GSL_PURPOSE_SURFACE_FLIP = 0, ++ DCP_GSL_PURPOSE_STEREO3D_PHASE, ++ DCP_GSL_PURPOSE_UNDEFINED ++}; ++ ++struct dcp_gsl_params { ++ enum sync_source gsl_group; ++ enum dcp_gsl_purpose gsl_purpose; ++ bool timing_server; ++ bool overlay_present; ++ bool gsl_paused; ++}; ++ ++#define LEFT_EYE_3D_PRIMARY_SURFACE 1 ++#define RIGHT_EYE_3D_PRIMARY_SURFACE 0 ++ ++enum test_pattern_dyn_range { ++ TEST_PATTERN_DYN_RANGE_VESA = 0, ++ TEST_PATTERN_DYN_RANGE_CEA ++}; ++ ++enum test_pattern_mode { ++ TEST_PATTERN_MODE_COLORSQUARES_RGB = 0, ++ TEST_PATTERN_MODE_COLORSQUARES_YCBCR601, ++ TEST_PATTERN_MODE_COLORSQUARES_YCBCR709, ++ TEST_PATTERN_MODE_VERTICALBARS, ++ TEST_PATTERN_MODE_HORIZONTALBARS, ++ TEST_PATTERN_MODE_SINGLERAMP_RGB, ++ TEST_PATTERN_MODE_DUALRAMP_RGB ++}; ++ ++enum test_pattern_color_format { ++ TEST_PATTERN_COLOR_FORMAT_BPC_6 = 0, ++ TEST_PATTERN_COLOR_FORMAT_BPC_8, ++ TEST_PATTERN_COLOR_FORMAT_BPC_10, ++ TEST_PATTERN_COLOR_FORMAT_BPC_12 ++}; ++ ++enum controller_dp_test_pattern { ++ CONTROLLER_DP_TEST_PATTERN_D102 = 0, ++ CONTROLLER_DP_TEST_PATTERN_SYMBOLERROR, ++ CONTROLLER_DP_TEST_PATTERN_PRBS7, ++ CONTROLLER_DP_TEST_PATTERN_COLORSQUARES, ++ CONTROLLER_DP_TEST_PATTERN_VERTICALBARS, ++ CONTROLLER_DP_TEST_PATTERN_HORIZONTALBARS, ++ CONTROLLER_DP_TEST_PATTERN_COLORRAMP, ++ CONTROLLER_DP_TEST_PATTERN_VIDEOMODE, ++ CONTROLLER_DP_TEST_PATTERN_RESERVED_8, ++ CONTROLLER_DP_TEST_PATTERN_RESERVED_9, ++ CONTROLLER_DP_TEST_PATTERN_RESERVED_A, ++ CONTROLLER_DP_TEST_PATTERN_COLORSQUARES_CEA ++}; ++ ++enum crtc_state { ++ CRTC_STATE_VBLANK = 0, ++ CRTC_STATE_VACTIVE ++}; ++ ++struct timing_generator { ++ struct timing_generator_funcs *funcs; ++ struct dc_bios *bp; ++ struct dc_context *ctx; ++}; ++ ++ ++struct dc_crtc_timing; ++ ++struct timing_generator_funcs { ++ bool (*validate_timing)(struct timing_generator *tg, ++ const struct dc_crtc_timing *timing); ++ void (*program_timing)(struct timing_generator *tg, ++ const struct dc_crtc_timing *timing, ++ bool use_vbios); ++ bool (*enable_crtc)(struct timing_generator *tg); ++ bool (*disable_crtc)(struct timing_generator *tg); ++ bool (*is_counter_moving)(struct timing_generator *tg); ++ void (*get_position)(struct timing_generator *tg, ++ int32_t *h_position, ++ int32_t *v_position); ++ uint32_t (*get_frame_count)(struct timing_generator *tg); ++ void (*set_early_control)(struct timing_generator *tg, ++ uint32_t early_cntl); ++ void (*wait_for_state)(struct timing_generator *tg, ++ enum crtc_state state); ++ bool (*set_blank)(struct timing_generator *tg, ++ bool enable_blanking); ++ void (*set_overscan_blank_color) (struct timing_generator *tg, enum dc_color_space black_color); ++ void (*set_blank_color)(struct timing_generator *tg, enum dc_color_space black_color); ++ void (*set_colors)(struct timing_generator *tg, ++ const struct crtc_black_color *blank_color, ++ const struct crtc_black_color *overscan_color); ++ ++ void (*disable_vga)(struct timing_generator *tg); ++ bool (*did_triggered_reset_occur)(struct timing_generator *tg); ++ void (*setup_global_swap_lock)(struct timing_generator *tg, ++ const struct dcp_gsl_params *gsl_params); ++ void (*enable_reset_trigger)(struct timing_generator *tg, ++ const struct trigger_params *trigger_params); ++ void (*disable_reset_trigger)(struct timing_generator *tg); ++ void (*tear_down_global_swap_lock)(struct timing_generator *tg); ++ void (*enable_advanced_request)(struct timing_generator *tg, ++ bool enable, const struct dc_crtc_timing *timing); ++}; ++ ++#endif +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/hw/transform.h b/drivers/gpu/drm/amd/dal/dc/inc/hw/transform.h +new file mode 100644 +index 0000000..bf84f96 +--- /dev/null ++++ b/drivers/gpu/drm/amd/dal/dc/inc/hw/transform.h +@@ -0,0 +1,192 @@ ++/* ++ * 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 __DAL_TRANSFORM_H__ ++#define __DAL_TRANSFORM_H__ ++ ++#include "include/scaler_types.h" ++#include "calcs/scaler_filter.h" ++ ++struct bit_depth_reduction_params; ++ ++struct transform { ++ struct transform_funcs *funcs; ++ struct dc_context *ctx; ++ uint32_t inst; ++ struct scaler_filter *filter; ++}; ++ ++enum lb_pixel_depth { ++ /* do not change the values because it is used as bit vector */ ++ LB_PIXEL_DEPTH_18BPP = 1, ++ LB_PIXEL_DEPTH_24BPP = 2, ++ LB_PIXEL_DEPTH_30BPP = 4, ++ LB_PIXEL_DEPTH_36BPP = 8 ++}; ++ ++ ++enum raw_gamma_ramp_type { ++ GAMMA_RAMP_TYPE_UNINITIALIZED, ++ GAMMA_RAMP_TYPE_DEFAULT, ++ GAMMA_RAMP_TYPE_RGB256, ++ GAMMA_RAMP_TYPE_FIXED_POINT ++}; ++ ++#define NUM_OF_RAW_GAMMA_RAMP_RGB_256 256 ++ ++/* Colorimetry */ ++enum colorimetry { ++ COLORIMETRY_NO_DATA = 0, ++ COLORIMETRY_ITU601 = 1, ++ COLORIMETRY_ITU709 = 2, ++ COLORIMETRY_EXTENDED = 3 ++}; ++ ++enum ds_color_space { ++ DS_COLOR_SPACE_UNKNOWN = 0, ++ DS_COLOR_SPACE_SRGB_FULLRANGE = 1, ++ DS_COLOR_SPACE_SRGB_LIMITEDRANGE, ++ DS_COLOR_SPACE_YPBPR601, ++ DS_COLOR_SPACE_YPBPR709, ++ DS_COLOR_SPACE_YCBCR601, ++ DS_COLOR_SPACE_YCBCR709, ++ DS_COLOR_SPACE_NMVPU_SUPERAA, ++ DS_COLOR_SPACE_YCBCR601_YONLY, ++ DS_COLOR_SPACE_YCBCR709_YONLY/*same as YCbCr, but Y in Full range*/ ++}; ++ ++enum active_format_info { ++ ACTIVE_FORMAT_NO_DATA = 0, ++ ACTIVE_FORMAT_VALID = 1 ++}; ++ ++/* Active format aspect ratio */ ++enum active_format_aspect_ratio { ++ ACTIVE_FORMAT_ASPECT_RATIO_SAME_AS_PICTURE = 8, ++ ACTIVE_FORMAT_ASPECT_RATIO_4_3 = 9, ++ ACTIVE_FORMAT_ASPECT_RATIO_16_9 = 0XA, ++ ACTIVE_FORMAT_ASPECT_RATIO_14_9 = 0XB ++}; ++ ++enum bar_info { ++ BAR_INFO_NOT_VALID = 0, ++ BAR_INFO_VERTICAL_VALID = 1, ++ BAR_INFO_HORIZONTAL_VALID = 2, ++ BAR_INFO_BOTH_VALID = 3 ++}; ++ ++enum picture_scaling { ++ PICTURE_SCALING_UNIFORM = 0, ++ PICTURE_SCALING_HORIZONTAL = 1, ++ PICTURE_SCALING_VERTICAL = 2, ++ PICTURE_SCALING_BOTH = 3 ++}; ++ ++/* RGB quantization range */ ++enum rgb_quantization_range { ++ RGB_QUANTIZATION_DEFAULT_RANGE = 0, ++ RGB_QUANTIZATION_LIMITED_RANGE = 1, ++ RGB_QUANTIZATION_FULL_RANGE = 2, ++ RGB_QUANTIZATION_RESERVED = 3 ++}; ++ ++/* YYC quantization range */ ++enum yyc_quantization_range { ++ YYC_QUANTIZATION_LIMITED_RANGE = 0, ++ YYC_QUANTIZATION_FULL_RANGE = 1, ++ YYC_QUANTIZATION_RESERVED2 = 2, ++ YYC_QUANTIZATION_RESERVED3 = 3 ++}; ++ ++enum graphics_gamut_adjust_type { ++ GRAPHICS_GAMUT_ADJUST_TYPE_BYPASS = 0, ++ GRAPHICS_GAMUT_ADJUST_TYPE_HW, /* without adjustments */ ++ GRAPHICS_GAMUT_ADJUST_TYPE_SW /* use adjustments */ ++}; ++ ++#define CSC_TEMPERATURE_MATRIX_SIZE 9 ++ ++struct xfm_grph_csc_adjustment { ++ int32_t temperature_matrix[CSC_TEMPERATURE_MATRIX_SIZE]; ++ int32_t temperature_divider; ++ enum graphics_gamut_adjust_type gamut_adjust_type; ++}; ++ ++/*overscan or window*/ ++struct overscan_info { ++ uint32_t left; ++ uint32_t right; ++ uint32_t top; ++ uint32_t bottom; ++}; ++ ++struct scaling_ratios { ++ struct fixed31_32 horz; ++ struct fixed31_32 vert; ++ struct fixed31_32 horz_c; ++ struct fixed31_32 vert_c; ++}; ++ ++struct scaler_data { ++ struct overscan_info overscan; ++ struct scaling_taps taps; ++ struct rect viewport; ++ struct scaling_ratios ratios; ++ ++ enum pixel_format format; ++}; ++ ++struct transform_funcs { ++ bool (*transform_power_up)( ++ struct transform *xfm); ++ ++ bool (*transform_set_scaler)( ++ struct transform *xfm, ++ const struct scaler_data *data); ++ ++ void (*transform_set_scaler_bypass)( ++ struct transform *xfm); ++ ++ void (*transform_set_scaler_filter)( ++ struct transform *xfm, ++ struct scaler_filter *filter); ++ ++ void (*transform_set_gamut_remap)( ++ struct transform *xfm, ++ const struct xfm_grph_csc_adjustment *adjust); ++ ++ bool (*transform_set_pixel_storage_depth)( ++ struct transform *xfm, ++ enum lb_pixel_depth depth, ++ const struct bit_depth_reduction_params *bit_depth_params); ++ ++ bool (*transform_get_current_pixel_storage_depth)( ++ struct transform *xfm, ++ enum lb_pixel_depth *depth); ++ ++ void (*transform_set_alpha)(struct transform *xfm, bool enable); ++}; ++ ++#endif +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/hw_shared.h b/drivers/gpu/drm/amd/dal/dc/inc/hw_shared.h +deleted file mode 100644 +index 3b0e616..0000000 +--- a/drivers/gpu/drm/amd/dal/dc/inc/hw_shared.h ++++ /dev/null +@@ -1,74 +0,0 @@ +-/* +- * Copyright 2015 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 __DAL_HW_SHARED_H__ +-#define __DAL_HW_SHARED_H__ +- +-/****************************************************************************** +- * Data types shared between different Virtual HW blocks +- ******************************************************************************/ +-struct gamma_curve { +- uint32_t offset; +- uint32_t segments_num; +-}; +- +-struct curve_points { +- struct fixed31_32 x; +- struct fixed31_32 y; +- struct fixed31_32 offset; +- struct fixed31_32 slope; +- +- uint32_t custom_float_x; +- uint32_t custom_float_y; +- uint32_t custom_float_offset; +- uint32_t custom_float_slope; +-}; +- +-struct pwl_result_data { +- struct fixed31_32 red; +- struct fixed31_32 green; +- struct fixed31_32 blue; +- +- struct fixed31_32 delta_red; +- struct fixed31_32 delta_green; +- struct fixed31_32 delta_blue; +- +- uint32_t red_reg; +- uint32_t green_reg; +- uint32_t blue_reg; +- +- uint32_t delta_red_reg; +- uint32_t delta_green_reg; +- uint32_t delta_blue_reg; +-}; +- +-struct pwl_params { +- uint32_t *data; +- struct gamma_curve arr_curve_points[16]; +- struct curve_points arr_points[3]; +- struct pwl_result_data rgb_resulted[256 + 3]; +- uint32_t hw_points_num; +-}; +-#endif /* __DAL_HW_SHARED_H__ */ +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/ipp.h b/drivers/gpu/drm/amd/dal/dc/inc/ipp.h +deleted file mode 100644 +index 505bf72..0000000 +--- a/drivers/gpu/drm/amd/dal/dc/inc/ipp.h ++++ /dev/null +@@ -1,126 +0,0 @@ +- +-/* +- * Copyright 2015 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 __DAL_IPP_H__ +-#define __DAL_IPP_H__ +- +-#include "hw_shared.h" +- +-#define MAXTRIX_COEFFICIENTS_NUMBER 12 +-#define MAXTRIX_COEFFICIENTS_WRAP_NUMBER (MAXTRIX_COEFFICIENTS_NUMBER + 4) +-#define MAX_OVL_MATRIX_COUNT 12 +- +-/* IPP RELATED */ +-struct input_pixel_processor { +- struct dc_context *ctx; +- uint32_t inst; +- struct ipp_funcs *funcs; +-}; +- +-enum ipp_prescale_mode { +- IPP_PRESCALE_MODE_BYPASS, +- IPP_PRESCALE_MODE_FIXED_SIGNED, +- IPP_PRESCALE_MODE_FLOAT_SIGNED, +- IPP_PRESCALE_MODE_FIXED_UNSIGNED, +- IPP_PRESCALE_MODE_FLOAT_UNSIGNED +-}; +- +-struct ipp_prescale_params { +- enum ipp_prescale_mode mode; +- uint16_t bias; +- uint16_t scale; +-}; +- +-enum ipp_degamma_mode { +- IPP_DEGAMMA_MODE_BYPASS, +- IPP_DEGAMMA_MODE_HW_sRGB, +- IPP_DEGAMMA_MODE_HW_xvYCC, +- IPP_DEGAMMA_MODE_USER_PWL +-}; +- +- +-enum ovl_color_space { +- OVL_COLOR_SPACE_UNKNOWN = 0, +- OVL_COLOR_SPACE_RGB, +- OVL_COLOR_SPACE_YUV601, +- OVL_COLOR_SPACE_YUV709 +-}; +- +-struct dcp_video_matrix { +- enum ovl_color_space color_space; +- int32_t value[MAXTRIX_COEFFICIENTS_NUMBER]; +-}; +- +-enum expansion_mode { +- EXPANSION_MODE_ZERO, +- EXPANSION_MODE_DYNAMIC +-}; +- +-enum ipp_output_format { +- IPP_OUTPUT_FORMAT_12_BIT_FIX, +- IPP_OUTPUT_FORMAT_16_BIT_BYPASS, +- IPP_OUTPUT_FORMAT_FLOAT +-}; +- +-struct ipp_funcs { +- +- /*** cursor ***/ +- void (*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); +- +- /*** setup input pixel processing ***/ +- +- /* put the entire pixel processor to bypass */ +- void (*ipp_full_bypass)(struct input_pixel_processor *ipp); +- +- /* setup ipp to expand/convert input to pixel processor internal format */ +- void (*ipp_setup)( +- enum surface_pixel_format input_format, +- enum expansion_mode mode, +- enum ipp_output_format output_format); +- +- /* DCE function to setup IPP. TODO: see if we can consolidate to setup */ +- void (*ipp_program_prescale)( +- struct input_pixel_processor *ipp, +- struct ipp_prescale_params *params); +- +- /*** DEGAMMA RELATED ***/ +- bool (*ipp_set_degamma)( +- struct input_pixel_processor *ipp, +- enum ipp_degamma_mode mode); +- +- bool (*ipp_program_degamma_pwl)( +- struct input_pixel_processor *ipp, +- const struct pwl_params *params); +- +-}; +- +-#endif /* __DAL_IPP_H__ */ +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/link_encoder.h b/drivers/gpu/drm/amd/dal/dc/inc/link_encoder.h +deleted file mode 100644 +index d11ef05..0000000 +--- a/drivers/gpu/drm/amd/dal/dc/inc/link_encoder.h ++++ /dev/null +@@ -1,123 +0,0 @@ +-/* +- * link_encoder.h +- * +- * Created on: Oct 6, 2015 +- * Author: yonsun +- */ +- +-#ifndef LINK_ENCODER_H_ +-#define LINK_ENCODER_H_ +- +-#include "grph_object_defs.h" +-#include "signal_types.h" +-#include "dc_types.h" +- +-struct dc_context; +-struct adapter_service; +-struct encoder_set_dp_phy_pattern_param; +-struct link_mst_stream_allocation_table; +-struct dc_link_settings; +-struct link_training_settings; +-struct core_stream; +-struct pipe_ctx; +- +-struct encoder_init_data { +- struct adapter_service *adapter_service; +- enum channel_id channel; +- struct graphics_object_id connector; +- enum hpd_source_id hpd_source; +- /* TODO: in DAL2, here was pointer to EventManagerInterface */ +- struct graphics_object_id encoder; +- struct dc_context *ctx; +- enum transmitter transmitter; +-}; +- +-struct encoder_feature_support { +- union { +- struct { +- /* 1 - external encoder; 0 - internal encoder */ +- uint32_t EXTERNAL_ENCODER:1; +- uint32_t ANALOG_ENCODER:1; +- uint32_t STEREO_SYNC:1; +- /* check the DDC data pin +- * when performing DP Sink detection */ +- uint32_t DP_SINK_DETECT_POLL_DATA_PIN:1; +- /* CPLIB authentication +- * for external DP chip supported */ +- uint32_t CPLIB_DP_AUTHENTICATION:1; +- uint32_t IS_HBR2_CAPABLE:1; +- uint32_t IS_HBR3_CAPABLE:1; +- uint32_t IS_HBR2_VALIDATED:1; +- uint32_t IS_TPS3_CAPABLE:1; +- uint32_t IS_TPS4_CAPABLE:1; +- uint32_t IS_AUDIO_CAPABLE:1; +- uint32_t IS_VCE_SUPPORTED:1; +- uint32_t IS_CONVERTER:1; +- uint32_t IS_Y_ONLY_CAPABLE:1; +- uint32_t IS_YCBCR_CAPABLE:1; +- } bits; +- uint32_t raw; +- } flags; +- /* maximum supported deep color depth */ +- enum dc_color_depth max_deep_color; +- /* maximum supported clock */ +- uint32_t max_pixel_clock; +-}; +- +-struct link_enc_status { +- int dummy; /*TODO*/ +-}; +-struct link_encoder { +- struct link_encoder_funcs *funcs; +- struct adapter_service *adapter_service; +- int32_t aux_channel_offset; +- struct dc_context *ctx; +- struct graphics_object_id id; +- struct graphics_object_id connector; +- uint32_t input_signals; +- uint32_t output_signals; +- enum engine_id preferred_engine; +- struct encoder_feature_support features; +- enum transmitter transmitter; +- enum hpd_source_id hpd_source; +-}; +- +-struct link_encoder_funcs { +- bool (*validate_output_with_stream)( +- struct link_encoder *enc, struct pipe_ctx *pipe_ctx); +- void (*hw_init)(struct link_encoder *enc); +- void (*setup)(struct link_encoder *enc, +- enum signal_type signal); +- void (*enable_tmds_output)(struct link_encoder *enc, +- enum clock_source_id clock_source, +- enum dc_color_depth color_depth, +- bool hdmi, +- bool dual_link, +- uint32_t pixel_clock); +- void (*enable_dp_output)(struct link_encoder *enc, +- const struct dc_link_settings *link_settings, +- enum clock_source_id clock_source); +- void (*enable_dp_mst_output)(struct link_encoder *enc, +- const struct dc_link_settings *link_settings, +- enum clock_source_id clock_source); +- void (*disable_output)(struct link_encoder *link_enc, +- enum signal_type signal); +- void (*dp_set_lane_settings)(struct link_encoder *enc, +- const struct link_training_settings *link_settings); +- void (*dp_set_phy_pattern)(struct link_encoder *enc, +- const struct encoder_set_dp_phy_pattern_param *para); +- void (*update_mst_stream_allocation_table)( +- struct link_encoder *enc, +- const struct link_mst_stream_allocation_table *table); +- void (*set_lcd_backlight_level) (struct link_encoder *enc, +- uint32_t level); +- void (*backlight_control) (struct link_encoder *enc, +- bool enable); +- void (*power_control) (struct link_encoder *enc, +- bool power_up); +- void (*connect_dig_be_to_fe)(struct link_encoder *enc, +- enum engine_id engine, +- bool connect); +-}; +- +-#endif /* LINK_ENCODER_H_ */ +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/mem_input.h b/drivers/gpu/drm/amd/dal/dc/inc/mem_input.h +deleted file mode 100644 +index 8339d61..0000000 +--- a/drivers/gpu/drm/amd/dal/dc/inc/mem_input.h ++++ /dev/null +@@ -1,69 +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 __DAL_MEM_INPUT_H__ +-#define __DAL_MEM_INPUT_H__ +- +-#include "include/grph_object_id.h" +-#include "dc.h" +- +-struct mem_input { +- struct mem_input_funcs *funcs; +- struct dc_context *ctx; +- uint32_t inst; +-}; +- +-struct mem_input_funcs { +- void (*mem_input_program_display_marks)( +- struct mem_input *mem_input, +- struct bw_watermarks nbp, +- struct bw_watermarks stutter, +- struct bw_watermarks urgent, +- uint32_t total_dest_line_time_ns); +- +- void (*allocate_mem_input)( +- struct mem_input *mem_input, +- uint32_t h_total,/* for current target */ +- uint32_t v_total,/* for current target */ +- uint32_t pix_clk_khz,/* for current target */ +- uint32_t total_streams_num); +- +- void (*free_mem_input)( +- struct mem_input *mem_input, +- uint32_t paths_num); +- +- bool (*mem_input_program_surface_flip_and_addr)( +- struct mem_input *mem_input, +- const struct dc_plane_address *address, +- bool flip_immediate); +- +- bool (*mem_input_program_surface_config)( +- struct mem_input *mem_input, +- enum surface_pixel_format format, +- struct dc_tiling_info *tiling_info, +- union plane_size *plane_size, +- enum dc_rotation_angle rotation); +-}; +- +-#endif +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/opp.h b/drivers/gpu/drm/amd/dal/dc/inc/opp.h +deleted file mode 100644 +index 1c9b732..0000000 +--- a/drivers/gpu/drm/amd/dal/dc/inc/opp.h ++++ /dev/null +@@ -1,325 +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 __DAL_OPP_H__ +-#define __DAL_OPP_H__ +- +-#include "hw_shared.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, +- /* 0x1 - Fixed curve sRGB 2.4 */ +- WIDE_GAMUT_REGAMMA_MODE_GRAPHICS_SRGB24, +- /* 0x2 - Fixed curve xvYCC 2.22 */ +- WIDE_GAMUT_REGAMMA_MODE_GRAPHICS_XYYCC22, +- /* 0x3 - Programmable control A */ +- WIDE_GAMUT_REGAMMA_MODE_GRAPHICS_MATRIX_A, +- /* 0x4 - Programmable control B */ +- WIDE_GAMUT_REGAMMA_MODE_GRAPHICS_MATRIX_B, +- /* 0x0 - BITS6:4 Bypass */ +- WIDE_GAMUT_REGAMMA_MODE_OVL_BYPASS, +- /* 0x1 - Fixed curve sRGB 2.4 */ +- WIDE_GAMUT_REGAMMA_MODE_OVL_SRGB24, +- /* 0x2 - Fixed curve xvYCC 2.22 */ +- WIDE_GAMUT_REGAMMA_MODE_OVL_XYYCC22, +- /* 0x3 - Programmable control A */ +- WIDE_GAMUT_REGAMMA_MODE_OVL_MATRIX_A, +- /* 0x4 - Programmable control B */ +- WIDE_GAMUT_REGAMMA_MODE_OVL_MATRIX_B +-}; +- +-struct gamma_pixel { +- struct fixed31_32 r; +- struct fixed31_32 g; +- struct fixed31_32 b; +-}; +- +-enum channel_name { +- CHANNEL_NAME_RED, +- CHANNEL_NAME_GREEN, +- CHANNEL_NAME_BLUE +-}; +- +-struct custom_float_format { +- uint32_t mantissa_bits; +- uint32_t exponenta_bits; +- bool sign; +-}; +- +-struct custom_float_value { +- uint32_t mantissa; +- uint32_t exponenta; +- uint32_t value; +- bool negative; +-}; +- +-struct hw_x_point { +- uint32_t custom_float_x; +- uint32_t custom_float_x_adjusted; +- struct fixed31_32 x; +- struct fixed31_32 adjusted_x; +- struct fixed31_32 regamma_y_red; +- struct fixed31_32 regamma_y_green; +- struct fixed31_32 regamma_y_blue; +- +-}; +- +-struct pwl_float_data_ex { +- struct fixed31_32 r; +- struct fixed31_32 g; +- struct fixed31_32 b; +- struct fixed31_32 delta_r; +- struct fixed31_32 delta_g; +- struct fixed31_32 delta_b; +-}; +- +-enum hw_point_position { +- /* hw point sits between left and right sw points */ +- HW_POINT_POSITION_MIDDLE, +- /* hw point lays left from left (smaller) sw point */ +- HW_POINT_POSITION_LEFT, +- /* hw point lays stays from right (bigger) sw point */ +- HW_POINT_POSITION_RIGHT +-}; +- +-struct gamma_point { +- int32_t left_index; +- int32_t right_index; +- enum hw_point_position pos; +- struct fixed31_32 coeff; +-}; +- +-struct pixel_gamma_point { +- struct gamma_point r; +- struct gamma_point g; +- struct gamma_point b; +-}; +- +-struct gamma_coefficients { +- struct fixed31_32 a0[3]; +- struct fixed31_32 a1[3]; +- struct fixed31_32 a2[3]; +- struct fixed31_32 a3[3]; +- struct fixed31_32 user_gamma[3]; +- struct fixed31_32 user_contrast; +- struct fixed31_32 user_brightness; +-}; +- +-struct csc_adjustments { +- struct fixed31_32 contrast; +- struct fixed31_32 saturation; +- struct fixed31_32 brightness; +- struct fixed31_32 hue; +-}; +- +-struct pwl_float_data { +- struct fixed31_32 r; +- struct fixed31_32 g; +- struct fixed31_32 b; +-}; +- +-enum opp_regamma { +- OPP_REGAMMA_BYPASS = 0, +- OPP_REGAMMA_SRGB, +- OPP_REGAMMA_3_6, +- OPP_REGAMMA_USER, +-}; +- +-struct output_pixel_processor { +- struct dc_context *ctx; +- uint32_t inst; +- struct opp_funcs *funcs; +-}; +- +-enum fmt_stereo_action { +- FMT_STEREO_ACTION_ENABLE = 0, +- FMT_STEREO_ACTION_DISABLE, +- FMT_STEREO_ACTION_UPDATE_POLARITY +-}; +- +-enum graphics_csc_adjust_type { +- GRAPHICS_CSC_ADJUST_TYPE_BYPASS = 0, +- GRAPHICS_CSC_ADJUST_TYPE_HW, /* without adjustments */ +- GRAPHICS_CSC_ADJUST_TYPE_SW /*use adjustments */ +-}; +- +-struct default_adjustment { +- uint32_t lb_color_depth; +- enum dc_color_space out_color_space; +- enum dc_color_space in_color_space; +- enum dc_color_depth color_depth; +- enum pixel_format surface_pixel_format; +- enum graphics_csc_adjust_type csc_adjust_type; +- bool force_hw_default; +-}; +- +-enum grph_color_adjust_option { +- GRPH_COLOR_MATRIX_HW_DEFAULT = 1, +- GRPH_COLOR_MATRIX_SW +-}; +- +-struct opp_grph_csc_adjustment { +- enum grph_color_adjust_option color_adjust_option; +- enum dc_color_space c_space; +- enum dc_color_depth color_depth; /* clean up to uint32_t */ +- enum graphics_csc_adjust_type csc_adjust_type; +- int32_t adjust_divider; +- int32_t grph_cont; +- int32_t grph_sat; +- int32_t grph_bright; +- int32_t grph_hue; +-}; +- +- +-/* Underlay related types */ +- +-struct hw_adjustment_range { +- int32_t hw_default; +- int32_t min; +- int32_t max; +- int32_t step; +- uint32_t divider; /* (actually HW range is min/divider; divider !=0) */ +-}; +- +-enum ovl_csc_adjust_item { +- OVERLAY_BRIGHTNESS = 0, +- OVERLAY_GAMMA, +- OVERLAY_CONTRAST, +- OVERLAY_SATURATION, +- OVERLAY_HUE, +- OVERLAY_ALPHA, +- OVERLAY_ALPHA_PER_PIX, +- OVERLAY_COLOR_TEMPERATURE +-}; +- +-struct opp_funcs { +- void (*opp_power_on_regamma_lut)( +- struct output_pixel_processor *opp, +- bool power_on); +- +- bool (*opp_program_regamma_pwl)( +- struct output_pixel_processor *opp, +- const struct pwl_params *params); +- +- void (*opp_set_regamma_mode)(struct output_pixel_processor *opp, +- enum opp_regamma mode); +- +- void (*opp_set_csc_adjustment)( +- struct output_pixel_processor *opp, +- const struct opp_grph_csc_adjustment *adjust); +- +- void (*opp_set_csc_default)( +- struct output_pixel_processor *opp, +- const struct default_adjustment *default_adjust); +- +- /* FORMATTER RELATED */ +- void (*opp_program_bit_depth_reduction)( +- struct output_pixel_processor *opp, +- const struct bit_depth_reduction_params *params); +- +- void (*opp_program_clamping_and_pixel_encoding)( +- struct output_pixel_processor *opp, +- const struct clamping_and_pixel_encoding_params *params); +- +- void (*opp_set_dyn_expansion)( +- struct output_pixel_processor *opp, +- enum dc_color_space color_sp, +- enum dc_color_depth color_dpth, +- enum signal_type signal); +- +- /* underlay related */ +- void (*opp_get_underlay_adjustment_range)( +- struct output_pixel_processor *opp, +- enum ovl_csc_adjust_item overlay_adjust_item, +- struct hw_adjustment_range *range); +- +- +- void (*opp_destroy)(struct output_pixel_processor **opp); +-}; +- +-#endif +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/stream_encoder.h b/drivers/gpu/drm/amd/dal/dc/inc/stream_encoder.h +deleted file mode 100644 +index 47cf6de..0000000 +--- a/drivers/gpu/drm/amd/dal/dc/inc/stream_encoder.h ++++ /dev/null +@@ -1,88 +0,0 @@ +-/* +- * stream_encoder.h +- * +- */ +- +-#ifndef STREAM_ENCODER_H_ +-#define STREAM_ENCODER_H_ +- +-#include "include/hw_sequencer_types.h" +- +-struct dc_bios; +-struct dc_context; +-struct dc_crtc_timing; +- +- +-struct encoder_info_packet { +- bool valid; +- uint8_t hb0; +- uint8_t hb1; +- uint8_t hb2; +- uint8_t hb3; +- uint8_t sb[28]; +-}; +- +-struct encoder_info_frame { +- /* auxiliary video information */ +- struct encoder_info_packet avi; +- struct encoder_info_packet gamut; +- struct encoder_info_packet vendor; +- /* source product description */ +- struct encoder_info_packet spd; +- /* video stream configuration */ +- struct encoder_info_packet vsc; +-}; +- +-struct encoder_unblank_param { +- struct hw_crtc_timing crtc_timing; +- struct dc_link_settings link_settings; +-}; +- +-struct encoder_set_dp_phy_pattern_param { +- enum dp_test_pattern dp_phy_pattern; +- const uint8_t *custom_pattern; +- uint32_t custom_pattern_size; +- enum dp_panel_mode dp_panel_mode; +-}; +- +- +-struct stream_encoder { +- struct stream_encoder_funcs *funcs; +- struct dc_context *ctx; +- struct dc_bios *bp; +- enum engine_id id; +-}; +- +-struct stream_encoder_funcs { +- void (*dp_set_stream_attribute)( +- struct stream_encoder *enc, +- struct dc_crtc_timing *crtc_timing); +- void (*hdmi_set_stream_attribute)( +- struct stream_encoder *enc, +- struct dc_crtc_timing *crtc_timing, +- bool enable_audio); +- void (*dvi_set_stream_attribute)( +- struct stream_encoder *enc, +- struct dc_crtc_timing *crtc_timing, +- bool is_dual_link); +- void (*set_mst_bandwidth)( +- struct stream_encoder *enc, +- struct fixed31_32 avg_time_slots_per_mtp); +- void (*update_hdmi_info_packets)( +- struct stream_encoder *enc, +- const struct encoder_info_frame *info_frame); +- void (*stop_hdmi_info_packets)( +- struct stream_encoder *enc); +- void (*update_dp_info_packets)( +- struct stream_encoder *enc, +- const struct encoder_info_frame *info_frame); +- void (*stop_dp_info_packets)( +- struct stream_encoder *enc); +- void (*dp_blank)( +- struct stream_encoder *enc); +- void (*dp_unblank)( +- struct stream_encoder *enc, +- const struct encoder_unblank_param *param); +-}; +- +-#endif /* STREAM_ENCODER_H_ */ +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/timing_generator.h b/drivers/gpu/drm/amd/dal/dc/inc/timing_generator.h +deleted file mode 100644 +index 374e222..0000000 +--- a/drivers/gpu/drm/amd/dal/dc/inc/timing_generator.h ++++ /dev/null +@@ -1,153 +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 __DAL_TIMING_GENERATOR_TYPES_H__ +-#define __DAL_TIMING_GENERATOR_TYPES_H__ +- +-struct dc_bios; +- +-/** +- * These parameters are required as input when doing blanking/Unblanking +-*/ +-struct crtc_black_color { +- uint32_t black_color_r_cr; +- uint32_t black_color_g_y; +- uint32_t black_color_b_cb; +-}; +- +-/* Contains CRTC vertical/horizontal pixel counters */ +-struct crtc_position { +- uint32_t vertical_count; +- uint32_t horizontal_count; +- uint32_t nominal_vcount; +-}; +- +- +-enum dcp_gsl_purpose { +- DCP_GSL_PURPOSE_SURFACE_FLIP = 0, +- DCP_GSL_PURPOSE_STEREO3D_PHASE, +- DCP_GSL_PURPOSE_UNDEFINED +-}; +- +-struct dcp_gsl_params { +- enum sync_source gsl_group; +- enum dcp_gsl_purpose gsl_purpose; +- bool timing_server; +- bool overlay_present; +- bool gsl_paused; +-}; +- +-#define LEFT_EYE_3D_PRIMARY_SURFACE 1 +-#define RIGHT_EYE_3D_PRIMARY_SURFACE 0 +- +-enum test_pattern_dyn_range { +- TEST_PATTERN_DYN_RANGE_VESA = 0, +- TEST_PATTERN_DYN_RANGE_CEA +-}; +- +-enum test_pattern_mode { +- TEST_PATTERN_MODE_COLORSQUARES_RGB = 0, +- TEST_PATTERN_MODE_COLORSQUARES_YCBCR601, +- TEST_PATTERN_MODE_COLORSQUARES_YCBCR709, +- TEST_PATTERN_MODE_VERTICALBARS, +- TEST_PATTERN_MODE_HORIZONTALBARS, +- TEST_PATTERN_MODE_SINGLERAMP_RGB, +- TEST_PATTERN_MODE_DUALRAMP_RGB +-}; +- +-enum test_pattern_color_format { +- TEST_PATTERN_COLOR_FORMAT_BPC_6 = 0, +- TEST_PATTERN_COLOR_FORMAT_BPC_8, +- TEST_PATTERN_COLOR_FORMAT_BPC_10, +- TEST_PATTERN_COLOR_FORMAT_BPC_12 +-}; +- +-enum controller_dp_test_pattern { +- CONTROLLER_DP_TEST_PATTERN_D102 = 0, +- CONTROLLER_DP_TEST_PATTERN_SYMBOLERROR, +- CONTROLLER_DP_TEST_PATTERN_PRBS7, +- CONTROLLER_DP_TEST_PATTERN_COLORSQUARES, +- CONTROLLER_DP_TEST_PATTERN_VERTICALBARS, +- CONTROLLER_DP_TEST_PATTERN_HORIZONTALBARS, +- CONTROLLER_DP_TEST_PATTERN_COLORRAMP, +- CONTROLLER_DP_TEST_PATTERN_VIDEOMODE, +- CONTROLLER_DP_TEST_PATTERN_RESERVED_8, +- CONTROLLER_DP_TEST_PATTERN_RESERVED_9, +- CONTROLLER_DP_TEST_PATTERN_RESERVED_A, +- CONTROLLER_DP_TEST_PATTERN_COLORSQUARES_CEA +-}; +- +-enum crtc_state { +- CRTC_STATE_VBLANK = 0, +- CRTC_STATE_VACTIVE +-}; +- +-struct timing_generator { +- struct timing_generator_funcs *funcs; +- struct dc_bios *bp; +- struct dc_context *ctx; +-}; +- +- +-struct dc_crtc_timing; +- +-struct timing_generator_funcs { +- bool (*validate_timing)(struct timing_generator *tg, +- const struct dc_crtc_timing *timing); +- void (*program_timing)(struct timing_generator *tg, +- const struct dc_crtc_timing *timing, +- bool use_vbios); +- bool (*enable_crtc)(struct timing_generator *tg); +- bool (*disable_crtc)(struct timing_generator *tg); +- bool (*is_counter_moving)(struct timing_generator *tg); +- void (*get_position)(struct timing_generator *tg, +- int32_t *h_position, +- int32_t *v_position); +- uint32_t (*get_frame_count)(struct timing_generator *tg); +- void (*set_early_control)(struct timing_generator *tg, +- uint32_t early_cntl); +- void (*wait_for_state)(struct timing_generator *tg, +- enum crtc_state state); +- bool (*set_blank)(struct timing_generator *tg, +- bool enable_blanking); +- void (*set_overscan_blank_color) (struct timing_generator *tg, enum dc_color_space black_color); +- void (*set_blank_color)(struct timing_generator *tg, enum dc_color_space black_color); +- void (*set_colors)(struct timing_generator *tg, +- const struct crtc_black_color *blank_color, +- const struct crtc_black_color *overscan_color); +- +- void (*disable_vga)(struct timing_generator *tg); +- bool (*did_triggered_reset_occur)(struct timing_generator *tg); +- void (*setup_global_swap_lock)(struct timing_generator *tg, +- const struct dcp_gsl_params *gsl_params); +- void (*enable_reset_trigger)(struct timing_generator *tg, +- const struct trigger_params *trigger_params); +- void (*disable_reset_trigger)(struct timing_generator *tg); +- void (*tear_down_global_swap_lock)(struct timing_generator *tg); +- void (*enable_advanced_request)(struct timing_generator *tg, +- bool enable, const struct dc_crtc_timing *timing); +-}; +- +-#endif +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/transform.h b/drivers/gpu/drm/amd/dal/dc/inc/transform.h +deleted file mode 100644 +index bf84f96..0000000 +--- a/drivers/gpu/drm/amd/dal/dc/inc/transform.h ++++ /dev/null +@@ -1,192 +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 __DAL_TRANSFORM_H__ +-#define __DAL_TRANSFORM_H__ +- +-#include "include/scaler_types.h" +-#include "calcs/scaler_filter.h" +- +-struct bit_depth_reduction_params; +- +-struct transform { +- struct transform_funcs *funcs; +- struct dc_context *ctx; +- uint32_t inst; +- struct scaler_filter *filter; +-}; +- +-enum lb_pixel_depth { +- /* do not change the values because it is used as bit vector */ +- LB_PIXEL_DEPTH_18BPP = 1, +- LB_PIXEL_DEPTH_24BPP = 2, +- LB_PIXEL_DEPTH_30BPP = 4, +- LB_PIXEL_DEPTH_36BPP = 8 +-}; +- +- +-enum raw_gamma_ramp_type { +- GAMMA_RAMP_TYPE_UNINITIALIZED, +- GAMMA_RAMP_TYPE_DEFAULT, +- GAMMA_RAMP_TYPE_RGB256, +- GAMMA_RAMP_TYPE_FIXED_POINT +-}; +- +-#define NUM_OF_RAW_GAMMA_RAMP_RGB_256 256 +- +-/* Colorimetry */ +-enum colorimetry { +- COLORIMETRY_NO_DATA = 0, +- COLORIMETRY_ITU601 = 1, +- COLORIMETRY_ITU709 = 2, +- COLORIMETRY_EXTENDED = 3 +-}; +- +-enum ds_color_space { +- DS_COLOR_SPACE_UNKNOWN = 0, +- DS_COLOR_SPACE_SRGB_FULLRANGE = 1, +- DS_COLOR_SPACE_SRGB_LIMITEDRANGE, +- DS_COLOR_SPACE_YPBPR601, +- DS_COLOR_SPACE_YPBPR709, +- DS_COLOR_SPACE_YCBCR601, +- DS_COLOR_SPACE_YCBCR709, +- DS_COLOR_SPACE_NMVPU_SUPERAA, +- DS_COLOR_SPACE_YCBCR601_YONLY, +- DS_COLOR_SPACE_YCBCR709_YONLY/*same as YCbCr, but Y in Full range*/ +-}; +- +-enum active_format_info { +- ACTIVE_FORMAT_NO_DATA = 0, +- ACTIVE_FORMAT_VALID = 1 +-}; +- +-/* Active format aspect ratio */ +-enum active_format_aspect_ratio { +- ACTIVE_FORMAT_ASPECT_RATIO_SAME_AS_PICTURE = 8, +- ACTIVE_FORMAT_ASPECT_RATIO_4_3 = 9, +- ACTIVE_FORMAT_ASPECT_RATIO_16_9 = 0XA, +- ACTIVE_FORMAT_ASPECT_RATIO_14_9 = 0XB +-}; +- +-enum bar_info { +- BAR_INFO_NOT_VALID = 0, +- BAR_INFO_VERTICAL_VALID = 1, +- BAR_INFO_HORIZONTAL_VALID = 2, +- BAR_INFO_BOTH_VALID = 3 +-}; +- +-enum picture_scaling { +- PICTURE_SCALING_UNIFORM = 0, +- PICTURE_SCALING_HORIZONTAL = 1, +- PICTURE_SCALING_VERTICAL = 2, +- PICTURE_SCALING_BOTH = 3 +-}; +- +-/* RGB quantization range */ +-enum rgb_quantization_range { +- RGB_QUANTIZATION_DEFAULT_RANGE = 0, +- RGB_QUANTIZATION_LIMITED_RANGE = 1, +- RGB_QUANTIZATION_FULL_RANGE = 2, +- RGB_QUANTIZATION_RESERVED = 3 +-}; +- +-/* YYC quantization range */ +-enum yyc_quantization_range { +- YYC_QUANTIZATION_LIMITED_RANGE = 0, +- YYC_QUANTIZATION_FULL_RANGE = 1, +- YYC_QUANTIZATION_RESERVED2 = 2, +- YYC_QUANTIZATION_RESERVED3 = 3 +-}; +- +-enum graphics_gamut_adjust_type { +- GRAPHICS_GAMUT_ADJUST_TYPE_BYPASS = 0, +- GRAPHICS_GAMUT_ADJUST_TYPE_HW, /* without adjustments */ +- GRAPHICS_GAMUT_ADJUST_TYPE_SW /* use adjustments */ +-}; +- +-#define CSC_TEMPERATURE_MATRIX_SIZE 9 +- +-struct xfm_grph_csc_adjustment { +- int32_t temperature_matrix[CSC_TEMPERATURE_MATRIX_SIZE]; +- int32_t temperature_divider; +- enum graphics_gamut_adjust_type gamut_adjust_type; +-}; +- +-/*overscan or window*/ +-struct overscan_info { +- uint32_t left; +- uint32_t right; +- uint32_t top; +- uint32_t bottom; +-}; +- +-struct scaling_ratios { +- struct fixed31_32 horz; +- struct fixed31_32 vert; +- struct fixed31_32 horz_c; +- struct fixed31_32 vert_c; +-}; +- +-struct scaler_data { +- struct overscan_info overscan; +- struct scaling_taps taps; +- struct rect viewport; +- struct scaling_ratios ratios; +- +- enum pixel_format format; +-}; +- +-struct transform_funcs { +- bool (*transform_power_up)( +- struct transform *xfm); +- +- bool (*transform_set_scaler)( +- struct transform *xfm, +- const struct scaler_data *data); +- +- void (*transform_set_scaler_bypass)( +- struct transform *xfm); +- +- void (*transform_set_scaler_filter)( +- struct transform *xfm, +- struct scaler_filter *filter); +- +- void (*transform_set_gamut_remap)( +- struct transform *xfm, +- const struct xfm_grph_csc_adjustment *adjust); +- +- bool (*transform_set_pixel_storage_depth)( +- struct transform *xfm, +- enum lb_pixel_depth depth, +- const struct bit_depth_reduction_params *bit_depth_params); +- +- bool (*transform_get_current_pixel_storage_depth)( +- struct transform *xfm, +- enum lb_pixel_depth *depth); +- +- void (*transform_set_alpha)(struct transform *xfm, bool enable); +-}; +- +-#endif +diff --git a/drivers/gpu/drm/amd/dal/dc/virtual/virtual_link_encoder.h b/drivers/gpu/drm/amd/dal/dc/virtual/virtual_link_encoder.h +index c34bd04..e44713f 100644 +--- a/drivers/gpu/drm/amd/dal/dc/virtual/virtual_link_encoder.h ++++ b/drivers/gpu/drm/amd/dal/dc/virtual/virtual_link_encoder.h +@@ -26,7 +26,7 @@ + #ifndef __DC_VIRTUAL_LINK_ENCODER_H__ + #define __DC_VIRTUAL_LINK_ENCODER_H__ + +-#include "inc/link_encoder.h" ++#include "link_encoder.h" + + bool virtual_link_encoder_construct( + struct link_encoder *enc, const struct encoder_init_data *init_data); +diff --git a/drivers/gpu/drm/amd/dal/dc/virtual/virtual_stream_encoder.h b/drivers/gpu/drm/amd/dal/dc/virtual/virtual_stream_encoder.h +index dce8425..bf3422c 100644 +--- a/drivers/gpu/drm/amd/dal/dc/virtual/virtual_stream_encoder.h ++++ b/drivers/gpu/drm/amd/dal/dc/virtual/virtual_stream_encoder.h +@@ -26,7 +26,7 @@ + #ifndef __DC_VIRTUAL_STREAM_ENCODER_H__ + #define __DC_VIRTUAL_STREAM_ENCODER_H__ + +-#include "inc/stream_encoder.h" ++#include "stream_encoder.h" + + struct stream_encoder *virtual_stream_encoder_create( + struct dc_context *ctx, struct dc_bios *bp); +-- +2.7.4 + |