diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/1061-drm-amd-dal-Remove-empty-audio-base-class-functions.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/1061-drm-amd-dal-Remove-empty-audio-base-class-functions.patch | 387 |
1 files changed, 387 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/1061-drm-amd-dal-Remove-empty-audio-base-class-functions.patch b/common/recipes-kernel/linux/files/1061-drm-amd-dal-Remove-empty-audio-base-class-functions.patch new file mode 100644 index 00000000..c9f3b784 --- /dev/null +++ b/common/recipes-kernel/linux/files/1061-drm-amd-dal-Remove-empty-audio-base-class-functions.patch @@ -0,0 +1,387 @@ +From 14fac719f849ec900a007a8c5a0fa99fde57debd Mon Sep 17 00:00:00 2001 +From: Harry Wentland <harry.wentland@amd.com> +Date: Wed, 20 Apr 2016 17:05:19 -0400 +Subject: [PATCH 1061/1110] drm/amd/dal: Remove empty audio base class + functions + +Signed-off-by: Harry Wentland <harry.wentland@amd.com> +Acked-by: Harry Wentland <harry.wentland@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + .../amd/dal/dc/audio/dce110/hw_ctx_audio_dce110.c | 10 - + .../amd/dal/dc/audio/dce80/hw_ctx_audio_dce80.c | 12 - + drivers/gpu/drm/amd/dal/dc/audio/hw_ctx_audio.c | 267 --------------------- + drivers/gpu/drm/amd/dal/dc/audio/hw_ctx_audio.h | 3 - + 4 files changed, 292 deletions(-) + +diff --git a/drivers/gpu/drm/amd/dal/dc/audio/dce110/hw_ctx_audio_dce110.c b/drivers/gpu/drm/amd/dal/dc/audio/dce110/hw_ctx_audio_dce110.c +index d8a674d..d2769c7 100644 +--- a/drivers/gpu/drm/amd/dal/dc/audio/dce110/hw_ctx_audio_dce110.c ++++ b/drivers/gpu/drm/amd/dal/dc/audio/dce110/hw_ctx_audio_dce110.c +@@ -57,12 +57,6 @@ static const uint32_t engine_offset[] = { + mmDIG5_DIG_FE_CNTL - mmDIG0_DIG_FE_CNTL + }; + +-static void destruct( +- struct hw_ctx_audio_dce110 *hw_ctx_dce110) +-{ +- dal_audio_destruct_hw_ctx_audio(&hw_ctx_dce110->base); +-} +- + static void destroy( + struct hw_ctx_audio **ptr) + { +@@ -71,7 +65,6 @@ static void destroy( + hw_ctx_dce110 = container_of( + *ptr, struct hw_ctx_audio_dce110, base); + +- destruct(hw_ctx_dce110); + /* release memory allocated for struct hw_ctx_audio_dce110 */ + dm_free(hw_ctx_dce110); + +@@ -1832,9 +1825,6 @@ static bool construct( + { + struct hw_ctx_audio *base = &hw_ctx->base; + +- if (!dal_audio_construct_hw_ctx_audio(base)) +- return false; +- + base->funcs = &funcs; + + /* save audio endpoint or dig front for current dce110 audio object */ +diff --git a/drivers/gpu/drm/amd/dal/dc/audio/dce80/hw_ctx_audio_dce80.c b/drivers/gpu/drm/amd/dal/dc/audio/dce80/hw_ctx_audio_dce80.c +index 5f6a433..3b2fb52 100644 +--- a/drivers/gpu/drm/amd/dal/dc/audio/dce80/hw_ctx_audio_dce80.c ++++ b/drivers/gpu/drm/amd/dal/dc/audio/dce80/hw_ctx_audio_dce80.c +@@ -66,7 +66,6 @@ static void destroy( + hw_ctx_dce80 = container_of( + *ptr, struct hw_ctx_audio_dce80, base); + +- dal_audio_destruct_hw_ctx_audio_dce80(hw_ctx_dce80); + /* release memory allocated for struct hw_ctx_audio_dce80 */ + dm_free(hw_ctx_dce80); + +@@ -1773,9 +1772,6 @@ bool dal_audio_construct_hw_ctx_audio_dce80( + { + struct hw_ctx_audio *base = &hw_ctx->base; + +- if (!dal_audio_construct_hw_ctx_audio(base)) +- return false; +- + base->funcs = &funcs; + + /* save audio endpoint or dig front for current dce80 audio object */ +@@ -1857,14 +1853,6 @@ bool dal_audio_construct_hw_ctx_audio_dce80( + return true; + } + +-/* audio_dce80 is derived from audio directly, not via dce80 */ +- +-void dal_audio_destruct_hw_ctx_audio_dce80( +- struct hw_ctx_audio_dce80 *hw_ctx_dce80) +-{ +- dal_audio_destruct_hw_ctx_audio(&hw_ctx_dce80->base); +-} +- + struct hw_ctx_audio *dal_audio_create_hw_ctx_audio_dce80( + struct dc_context *ctx, + uint32_t azalia_stream_id) +diff --git a/drivers/gpu/drm/amd/dal/dc/audio/hw_ctx_audio.c b/drivers/gpu/drm/amd/dal/dc/audio/hw_ctx_audio.c +index 6d88771..606e98b 100644 +--- a/drivers/gpu/drm/amd/dal/dc/audio/hw_ctx_audio.c ++++ b/drivers/gpu/drm/amd/dal/dc/audio/hw_ctx_audio.c +@@ -87,215 +87,6 @@ static const struct audio_clock_info audio_clock_info_table_48bpc[12] = { + + /***** static function *****/ + +-/* +- * except of HW context create function, caller will access other functions of +- * hw ctx via handle hw_ctx. Memory allocation for struct hw_ctx_audio_dce8x +- * will happen in hw_ctx_audio_dce8x. Memory allocation is done with +- * dal_audio_create_hw_ctx_audio_dce8x. Memory release is done by caller +- * via hw_ctx->functions.destroy(). It will finally use destroy() of +- * hw_ctx_audio_dce8x. Therefore, no memory allocate and release happen +- * physically at hw ctx base object. +- */ +-static void destroy( +- struct hw_ctx_audio **ptr) +-{ +- /* Attention! +- * You must override this method in derived class */ +-} +- +-static void setup_audio_wall_dto( +- const struct hw_ctx_audio *hw_ctx, +- enum signal_type signal, +- const struct audio_crtc_info *crtc_info, +- const struct audio_pll_info *pll_info) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +-/* setup HDMI audio */ +-static void setup_hdmi_audio( +- const struct hw_ctx_audio *hw_ctx, +- enum engine_id engine_id, +- const struct audio_crtc_info *crtc_info) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +- /* setup DP audio */ +-static void setup_dp_audio( +- const struct hw_ctx_audio *hw_ctx, +- enum engine_id engine_id) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +- /* setup VCE audio */ +-static void setup_vce_audio( +- const struct hw_ctx_audio *hw_ctx) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +-/* enable Azalia audio */ +-static void enable_azalia_audio( +- const struct hw_ctx_audio *hw_ctx, +- enum engine_id engine_id) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +-/* disable Azalia audio */ +-static void disable_azalia_audio( +- const struct hw_ctx_audio *hw_ctx, +- enum engine_id engine_id) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +-/* enable DP audio */ +-static void enable_dp_audio( +- const struct hw_ctx_audio *hw_ctx, +- enum engine_id engine_id) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +-/* disable DP audio */ +-static void disable_dp_audio( +- const struct hw_ctx_audio *hw_ctx, +- enum engine_id engine_id) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +-/* setup Azalia HW block */ +-static void setup_azalia( +- const struct hw_ctx_audio *hw_ctx, +- enum engine_id engine_id, +- enum signal_type signal, +- const struct audio_crtc_info *crtc_info, +- const struct audio_pll_info *pll_info, +- const struct audio_info *audio_info) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +-/* unmute audio */ +-static void unmute_azalia_audio( +- const struct hw_ctx_audio *hw_ctx, +- enum engine_id engine_id) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +-/* mute audio */ +-static void mute_azalia_audio( +- const struct hw_ctx_audio *hw_ctx, +- enum engine_id engine_id) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +-/* enable channel splitting mapping */ +-static void setup_channel_splitting_mapping( +- const struct hw_ctx_audio *hw_ctx, +- enum engine_id engine_id, +- enum signal_type signal, +- const struct audio_channel_associate_info *audio_mapping, +- bool enable) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +-/* get current channel spliting */ +-static bool get_channel_splitting_mapping( +- const struct hw_ctx_audio *hw_ctx, +- enum engine_id engine_id, +- struct audio_channel_associate_info *audio_mapping) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +- return false; +-} +- +-/* set the payload value for the unsolicited response */ +-static void set_unsolicited_response_payload( +- const struct hw_ctx_audio *hw_ctx, +- enum audio_payload payload) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +-/* initialize HW state */ +-static void hw_initialize( +- const struct hw_ctx_audio *hw_ctx) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +-/* Assign GTC group and enable GTC value embedding */ +-static void enable_gtc_embedding_with_group( +- const struct hw_ctx_audio *hw_ctx, +- uint32_t groupNum, +- uint32_t audioLatency) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +-/* Disable GTC value embedding */ +-static void disable_gtc_embedding( +- const struct hw_ctx_audio *hw_ctx) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +-/* Disable Azalia Clock Gating Feature */ +-static void disable_az_clock_gating( +- const struct hw_ctx_audio *hw_ctx) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +-} +- +-/* search pixel clock value for Azalia HDMI Audio */ +-static bool get_azalia_clock_info_hdmi( +- const struct hw_ctx_audio *hw_ctx, +- uint32_t crtc_pixel_clock_in_khz, +- uint32_t actual_pixel_clock_in_khz, +- struct azalia_clock_info *azalia_clock_info) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +- return false; +-} +- +-/* search pixel clock value for Azalia DP Audio */ +-static bool get_azalia_clock_info_dp( +- const struct hw_ctx_audio *hw_ctx, +- uint32_t requested_pixel_clock_in_khz, +- const struct audio_pll_info *pll_info, +- struct azalia_clock_info *azalia_clock_info) +-{ +- /*DCE specific, must be implemented in derived*/ +- BREAK_TO_DEBUGGER(); +- return false; +-} + + /*****SCOPE : within audio hw context dal-audio-hw-ctx *****/ + +@@ -700,61 +491,3 @@ bool dal_audio_hw_ctx_get_audio_clock_info( + return true; + } + +-static const struct hw_ctx_audio_funcs funcs = { +- .destroy = destroy, +- .setup_audio_wall_dto = +- setup_audio_wall_dto, +- .setup_hdmi_audio = +- setup_hdmi_audio, +- .setup_dp_audio = setup_dp_audio, +- .setup_vce_audio = setup_vce_audio, +- .enable_azalia_audio = +- enable_azalia_audio, +- .disable_azalia_audio = +- disable_azalia_audio, +- .enable_dp_audio = +- enable_dp_audio, +- .disable_dp_audio = +- disable_dp_audio, +- .setup_azalia = +- setup_azalia, +- .disable_az_clock_gating = +- disable_az_clock_gating, +- .unmute_azalia_audio = +- unmute_azalia_audio, +- .mute_azalia_audio = +- mute_azalia_audio, +- .setup_channel_splitting_mapping = +- setup_channel_splitting_mapping, +- .get_channel_splitting_mapping = +- get_channel_splitting_mapping, +- .set_unsolicited_response_payload = +- set_unsolicited_response_payload, +- .hw_initialize = +- hw_initialize, +- .enable_gtc_embedding_with_group = +- enable_gtc_embedding_with_group, +- .disable_gtc_embedding = +- disable_gtc_embedding, +- .get_azalia_clock_info_hdmi = +- get_azalia_clock_info_hdmi, +- .get_azalia_clock_info_dp = +- get_azalia_clock_info_dp, +-}; +-/* --- object creator, destroy, construct, destruct --- */ +- +-bool dal_audio_construct_hw_ctx_audio( +- struct hw_ctx_audio *ctx) +-{ +- ctx->funcs = &funcs; +- +- /* internal variables */ +- +- return true; +-} +- +-void dal_audio_destruct_hw_ctx_audio( +- struct hw_ctx_audio *ctx) +-{ +- /* nothing to do */ +-} +diff --git a/drivers/gpu/drm/amd/dal/dc/audio/hw_ctx_audio.h b/drivers/gpu/drm/amd/dal/dc/audio/hw_ctx_audio.h +index 52865c8..8143cd5 100644 +--- a/drivers/gpu/drm/amd/dal/dc/audio/hw_ctx_audio.h ++++ b/drivers/gpu/drm/amd/dal/dc/audio/hw_ctx_audio.h +@@ -206,9 +206,6 @@ struct hw_ctx_audio { + bool dal_audio_construct_hw_ctx_audio( + struct hw_ctx_audio *hw_ctx); + +-void dal_audio_destruct_hw_ctx_audio( +- struct hw_ctx_audio *hw_ctx); +- + /* + *creator of audio HW context will be implemented by specific ASIC object only. + *Top base or interface object does not have implementation of creator. +-- +2.7.4 + |