diff options
Diffstat (limited to 'sound/pci/hda/hda_intel.c')
-rw-r--r-- | sound/pci/hda/hda_intel.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 9590ece2099d..6fe696e53ea6 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
@@ -1137,6 +1137,7 @@ static snd_pcm_uframes_t azx_pcm_pointer(snd_pcm_substream_t *substream) | |||
1137 | pos = azx_sd_readl(azx_dev, SD_LPIB); | 1137 | pos = azx_sd_readl(azx_dev, SD_LPIB); |
1138 | if (chip->position_fix == POS_FIX_FIFO) | 1138 | if (chip->position_fix == POS_FIX_FIFO) |
1139 | pos += azx_dev->fifo_size; | 1139 | pos += azx_dev->fifo_size; |
1140 | #if 0 /* disabled temprarily, auto-correction doesn't work well... */ | ||
1140 | else if (chip->position_fix == POS_FIX_AUTO && azx_dev->period_updating) { | 1141 | else if (chip->position_fix == POS_FIX_AUTO && azx_dev->period_updating) { |
1141 | /* check the validity of DMA position */ | 1142 | /* check the validity of DMA position */ |
1142 | unsigned int diff = 0; | 1143 | unsigned int diff = 0; |
@@ -1157,6 +1158,10 @@ static snd_pcm_uframes_t azx_pcm_pointer(snd_pcm_substream_t *substream) | |||
1157 | } | 1158 | } |
1158 | azx_dev->period_updating = 0; | 1159 | azx_dev->period_updating = 0; |
1159 | } | 1160 | } |
1161 | #else | ||
1162 | else if (chip->position_fix == POS_FIX_AUTO) | ||
1163 | pos += azx_dev->fifo_size; | ||
1164 | #endif | ||
1160 | } | 1165 | } |
1161 | if (pos >= azx_dev->bufsize) | 1166 | if (pos >= azx_dev->bufsize) |
1162 | pos = 0; | 1167 | pos = 0; |