aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/rme9652
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/rme9652')
-rw-r--r--sound/pci/rme9652/hdspm.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c
index d21964994168..88ae27431cb2 100644
--- a/sound/pci/rme9652/hdspm.c
+++ b/sound/pci/rme9652/hdspm.c
@@ -1217,6 +1217,22 @@ static int hdspm_external_sample_rate(struct hdspm *hdspm)
1217 rate = 0; 1217 rate = 0;
1218 break; 1218 break;
1219 } 1219 }
1220
1221 /* QS and DS rates normally can not be detected
1222 * automatically by the card. Only exception is MADI
1223 * in 96k frame mode.
1224 *
1225 * So if we read SS values (32 .. 48k), check for
1226 * user-provided DS/QS bits in the control register
1227 * and multiply the base frequency accordingly.
1228 */
1229 if (rate <= 48000) {
1230 if (hdspm->control_register & HDSPM_QuadSpeed)
1231 rate *= 4;
1232 else if (hdspm->control_register &
1233 HDSPM_DoubleSpeed)
1234 rate *= 2;
1235 }
1220 } 1236 }
1221 break; 1237 break;
1222 } 1238 }