aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/1061-drm-amd-dal-Remove-empty-audio-base-class-functions.patch
diff options
context:
space:
mode:
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.patch387
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
+