summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/display/intel_display_core.h
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2022-08-24 16:15:37 +0300
committerJani Nikula <jani.nikula@intel.com>2022-08-29 12:36:37 +0300
commit4be1c12c880e03e6d174e7e7f9e0dc36bdaf9597 (patch)
tree9e50f6761f21b1e804d55b777da307258a594f2b /drivers/gpu/drm/i915/display/intel_display_core.h
parent6c77055aa674b6726f8ee57d1c20e950323dbadc (diff)
downloadlinux-4be1c12c880e03e6d174e7e7f9e0dc36bdaf9597.tar.gz
linux-4be1c12c880e03e6d174e7e7f9e0dc36bdaf9597.tar.bz2
linux-4be1c12c880e03e6d174e7e7f9e0dc36bdaf9597.zip
drm/i915: move and split audio under display.audio and display.funcs
Move display audio related members under drm_i915_private display sub-struct. Split audio funcs to display.funcs to follow the same pattern as all the other display functions. Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com> Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/51c0b966963a8b47efe3a431e0ce106bdd5269c5.1661346845.git.jani.nikula@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_display_core.h')
-rw-r--r--drivers/gpu/drm/i915/display/intel_display_core.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h
index f2392bc16279..5956cb566f9d 100644
--- a/drivers/gpu/drm/i915/display/intel_display_core.h
+++ b/drivers/gpu/drm/i915/display/intel_display_core.h
@@ -10,11 +10,14 @@
#include <linux/types.h>
#include <linux/wait.h>
+#include "intel_display.h"
#include "intel_dmc.h"
#include "intel_gmbus.h"
struct drm_i915_private;
+struct i915_audio_component;
struct intel_atomic_state;
+struct intel_audio_funcs;
struct intel_cdclk_funcs;
struct intel_color_funcs;
struct intel_crtc;
@@ -57,6 +60,25 @@ struct intel_wm_funcs {
int (*compute_global_watermarks)(struct intel_atomic_state *state);
};
+struct intel_audio {
+ /* hda/i915 audio component */
+ struct i915_audio_component *component;
+ bool component_registered;
+ /* mutex for audio/video sync */
+ struct mutex mutex;
+ int power_refcount;
+ u32 freq_cntrl;
+
+ /* Used to save the pipe-to-encoder mapping for audio */
+ struct intel_encoder *encoder_map[I915_MAX_PIPES];
+
+ /* necessary resource sharing with HDMI LPE audio driver. */
+ struct {
+ struct platform_device *platdev;
+ int irq;
+ } lpe;
+};
+
struct intel_display {
/* Display functions */
struct {
@@ -80,6 +102,9 @@ struct intel_display {
/* Display internal color functions */
const struct intel_color_funcs *color;
+
+ /* Display internal audio functions */
+ const struct intel_audio_funcs *audio;
} funcs;
/* Grouping using anonymous structs. Keep sorted. */
@@ -109,6 +134,7 @@ struct intel_display {
} pps;
/* Grouping using named structs. Keep sorted. */
+ struct intel_audio audio;
struct intel_dmc dmc;
};