|
@@ -47,14 +47,16 @@ static const unsigned int bridgeco_freq_table[] = {
|
|
|
[6] = 0x07,
|
|
|
};
|
|
|
|
|
|
-static unsigned int
|
|
|
-get_formation_index(unsigned int rate)
|
|
|
+static int
|
|
|
+get_formation_index(unsigned int rate, unsigned int *index)
|
|
|
{
|
|
|
unsigned int i;
|
|
|
|
|
|
for (i = 0; i < ARRAY_SIZE(snd_bebob_rate_table); i++) {
|
|
|
- if (snd_bebob_rate_table[i] == rate)
|
|
|
- return i;
|
|
|
+ if (snd_bebob_rate_table[i] == rate) {
|
|
|
+ *index = i;
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
}
|
|
|
return -EINVAL;
|
|
|
}
|
|
@@ -425,7 +427,9 @@ make_both_connections(struct snd_bebob *bebob, unsigned int rate)
|
|
|
goto end;
|
|
|
|
|
|
/* confirm params for both streams */
|
|
|
- index = get_formation_index(rate);
|
|
|
+ err = get_formation_index(rate, &index);
|
|
|
+ if (err < 0)
|
|
|
+ goto end;
|
|
|
pcm_channels = bebob->tx_stream_formations[index].pcm;
|
|
|
midi_channels = bebob->tx_stream_formations[index].midi;
|
|
|
err = amdtp_am824_set_parameters(&bebob->tx_stream, rate,
|