Commit 075a1d46 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: x86: Rename had_enable_audio_int() to had_ack_irqs()

had_enable_audio_int() came from the LPE audio shell set_caps
callback with ENABLE_INT and DISABLE_INT caps.  I interpreted as these
correspond to enabling / disabling the audio interface, but the actual
implementation is only to clear (send ACK) to both BUFFER_DONE and
BUFFER_UNDERRUN interrupts unconditionally.  And, there is no
counterpart, DISABLE_INT, code at all.

For avoiding the further misunderstanding, rename the function to the
more fitting one, had_ack_irqs(), and drop the calls with enable=false
in allover places.  There is no functional changes at all.

After this patch, there is only one caller at the PCM trigger start.
Then it's doubtful whether this call is still really needed or not; I
bet it not, but let's stay in the safer side for now and keep it as
was.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 3e21a76c
...@@ -238,17 +238,15 @@ static void had_enable_audio(struct snd_pcm_substream *substream, ...@@ -238,17 +238,15 @@ static void had_enable_audio(struct snd_pcm_substream *substream,
had_write_register(intelhaddata, AUD_CONFIG, val); had_write_register(intelhaddata, AUD_CONFIG, val);
} }
/* enable / disable the audio interface */ /* forcibly ACKs to both BUFFER_DONE and BUFFER_UNDERRUN interrupts */
static void had_enable_audio_int(struct snd_intelhad *ctx, bool enable) static void had_ack_irqs(struct snd_intelhad *ctx)
{ {
u32 status_reg; u32 status_reg;
if (enable) { had_read_register(ctx, AUD_HDMI_STATUS, &status_reg);
had_read_register(ctx, AUD_HDMI_STATUS, &status_reg); status_reg |= HDMI_AUDIO_BUFFER_DONE | HDMI_AUDIO_UNDERRUN;
status_reg |= HDMI_AUDIO_BUFFER_DONE | HDMI_AUDIO_UNDERRUN; had_write_register(ctx, AUD_HDMI_STATUS, status_reg);
had_write_register(ctx, AUD_HDMI_STATUS, status_reg); had_read_register(ctx, AUD_HDMI_STATUS, &status_reg);
had_read_register(ctx, AUD_HDMI_STATUS, &status_reg);
}
} }
/* Reset buffer pointers */ /* Reset buffer pointers */
...@@ -1169,7 +1167,7 @@ static int had_pcm_trigger(struct snd_pcm_substream *substream, int cmd) ...@@ -1169,7 +1167,7 @@ static int had_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
intelhaddata->stream_info.running = true; intelhaddata->stream_info.running = true;
/* Enable Audio */ /* Enable Audio */
had_enable_audio_int(intelhaddata, true); had_ack_irqs(intelhaddata); /* FIXME: do we need this? */
had_enable_audio(substream, intelhaddata, true); had_enable_audio(substream, intelhaddata, true);
break; break;
...@@ -1183,11 +1181,9 @@ static int had_pcm_trigger(struct snd_pcm_substream *substream, int cmd) ...@@ -1183,11 +1181,9 @@ static int had_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
intelhaddata->stream_info.running = false; intelhaddata->stream_info.running = false;
spin_unlock(&intelhaddata->had_spinlock); spin_unlock(&intelhaddata->had_spinlock);
/* Disable Audio */ /* Disable Audio */
had_enable_audio_int(intelhaddata, false);
had_enable_audio(substream, intelhaddata, false); had_enable_audio(substream, intelhaddata, false);
/* Reset buffer pointers */ /* Reset buffer pointers */
had_reset_audio(intelhaddata); had_reset_audio(intelhaddata);
had_enable_audio_int(intelhaddata, false);
break; break;
default: default:
...@@ -1392,7 +1388,6 @@ static void had_process_hot_unplug(struct snd_intelhad *intelhaddata) ...@@ -1392,7 +1388,6 @@ static void had_process_hot_unplug(struct snd_intelhad *intelhaddata)
} }
/* Disable Audio */ /* Disable Audio */
had_enable_audio_int(intelhaddata, false);
had_enable_audio(substream, intelhaddata, false); had_enable_audio(substream, intelhaddata, false);
intelhaddata->connected = false; intelhaddata->connected = false;
...@@ -1802,8 +1797,6 @@ static int hdmi_lpe_audio_remove(struct platform_device *pdev) ...@@ -1802,8 +1797,6 @@ static int hdmi_lpe_audio_remove(struct platform_device *pdev)
{ {
struct snd_intelhad *ctx = platform_get_drvdata(pdev); struct snd_intelhad *ctx = platform_get_drvdata(pdev);
if (ctx->connected)
had_enable_audio_int(ctx, false);
snd_card_free(ctx->card); snd_card_free(ctx->card);
return 0; return 0;
} }
......
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