summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorDenis V. Lunev <den@openvz.org>2011-11-07 20:33:25 +0400
committerTakashi Iwai <tiwai@suse.de>2011-11-08 07:51:21 +0100
commit5a9a51799b23142d2fc3ef94894d3b5ac00d05a5 (patch)
tree44cb622d21314688a2b107fddba720e2136fc523 /sound
parent1ea6b8f48918282bdca0b32a34095504ee65bab5 (diff)
ALSA: intel8x0: Improve comments for VM optimization
The recently merged 228cf79376f1 looks a bit hackish while it is not. The change was quite simple. In a virtualized environment the patch unhacks old kludge introduced for old broken AC97 hardware. This patch adds proper comment to "unkludge" code. Signed-off-by: Denis V. Lunev <den@openvz.org> Signed-off-by: Konstantin Ozerkov <kozerkov@parallels.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/intel8x0.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
index 29e312597f20..c3b9bd0e188e 100644
--- a/sound/pci/intel8x0.c
+++ b/sound/pci/intel8x0.c
@@ -1077,6 +1077,13 @@ static snd_pcm_uframes_t snd_intel8x0_pcm_pointer(struct snd_pcm_substream *subs
}
if (civ != igetbyte(chip, ichdev->reg_offset + ICH_REG_OFF_CIV))
continue;
+
+ /* IO read operation is very expensive inside virtual machine
+ * as it is emulated. The probability that subsequent PICB read
+ * will return different result is high enough to loop till
+ * timeout here.
+ * Same CIV is strict enough condition to be sure that PICB
+ * is valid inside VM on emulated card. */
if (chip->inside_vm)
break;
if (ptr1 == igetword(chip, ichdev->reg_offset + ichdev->roff_picb))