ALSA: firewire-tascam: register the size of PCM period to AMDTP domain
[linux-2.6-block.git] / sound / firewire / tascam / tascam-stream.c
index adf69a520b800bb68eed64adc00e3d68664412e8..8c04a0ad17d9d2c6501274e45057e81e8a7c8513 100644 (file)
@@ -383,7 +383,8 @@ void snd_tscm_stream_destroy_duplex(struct snd_tscm *tscm)
        destroy_stream(tscm, &tscm->tx_stream);
 }
 
-int snd_tscm_stream_reserve_duplex(struct snd_tscm *tscm, unsigned int rate)
+int snd_tscm_stream_reserve_duplex(struct snd_tscm *tscm, unsigned int rate,
+                                  unsigned int frames_per_period)
 {
        unsigned int curr_rate;
        int err;
@@ -413,6 +414,14 @@ int snd_tscm_stream_reserve_duplex(struct snd_tscm *tscm, unsigned int rate)
                        fw_iso_resources_free(&tscm->tx_resources);
                        return err;
                }
+
+               err = amdtp_domain_set_events_per_period(&tscm->domain,
+                                                       frames_per_period);
+               if (err < 0) {
+                       fw_iso_resources_free(&tscm->tx_resources);
+                       fw_iso_resources_free(&tscm->rx_resources);
+                       return err;
+               }
        }
 
        return 0;