ALSA: firewire: arrange common PCM info/constraints for AMDTP engine applications
In ALSA firewire stack, 8 drivers uses IEC 61883-1/6 engine for data transmission. They have common PCM info/constraints and duplicated codes. This commit unifies the codes into fireiwre-lib. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Šī revīzija ir iekļauta:

revīziju iesūtīja
Takashi Iwai

vecāks
c6706de0ce
revīzija
55799c5ab9
@@ -91,18 +91,6 @@ static void limit_channels_and_rates(struct snd_pcm_hardware *hw,
|
||||
}
|
||||
}
|
||||
|
||||
static void limit_period_and_buffer(struct snd_pcm_hardware *hw)
|
||||
{
|
||||
hw->periods_min = 2; /* SNDRV_PCM_INFO_BATCH */
|
||||
hw->periods_max = UINT_MAX;
|
||||
|
||||
hw->period_bytes_min = 4 * hw->channels_max; /* bytes for a frame */
|
||||
|
||||
/* Just to prevent from allocating much pages. */
|
||||
hw->period_bytes_max = hw->period_bytes_min * 2048;
|
||||
hw->buffer_bytes_max = hw->period_bytes_max * hw->periods_min;
|
||||
}
|
||||
|
||||
static int pcm_init_hw_params(struct snd_ff *ff,
|
||||
struct snd_pcm_substream *substream)
|
||||
{
|
||||
@@ -111,13 +99,6 @@ static int pcm_init_hw_params(struct snd_ff *ff,
|
||||
const unsigned int *pcm_channels;
|
||||
int err;
|
||||
|
||||
runtime->hw.info = SNDRV_PCM_INFO_BATCH |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_JOINT_DUPLEX |
|
||||
SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_MMAP_VALID;
|
||||
|
||||
if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) {
|
||||
runtime->hw.formats = SNDRV_PCM_FMTBIT_S32;
|
||||
s = &ff->tx_stream;
|
||||
@@ -128,9 +109,7 @@ static int pcm_init_hw_params(struct snd_ff *ff,
|
||||
pcm_channels = ff->spec->pcm_playback_channels;
|
||||
}
|
||||
|
||||
/* limit rates */
|
||||
limit_channels_and_rates(&runtime->hw, pcm_channels);
|
||||
limit_period_and_buffer(&runtime->hw);
|
||||
|
||||
err = snd_pcm_hw_rule_add(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS,
|
||||
hw_rule_channels, (void *)pcm_channels,
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user