summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display/dc/inc
diff options
context:
space:
mode:
authorTony Cheng <tony.cheng@amd.com>2017-07-22 21:58:08 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-09-26 18:15:32 -0400
commit7db90a6b58761577596499ddd90f3c5ace2b716d (patch)
tree685292bfc1e3ccaf1a8dced885401c72125cb219 /drivers/gpu/drm/amd/display/dc/inc
parent8748068764e7a50ac787c1c17f402f3fbbe97ccc (diff)
downloadlinux-7db90a6b58761577596499ddd90f3c5ace2b716d.tar.gz
linux-7db90a6b58761577596499ddd90f3c5ace2b716d.tar.bz2
linux-7db90a6b58761577596499ddd90f3c5ace2b716d.zip
drm/amd/display: move ocsc programming from opp to dpp
Signed-off-by: Tony Cheng <tony.cheng@amd.com> Reviewed-by: Yuehin Lau <Yuehin.Lau@amd.com> Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> Acked-by: Harry Wentland <Harry.Wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/inc')
-rw-r--r--drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h37
-rw-r--r--drivers/gpu/drm/amd/display/dc/inc/hw/opp.h21
-rw-r--r--drivers/gpu/drm/amd/display/dc/inc/hw/transform.h26
3 files changed, 50 insertions, 34 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h b/drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h
index 0212618a36be..137b4c8dc9d5 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/hw_shared.h
@@ -28,6 +28,7 @@
#include "os_types.h"
#include "fixed31_32.h"
+#include "dc_hw_types.h"
/******************************************************************************
* Data types shared between different Virtual HW blocks
@@ -76,4 +77,40 @@ struct pwl_params {
struct pwl_result_data rgb_resulted[256 + 3];
uint32_t hw_points_num;
};
+
+/* move to dpp
+ * while we are moving functionality out of opp to dpp to align
+ * HW programming to HW IP, we define these struct in hw_shared
+ * so we can still compile while refactoring
+ */
+
+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 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 {
+ enum lb_pixel_depth 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;
+};
+
+struct out_csc_color_matrix {
+ enum dc_color_space color_space;
+ uint16_t regval[12];
+};
+
#endif /* __DAL_HW_SHARED_H__ */
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/opp.h b/drivers/gpu/drm/amd/display/dc/inc/hw/opp.h
index 57bdd6c8f955..ef36ffdf2a68 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/opp.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/opp.h
@@ -217,22 +217,6 @@ enum fmt_stereo_action {
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 {
- enum lb_pixel_depth 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
@@ -250,11 +234,6 @@ struct opp_grph_csc_adjustment {
int32_t grph_hue;
};
-struct out_csc_color_matrix {
- enum dc_color_space color_space;
- uint16_t regval[12];
-};
-
/* Underlay related types */
struct hw_adjustment_range {
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/transform.h b/drivers/gpu/drm/amd/display/dc/inc/hw/transform.h
index b4862c376b41..132c5db07456 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/transform.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/transform.h
@@ -26,6 +26,7 @@
#ifndef __DAL_TRANSFORM_H__
#define __DAL_TRANSFORM_H__
+#include "hw_shared.h"
#include "dc_hw_types.h"
#include "fixed31_32.h"
@@ -112,14 +113,6 @@ struct xfm_grph_csc_adjustment {
enum graphics_gamut_adjust_type gamut_adjust_type;
};
-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
-};
-
struct overscan_info {
int left;
int right;
@@ -176,11 +169,6 @@ struct transform_funcs {
void (*transform_set_scaler)(struct transform *xfm,
const struct scaler_data *scl_data);
- void (*transform_set_gamut_remap)(
- struct transform *xfm,
- const struct xfm_grph_csc_adjustment *adjust);
-
-
void (*transform_set_pixel_storage_depth)(
struct transform *xfm,
enum lb_pixel_depth depth,
@@ -190,6 +178,18 @@ struct transform_funcs {
struct transform *xfm,
struct scaler_data *scl_data,
const struct scaling_taps *in_taps);
+
+ void (*transform_set_gamut_remap)(
+ struct transform *xfm,
+ const struct xfm_grph_csc_adjustment *adjust);
+
+ void (*opp_set_csc_default)(
+ struct transform *xfm,
+ const struct default_adjustment *default_adjust);
+
+ void (*opp_set_csc_adjustment)(
+ struct transform *xfm,
+ const struct out_csc_color_matrix *tbl_entry);
};
extern const uint16_t filter_2tap_16p[18];