drm/i915/display: move audio funcs under audio sub-struct

Move audio related functions under audio sub-struct of struct
intel_display.

The funcs sub-struct of struct intel_display seems unnecessary. Instead
of display->funcs.FEATURE, prefer display->FEATURE.funcs.

Reviewed-by: Nemesa Garg <nemesa.garg@intel.com>
Link: https://patch.msgid.link/60d626286b77c2faa9ff0518855dd083906b24be.1777537663.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
Jani Nikula 2026-04-30 11:28:45 +03:00
parent d08e46efae
commit b784773185
3 changed files with 16 additions and 16 deletions

View File

@ -754,10 +754,8 @@ void intel_audio_codec_enable(struct intel_encoder *encoder,
crtc->base.base.id, crtc->base.name,
drm_eld_size(crtc_state->eld));
if (display->funcs.audio)
display->funcs.audio->audio_codec_enable(encoder,
crtc_state,
conn_state);
if (display->audio.funcs)
display->audio.funcs->audio_codec_enable(encoder, crtc_state, conn_state);
mutex_lock(&display->audio.mutex);
@ -813,10 +811,8 @@ void intel_audio_codec_disable(struct intel_encoder *encoder,
encoder->base.base.id, encoder->base.name,
crtc->base.base.id, crtc->base.name);
if (display->funcs.audio)
display->funcs.audio->audio_codec_disable(encoder,
old_crtc_state,
old_conn_state);
if (display->audio.funcs)
display->audio.funcs->audio_codec_disable(encoder, old_crtc_state, old_conn_state);
mutex_lock(&display->audio.mutex);
@ -864,8 +860,8 @@ void intel_audio_codec_get_config(struct intel_encoder *encoder,
if (!crtc_state->has_audio)
return;
if (display->funcs.audio)
display->funcs.audio->audio_codec_get_config(encoder, crtc_state);
if (display->audio.funcs)
display->audio.funcs->audio_codec_get_config(encoder, crtc_state);
}
static const struct intel_audio_funcs g4x_audio_funcs = {
@ -893,12 +889,12 @@ static const struct intel_audio_funcs hsw_audio_funcs = {
void intel_audio_hooks_init(struct intel_display *display)
{
if (display->platform.g4x)
display->funcs.audio = &g4x_audio_funcs;
display->audio.funcs = &g4x_audio_funcs;
else if (display->platform.valleyview || display->platform.cherryview ||
HAS_PCH_CPT(display) || HAS_PCH_IBX(display))
display->funcs.audio = &ibx_audio_funcs;
display->audio.funcs = &ibx_audio_funcs;
else if (display->platform.haswell || DISPLAY_VER(display) >= 8)
display->funcs.audio = &hsw_audio_funcs;
display->audio.funcs = &hsw_audio_funcs;
}
struct aud_ts_cdclk_m_n {

View File

@ -100,6 +100,9 @@ struct intel_audio_state {
};
struct intel_audio {
/* internal display audio functions */
const struct intel_audio_funcs *funcs;
/* hda/i915 audio component */
struct i915_audio_component *component;
bool component_registered;
@ -319,9 +322,6 @@ struct intel_display {
/* Display internal color functions */
const struct intel_color_funcs *color;
/* Display internal audio functions */
const struct intel_audio_funcs *audio;
} funcs;
struct {

View File

@ -2458,6 +2458,10 @@ void dg1_de_irq_postinstall(struct intel_display *display)
intel_de_write(display, GEN11_DISPLAY_INT_CTL, GEN11_DISPLAY_IRQ_ENABLE);
}
struct intel_display_irq_funcs {
void (*reset)(struct intel_display *display);
};
void intel_display_irq_init(struct intel_display *display)
{
spin_lock_init(&display->irq.lock);