ALSA: x86: Drop flag_underrun field
authorTakashi Iwai <tiwai@suse.de>
Wed, 1 Feb 2017 16:37:36 +0000 (17:37 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 3 Feb 2017 16:35:17 +0000 (17:35 +0100)
The flag_underrun flag is used to indicate to escalate the XRUN
reporting at the next position inquiry, but there is a much simpler
method to achieve it: just call snd_pcm_stop_xrun().

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/x86/intel_hdmi_audio.c
sound/x86/intel_hdmi_audio.h

index c0cb59e6a89b23f52cd7fe6389eb264b3eaf5879..9ecdd9ad01997878c88307612ca9db42b3b55a85 100644 (file)
@@ -1297,11 +1297,6 @@ static snd_pcm_uframes_t snd_intelhad_pcm_pointer(
        if (intelhaddata->drv_status == HAD_DRV_DISCONNECTED)
                return SNDRV_PCM_POS_XRUN;
 
-       if (intelhaddata->flag_underrun) {
-               intelhaddata->flag_underrun = false;
-               return SNDRV_PCM_POS_XRUN;
-       }
-
        /* Use a hw register to calculate sub-period position reports.
         * This makes PulseAudio happier.
         */
@@ -1642,8 +1637,7 @@ static int had_process_buffer_underrun(struct snd_intelhad *intelhaddata)
 
        if (stream_type == HAD_RUNNING_STREAM) {
                /* Report UNDERRUN error to above layers */
-               intelhaddata->flag_underrun = true;
-               had_period_elapsed(stream->had_substream);
+               snd_pcm_stop_xrun(stream->had_substream);
        }
 
        return 0;
@@ -1965,7 +1959,6 @@ static int hdmi_lpe_audio_probe(struct platform_device *pdev)
        ctx->drv_status = HAD_DRV_DISCONNECTED;
        ctx->dev = &pdev->dev;
        ctx->card = card;
-       ctx->flag_underrun = false;
        ctx->aes_bits = SNDRV_PCM_DEFAULT_CON_SPDIF;
        strcpy(card->driver, INTEL_HAD);
        strcpy(card->shortname, INTEL_HAD);
index be24682e3946864942478c42ac57a9722b9ee5e5..945f6831f1ddfade16078cc25ba960754894900c 100644 (file)
@@ -123,7 +123,6 @@ struct snd_intelhad {
        enum            intel_had_aud_buf_type curr_buf;
        int             valid_buf_cnt;
        unsigned int    aes_bits;
-       bool flag_underrun;
        struct had_stream_data stream_data;
        spinlock_t had_spinlock;
        enum            intel_had_aud_buf_type buff_done;