ALSA: dice: add cache of stream formats
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 2 May 2018 10:16:39 +0000 (19:16 +0900)
committerTakashi Iwai <tiwai@suse.de>
Wed, 2 May 2018 14:01:50 +0000 (16:01 +0200)
A previous commit 6f688268b3f4 ('ALSA: dice: purge generating channel
cache') purged cache of stream formats. DICE interface originally has
no feature to assist drivers to retrieve available formats for all of
supported sampling transmission frequencies, without changing the
frequency actually.

For later release of Dice ASICs such as TCD2210, Dice interface has
extended protocol and can support the feature. This assists drivers
to retrieve available stream formats.

This commit is a first step to regain the cache to generate PCM rules
for all of supported sampling transmission frequencies.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/dice/dice.h

index da00e75e09d4aec7d990dff685d55f554dbc5787..8f68976930c58cb880700c457d7009e894fef6d1 100644 (file)
  */
 #define MAX_STREAMS    2
 
+enum snd_dice_rate_mode {
+       SND_DICE_RATE_MODE_LOW = 0,
+       SND_DICE_RATE_MODE_MIDDLE,
+       SND_DICE_RATE_MODE_HIGH,
+       SND_DICE_RATE_MODE_COUNT,
+};
+
 struct snd_dice {
        struct snd_card *card;
        struct fw_unit *unit;
@@ -80,6 +87,10 @@ struct snd_dice {
        unsigned int rsrv_offset;
 
        unsigned int clock_caps;
+       unsigned int tx_pcm_chs[MAX_STREAMS][SND_DICE_RATE_MODE_COUNT];
+       unsigned int rx_pcm_chs[MAX_STREAMS][SND_DICE_RATE_MODE_COUNT];
+       unsigned int tx_midi_ports[MAX_STREAMS];
+       unsigned int rx_midi_ports[MAX_STREAMS];
 
        struct fw_address_handler notification_handler;
        int owner_generation;