Commit e569da26 authored by Christian Gromm's avatar Christian Gromm Committed by Greg Kroah-Hartman

staging: most: move initialization code

This pathch moves the initialization of the PCM middle layer hardware
parameters to function audio_set_hw_params().
Signed-off-by: default avatarChristian Gromm <christian.gromm@microchip.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent fb0056a8
...@@ -68,17 +68,6 @@ struct channel { ...@@ -68,17 +68,6 @@ struct channel {
SNDRV_PCM_INFO_INTERLEAVED | \ SNDRV_PCM_INFO_INTERLEAVED | \
SNDRV_PCM_INFO_BLOCK_TRANSFER) SNDRV_PCM_INFO_BLOCK_TRANSFER)
/**
* Initialization of struct snd_pcm_hardware
*/
static void init_pcm_hardware(struct snd_pcm_hardware *pcm_hw)
{
pcm_hw->info = MOST_PCM_INFO;
pcm_hw->rates = SNDRV_PCM_RATE_48000;
pcm_hw->rate_min = 48000;
pcm_hw->rate_max = 48000;
};
#define swap16(val) ( \ #define swap16(val) ( \
(((u16)(val) << 8) & (u16)0xFF00) | \ (((u16)(val) << 8) & (u16)0xFF00) | \
(((u16)(val) >> 8) & (u16)0x00FF)) (((u16)(val) >> 8) & (u16)0x00FF))
...@@ -305,12 +294,6 @@ static int pcm_open(struct snd_pcm_substream *substream) ...@@ -305,12 +294,6 @@ static int pcm_open(struct snd_pcm_substream *substream)
} }
runtime->hw = channel->pcm_hardware; runtime->hw = channel->pcm_hardware;
runtime->hw.buffer_bytes_max = cfg->num_buffers * cfg->buffer_size;
runtime->hw.period_bytes_min = cfg->buffer_size;
runtime->hw.period_bytes_max = cfg->buffer_size;
runtime->hw.periods_min = 1;
runtime->hw.periods_max = cfg->num_buffers;
return 0; return 0;
} }
...@@ -500,6 +483,16 @@ static int audio_set_hw_params(struct snd_pcm_hardware *pcm_hw, ...@@ -500,6 +483,16 @@ static int audio_set_hw_params(struct snd_pcm_hardware *pcm_hw,
char *pcm_format, char *pcm_format,
struct most_channel_config *cfg) struct most_channel_config *cfg)
{ {
pcm_hw->info = MOST_PCM_INFO;
pcm_hw->rates = SNDRV_PCM_RATE_48000;
pcm_hw->rate_min = 48000;
pcm_hw->rate_max = 48000;
pcm_hw->buffer_bytes_max = cfg->num_buffers * cfg->buffer_size;
pcm_hw->period_bytes_min = cfg->buffer_size;
pcm_hw->period_bytes_max = cfg->buffer_size;
pcm_hw->periods_min = 1;
pcm_hw->periods_max = cfg->num_buffers;
if (!strcmp(pcm_format, "1x8")) { if (!strcmp(pcm_format, "1x8")) {
if (cfg->subbuffer_size != 1) if (cfg->subbuffer_size != 1)
goto error; goto error;
...@@ -614,7 +607,6 @@ static int audio_probe_channel(struct most_interface *iface, int channel_id, ...@@ -614,7 +607,6 @@ static int audio_probe_channel(struct most_interface *iface, int channel_id,
channel->cfg = cfg; channel->cfg = cfg;
channel->iface = iface; channel->iface = iface;
channel->id = channel_id; channel->id = channel_id;
init_pcm_hardware(&channel->pcm_hardware);
if (audio_set_hw_params(&channel->pcm_hardware, pcm_format, cfg)) if (audio_set_hw_params(&channel->pcm_hardware, pcm_format, cfg))
goto err_free_card; goto err_free_card;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment