ASoC: SoundWire codecs: simplify/fix set_stream
Merge series from Bard Liao <yung-chuan.liao@linux.intel.com>: Simplify set_stream in SoundWire codecs.
This commit is contained in:
commit
8a8f944ff2
@ -152,9 +152,6 @@ static int cs42l42_sdw_port_prep(struct sdw_slave *slave,
|
||||
static int cs42l42_sdw_dai_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
int direction)
|
||||
{
|
||||
if (!sdw_stream)
|
||||
return 0;
|
||||
|
||||
snd_soc_dai_dma_data_set(dai, direction, sdw_stream);
|
||||
|
||||
return 0;
|
||||
|
@ -20,10 +20,6 @@
|
||||
#include "max98373.h"
|
||||
#include "max98373-sdw.h"
|
||||
|
||||
struct sdw_stream_data {
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
};
|
||||
|
||||
static const u32 max98373_sdw_cache_reg[] = {
|
||||
MAX98373_R2054_MEAS_ADC_PVDD_CH_READBACK,
|
||||
MAX98373_R2055_MEAS_ADC_THERM_CH_READBACK,
|
||||
@ -536,12 +532,12 @@ static int max98373_sdw_dai_hw_params(struct snd_pcm_substream *substream,
|
||||
snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_config stream_config = {0};
|
||||
struct sdw_port_config port_config = {0};
|
||||
struct sdw_stream_data *stream;
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
int ret, chan_sz, sampling_rate;
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
sdw_stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!stream)
|
||||
if (!sdw_stream)
|
||||
return -EINVAL;
|
||||
|
||||
if (!max98373->slave)
|
||||
@ -565,7 +561,7 @@ static int max98373_sdw_dai_hw_params(struct snd_pcm_substream *substream,
|
||||
}
|
||||
|
||||
ret = sdw_stream_add_slave(max98373->slave, &stream_config,
|
||||
&port_config, 1, stream->sdw_stream);
|
||||
&port_config, 1, sdw_stream);
|
||||
if (ret) {
|
||||
dev_err(dai->dev, "Unable to configure port\n");
|
||||
return ret;
|
||||
@ -664,32 +660,20 @@ static int max98373_pcm_hw_free(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_component *component = dai->component;
|
||||
struct max98373_priv *max98373 =
|
||||
snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_data *stream =
|
||||
struct sdw_stream_runtime *sdw_stream =
|
||||
snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!max98373->slave)
|
||||
return -EINVAL;
|
||||
|
||||
sdw_stream_remove_slave(max98373->slave, stream->sdw_stream);
|
||||
sdw_stream_remove_slave(max98373->slave, sdw_stream);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int max98373_set_sdw_stream(struct snd_soc_dai *dai,
|
||||
void *sdw_stream, int direction)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
if (!sdw_stream)
|
||||
return 0;
|
||||
|
||||
stream = kzalloc(sizeof(*stream), GFP_KERNEL);
|
||||
if (!stream)
|
||||
return -ENOMEM;
|
||||
|
||||
stream->sdw_stream = sdw_stream;
|
||||
|
||||
/* Use tx_mask or rx_mask to configure stream tag and set dma_data */
|
||||
snd_soc_dai_dma_data_set(dai, direction, stream);
|
||||
snd_soc_dai_dma_data_set(dai, direction, sdw_stream);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -697,11 +681,7 @@ static int max98373_set_sdw_stream(struct snd_soc_dai *dai,
|
||||
static void max98373_shutdown(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_dai *dai)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
snd_soc_dai_set_dma_data(dai, substream, NULL);
|
||||
kfree(stream);
|
||||
}
|
||||
|
||||
static int max98373_sdw_set_tdm_slot(struct snd_soc_dai *dai,
|
||||
|
@ -496,19 +496,7 @@ static const struct snd_soc_dapm_route rt1308_dapm_routes[] = {
|
||||
static int rt1308_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
int direction)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
if (!sdw_stream)
|
||||
return 0;
|
||||
|
||||
stream = kzalloc(sizeof(*stream), GFP_KERNEL);
|
||||
if (!stream)
|
||||
return -ENOMEM;
|
||||
|
||||
stream->sdw_stream = sdw_stream;
|
||||
|
||||
/* Use tx_mask or rx_mask to configure stream tag and set dma_data */
|
||||
snd_soc_dai_dma_data_set(dai, direction, stream);
|
||||
snd_soc_dai_dma_data_set(dai, direction, sdw_stream);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -516,11 +504,7 @@ static int rt1308_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
static void rt1308_sdw_shutdown(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_dai *dai)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
snd_soc_dai_set_dma_data(dai, substream, NULL);
|
||||
kfree(stream);
|
||||
}
|
||||
|
||||
static int rt1308_sdw_set_tdm_slot(struct snd_soc_dai *dai,
|
||||
@ -553,13 +537,13 @@ static int rt1308_sdw_hw_params(struct snd_pcm_substream *substream,
|
||||
snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_config stream_config = {0};
|
||||
struct sdw_port_config port_config = {0};
|
||||
struct sdw_stream_data *stream;
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
int retval;
|
||||
|
||||
dev_dbg(dai->dev, "%s %s", __func__, dai->name);
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
sdw_stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!stream)
|
||||
if (!sdw_stream)
|
||||
return -EINVAL;
|
||||
|
||||
if (!rt1308->sdw_slave)
|
||||
@ -580,7 +564,7 @@ static int rt1308_sdw_hw_params(struct snd_pcm_substream *substream,
|
||||
}
|
||||
|
||||
retval = sdw_stream_add_slave(rt1308->sdw_slave, &stream_config,
|
||||
&port_config, 1, stream->sdw_stream);
|
||||
&port_config, 1, sdw_stream);
|
||||
if (retval) {
|
||||
dev_err(dai->dev, "Unable to configure port\n");
|
||||
return retval;
|
||||
@ -595,13 +579,13 @@ static int rt1308_sdw_pcm_hw_free(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_component *component = dai->component;
|
||||
struct rt1308_sdw_priv *rt1308 =
|
||||
snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_data *stream =
|
||||
struct sdw_stream_runtime *sdw_stream =
|
||||
snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!rt1308->sdw_slave)
|
||||
return -EINVAL;
|
||||
|
||||
sdw_stream_remove_slave(rt1308->sdw_slave, stream->sdw_stream);
|
||||
sdw_stream_remove_slave(rt1308->sdw_slave, sdw_stream);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -170,8 +170,4 @@ struct rt1308_sdw_priv {
|
||||
unsigned int bq_params_cnt;
|
||||
};
|
||||
|
||||
struct sdw_stream_data {
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
};
|
||||
|
||||
#endif /* __RT1308_SDW_H__ */
|
||||
|
@ -494,19 +494,7 @@ static const struct snd_soc_dapm_route rt1316_dapm_routes[] = {
|
||||
static int rt1316_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
int direction)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
if (!sdw_stream)
|
||||
return 0;
|
||||
|
||||
stream = kzalloc(sizeof(*stream), GFP_KERNEL);
|
||||
if (!stream)
|
||||
return -ENOMEM;
|
||||
|
||||
stream->sdw_stream = sdw_stream;
|
||||
|
||||
/* Use tx_mask or rx_mask to configure stream tag and set dma_data */
|
||||
snd_soc_dai_dma_data_set(dai, direction, stream);
|
||||
snd_soc_dai_dma_data_set(dai, direction, sdw_stream);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -514,11 +502,7 @@ static int rt1316_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
static void rt1316_sdw_shutdown(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_dai *dai)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
snd_soc_dai_set_dma_data(dai, substream, NULL);
|
||||
kfree(stream);
|
||||
}
|
||||
|
||||
static int rt1316_sdw_hw_params(struct snd_pcm_substream *substream,
|
||||
@ -529,13 +513,13 @@ static int rt1316_sdw_hw_params(struct snd_pcm_substream *substream,
|
||||
snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_config stream_config = {0};
|
||||
struct sdw_port_config port_config = {0};
|
||||
struct sdw_stream_data *stream;
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
int retval;
|
||||
|
||||
dev_dbg(dai->dev, "%s %s", __func__, dai->name);
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
sdw_stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!stream)
|
||||
if (!sdw_stream)
|
||||
return -EINVAL;
|
||||
|
||||
if (!rt1316->sdw_slave)
|
||||
@ -551,7 +535,7 @@ static int rt1316_sdw_hw_params(struct snd_pcm_substream *substream,
|
||||
port_config.num = 2;
|
||||
|
||||
retval = sdw_stream_add_slave(rt1316->sdw_slave, &stream_config,
|
||||
&port_config, 1, stream->sdw_stream);
|
||||
&port_config, 1, sdw_stream);
|
||||
if (retval) {
|
||||
dev_err(dai->dev, "Unable to configure port\n");
|
||||
return retval;
|
||||
@ -566,13 +550,13 @@ static int rt1316_sdw_pcm_hw_free(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_component *component = dai->component;
|
||||
struct rt1316_sdw_priv *rt1316 =
|
||||
snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_data *stream =
|
||||
struct sdw_stream_runtime *sdw_stream =
|
||||
snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!rt1316->sdw_slave)
|
||||
return -EINVAL;
|
||||
|
||||
sdw_stream_remove_slave(rt1316->sdw_slave, stream->sdw_stream);
|
||||
sdw_stream_remove_slave(rt1316->sdw_slave, sdw_stream);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -50,8 +50,4 @@ struct rt1316_sdw_priv {
|
||||
unsigned int bq_params_cnt;
|
||||
};
|
||||
|
||||
struct sdw_stream_data {
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
};
|
||||
|
||||
#endif /* __RT1316_SDW_H__ */
|
||||
|
@ -562,19 +562,7 @@ static const struct snd_soc_dapm_route rt1318_dapm_routes[] = {
|
||||
static int rt1318_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
int direction)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
if (!sdw_stream)
|
||||
return 0;
|
||||
|
||||
stream = kzalloc(sizeof(*stream), GFP_KERNEL);
|
||||
if (!stream)
|
||||
return -ENOMEM;
|
||||
|
||||
stream->sdw_stream = sdw_stream;
|
||||
|
||||
/* Use tx_mask or rx_mask to configure stream tag and set dma_data */
|
||||
snd_soc_dai_dma_data_set(dai, direction, stream);
|
||||
snd_soc_dai_dma_data_set(dai, direction, sdw_stream);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -582,11 +570,7 @@ static int rt1318_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
static void rt1318_sdw_shutdown(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_dai *dai)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
snd_soc_dai_set_dma_data(dai, substream, NULL);
|
||||
kfree(stream);
|
||||
}
|
||||
|
||||
static int rt1318_sdw_hw_params(struct snd_pcm_substream *substream,
|
||||
@ -598,14 +582,14 @@ static int rt1318_sdw_hw_params(struct snd_pcm_substream *substream,
|
||||
struct sdw_stream_config stream_config;
|
||||
struct sdw_port_config port_config;
|
||||
enum sdw_data_direction direction;
|
||||
struct sdw_stream_data *stream;
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
int retval, port, num_channels, ch_mask;
|
||||
unsigned int sampling_rate;
|
||||
|
||||
dev_dbg(dai->dev, "%s %s", __func__, dai->name);
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
sdw_stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!stream)
|
||||
if (!sdw_stream)
|
||||
return -EINVAL;
|
||||
|
||||
if (!rt1318->sdw_slave)
|
||||
@ -633,7 +617,7 @@ static int rt1318_sdw_hw_params(struct snd_pcm_substream *substream,
|
||||
port_config.num = port;
|
||||
|
||||
retval = sdw_stream_add_slave(rt1318->sdw_slave, &stream_config,
|
||||
&port_config, 1, stream->sdw_stream);
|
||||
&port_config, 1, sdw_stream);
|
||||
if (retval) {
|
||||
dev_err(dai->dev, "Unable to configure port\n");
|
||||
return retval;
|
||||
@ -679,13 +663,13 @@ static int rt1318_sdw_pcm_hw_free(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_component *component = dai->component;
|
||||
struct rt1318_sdw_priv *rt1318 =
|
||||
snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_data *stream =
|
||||
struct sdw_stream_runtime *sdw_stream =
|
||||
snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!rt1318->sdw_slave)
|
||||
return -EINVAL;
|
||||
|
||||
sdw_stream_remove_slave(rt1318->sdw_slave, stream->sdw_stream);
|
||||
sdw_stream_remove_slave(rt1318->sdw_slave, sdw_stream);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -94,8 +94,4 @@ struct rt1318_sdw_priv {
|
||||
bool first_hw_init;
|
||||
};
|
||||
|
||||
struct sdw_stream_data {
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
};
|
||||
|
||||
#endif /* __RT1318_SDW_H__ */
|
||||
|
@ -88,26 +88,10 @@ static const struct regmap_config rt5682_sdw_indirect_regmap = {
|
||||
.reg_write = rt5682_sdw_write,
|
||||
};
|
||||
|
||||
struct sdw_stream_data {
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
};
|
||||
|
||||
static int rt5682_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
int direction)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
if (!sdw_stream)
|
||||
return 0;
|
||||
|
||||
stream = kzalloc(sizeof(*stream), GFP_KERNEL);
|
||||
if (!stream)
|
||||
return -ENOMEM;
|
||||
|
||||
stream->sdw_stream = sdw_stream;
|
||||
|
||||
/* Use tx_mask or rx_mask to configure stream tag and set dma_data */
|
||||
snd_soc_dai_dma_data_set(dai, direction, stream);
|
||||
snd_soc_dai_dma_data_set(dai, direction, sdw_stream);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -115,11 +99,7 @@ static int rt5682_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
static void rt5682_sdw_shutdown(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_dai *dai)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
snd_soc_dai_set_dma_data(dai, substream, NULL);
|
||||
kfree(stream);
|
||||
}
|
||||
|
||||
static int rt5682_sdw_hw_params(struct snd_pcm_substream *substream,
|
||||
@ -130,14 +110,14 @@ static int rt5682_sdw_hw_params(struct snd_pcm_substream *substream,
|
||||
struct rt5682_priv *rt5682 = snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_config stream_config = {0};
|
||||
struct sdw_port_config port_config = {0};
|
||||
struct sdw_stream_data *stream;
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
int retval;
|
||||
unsigned int val_p = 0, val_c = 0, osr_p = 0, osr_c = 0;
|
||||
|
||||
dev_dbg(dai->dev, "%s %s", __func__, dai->name);
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
if (!stream)
|
||||
sdw_stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
if (!sdw_stream)
|
||||
return -ENOMEM;
|
||||
|
||||
if (!rt5682->slave)
|
||||
@ -152,7 +132,7 @@ static int rt5682_sdw_hw_params(struct snd_pcm_substream *substream,
|
||||
port_config.num = 2;
|
||||
|
||||
retval = sdw_stream_add_slave(rt5682->slave, &stream_config,
|
||||
&port_config, 1, stream->sdw_stream);
|
||||
&port_config, 1, sdw_stream);
|
||||
if (retval) {
|
||||
dev_err(dai->dev, "Unable to configure port\n");
|
||||
return retval;
|
||||
@ -246,13 +226,13 @@ static int rt5682_sdw_hw_free(struct snd_pcm_substream *substream,
|
||||
{
|
||||
struct snd_soc_component *component = dai->component;
|
||||
struct rt5682_priv *rt5682 = snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_data *stream =
|
||||
struct sdw_stream_runtime *sdw_stream =
|
||||
snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!rt5682->slave)
|
||||
return -EINVAL;
|
||||
|
||||
sdw_stream_remove_slave(rt5682->slave, stream->sdw_stream);
|
||||
sdw_stream_remove_slave(rt5682->slave, sdw_stream);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -875,19 +875,7 @@ static const struct snd_soc_component_driver soc_codec_dev_rt700 = {
|
||||
static int rt700_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
int direction)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
if (!sdw_stream)
|
||||
return 0;
|
||||
|
||||
stream = kzalloc(sizeof(*stream), GFP_KERNEL);
|
||||
if (!stream)
|
||||
return -ENOMEM;
|
||||
|
||||
stream->sdw_stream = sdw_stream;
|
||||
|
||||
/* Use tx_mask or rx_mask to configure stream tag and set dma_data */
|
||||
snd_soc_dai_dma_data_set(dai, direction, stream);
|
||||
snd_soc_dai_dma_data_set(dai, direction, sdw_stream);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -895,11 +883,7 @@ static int rt700_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
static void rt700_shutdown(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_dai *dai)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
snd_soc_dai_set_dma_data(dai, substream, NULL);
|
||||
kfree(stream);
|
||||
}
|
||||
|
||||
static int rt700_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
@ -910,14 +894,14 @@ static int rt700_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_config stream_config = {0};
|
||||
struct sdw_port_config port_config = {0};
|
||||
struct sdw_stream_data *stream;
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
int retval;
|
||||
unsigned int val = 0;
|
||||
|
||||
dev_dbg(dai->dev, "%s %s", __func__, dai->name);
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
sdw_stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!stream)
|
||||
if (!sdw_stream)
|
||||
return -EINVAL;
|
||||
|
||||
if (!rt700->slave)
|
||||
@ -944,7 +928,7 @@ static int rt700_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
}
|
||||
|
||||
retval = sdw_stream_add_slave(rt700->slave, &stream_config,
|
||||
&port_config, 1, stream->sdw_stream);
|
||||
&port_config, 1, sdw_stream);
|
||||
if (retval) {
|
||||
dev_err(dai->dev, "Unable to configure port\n");
|
||||
return retval;
|
||||
@ -991,13 +975,13 @@ static int rt700_pcm_hw_free(struct snd_pcm_substream *substream,
|
||||
{
|
||||
struct snd_soc_component *component = dai->component;
|
||||
struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_data *stream =
|
||||
struct sdw_stream_runtime *sdw_stream =
|
||||
snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!rt700->slave)
|
||||
return -EINVAL;
|
||||
|
||||
sdw_stream_remove_slave(rt700->slave, stream->sdw_stream);
|
||||
sdw_stream_remove_slave(rt700->slave, sdw_stream);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -27,10 +27,6 @@ struct rt700_priv {
|
||||
bool disable_irq;
|
||||
};
|
||||
|
||||
struct sdw_stream_data {
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
};
|
||||
|
||||
/* NID */
|
||||
#define RT700_AUDIO_FUNCTION_GROUP 0x01
|
||||
#define RT700_DAC_OUT1 0x02
|
||||
|
@ -1237,19 +1237,7 @@ static const struct snd_soc_component_driver soc_sdca_dev_rt711 = {
|
||||
static int rt711_sdca_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
int direction)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
if (!sdw_stream)
|
||||
return 0;
|
||||
|
||||
stream = kzalloc(sizeof(*stream), GFP_KERNEL);
|
||||
if (!stream)
|
||||
return -ENOMEM;
|
||||
|
||||
stream->sdw_stream = sdw_stream;
|
||||
|
||||
/* Use tx_mask or rx_mask to configure stream tag and set dma_data */
|
||||
snd_soc_dai_dma_data_set(dai, direction, stream);
|
||||
snd_soc_dai_dma_data_set(dai, direction, sdw_stream);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1257,11 +1245,7 @@ static int rt711_sdca_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
static void rt711_sdca_shutdown(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_dai *dai)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
snd_soc_dai_set_dma_data(dai, substream, NULL);
|
||||
kfree(stream);
|
||||
}
|
||||
|
||||
static int rt711_sdca_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
@ -1272,14 +1256,14 @@ static int rt711_sdca_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_config stream_config = {0};
|
||||
struct sdw_port_config port_config = {0};
|
||||
struct sdw_stream_data *stream;
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
int retval;
|
||||
unsigned int sampling_rate;
|
||||
|
||||
dev_dbg(dai->dev, "%s %s", __func__, dai->name);
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
sdw_stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!stream)
|
||||
if (!sdw_stream)
|
||||
return -EINVAL;
|
||||
|
||||
if (!rt711->slave)
|
||||
@ -1300,7 +1284,7 @@ static int rt711_sdca_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
}
|
||||
|
||||
retval = sdw_stream_add_slave(rt711->slave, &stream_config,
|
||||
&port_config, 1, stream->sdw_stream);
|
||||
&port_config, 1, sdw_stream);
|
||||
if (retval) {
|
||||
dev_err(dai->dev, "Unable to configure port\n");
|
||||
return retval;
|
||||
@ -1351,13 +1335,13 @@ static int rt711_sdca_pcm_hw_free(struct snd_pcm_substream *substream,
|
||||
{
|
||||
struct snd_soc_component *component = dai->component;
|
||||
struct rt711_sdca_priv *rt711 = snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_data *stream =
|
||||
struct sdw_stream_runtime *sdw_stream =
|
||||
snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!rt711->slave)
|
||||
return -EINVAL;
|
||||
|
||||
sdw_stream_remove_slave(rt711->slave, stream->sdw_stream);
|
||||
sdw_stream_remove_slave(rt711->slave, sdw_stream);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -36,10 +36,6 @@ struct rt711_sdca_priv {
|
||||
bool fu1e_dapm_mute, fu1e_mixer_l_mute, fu1e_mixer_r_mute;
|
||||
};
|
||||
|
||||
struct sdw_stream_data {
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
};
|
||||
|
||||
/* NID */
|
||||
#define RT711_AUDIO_FUNCTION_GROUP 0x01
|
||||
#define RT711_DAC_OUT2 0x03
|
||||
|
@ -964,19 +964,7 @@ static const struct snd_soc_component_driver soc_codec_dev_rt711 = {
|
||||
static int rt711_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
int direction)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
if (!sdw_stream)
|
||||
return 0;
|
||||
|
||||
stream = kzalloc(sizeof(*stream), GFP_KERNEL);
|
||||
if (!stream)
|
||||
return -ENOMEM;
|
||||
|
||||
stream->sdw_stream = sdw_stream;
|
||||
|
||||
/* Use tx_mask or rx_mask to configure stream tag and set dma_data */
|
||||
snd_soc_dai_dma_data_set(dai, direction, stream);
|
||||
snd_soc_dai_dma_data_set(dai, direction, sdw_stream);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -984,11 +972,7 @@ static int rt711_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
static void rt711_shutdown(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_dai *dai)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
snd_soc_dai_set_dma_data(dai, substream, NULL);
|
||||
kfree(stream);
|
||||
}
|
||||
|
||||
static int rt711_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
@ -999,14 +983,14 @@ static int rt711_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
struct rt711_priv *rt711 = snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_config stream_config = {0};
|
||||
struct sdw_port_config port_config = {0};
|
||||
struct sdw_stream_data *stream;
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
int retval;
|
||||
unsigned int val = 0;
|
||||
|
||||
dev_dbg(dai->dev, "%s %s", __func__, dai->name);
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
sdw_stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!stream)
|
||||
if (!sdw_stream)
|
||||
return -EINVAL;
|
||||
|
||||
if (!rt711->slave)
|
||||
@ -1027,7 +1011,7 @@ static int rt711_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
}
|
||||
|
||||
retval = sdw_stream_add_slave(rt711->slave, &stream_config,
|
||||
&port_config, 1, stream->sdw_stream);
|
||||
&port_config, 1, sdw_stream);
|
||||
if (retval) {
|
||||
dev_err(dai->dev, "Unable to configure port\n");
|
||||
return retval;
|
||||
@ -1075,13 +1059,13 @@ static int rt711_pcm_hw_free(struct snd_pcm_substream *substream,
|
||||
{
|
||||
struct snd_soc_component *component = dai->component;
|
||||
struct rt711_priv *rt711 = snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_data *stream =
|
||||
struct sdw_stream_runtime *sdw_stream =
|
||||
snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!rt711->slave)
|
||||
return -EINVAL;
|
||||
|
||||
sdw_stream_remove_slave(rt711->slave, stream->sdw_stream);
|
||||
sdw_stream_remove_slave(rt711->slave, sdw_stream);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -29,10 +29,6 @@ struct rt711_priv {
|
||||
bool disable_irq;
|
||||
};
|
||||
|
||||
struct sdw_stream_data {
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
};
|
||||
|
||||
/* NID */
|
||||
#define RT711_AUDIO_FUNCTION_GROUP 0x01
|
||||
#define RT711_DAC_OUT2 0x03
|
||||
|
@ -992,19 +992,7 @@ static const struct snd_soc_component_driver soc_sdca_dev_rt712 = {
|
||||
static int rt712_sdca_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
int direction)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
if (!sdw_stream)
|
||||
return 0;
|
||||
|
||||
stream = kzalloc(sizeof(*stream), GFP_KERNEL);
|
||||
if (!stream)
|
||||
return -ENOMEM;
|
||||
|
||||
stream->sdw_stream = sdw_stream;
|
||||
|
||||
/* Use tx_mask or rx_mask to configure stream tag and set dma_data */
|
||||
snd_soc_dai_dma_data_set(dai, direction, stream);
|
||||
snd_soc_dai_dma_data_set(dai, direction, sdw_stream);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1012,11 +1000,7 @@ static int rt712_sdca_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
static void rt712_sdca_shutdown(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_dai *dai)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
snd_soc_dai_set_dma_data(dai, substream, NULL);
|
||||
kfree(stream);
|
||||
}
|
||||
|
||||
static int rt712_sdca_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
@ -1028,14 +1012,14 @@ static int rt712_sdca_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
struct sdw_stream_config stream_config;
|
||||
struct sdw_port_config port_config;
|
||||
enum sdw_data_direction direction;
|
||||
struct sdw_stream_data *stream;
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
int retval, port, num_channels;
|
||||
unsigned int sampling_rate;
|
||||
|
||||
dev_dbg(dai->dev, "%s %s", __func__, dai->name);
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
sdw_stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!stream)
|
||||
if (!sdw_stream)
|
||||
return -EINVAL;
|
||||
|
||||
if (!rt712->slave)
|
||||
@ -1068,7 +1052,7 @@ static int rt712_sdca_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
port_config.num = port;
|
||||
|
||||
retval = sdw_stream_add_slave(rt712->slave, &stream_config,
|
||||
&port_config, 1, stream->sdw_stream);
|
||||
&port_config, 1, sdw_stream);
|
||||
if (retval) {
|
||||
dev_err(dai->dev, "Unable to configure port\n");
|
||||
return retval;
|
||||
@ -1128,13 +1112,13 @@ static int rt712_sdca_pcm_hw_free(struct snd_pcm_substream *substream,
|
||||
{
|
||||
struct snd_soc_component *component = dai->component;
|
||||
struct rt712_sdca_priv *rt712 = snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_data *stream =
|
||||
struct sdw_stream_runtime *sdw_stream =
|
||||
snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!rt712->slave)
|
||||
return -EINVAL;
|
||||
|
||||
sdw_stream_remove_slave(rt712->slave, stream->sdw_stream);
|
||||
sdw_stream_remove_slave(rt712->slave, sdw_stream);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -40,10 +40,6 @@ struct rt712_sdca_priv {
|
||||
bool fu0f_mixer_r_mute;
|
||||
};
|
||||
|
||||
struct sdw_stream_data {
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
};
|
||||
|
||||
/* NID */
|
||||
#define RT712_VENDOR_REG 0x20
|
||||
#define RT712_VENDOR_CALI 0x58
|
||||
|
@ -784,16 +784,7 @@ static const struct snd_soc_component_driver soc_codec_dev_rt715_sdca = {
|
||||
static int rt715_sdca_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
int direction)
|
||||
{
|
||||
struct rt715_sdw_stream_data *stream;
|
||||
|
||||
stream = kzalloc(sizeof(*stream), GFP_KERNEL);
|
||||
if (!stream)
|
||||
return -ENOMEM;
|
||||
|
||||
stream->sdw_stream = sdw_stream;
|
||||
|
||||
/* Use tx_mask or rx_mask to configure stream tag and set dma_data */
|
||||
snd_soc_dai_dma_data_set(dai, direction, stream);
|
||||
snd_soc_dai_dma_data_set(dai, direction, sdw_stream);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -802,14 +793,7 @@ static void rt715_sdca_shutdown(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_dai *dai)
|
||||
|
||||
{
|
||||
struct rt715_sdw_stream_data *stream;
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
if (!stream)
|
||||
return;
|
||||
|
||||
snd_soc_dai_set_dma_data(dai, substream, NULL);
|
||||
kfree(stream);
|
||||
}
|
||||
|
||||
static int rt715_sdca_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
@ -820,13 +804,13 @@ static int rt715_sdca_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
struct rt715_sdca_priv *rt715 = snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_config stream_config = {0};
|
||||
struct sdw_port_config port_config = {0};
|
||||
struct rt715_sdw_stream_data *stream;
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
int retval;
|
||||
unsigned int val;
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
sdw_stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!stream)
|
||||
if (!sdw_stream)
|
||||
return -EINVAL;
|
||||
|
||||
if (!rt715->slave)
|
||||
@ -851,7 +835,7 @@ static int rt715_sdca_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
}
|
||||
|
||||
retval = sdw_stream_add_slave(rt715->slave, &stream_config,
|
||||
&port_config, 1, stream->sdw_stream);
|
||||
&port_config, 1, sdw_stream);
|
||||
if (retval) {
|
||||
dev_err(component->dev, "Unable to configure port, retval:%d\n",
|
||||
retval);
|
||||
@ -922,13 +906,13 @@ static int rt715_sdca_pcm_hw_free(struct snd_pcm_substream *substream,
|
||||
{
|
||||
struct snd_soc_component *component = dai->component;
|
||||
struct rt715_sdca_priv *rt715 = snd_soc_component_get_drvdata(component);
|
||||
struct rt715_sdw_stream_data *stream =
|
||||
struct sdw_stream_runtime *sdw_stream =
|
||||
snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!rt715->slave)
|
||||
return -EINVAL;
|
||||
|
||||
sdw_stream_remove_slave(rt715->slave, stream->sdw_stream);
|
||||
sdw_stream_remove_slave(rt715->slave, sdw_stream);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -37,10 +37,6 @@ struct rt715_sdca_priv {
|
||||
int kctl_8ch_orig[8];
|
||||
};
|
||||
|
||||
struct rt715_sdw_stream_data {
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
};
|
||||
|
||||
struct rt715_sdca_kcontrol_private {
|
||||
unsigned int reg_base;
|
||||
unsigned int count;
|
||||
|
@ -765,19 +765,7 @@ static int rt715_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
int direction)
|
||||
{
|
||||
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
if (!sdw_stream)
|
||||
return 0;
|
||||
|
||||
stream = kzalloc(sizeof(*stream), GFP_KERNEL);
|
||||
if (!stream)
|
||||
return -ENOMEM;
|
||||
|
||||
stream->sdw_stream = sdw_stream;
|
||||
|
||||
/* Use tx_mask or rx_mask to configure stream tag and set dma_data */
|
||||
snd_soc_dai_dma_data_set(dai, direction, stream);
|
||||
snd_soc_dai_dma_data_set(dai, direction, sdw_stream);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -786,11 +774,7 @@ static void rt715_shutdown(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_dai *dai)
|
||||
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
snd_soc_dai_set_dma_data(dai, substream, NULL);
|
||||
kfree(stream);
|
||||
}
|
||||
|
||||
static int rt715_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
@ -801,13 +785,13 @@ static int rt715_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
struct rt715_priv *rt715 = snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_config stream_config = {0};
|
||||
struct sdw_port_config port_config = {0};
|
||||
struct sdw_stream_data *stream;
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
int retval;
|
||||
unsigned int val = 0;
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
sdw_stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!stream)
|
||||
if (!sdw_stream)
|
||||
return -EINVAL;
|
||||
|
||||
if (!rt715->slave)
|
||||
@ -830,7 +814,7 @@ static int rt715_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
}
|
||||
|
||||
retval = sdw_stream_add_slave(rt715->slave, &stream_config,
|
||||
&port_config, 1, stream->sdw_stream);
|
||||
&port_config, 1, sdw_stream);
|
||||
if (retval) {
|
||||
dev_err(dai->dev, "Unable to configure port\n");
|
||||
return retval;
|
||||
@ -893,13 +877,13 @@ static int rt715_pcm_hw_free(struct snd_pcm_substream *substream,
|
||||
{
|
||||
struct snd_soc_component *component = dai->component;
|
||||
struct rt715_priv *rt715 = snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_data *stream =
|
||||
struct sdw_stream_runtime *sdw_stream =
|
||||
snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!rt715->slave)
|
||||
return -EINVAL;
|
||||
|
||||
sdw_stream_remove_slave(rt715->slave, stream->sdw_stream);
|
||||
sdw_stream_remove_slave(rt715->slave, sdw_stream);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -27,10 +27,6 @@ struct rt715_priv {
|
||||
unsigned int kctl_8ch_vol_ori[8];
|
||||
};
|
||||
|
||||
struct sdw_stream_data {
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
};
|
||||
|
||||
/* NID */
|
||||
#define RT715_AUDIO_FUNCTION_GROUP 0x01
|
||||
#define RT715_MIC_ADC 0x07
|
||||
|
@ -23,10 +23,6 @@ struct sdw_mockup_priv {
|
||||
struct sdw_slave *slave;
|
||||
};
|
||||
|
||||
struct sdw_stream_data {
|
||||
struct sdw_stream_runtime *sdw_stream;
|
||||
};
|
||||
|
||||
static int sdw_mockup_component_probe(struct snd_soc_component *component)
|
||||
{
|
||||
return 0;
|
||||
@ -45,19 +41,7 @@ static const struct snd_soc_component_driver snd_soc_sdw_mockup_component = {
|
||||
static int sdw_mockup_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
int direction)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
if (!sdw_stream)
|
||||
return 0;
|
||||
|
||||
stream = kzalloc(sizeof(*stream), GFP_KERNEL);
|
||||
if (!stream)
|
||||
return -ENOMEM;
|
||||
|
||||
stream->sdw_stream = sdw_stream;
|
||||
|
||||
/* Use tx_mask or rx_mask to configure stream tag and set dma_data */
|
||||
snd_soc_dai_dma_data_set(dai, direction, stream);
|
||||
snd_soc_dai_dma_data_set(dai, direction, sdw_stream);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -65,11 +49,7 @@ static int sdw_mockup_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
|
||||
static void sdw_mockup_shutdown(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_dai *dai)
|
||||
{
|
||||
struct sdw_stream_data *stream;
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
snd_soc_dai_set_dma_data(dai, substream, NULL);
|
||||
kfree(stream);
|
||||
}
|
||||
|
||||
static int sdw_mockup_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
@ -80,11 +60,10 @@ static int sdw_mockup_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
struct sdw_mockup_priv *sdw_mockup = snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_config stream_config = {0};
|
||||
struct sdw_port_config port_config = {0};
|
||||
struct sdw_stream_data *stream;
|
||||
struct sdw_stream_runtime *sdw_stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
int ret;
|
||||
|
||||
stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
if (!stream)
|
||||
if (!sdw_stream)
|
||||
return -EINVAL;
|
||||
|
||||
if (!sdw_mockup->slave)
|
||||
@ -99,7 +78,7 @@ static int sdw_mockup_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
port_config.num = 8;
|
||||
|
||||
ret = sdw_stream_add_slave(sdw_mockup->slave, &stream_config,
|
||||
&port_config, 1, stream->sdw_stream);
|
||||
&port_config, 1, sdw_stream);
|
||||
if (ret)
|
||||
dev_err(dai->dev, "Unable to configure port\n");
|
||||
|
||||
@ -111,13 +90,12 @@ static int sdw_mockup_pcm_hw_free(struct snd_pcm_substream *substream,
|
||||
{
|
||||
struct snd_soc_component *component = dai->component;
|
||||
struct sdw_mockup_priv *sdw_mockup = snd_soc_component_get_drvdata(component);
|
||||
struct sdw_stream_data *stream =
|
||||
snd_soc_dai_get_dma_data(dai, substream);
|
||||
struct sdw_stream_runtime *sdw_stream = snd_soc_dai_get_dma_data(dai, substream);
|
||||
|
||||
if (!sdw_mockup->slave)
|
||||
return -EINVAL;
|
||||
|
||||
sdw_stream_remove_slave(sdw_mockup->slave, stream->sdw_stream);
|
||||
sdw_stream_remove_slave(sdw_mockup->slave, sdw_stream);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user