diff options
| -rw-r--r-- | drivers/bluetooth/btfm_slim_codec.c | 54 |
1 files changed, 22 insertions, 32 deletions
diff --git a/drivers/bluetooth/btfm_slim_codec.c b/drivers/bluetooth/btfm_slim_codec.c index 354b48bfa2a8..061177173ab8 100644 --- a/drivers/bluetooth/btfm_slim_codec.c +++ b/drivers/bluetooth/btfm_slim_codec.c @@ -54,7 +54,7 @@ static int btfm_slim_dai_startup(struct snd_pcm_substream *substream, int ret; struct btfmslim *btfmslim = dai->dev->platform_data; - BTFMSLIM_DBG("substream = %s stream = %d dai name = %s", + BTFMSLIM_DBG("substream = %s stream = %d dai->name = %s", substream->name, substream->stream, dai->name); ret = btfm_slim_hw_init(btfmslim); return ret; @@ -63,33 +63,12 @@ static int btfm_slim_dai_startup(struct snd_pcm_substream *substream, static void btfm_slim_dai_shutdown(struct snd_pcm_substream *substream, struct snd_soc_dai *dai) { - struct btfmslim *btfmslim = dai->dev->platform_data; - - BTFMSLIM_DBG("substream = %s stream = %d dai name = %s", - substream->name, substream->stream, dai->name); - btfm_slim_hw_deinit(btfmslim); -} - -static int btfm_slim_dai_hw_params(struct snd_pcm_substream *substream, - struct snd_pcm_hw_params *params, - struct snd_soc_dai *dai) -{ - BTFMSLIM_DBG("dai name = %s DAI-ID %x rate %d num_ch %d", - dai->name, dai->id, params_rate(params), - params_channels(params)); - - return 0; -} - -int btfm_slim_dai_prepare(struct snd_pcm_substream *substream, - struct snd_soc_dai *dai) -{ - int i, ret = -EINVAL; + int i; struct btfmslim *btfmslim = dai->dev->platform_data; struct btfmslim_ch *ch; uint8_t rxport, grp = false, nchan = 1; - BTFMSLIM_DBG("dai name: %s, dai->id: %d, dai->rate: %d", dai->name, + BTFMSLIM_DBG("dai->name: %s, dai->id: %d, dai->rate: %d", dai->name, dai->id, dai->rate); switch (dai->id) { @@ -110,7 +89,7 @@ int btfm_slim_dai_prepare(struct snd_pcm_substream *substream, case BTFM_SLIM_NUM_CODEC_DAIS: default: BTFMSLIM_ERR("dai->id is invalid:%d", dai->id); - return ret; + return; } /* Search for dai->id matched port handler */ @@ -122,14 +101,25 @@ int btfm_slim_dai_prepare(struct snd_pcm_substream *substream, if ((ch->port == BTFM_SLIM_PGD_PORT_LAST) || (ch->id == BTFM_SLIM_NUM_CODEC_DAIS)) { BTFMSLIM_ERR("ch is invalid!!"); - return ret; + return; } - ret = btfm_slim_enable_ch(btfmslim, ch, rxport, dai->rate, grp, nchan); - return ret; + btfm_slim_disable_ch(btfmslim, ch, rxport, grp, nchan); + btfm_slim_hw_deinit(btfmslim); } -int btfm_slim_dai_hw_free(struct snd_pcm_substream *substream, +static int btfm_slim_dai_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params, + struct snd_soc_dai *dai) +{ + BTFMSLIM_DBG("dai->name = %s DAI-ID %x rate %d num_ch %d", + dai->name, dai->id, params_rate(params), + params_channels(params)); + + return 0; +} + +int btfm_slim_dai_prepare(struct snd_pcm_substream *substream, struct snd_soc_dai *dai) { int i, ret = -EINVAL; @@ -137,7 +127,7 @@ int btfm_slim_dai_hw_free(struct snd_pcm_substream *substream, struct btfmslim_ch *ch; uint8_t rxport, grp = false, nchan = 1; - BTFMSLIM_DBG("dai name: %s, dai->id: %d, dai->rate: %d", dai->name, + BTFMSLIM_DBG("dai->name: %s, dai->id: %d, dai->rate: %d", dai->name, dai->id, dai->rate); switch (dai->id) { @@ -172,7 +162,8 @@ int btfm_slim_dai_hw_free(struct snd_pcm_substream *substream, BTFMSLIM_ERR("ch is invalid!!"); return ret; } - ret = btfm_slim_disable_ch(btfmslim, ch, rxport, grp, nchan); + + ret = btfm_slim_enable_ch(btfmslim, ch, rxport, dai->rate, grp, nchan); return ret; } @@ -315,7 +306,6 @@ static struct snd_soc_dai_ops btfmslim_dai_ops = { .shutdown = btfm_slim_dai_shutdown, .hw_params = btfm_slim_dai_hw_params, .prepare = btfm_slim_dai_prepare, - .hw_free = btfm_slim_dai_hw_free, .set_channel_map = btfm_slim_dai_set_channel_map, .get_channel_map = btfm_slim_dai_get_channel_map, }; |
