[alsa-devel] [snd_ali5451] snd_ali5451 0000:00:06.0: BUG: , pos = 16384, buffer size = 16384, period size = 1024

Takashi Iwai tiwai at suse.de
Mon Apr 25 10:50:07 CEST 2016


On Sun, 24 Apr 2016 18:43:11 +0200,
Enrico Mioso wrote:
> 
> After using the system for some time, the following is present on my dmesg:
> $ dmesg -t | grep -i ali5 | sort | uniq
> 
> pnp 00:06: Plug and Play ACPI device, IDs ALI5123 PNP0510 (active)
> snd_ali5451 0000:00:06.0: AC'97 1 access is not valid [0xffffffff], removing mixer.
> snd_ali5451 0000:00:06.0: AC'97 1 does not respond - RESET
> snd_ali5451 0000:00:06.0: ali mixer 1 creating error.
> snd_ali5451 0000:00:06.0: enabling device (0005 -> 0007)
> snd_ali5451 0000:00:06.0: invalid position: , pos = 16384, buffer size = 16384, period size = 1024
> snd_ali5451 0000:00:06.0: invalid position: , pos = 16385, buffer size = 16384, period size = 1024

The kernel warning itself can be fixed by the patch below.
The remaining question is whether this covers all; do the playback and
capture still work well despite of these messages?  Or do you actually
encounter the overrun / underrun?

In anyway, let me know whether the patch works.


thanks,

Takashi

---
diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c
index 36470af7eda7..92b819e4f729 100644
--- a/sound/pci/ali5451/ali5451.c
+++ b/sound/pci/ali5451/ali5451.c
@@ -1408,6 +1408,7 @@ snd_ali_playback_pointer(struct snd_pcm_substream *substream)
 	spin_unlock(&codec->reg_lock);
 	dev_dbg(codec->card->dev, "playback pointer returned cso=%xh.\n", cso);
 
+	cso %= runtime->buffer_size;
 	return cso;
 }
 
@@ -1428,6 +1429,7 @@ static snd_pcm_uframes_t snd_ali_pointer(struct snd_pcm_substream *substream)
 	cso = inw(ALI_REG(codec, ALI_CSO_ALPHA_FMS + 2));
 	spin_unlock(&codec->reg_lock);
 
+	cso %= runtime->buffer_size;
 	return cso;
 }
 


More information about the Alsa-devel mailing list