aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/pci/rme9652/hdspm.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c
index 92588975f580..509a35a881f5 100644
--- a/sound/pci/rme9652/hdspm.c
+++ b/sound/pci/rme9652/hdspm.c
@@ -1231,8 +1231,17 @@ static snd_pcm_uframes_t hdspm_hw_pointer(struct hdspm *hdspm)
1231 int position; 1231 int position;
1232 1232
1233 position = hdspm_read(hdspm, HDSPM_statusRegister); 1233 position = hdspm_read(hdspm, HDSPM_statusRegister);
1234 position &= HDSPM_BufferPositionMask; 1234
1235 position /= 4; /* Bytes per sample */ 1235 switch (hdspm->io_type) {
1236 case RayDAT:
1237 case AIO:
1238 position &= HDSPM_BufferPositionMask;
1239 position /= 4; /* Bytes per sample */
1240 break;
1241 default:
1242 position = (position & HDSPM_BufferID) ?
1243 (hdspm->period_bytes / 4) : 0;
1244 }
1236 1245
1237 return position; 1246 return position;
1238} 1247}