Commit ca3cfb9d authored by Jani Nikula's avatar Jani Nikula

drm/i915/audio: name the audio sub-struct in drm_i915_private

Add name to the audio sub-struct in drm_i915_private, and remove the
tautologies and other inconsistencies in the member names.

v2: Call the mutex member mutex, not lock. (Ville)

Cc: Dave Airlie <airlied@redhat.com>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211104161858.21786-2-jani.nikula@intel.com
parent fe9b286b
...@@ -388,7 +388,7 @@ hsw_dp_audio_config_update(struct intel_encoder *encoder, ...@@ -388,7 +388,7 @@ hsw_dp_audio_config_update(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state) const struct intel_crtc_state *crtc_state)
{ {
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
struct i915_audio_component *acomp = dev_priv->audio_component; struct i915_audio_component *acomp = dev_priv->audio.component;
enum transcoder cpu_transcoder = crtc_state->cpu_transcoder; enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
enum port port = encoder->port; enum port port = encoder->port;
const struct dp_aud_n_m *nm; const struct dp_aud_n_m *nm;
...@@ -436,7 +436,7 @@ hsw_hdmi_audio_config_update(struct intel_encoder *encoder, ...@@ -436,7 +436,7 @@ hsw_hdmi_audio_config_update(struct intel_encoder *encoder,
const struct intel_crtc_state *crtc_state) const struct intel_crtc_state *crtc_state)
{ {
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
struct i915_audio_component *acomp = dev_priv->audio_component; struct i915_audio_component *acomp = dev_priv->audio.component;
enum transcoder cpu_transcoder = crtc_state->cpu_transcoder; enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
enum port port = encoder->port; enum port port = encoder->port;
int n, rate; int n, rate;
...@@ -494,7 +494,7 @@ static void hsw_audio_codec_disable(struct intel_encoder *encoder, ...@@ -494,7 +494,7 @@ static void hsw_audio_codec_disable(struct intel_encoder *encoder,
drm_dbg_kms(&dev_priv->drm, "Disable audio codec on transcoder %s\n", drm_dbg_kms(&dev_priv->drm, "Disable audio codec on transcoder %s\n",
transcoder_name(cpu_transcoder)); transcoder_name(cpu_transcoder));
mutex_lock(&dev_priv->av_mutex); mutex_lock(&dev_priv->audio.mutex);
/* Disable timestamps */ /* Disable timestamps */
tmp = intel_de_read(dev_priv, HSW_AUD_CFG(cpu_transcoder)); tmp = intel_de_read(dev_priv, HSW_AUD_CFG(cpu_transcoder));
...@@ -512,7 +512,7 @@ static void hsw_audio_codec_disable(struct intel_encoder *encoder, ...@@ -512,7 +512,7 @@ static void hsw_audio_codec_disable(struct intel_encoder *encoder,
tmp &= ~AUDIO_OUTPUT_ENABLE(cpu_transcoder); tmp &= ~AUDIO_OUTPUT_ENABLE(cpu_transcoder);
intel_de_write(dev_priv, HSW_AUD_PIN_ELD_CP_VLD, tmp); intel_de_write(dev_priv, HSW_AUD_PIN_ELD_CP_VLD, tmp);
mutex_unlock(&dev_priv->av_mutex); mutex_unlock(&dev_priv->audio.mutex);
} }
static unsigned int calc_hblank_early_prog(struct intel_encoder *encoder, static unsigned int calc_hblank_early_prog(struct intel_encoder *encoder,
...@@ -641,7 +641,7 @@ static void hsw_audio_codec_enable(struct intel_encoder *encoder, ...@@ -641,7 +641,7 @@ static void hsw_audio_codec_enable(struct intel_encoder *encoder,
"Enable audio codec on transcoder %s, %u bytes ELD\n", "Enable audio codec on transcoder %s, %u bytes ELD\n",
transcoder_name(cpu_transcoder), drm_eld_size(eld)); transcoder_name(cpu_transcoder), drm_eld_size(eld));
mutex_lock(&dev_priv->av_mutex); mutex_lock(&dev_priv->audio.mutex);
/* Enable Audio WA for 4k DSC usecases */ /* Enable Audio WA for 4k DSC usecases */
if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP)) if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP))
...@@ -679,7 +679,7 @@ static void hsw_audio_codec_enable(struct intel_encoder *encoder, ...@@ -679,7 +679,7 @@ static void hsw_audio_codec_enable(struct intel_encoder *encoder,
/* Enable timestamps */ /* Enable timestamps */
hsw_audio_config_update(encoder, crtc_state); hsw_audio_config_update(encoder, crtc_state);
mutex_unlock(&dev_priv->av_mutex); mutex_unlock(&dev_priv->audio.mutex);
} }
static void ilk_audio_codec_disable(struct intel_encoder *encoder, static void ilk_audio_codec_disable(struct intel_encoder *encoder,
...@@ -826,7 +826,7 @@ void intel_audio_codec_enable(struct intel_encoder *encoder, ...@@ -826,7 +826,7 @@ void intel_audio_codec_enable(struct intel_encoder *encoder,
const struct drm_connector_state *conn_state) const struct drm_connector_state *conn_state)
{ {
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
struct i915_audio_component *acomp = dev_priv->audio_component; struct i915_audio_component *acomp = dev_priv->audio.component;
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
struct drm_connector *connector = conn_state->connector; struct drm_connector *connector = conn_state->connector;
const struct drm_display_mode *adjusted_mode = const struct drm_display_mode *adjusted_mode =
...@@ -848,17 +848,17 @@ void intel_audio_codec_enable(struct intel_encoder *encoder, ...@@ -848,17 +848,17 @@ void intel_audio_codec_enable(struct intel_encoder *encoder,
connector->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2; connector->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2;
if (dev_priv->audio_funcs) if (dev_priv->audio.funcs)
dev_priv->audio_funcs->audio_codec_enable(encoder, dev_priv->audio.funcs->audio_codec_enable(encoder,
crtc_state, crtc_state,
conn_state); conn_state);
mutex_lock(&dev_priv->av_mutex); mutex_lock(&dev_priv->audio.mutex);
encoder->audio_connector = connector; encoder->audio_connector = connector;
/* referred in audio callbacks */ /* referred in audio callbacks */
dev_priv->av_enc_map[pipe] = encoder; dev_priv->audio.encoder_map[pipe] = encoder;
mutex_unlock(&dev_priv->av_mutex); mutex_unlock(&dev_priv->audio.mutex);
if (acomp && acomp->base.audio_ops && if (acomp && acomp->base.audio_ops &&
acomp->base.audio_ops->pin_eld_notify) { acomp->base.audio_ops->pin_eld_notify) {
...@@ -888,20 +888,20 @@ void intel_audio_codec_disable(struct intel_encoder *encoder, ...@@ -888,20 +888,20 @@ void intel_audio_codec_disable(struct intel_encoder *encoder,
const struct drm_connector_state *old_conn_state) const struct drm_connector_state *old_conn_state)
{ {
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
struct i915_audio_component *acomp = dev_priv->audio_component; struct i915_audio_component *acomp = dev_priv->audio.component;
struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc); struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
enum port port = encoder->port; enum port port = encoder->port;
enum pipe pipe = crtc->pipe; enum pipe pipe = crtc->pipe;
if (dev_priv->audio_funcs) if (dev_priv->audio.funcs)
dev_priv->audio_funcs->audio_codec_disable(encoder, dev_priv->audio.funcs->audio_codec_disable(encoder,
old_crtc_state, old_crtc_state,
old_conn_state); old_conn_state);
mutex_lock(&dev_priv->av_mutex); mutex_lock(&dev_priv->audio.mutex);
encoder->audio_connector = NULL; encoder->audio_connector = NULL;
dev_priv->av_enc_map[pipe] = NULL; dev_priv->audio.encoder_map[pipe] = NULL;
mutex_unlock(&dev_priv->av_mutex); mutex_unlock(&dev_priv->audio.mutex);
if (acomp && acomp->base.audio_ops && if (acomp && acomp->base.audio_ops &&
acomp->base.audio_ops->pin_eld_notify) { acomp->base.audio_ops->pin_eld_notify) {
...@@ -937,13 +937,13 @@ static const struct intel_audio_funcs hsw_audio_funcs = { ...@@ -937,13 +937,13 @@ static const struct intel_audio_funcs hsw_audio_funcs = {
void intel_init_audio_hooks(struct drm_i915_private *dev_priv) void intel_init_audio_hooks(struct drm_i915_private *dev_priv)
{ {
if (IS_G4X(dev_priv)) { if (IS_G4X(dev_priv)) {
dev_priv->audio_funcs = &g4x_audio_funcs; dev_priv->audio.funcs = &g4x_audio_funcs;
} else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) { } else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
dev_priv->audio_funcs = &ilk_audio_funcs; dev_priv->audio.funcs = &ilk_audio_funcs;
} else if (IS_HASWELL(dev_priv) || DISPLAY_VER(dev_priv) >= 8) { } else if (IS_HASWELL(dev_priv) || DISPLAY_VER(dev_priv) >= 8) {
dev_priv->audio_funcs = &hsw_audio_funcs; dev_priv->audio.funcs = &hsw_audio_funcs;
} else if (HAS_PCH_SPLIT(dev_priv)) { } else if (HAS_PCH_SPLIT(dev_priv)) {
dev_priv->audio_funcs = &ilk_audio_funcs; dev_priv->audio.funcs = &ilk_audio_funcs;
} }
} }
...@@ -1048,13 +1048,13 @@ static unsigned long i915_audio_component_get_power(struct device *kdev) ...@@ -1048,13 +1048,13 @@ static unsigned long i915_audio_component_get_power(struct device *kdev)
ret = intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO_PLAYBACK); ret = intel_display_power_get(dev_priv, POWER_DOMAIN_AUDIO_PLAYBACK);
if (dev_priv->audio_power_refcount++ == 0) { if (dev_priv->audio.power_refcount++ == 0) {
if (DISPLAY_VER(dev_priv) >= 9) { if (DISPLAY_VER(dev_priv) >= 9) {
intel_de_write(dev_priv, AUD_FREQ_CNTRL, intel_de_write(dev_priv, AUD_FREQ_CNTRL,
dev_priv->audio_freq_cntrl); dev_priv->audio.freq_cntrl);
drm_dbg_kms(&dev_priv->drm, drm_dbg_kms(&dev_priv->drm,
"restored AUD_FREQ_CNTRL to 0x%x\n", "restored AUD_FREQ_CNTRL to 0x%x\n",
dev_priv->audio_freq_cntrl); dev_priv->audio.freq_cntrl);
} }
/* Force CDCLK to 2*BCLK as long as we need audio powered. */ /* Force CDCLK to 2*BCLK as long as we need audio powered. */
...@@ -1075,7 +1075,7 @@ static void i915_audio_component_put_power(struct device *kdev, ...@@ -1075,7 +1075,7 @@ static void i915_audio_component_put_power(struct device *kdev,
struct drm_i915_private *dev_priv = kdev_to_i915(kdev); struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
/* Stop forcing CDCLK to 2*BCLK if no need for audio to be powered. */ /* Stop forcing CDCLK to 2*BCLK if no need for audio to be powered. */
if (--dev_priv->audio_power_refcount == 0) if (--dev_priv->audio.power_refcount == 0)
if (IS_GEMINILAKE(dev_priv)) if (IS_GEMINILAKE(dev_priv))
glk_force_audio_cdclk(dev_priv, false); glk_force_audio_cdclk(dev_priv, false);
...@@ -1127,7 +1127,7 @@ static int i915_audio_component_get_cdclk_freq(struct device *kdev) ...@@ -1127,7 +1127,7 @@ static int i915_audio_component_get_cdclk_freq(struct device *kdev)
/* /*
* get the intel_encoder according to the parameter port and pipe * get the intel_encoder according to the parameter port and pipe
* intel_encoder is saved by the index of pipe * intel_encoder is saved by the index of pipe
* MST & (pipe >= 0): return the av_enc_map[pipe], * MST & (pipe >= 0): return the audio.encoder_map[pipe],
* when port is matched * when port is matched
* MST & (pipe < 0): this is invalid * MST & (pipe < 0): this is invalid
* Non-MST & (pipe >= 0): only pipe = 0 (the first device entry) * Non-MST & (pipe >= 0): only pipe = 0 (the first device entry)
...@@ -1142,10 +1142,10 @@ static struct intel_encoder *get_saved_enc(struct drm_i915_private *dev_priv, ...@@ -1142,10 +1142,10 @@ static struct intel_encoder *get_saved_enc(struct drm_i915_private *dev_priv,
/* MST */ /* MST */
if (pipe >= 0) { if (pipe >= 0) {
if (drm_WARN_ON(&dev_priv->drm, if (drm_WARN_ON(&dev_priv->drm,
pipe >= ARRAY_SIZE(dev_priv->av_enc_map))) pipe >= ARRAY_SIZE(dev_priv->audio.encoder_map)))
return NULL; return NULL;
encoder = dev_priv->av_enc_map[pipe]; encoder = dev_priv->audio.encoder_map[pipe];
/* /*
* when bootup, audio driver may not know it is * when bootup, audio driver may not know it is
* MST or not. So it will poll all the port & pipe * MST or not. So it will poll all the port & pipe
...@@ -1161,7 +1161,7 @@ static struct intel_encoder *get_saved_enc(struct drm_i915_private *dev_priv, ...@@ -1161,7 +1161,7 @@ static struct intel_encoder *get_saved_enc(struct drm_i915_private *dev_priv,
return NULL; return NULL;
for_each_pipe(dev_priv, pipe) { for_each_pipe(dev_priv, pipe) {
encoder = dev_priv->av_enc_map[pipe]; encoder = dev_priv->audio.encoder_map[pipe];
if (encoder == NULL) if (encoder == NULL)
continue; continue;
...@@ -1179,7 +1179,7 @@ static int i915_audio_component_sync_audio_rate(struct device *kdev, int port, ...@@ -1179,7 +1179,7 @@ static int i915_audio_component_sync_audio_rate(struct device *kdev, int port,
int pipe, int rate) int pipe, int rate)
{ {
struct drm_i915_private *dev_priv = kdev_to_i915(kdev); struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
struct i915_audio_component *acomp = dev_priv->audio_component; struct i915_audio_component *acomp = dev_priv->audio.component;
struct intel_encoder *encoder; struct intel_encoder *encoder;
struct intel_crtc *crtc; struct intel_crtc *crtc;
unsigned long cookie; unsigned long cookie;
...@@ -1189,7 +1189,7 @@ static int i915_audio_component_sync_audio_rate(struct device *kdev, int port, ...@@ -1189,7 +1189,7 @@ static int i915_audio_component_sync_audio_rate(struct device *kdev, int port,
return 0; return 0;
cookie = i915_audio_component_get_power(kdev); cookie = i915_audio_component_get_power(kdev);
mutex_lock(&dev_priv->av_mutex); mutex_lock(&dev_priv->audio.mutex);
/* 1. get the pipe */ /* 1. get the pipe */
encoder = get_saved_enc(dev_priv, port, pipe); encoder = get_saved_enc(dev_priv, port, pipe);
...@@ -1208,7 +1208,7 @@ static int i915_audio_component_sync_audio_rate(struct device *kdev, int port, ...@@ -1208,7 +1208,7 @@ static int i915_audio_component_sync_audio_rate(struct device *kdev, int port,
hsw_audio_config_update(encoder, crtc->config); hsw_audio_config_update(encoder, crtc->config);
unlock: unlock:
mutex_unlock(&dev_priv->av_mutex); mutex_unlock(&dev_priv->audio.mutex);
i915_audio_component_put_power(kdev, cookie); i915_audio_component_put_power(kdev, cookie);
return err; return err;
} }
...@@ -1222,13 +1222,13 @@ static int i915_audio_component_get_eld(struct device *kdev, int port, ...@@ -1222,13 +1222,13 @@ static int i915_audio_component_get_eld(struct device *kdev, int port,
const u8 *eld; const u8 *eld;
int ret = -EINVAL; int ret = -EINVAL;
mutex_lock(&dev_priv->av_mutex); mutex_lock(&dev_priv->audio.mutex);
intel_encoder = get_saved_enc(dev_priv, port, pipe); intel_encoder = get_saved_enc(dev_priv, port, pipe);
if (!intel_encoder) { if (!intel_encoder) {
drm_dbg_kms(&dev_priv->drm, "Not valid for port %c\n", drm_dbg_kms(&dev_priv->drm, "Not valid for port %c\n",
port_name(port)); port_name(port));
mutex_unlock(&dev_priv->av_mutex); mutex_unlock(&dev_priv->audio.mutex);
return ret; return ret;
} }
...@@ -1240,7 +1240,7 @@ static int i915_audio_component_get_eld(struct device *kdev, int port, ...@@ -1240,7 +1240,7 @@ static int i915_audio_component_get_eld(struct device *kdev, int port,
memcpy(buf, eld, min(max_bytes, ret)); memcpy(buf, eld, min(max_bytes, ret));
} }
mutex_unlock(&dev_priv->av_mutex); mutex_unlock(&dev_priv->audio.mutex);
return ret; return ret;
} }
...@@ -1275,7 +1275,7 @@ static int i915_audio_component_bind(struct device *i915_kdev, ...@@ -1275,7 +1275,7 @@ static int i915_audio_component_bind(struct device *i915_kdev,
BUILD_BUG_ON(MAX_PORTS != I915_MAX_PORTS); BUILD_BUG_ON(MAX_PORTS != I915_MAX_PORTS);
for (i = 0; i < ARRAY_SIZE(acomp->aud_sample_rate); i++) for (i = 0; i < ARRAY_SIZE(acomp->aud_sample_rate); i++)
acomp->aud_sample_rate[i] = 0; acomp->aud_sample_rate[i] = 0;
dev_priv->audio_component = acomp; dev_priv->audio.component = acomp;
drm_modeset_unlock_all(&dev_priv->drm); drm_modeset_unlock_all(&dev_priv->drm);
return 0; return 0;
...@@ -1290,14 +1290,14 @@ static void i915_audio_component_unbind(struct device *i915_kdev, ...@@ -1290,14 +1290,14 @@ static void i915_audio_component_unbind(struct device *i915_kdev,
drm_modeset_lock_all(&dev_priv->drm); drm_modeset_lock_all(&dev_priv->drm);
acomp->base.ops = NULL; acomp->base.ops = NULL;
acomp->base.dev = NULL; acomp->base.dev = NULL;
dev_priv->audio_component = NULL; dev_priv->audio.component = NULL;
drm_modeset_unlock_all(&dev_priv->drm); drm_modeset_unlock_all(&dev_priv->drm);
device_link_remove(hda_kdev, i915_kdev); device_link_remove(hda_kdev, i915_kdev);
if (dev_priv->audio_power_refcount) if (dev_priv->audio.power_refcount)
drm_err(&dev_priv->drm, "audio power refcount %d after unbind\n", drm_err(&dev_priv->drm, "audio power refcount %d after unbind\n",
dev_priv->audio_power_refcount); dev_priv->audio.power_refcount);
} }
static const struct component_ops i915_audio_component_bind_ops = { static const struct component_ops i915_audio_component_bind_ops = {
...@@ -1361,13 +1361,13 @@ static void i915_audio_component_init(struct drm_i915_private *dev_priv) ...@@ -1361,13 +1361,13 @@ static void i915_audio_component_init(struct drm_i915_private *dev_priv)
drm_dbg_kms(&dev_priv->drm, "use AUD_FREQ_CNTRL of 0x%x (init value 0x%x)\n", drm_dbg_kms(&dev_priv->drm, "use AUD_FREQ_CNTRL of 0x%x (init value 0x%x)\n",
aud_freq, aud_freq_init); aud_freq, aud_freq_init);
dev_priv->audio_freq_cntrl = aud_freq; dev_priv->audio.freq_cntrl = aud_freq;
} }
/* init with current cdclk */ /* init with current cdclk */
intel_audio_cdclk_change_post(dev_priv); intel_audio_cdclk_change_post(dev_priv);
dev_priv->audio_component_registered = true; dev_priv->audio.component_registered = true;
} }
/** /**
...@@ -1379,11 +1379,11 @@ static void i915_audio_component_init(struct drm_i915_private *dev_priv) ...@@ -1379,11 +1379,11 @@ static void i915_audio_component_init(struct drm_i915_private *dev_priv)
*/ */
static void i915_audio_component_cleanup(struct drm_i915_private *dev_priv) static void i915_audio_component_cleanup(struct drm_i915_private *dev_priv)
{ {
if (!dev_priv->audio_component_registered) if (!dev_priv->audio.component_registered)
return; return;
component_del(dev_priv->drm.dev, &i915_audio_component_bind_ops); component_del(dev_priv->drm.dev, &i915_audio_component_bind_ops);
dev_priv->audio_component_registered = false; dev_priv->audio.component_registered = false;
} }
/** /**
...@@ -1405,7 +1405,7 @@ void intel_audio_init(struct drm_i915_private *dev_priv) ...@@ -1405,7 +1405,7 @@ void intel_audio_init(struct drm_i915_private *dev_priv)
*/ */
void intel_audio_deinit(struct drm_i915_private *dev_priv) void intel_audio_deinit(struct drm_i915_private *dev_priv)
{ {
if ((dev_priv)->lpe_audio.platdev != NULL) if ((dev_priv)->audio.lpe.platdev != NULL)
intel_lpe_audio_teardown(dev_priv); intel_lpe_audio_teardown(dev_priv);
else else
i915_audio_component_cleanup(dev_priv); i915_audio_component_cleanup(dev_priv);
......
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
#include "intel_de.h" #include "intel_de.h"
#include "intel_lpe_audio.h" #include "intel_lpe_audio.h"
#define HAS_LPE_AUDIO(dev_priv) ((dev_priv)->lpe_audio.platdev != NULL) #define HAS_LPE_AUDIO(dev_priv) ((dev_priv)->audio.lpe.platdev != NULL)
static struct platform_device * static struct platform_device *
lpe_audio_platdev_create(struct drm_i915_private *dev_priv) lpe_audio_platdev_create(struct drm_i915_private *dev_priv)
...@@ -96,7 +96,7 @@ lpe_audio_platdev_create(struct drm_i915_private *dev_priv) ...@@ -96,7 +96,7 @@ lpe_audio_platdev_create(struct drm_i915_private *dev_priv)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
} }
rsc[0].start = rsc[0].end = dev_priv->lpe_audio.irq; rsc[0].start = rsc[0].end = dev_priv->audio.lpe.irq;
rsc[0].flags = IORESOURCE_IRQ; rsc[0].flags = IORESOURCE_IRQ;
rsc[0].name = "hdmi-lpe-audio-irq"; rsc[0].name = "hdmi-lpe-audio-irq";
...@@ -148,7 +148,7 @@ static void lpe_audio_platdev_destroy(struct drm_i915_private *dev_priv) ...@@ -148,7 +148,7 @@ static void lpe_audio_platdev_destroy(struct drm_i915_private *dev_priv)
* than us fiddle with its internals. * than us fiddle with its internals.
*/ */
platform_device_unregister(dev_priv->lpe_audio.platdev); platform_device_unregister(dev_priv->audio.lpe.platdev);
} }
static void lpe_audio_irq_unmask(struct irq_data *d) static void lpe_audio_irq_unmask(struct irq_data *d)
...@@ -167,7 +167,7 @@ static struct irq_chip lpe_audio_irqchip = { ...@@ -167,7 +167,7 @@ static struct irq_chip lpe_audio_irqchip = {
static int lpe_audio_irq_init(struct drm_i915_private *dev_priv) static int lpe_audio_irq_init(struct drm_i915_private *dev_priv)
{ {
int irq = dev_priv->lpe_audio.irq; int irq = dev_priv->audio.lpe.irq;
drm_WARN_ON(&dev_priv->drm, !intel_irqs_enabled(dev_priv)); drm_WARN_ON(&dev_priv->drm, !intel_irqs_enabled(dev_priv));
irq_set_chip_and_handler_name(irq, irq_set_chip_and_handler_name(irq,
...@@ -204,15 +204,15 @@ static int lpe_audio_setup(struct drm_i915_private *dev_priv) ...@@ -204,15 +204,15 @@ static int lpe_audio_setup(struct drm_i915_private *dev_priv)
{ {
int ret; int ret;
dev_priv->lpe_audio.irq = irq_alloc_desc(0); dev_priv->audio.lpe.irq = irq_alloc_desc(0);
if (dev_priv->lpe_audio.irq < 0) { if (dev_priv->audio.lpe.irq < 0) {
drm_err(&dev_priv->drm, "Failed to allocate IRQ desc: %d\n", drm_err(&dev_priv->drm, "Failed to allocate IRQ desc: %d\n",
dev_priv->lpe_audio.irq); dev_priv->audio.lpe.irq);
ret = dev_priv->lpe_audio.irq; ret = dev_priv->audio.lpe.irq;
goto err; goto err;
} }
drm_dbg(&dev_priv->drm, "irq = %d\n", dev_priv->lpe_audio.irq); drm_dbg(&dev_priv->drm, "irq = %d\n", dev_priv->audio.lpe.irq);
ret = lpe_audio_irq_init(dev_priv); ret = lpe_audio_irq_init(dev_priv);
...@@ -223,10 +223,10 @@ static int lpe_audio_setup(struct drm_i915_private *dev_priv) ...@@ -223,10 +223,10 @@ static int lpe_audio_setup(struct drm_i915_private *dev_priv)
goto err_free_irq; goto err_free_irq;
} }
dev_priv->lpe_audio.platdev = lpe_audio_platdev_create(dev_priv); dev_priv->audio.lpe.platdev = lpe_audio_platdev_create(dev_priv);
if (IS_ERR(dev_priv->lpe_audio.platdev)) { if (IS_ERR(dev_priv->audio.lpe.platdev)) {
ret = PTR_ERR(dev_priv->lpe_audio.platdev); ret = PTR_ERR(dev_priv->audio.lpe.platdev);
drm_err(&dev_priv->drm, drm_err(&dev_priv->drm,
"Failed to create lpe audio platform device: %d\n", "Failed to create lpe audio platform device: %d\n",
ret); ret);
...@@ -241,10 +241,10 @@ static int lpe_audio_setup(struct drm_i915_private *dev_priv) ...@@ -241,10 +241,10 @@ static int lpe_audio_setup(struct drm_i915_private *dev_priv)
return 0; return 0;
err_free_irq: err_free_irq:
irq_free_desc(dev_priv->lpe_audio.irq); irq_free_desc(dev_priv->audio.lpe.irq);
err: err:
dev_priv->lpe_audio.irq = -1; dev_priv->audio.lpe.irq = -1;
dev_priv->lpe_audio.platdev = NULL; dev_priv->audio.lpe.platdev = NULL;
return ret; return ret;
} }
...@@ -262,7 +262,7 @@ void intel_lpe_audio_irq_handler(struct drm_i915_private *dev_priv) ...@@ -262,7 +262,7 @@ void intel_lpe_audio_irq_handler(struct drm_i915_private *dev_priv)
if (!HAS_LPE_AUDIO(dev_priv)) if (!HAS_LPE_AUDIO(dev_priv))
return; return;
ret = generic_handle_irq(dev_priv->lpe_audio.irq); ret = generic_handle_irq(dev_priv->audio.lpe.irq);
if (ret) if (ret)
drm_err_ratelimited(&dev_priv->drm, drm_err_ratelimited(&dev_priv->drm,
"error handling LPE audio irq: %d\n", ret); "error handling LPE audio irq: %d\n", ret);
...@@ -303,10 +303,10 @@ void intel_lpe_audio_teardown(struct drm_i915_private *dev_priv) ...@@ -303,10 +303,10 @@ void intel_lpe_audio_teardown(struct drm_i915_private *dev_priv)
lpe_audio_platdev_destroy(dev_priv); lpe_audio_platdev_destroy(dev_priv);
irq_free_desc(dev_priv->lpe_audio.irq); irq_free_desc(dev_priv->audio.lpe.irq);
dev_priv->lpe_audio.irq = -1; dev_priv->audio.lpe.irq = -1;
dev_priv->lpe_audio.platdev = NULL; dev_priv->audio.lpe.platdev = NULL;
} }
/** /**
...@@ -333,7 +333,7 @@ void intel_lpe_audio_notify(struct drm_i915_private *dev_priv, ...@@ -333,7 +333,7 @@ void intel_lpe_audio_notify(struct drm_i915_private *dev_priv,
if (!HAS_LPE_AUDIO(dev_priv)) if (!HAS_LPE_AUDIO(dev_priv))
return; return;
pdata = dev_get_platdata(&dev_priv->lpe_audio.platdev->dev); pdata = dev_get_platdata(&dev_priv->audio.lpe.platdev->dev);
ppdata = &pdata->port[port - PORT_B]; ppdata = &pdata->port[port - PORT_B];
spin_lock_irqsave(&pdata->lpe_audio_slock, irqflags); spin_lock_irqsave(&pdata->lpe_audio_slock, irqflags);
...@@ -361,7 +361,7 @@ void intel_lpe_audio_notify(struct drm_i915_private *dev_priv, ...@@ -361,7 +361,7 @@ void intel_lpe_audio_notify(struct drm_i915_private *dev_priv,
} }
if (pdata->notify_audio_lpe) if (pdata->notify_audio_lpe)
pdata->notify_audio_lpe(dev_priv->lpe_audio.platdev, port - PORT_B); pdata->notify_audio_lpe(dev_priv->audio.lpe.platdev, port - PORT_B);
spin_unlock_irqrestore(&pdata->lpe_audio_slock, irqflags); spin_unlock_irqrestore(&pdata->lpe_audio_slock, irqflags);
} }
...@@ -324,7 +324,7 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) ...@@ -324,7 +324,7 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv)
mutex_init(&dev_priv->sb_lock); mutex_init(&dev_priv->sb_lock);
cpu_latency_qos_add_request(&dev_priv->sb_qos, PM_QOS_DEFAULT_VALUE); cpu_latency_qos_add_request(&dev_priv->sb_qos, PM_QOS_DEFAULT_VALUE);
mutex_init(&dev_priv->av_mutex); mutex_init(&dev_priv->audio.mutex);
mutex_init(&dev_priv->wm.wm_mutex); mutex_init(&dev_priv->wm.wm_mutex);
mutex_init(&dev_priv->pps_mutex); mutex_init(&dev_priv->pps_mutex);
mutex_init(&dev_priv->hdcp_comp_mutex); mutex_init(&dev_priv->hdcp_comp_mutex);
......
...@@ -1215,27 +1215,25 @@ struct drm_i915_private { ...@@ -1215,27 +1215,25 @@ struct drm_i915_private {
struct { struct {
/* Display internal audio functions */ /* Display internal audio functions */
const struct intel_audio_funcs *audio_funcs; const struct intel_audio_funcs *funcs;
/* hda/i915 audio component */ /* hda/i915 audio component */
struct i915_audio_component *audio_component; struct i915_audio_component *component;
bool audio_component_registered; bool component_registered;
/** /* mutex for audio/video sync */
* av_mutex - mutex for audio/video sync struct mutex mutex;
*/ int power_refcount;
struct mutex av_mutex; u32 freq_cntrl;
int audio_power_refcount;
u32 audio_freq_cntrl;
/* Used to save the pipe-to-encoder mapping for audio */ /* Used to save the pipe-to-encoder mapping for audio */
struct intel_encoder *av_enc_map[I915_MAX_PIPES]; struct intel_encoder *encoder_map[I915_MAX_PIPES];
/* necessary resource sharing with HDMI LPE audio driver. */ /* necessary resource sharing with HDMI LPE audio driver. */
struct { struct {
struct platform_device *platdev; struct platform_device *platdev;
int irq; int irq;
} lpe_audio; } lpe;
}; } audio;
struct i915_pmu pmu; struct i915_pmu pmu;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment