Re: [Jack-Devel] Can't bring F/P below 128

PrevNext  Index
DateSun, 18 Dec 2011 23:53:41 +0100
From Clemens Ladisch <[hidden] at ladisch dot de>
To[hidden] at lists dot jackaudio dot org
In-Reply-ToNikos Chantziaras [Jack-Devel] Can't bring F/P below 128
Follow-UpNikos Chantziaras Re: [Jack-Devel] Can't bring F/P below 128
Nikos Chantziaras wrote:
> I was using a very old and very cheap Soundblaster Live 24-bit PCI.
> That card uses a CA0106 chip, ... in JACK (using JACK2 now), I could
> use an F/P setting of 64 without suffering from XRUNs.
>
> I recently got a new mainboard, which came with a recent on-board
> sound chip, an ALC892 from Realtek.

The interesting part is the HDA controller (part of the chipset).

> it's impossible to use 64 F/P on it.  [...] It's not like I get too
> many XRUNs at 64 and lower, but rather I can't get anything else than
> just a static buzz noise.

It's likely that the HDA controller uses a larger burst size to save
power, and that it is too large for this small a period size.  If I've
read the Intel documentation correctly, is uses packets of at most
128 *bytes*, so in theory, it should work.  However, it might be
worthwhile to try reducing it.  Please try the patch below.


Regards,
Clemens


--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -1428,6 +1428,8 @@ static int azx_setup_controller(struct azx *chip, struct azx_dev *azx_dev)
 	/* this value needs to be the same as the one programmed */
 	azx_sd_writew(azx_dev, SD_FORMAT, azx_dev->format_val);

+	azx_sd_writew(azx_dev, SD_FIFOSIZE, 0x1f);
+
 	/* program the stream LVI (last valid index) of the BDL */
 	azx_sd_writew(azx_dev, SD_LVI, azx_dev->frags - 1);
PrevNext  Index

1324248850.12599_0.ltw:2,a <4EEE6EF5.4080202 at ladisch dot de>