drm/amd/display: Flattening core_dc to dc
-Flattening core_dc to dc
Signed-off-by: Bhawanpreet Lakha <[email protected]>
Reviewed-by: Harry Wentland <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
diff --git a/drivers/gpu/drm/amd/display/dc/inc/core_dc.h b/drivers/gpu/drm/amd/display/dc/inc/core_dc.h
deleted file mode 100644
index ebe1fd7..0000000
--- a/drivers/gpu/drm/amd/display/dc/inc/core_dc.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * core_dc.h
- *
- * Created on: Nov 13, 2015
- * Author: yonsun
- */
-
-#ifndef __CORE_DC_H__
-#define __CORE_DC_H__
-
-#include "core_types.h"
-#include "hw_sequencer.h"
-#include "compressor.h"
-
-#define DC_TO_CORE(dc)\
- container_of(dc, struct core_dc, public)
-
-struct core_dc {
- struct dc public;
- struct dc_context *ctx;
-
- uint8_t link_count;
- struct dc_link *links[MAX_PIPES * 2];
-
- struct validate_context *current_context;
- struct resource_pool *res_pool;
-
- /* Display Engine Clock levels */
- struct dm_pp_clock_levels sclk_lvls;
-
- /* Inputs into BW and WM calculations. */
- struct bw_calcs_dceip *bw_dceip;
- struct bw_calcs_vbios *bw_vbios;
-#ifdef CONFIG_DRM_AMD_DC_DCN1_0
- struct dcn_soc_bounding_box *dcn_soc;
- struct dcn_ip_params *dcn_ip;
- struct display_mode_lib dml;
-#endif
-
- /* HW functions */
- struct hw_sequencer_funcs hwss;
- struct dce_hwseq *hwseq;
-
- /* temp store of dm_pp_display_configuration
- * to compare to see if display config changed
- */
- struct dm_pp_display_configuration prev_display_config;
-
- /* FBC compressor */
-#ifdef ENABLE_FBC
- struct compressor *fbc_compressor;
-#endif
-};
-
-#endif /* __CORE_DC_H__ */
diff --git a/drivers/gpu/drm/amd/display/dc/inc/core_types.h b/drivers/gpu/drm/amd/display/dc/inc/core_types.h
index 2845402..f8ade55 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/core_types.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/core_types.h
@@ -52,7 +52,7 @@ void enable_surface_flip_reporting(struct dc_plane_state *plane_state,
/************ link *****************/
struct link_init_data {
- const struct core_dc *dc;
+ const struct dc *dc;
struct dc_context *ctx; /* TODO: remove 'dal' when DC is complete. */
uint32_t connector_index; /* this will be mapped to the HPD pins */
uint32_t link_index; /* this is mapped to DAL display_index
@@ -87,19 +87,19 @@ struct resource_funcs {
struct link_encoder *(*link_enc_create)(
const struct encoder_init_data *init);
enum dc_status (*validate_with_context)(
- const struct core_dc *dc,
+ struct dc *dc,
const struct dc_validation_set set[],
int set_count,
struct validate_context *context,
struct validate_context *old_context);
enum dc_status (*validate_guaranteed)(
- const struct core_dc *dc,
+ struct dc *dc,
struct dc_stream_state *stream,
struct validate_context *context);
bool (*validate_bandwidth)(
- const struct core_dc *dc,
+ struct dc *dc,
struct validate_context *context);
struct pipe_ctx *(*acquire_idle_pipe_for_layer)(
diff --git a/drivers/gpu/drm/amd/display/dc/inc/dce_calcs.h b/drivers/gpu/drm/amd/display/dc/inc/dce_calcs.h
index 36c48f7..6a205b01 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/dce_calcs.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/dce_calcs.h
@@ -33,7 +33,7 @@
#include "bw_fixed.h"
struct pipe_ctx;
-struct core_dc;
+struct dc;
struct validate_context;
struct dce_bw_output;
diff --git a/drivers/gpu/drm/amd/display/dc/inc/dcn_calcs.h b/drivers/gpu/drm/amd/display/dc/inc/dcn_calcs.h
index 7e8abcd..58744fe8 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/dcn_calcs.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/dcn_calcs.h
@@ -34,7 +34,7 @@
#include "display_clock.h"
#include "../dml/display_mode_lib.h"
-struct core_dc;
+struct dc;
struct validate_context;
/*******************************************************************************
@@ -620,16 +620,16 @@ struct dcn_ip_params {
extern const struct dcn_ip_params dcn10_ip_defaults;
bool dcn_validate_bandwidth(
- const struct core_dc *dc,
+ struct dc *dc,
struct validate_context *context);
unsigned int dcn_find_dcfclk_suits_all(
- const struct core_dc *dc,
+ const struct dc *dc,
struct clocks_value *clocks);
-void dcn_bw_update_from_pplib(struct core_dc *dc);
-void dcn_bw_notify_pplib_of_wm_ranges(struct core_dc *dc);
-void dcn_bw_sync_calcs_and_dml(struct core_dc *dc);
+void dcn_bw_update_from_pplib(struct dc *dc);
+void dcn_bw_notify_pplib_of_wm_ranges(struct dc *dc);
+void dcn_bw_sync_calcs_and_dml(struct dc *dc);
#endif /* __DCN_CALCS_H__ */
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
index a02f18a..f876a11 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
@@ -30,6 +30,7 @@
#include "dml/display_mode_structs.h"
+struct dchub_init_data;
struct cstate_pstate_watermarks_st {
uint32_t cstate_exit_ns;
uint32_t cstate_enter_plus_exit_ns;
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h b/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h
index 7689e37..c73dca9 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h
@@ -25,8 +25,10 @@
#ifndef __DC_HW_SEQUENCER_H__
#define __DC_HW_SEQUENCER_H__
-#include "core_types.h"
-#include "timing_generator.h"
+#include "dc_types.h"
+#include "clock_source.h"
+#include "inc/hw/timing_generator.h"
+#include "core_status.h"
enum pipe_gating_control {
PIPE_GATING_CONTROL_DISABLE = 0,
@@ -46,25 +48,31 @@ struct dce_hwseq {
struct dce_hwseq_wa wa;
};
+struct pipe_ctx;
+struct validate_context;
+struct dchub_init_data;
+struct dc_static_screen_events;
+struct resource_pool;
+struct resource_context;
struct hw_sequencer_funcs {
- void (*init_hw)(struct core_dc *dc);
+ void (*init_hw)(struct dc *dc);
enum dc_status (*apply_ctx_to_hw)(
- struct core_dc *dc, struct validate_context *context);
+ struct dc *dc, struct validate_context *context);
void (*reset_hw_ctx_wrap)(
- struct core_dc *dc, struct validate_context *context);
+ struct dc *dc, struct validate_context *context);
void (*apply_ctx_for_surface)(
- struct core_dc *dc,
+ struct dc *dc,
const struct dc_stream_state *stream,
int num_planes,
struct validate_context *context);
void (*set_plane_config)(
- const struct core_dc *dc,
+ const struct dc *dc,
struct pipe_ctx *pipe_ctx,
struct resource_context *res_ctx);
@@ -77,7 +85,7 @@ struct hw_sequencer_funcs {
uint16_t *matrix);
void (*update_plane_addr)(
- const struct core_dc *dc,
+ const struct dc *dc,
struct pipe_ctx *pipe_ctx);
void (*update_dchub)(
@@ -95,12 +103,12 @@ struct hw_sequencer_funcs {
struct pipe_ctx *pipe_ctx,
const struct dc_stream_state *stream);
- void (*power_down)(struct core_dc *dc);
+ void (*power_down)(struct dc *dc);
- void (*enable_accelerated_mode)(struct core_dc *dc);
+ void (*enable_accelerated_mode)(struct dc *dc);
void (*enable_timing_synchronization)(
- struct core_dc *dc,
+ struct dc *dc,
int group_index,
int group_size,
struct pipe_ctx *grouped_pipes[]);
@@ -110,14 +118,14 @@ struct hw_sequencer_funcs {
bool clock_gating);
bool (*enable_display_power_gating)(
- struct core_dc *dc,
+ struct dc *dc,
uint8_t controller_id,
struct dc_bios *dcb,
enum pipe_gating_control power_gating);
- void (*power_down_front_end)(struct core_dc *dc, int fe_idx);
+ void (*power_down_front_end)(struct dc *dc, int fe_idx);
- void (*power_on_front_end)(struct core_dc *dc,
+ void (*power_on_front_end)(struct dc *dc,
struct pipe_ctx *pipe,
struct validate_context *context);
@@ -131,12 +139,12 @@ struct hw_sequencer_funcs {
struct dc_link_settings *link_settings);
void (*pipe_control_lock)(
- struct core_dc *dc,
+ struct dc *dc,
struct pipe_ctx *pipe,
bool lock);
void (*set_bandwidth)(
- struct core_dc *dc,
+ struct dc *dc,
struct validate_context *context,
bool decrease_allowed);
@@ -152,23 +160,23 @@ struct hw_sequencer_funcs {
enum dc_status (*prog_pixclk_crtc_otg)(
struct pipe_ctx *pipe_ctx,
struct validate_context *context,
- struct core_dc *dc);
+ struct dc *dc);
void (*setup_stereo)(
struct pipe_ctx *pipe_ctx,
- struct core_dc *dc);
+ struct dc *dc);
void (*set_avmute)(struct pipe_ctx *pipe_ctx, bool enable);
- void (*log_hw_state)(struct core_dc *dc);
+ void (*log_hw_state)(struct dc *dc);
- void (*wait_for_mpcc_disconnect)(struct core_dc *dc,
+ void (*wait_for_mpcc_disconnect)(struct dc *dc,
struct resource_pool *res_pool,
struct pipe_ctx *pipe_ctx);
};
void color_space_to_black_color(
- const struct core_dc *dc,
+ const struct dc *dc,
enum dc_color_space colorspace,
struct tg_color *black_color);
diff --git a/drivers/gpu/drm/amd/display/dc/inc/resource.h b/drivers/gpu/drm/amd/display/dc/inc/resource.h
index 7f30d99..13218a5 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/resource.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/resource.h
@@ -27,7 +27,6 @@
#include "core_types.h"
#include "core_status.h"
-#include "core_dc.h"
#include "dal_asic_id.h"
/* TODO unhardcode, 4 for CZ*/
@@ -67,27 +66,27 @@ struct resource_create_funcs {
bool resource_construct(
unsigned int num_virtual_links,
- struct core_dc *dc,
+ struct dc *dc,
struct resource_pool *pool,
const struct resource_create_funcs *create_funcs);
struct resource_pool *dc_create_resource_pool(
- struct core_dc *dc,
+ struct dc *dc,
int num_virtual_links,
enum dce_version dc_version,
struct hw_asic_id asic_id);
-void dc_destroy_resource_pool(struct core_dc *dc);
+void dc_destroy_resource_pool(struct dc *dc);
enum dc_status resource_map_pool_resources(
- const struct core_dc *dc,
+ const struct dc *dc,
struct validate_context *context,
struct validate_context *old_context);
bool resource_build_scaling_params(struct pipe_ctx *pipe_ctx);
enum dc_status resource_build_scaling_params_for_context(
- const struct core_dc *dc,
+ const struct dc *dc,
struct validate_context *context);
void resource_build_info_frame(struct pipe_ctx *pipe_ctx);
@@ -148,12 +147,12 @@ void resource_validate_ctx_update_pointer_after_copy(
struct validate_context *dst_ctx);
enum dc_status resource_map_clock_resources(
- const struct core_dc *dc,
+ const struct dc *dc,
struct validate_context *context,
struct validate_context *old_context);
enum dc_status resource_map_phy_clock_resources(
- const struct core_dc *dc,
+ const struct dc *dc,
struct validate_context *context,
struct validate_context *old_context);