ASoC: intel: haswell: replace platform to component
Now platform can be replaced to component, let's do it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
81dc5f3d80
commit
2ee178dbeb
@ -183,7 +183,8 @@ static const struct snd_soc_ops bdw_rt5677_ops = {
|
|||||||
|
|
||||||
static int bdw_rt5677_rtd_init(struct snd_soc_pcm_runtime *rtd)
|
static int bdw_rt5677_rtd_init(struct snd_soc_pcm_runtime *rtd)
|
||||||
{
|
{
|
||||||
struct sst_pdata *pdata = dev_get_platdata(rtd->platform->dev);
|
struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
||||||
|
struct sst_pdata *pdata = dev_get_platdata(component->dev);
|
||||||
struct sst_hsw *broadwell = pdata->dsp;
|
struct sst_hsw *broadwell = pdata->dsp;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -132,7 +132,8 @@ static const struct snd_soc_ops broadwell_rt286_ops = {
|
|||||||
|
|
||||||
static int broadwell_rtd_init(struct snd_soc_pcm_runtime *rtd)
|
static int broadwell_rtd_init(struct snd_soc_pcm_runtime *rtd)
|
||||||
{
|
{
|
||||||
struct sst_pdata *pdata = dev_get_platdata(rtd->platform->dev);
|
struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
||||||
|
struct sst_pdata *pdata = dev_get_platdata(component->dev);
|
||||||
struct sst_hsw *broadwell = pdata->dsp;
|
struct sst_hsw *broadwell = pdata->dsp;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -87,7 +87,8 @@ static const struct snd_soc_ops haswell_rt5640_ops = {
|
|||||||
|
|
||||||
static int haswell_rtd_init(struct snd_soc_pcm_runtime *rtd)
|
static int haswell_rtd_init(struct snd_soc_pcm_runtime *rtd)
|
||||||
{
|
{
|
||||||
struct sst_pdata *pdata = dev_get_platdata(rtd->platform->dev);
|
struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
||||||
|
struct sst_pdata *pdata = dev_get_platdata(component->dev);
|
||||||
struct sst_hsw *haswell = pdata->dsp;
|
struct sst_hsw *haswell = pdata->dsp;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -22,6 +22,8 @@
|
|||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <sound/asound.h>
|
#include <sound/asound.h>
|
||||||
|
|
||||||
|
#define DRV_NAME "haswell-dai"
|
||||||
|
|
||||||
#define SST_HSW_NO_CHANNELS 4
|
#define SST_HSW_NO_CHANNELS 4
|
||||||
#define SST_HSW_MAX_DX_REGIONS 14
|
#define SST_HSW_MAX_DX_REGIONS 14
|
||||||
#define SST_HSW_DX_CONTEXT_SIZE (640 * 1024)
|
#define SST_HSW_DX_CONTEXT_SIZE (640 * 1024)
|
||||||
|
@ -181,11 +181,11 @@ static inline unsigned int hsw_ipc_to_mixer(u32 value)
|
|||||||
static int hsw_stream_volume_put(struct snd_kcontrol *kcontrol,
|
static int hsw_stream_volume_put(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_value *ucontrol)
|
struct snd_ctl_elem_value *ucontrol)
|
||||||
{
|
{
|
||||||
struct snd_soc_platform *platform = snd_soc_kcontrol_platform(kcontrol);
|
struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
|
||||||
struct soc_mixer_control *mc =
|
struct soc_mixer_control *mc =
|
||||||
(struct soc_mixer_control *)kcontrol->private_value;
|
(struct soc_mixer_control *)kcontrol->private_value;
|
||||||
struct hsw_priv_data *pdata =
|
struct hsw_priv_data *pdata =
|
||||||
snd_soc_platform_get_drvdata(platform);
|
snd_soc_component_get_drvdata(component);
|
||||||
struct hsw_pcm_data *pcm_data;
|
struct hsw_pcm_data *pcm_data;
|
||||||
struct sst_hsw *hsw = pdata->hsw;
|
struct sst_hsw *hsw = pdata->hsw;
|
||||||
u32 volume;
|
u32 volume;
|
||||||
@ -230,11 +230,11 @@ static int hsw_stream_volume_put(struct snd_kcontrol *kcontrol,
|
|||||||
static int hsw_stream_volume_get(struct snd_kcontrol *kcontrol,
|
static int hsw_stream_volume_get(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_value *ucontrol)
|
struct snd_ctl_elem_value *ucontrol)
|
||||||
{
|
{
|
||||||
struct snd_soc_platform *platform = snd_soc_kcontrol_platform(kcontrol);
|
struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
|
||||||
struct soc_mixer_control *mc =
|
struct soc_mixer_control *mc =
|
||||||
(struct soc_mixer_control *)kcontrol->private_value;
|
(struct soc_mixer_control *)kcontrol->private_value;
|
||||||
struct hsw_priv_data *pdata =
|
struct hsw_priv_data *pdata =
|
||||||
snd_soc_platform_get_drvdata(platform);
|
snd_soc_component_get_drvdata(component);
|
||||||
struct hsw_pcm_data *pcm_data;
|
struct hsw_pcm_data *pcm_data;
|
||||||
struct sst_hsw *hsw = pdata->hsw;
|
struct sst_hsw *hsw = pdata->hsw;
|
||||||
u32 volume;
|
u32 volume;
|
||||||
@ -273,8 +273,8 @@ static int hsw_stream_volume_get(struct snd_kcontrol *kcontrol,
|
|||||||
static int hsw_volume_put(struct snd_kcontrol *kcontrol,
|
static int hsw_volume_put(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_value *ucontrol)
|
struct snd_ctl_elem_value *ucontrol)
|
||||||
{
|
{
|
||||||
struct snd_soc_platform *platform = snd_soc_kcontrol_platform(kcontrol);
|
struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
|
||||||
struct hsw_priv_data *pdata = snd_soc_platform_get_drvdata(platform);
|
struct hsw_priv_data *pdata = snd_soc_component_get_drvdata(component);
|
||||||
struct sst_hsw *hsw = pdata->hsw;
|
struct sst_hsw *hsw = pdata->hsw;
|
||||||
u32 volume;
|
u32 volume;
|
||||||
|
|
||||||
@ -302,8 +302,8 @@ static int hsw_volume_put(struct snd_kcontrol *kcontrol,
|
|||||||
static int hsw_volume_get(struct snd_kcontrol *kcontrol,
|
static int hsw_volume_get(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_value *ucontrol)
|
struct snd_ctl_elem_value *ucontrol)
|
||||||
{
|
{
|
||||||
struct snd_soc_platform *platform = snd_soc_kcontrol_platform(kcontrol);
|
struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
|
||||||
struct hsw_priv_data *pdata = snd_soc_platform_get_drvdata(platform);
|
struct hsw_priv_data *pdata = snd_soc_component_get_drvdata(component);
|
||||||
struct sst_hsw *hsw = pdata->hsw;
|
struct sst_hsw *hsw = pdata->hsw;
|
||||||
unsigned int volume = 0;
|
unsigned int volume = 0;
|
||||||
|
|
||||||
@ -322,8 +322,8 @@ static int hsw_volume_get(struct snd_kcontrol *kcontrol,
|
|||||||
static int hsw_waves_switch_get(struct snd_kcontrol *kcontrol,
|
static int hsw_waves_switch_get(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_value *ucontrol)
|
struct snd_ctl_elem_value *ucontrol)
|
||||||
{
|
{
|
||||||
struct snd_soc_platform *platform = snd_soc_kcontrol_platform(kcontrol);
|
struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
|
||||||
struct hsw_priv_data *pdata = snd_soc_platform_get_drvdata(platform);
|
struct hsw_priv_data *pdata = snd_soc_component_get_drvdata(component);
|
||||||
struct sst_hsw *hsw = pdata->hsw;
|
struct sst_hsw *hsw = pdata->hsw;
|
||||||
enum sst_hsw_module_id id = SST_HSW_MODULE_WAVES;
|
enum sst_hsw_module_id id = SST_HSW_MODULE_WAVES;
|
||||||
|
|
||||||
@ -336,8 +336,8 @@ static int hsw_waves_switch_get(struct snd_kcontrol *kcontrol,
|
|||||||
static int hsw_waves_switch_put(struct snd_kcontrol *kcontrol,
|
static int hsw_waves_switch_put(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_value *ucontrol)
|
struct snd_ctl_elem_value *ucontrol)
|
||||||
{
|
{
|
||||||
struct snd_soc_platform *platform = snd_soc_kcontrol_platform(kcontrol);
|
struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
|
||||||
struct hsw_priv_data *pdata = snd_soc_platform_get_drvdata(platform);
|
struct hsw_priv_data *pdata = snd_soc_component_get_drvdata(component);
|
||||||
struct sst_hsw *hsw = pdata->hsw;
|
struct sst_hsw *hsw = pdata->hsw;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
enum sst_hsw_module_id id = SST_HSW_MODULE_WAVES;
|
enum sst_hsw_module_id id = SST_HSW_MODULE_WAVES;
|
||||||
@ -370,8 +370,8 @@ static int hsw_waves_switch_put(struct snd_kcontrol *kcontrol,
|
|||||||
static int hsw_waves_param_get(struct snd_kcontrol *kcontrol,
|
static int hsw_waves_param_get(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_value *ucontrol)
|
struct snd_ctl_elem_value *ucontrol)
|
||||||
{
|
{
|
||||||
struct snd_soc_platform *platform = snd_soc_kcontrol_platform(kcontrol);
|
struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
|
||||||
struct hsw_priv_data *pdata = snd_soc_platform_get_drvdata(platform);
|
struct hsw_priv_data *pdata = snd_soc_component_get_drvdata(component);
|
||||||
struct sst_hsw *hsw = pdata->hsw;
|
struct sst_hsw *hsw = pdata->hsw;
|
||||||
|
|
||||||
/* return a matching line from param buffer */
|
/* return a matching line from param buffer */
|
||||||
@ -381,8 +381,8 @@ static int hsw_waves_param_get(struct snd_kcontrol *kcontrol,
|
|||||||
static int hsw_waves_param_put(struct snd_kcontrol *kcontrol,
|
static int hsw_waves_param_put(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_value *ucontrol)
|
struct snd_ctl_elem_value *ucontrol)
|
||||||
{
|
{
|
||||||
struct snd_soc_platform *platform = snd_soc_kcontrol_platform(kcontrol);
|
struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
|
||||||
struct hsw_priv_data *pdata = snd_soc_platform_get_drvdata(platform);
|
struct hsw_priv_data *pdata = snd_soc_component_get_drvdata(component);
|
||||||
struct sst_hsw *hsw = pdata->hsw;
|
struct sst_hsw *hsw = pdata->hsw;
|
||||||
int ret;
|
int ret;
|
||||||
enum sst_hsw_module_id id = SST_HSW_MODULE_WAVES;
|
enum sst_hsw_module_id id = SST_HSW_MODULE_WAVES;
|
||||||
@ -472,8 +472,8 @@ static int hsw_pcm_hw_params(struct snd_pcm_substream *substream,
|
|||||||
{
|
{
|
||||||
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
||||||
struct snd_pcm_runtime *runtime = substream->runtime;
|
struct snd_pcm_runtime *runtime = substream->runtime;
|
||||||
struct hsw_priv_data *pdata =
|
struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
||||||
snd_soc_platform_get_drvdata(rtd->platform);
|
struct hsw_priv_data *pdata = snd_soc_component_get_drvdata(component);
|
||||||
struct hsw_pcm_data *pcm_data;
|
struct hsw_pcm_data *pcm_data;
|
||||||
struct sst_hsw *hsw = pdata->hsw;
|
struct sst_hsw *hsw = pdata->hsw;
|
||||||
struct sst_module *module_data;
|
struct sst_module *module_data;
|
||||||
@ -674,8 +674,8 @@ static int hsw_pcm_hw_free(struct snd_pcm_substream *substream)
|
|||||||
static int hsw_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
|
static int hsw_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
|
||||||
{
|
{
|
||||||
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
||||||
struct hsw_priv_data *pdata =
|
struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
||||||
snd_soc_platform_get_drvdata(rtd->platform);
|
struct hsw_priv_data *pdata = snd_soc_component_get_drvdata(component);
|
||||||
struct hsw_pcm_data *pcm_data;
|
struct hsw_pcm_data *pcm_data;
|
||||||
struct sst_hsw_stream *sst_stream;
|
struct sst_hsw_stream *sst_stream;
|
||||||
struct sst_hsw *hsw = pdata->hsw;
|
struct sst_hsw *hsw = pdata->hsw;
|
||||||
@ -718,8 +718,8 @@ static u32 hsw_notify_pointer(struct sst_hsw_stream *stream, void *data)
|
|||||||
struct snd_pcm_substream *substream = pcm_data->substream;
|
struct snd_pcm_substream *substream = pcm_data->substream;
|
||||||
struct snd_pcm_runtime *runtime = substream->runtime;
|
struct snd_pcm_runtime *runtime = substream->runtime;
|
||||||
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
||||||
struct hsw_priv_data *pdata =
|
struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
||||||
snd_soc_platform_get_drvdata(rtd->platform);
|
struct hsw_priv_data *pdata = snd_soc_component_get_drvdata(component);
|
||||||
struct sst_hsw *hsw = pdata->hsw;
|
struct sst_hsw *hsw = pdata->hsw;
|
||||||
u32 pos;
|
u32 pos;
|
||||||
snd_pcm_uframes_t position = bytes_to_frames(runtime,
|
snd_pcm_uframes_t position = bytes_to_frames(runtime,
|
||||||
@ -783,8 +783,8 @@ static snd_pcm_uframes_t hsw_pcm_pointer(struct snd_pcm_substream *substream)
|
|||||||
{
|
{
|
||||||
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
||||||
struct snd_pcm_runtime *runtime = substream->runtime;
|
struct snd_pcm_runtime *runtime = substream->runtime;
|
||||||
struct hsw_priv_data *pdata =
|
struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
||||||
snd_soc_platform_get_drvdata(rtd->platform);
|
struct hsw_priv_data *pdata = snd_soc_component_get_drvdata(component);
|
||||||
struct hsw_pcm_data *pcm_data;
|
struct hsw_pcm_data *pcm_data;
|
||||||
struct sst_hsw *hsw = pdata->hsw;
|
struct sst_hsw *hsw = pdata->hsw;
|
||||||
snd_pcm_uframes_t offset;
|
snd_pcm_uframes_t offset;
|
||||||
@ -807,8 +807,8 @@ static snd_pcm_uframes_t hsw_pcm_pointer(struct snd_pcm_substream *substream)
|
|||||||
static int hsw_pcm_open(struct snd_pcm_substream *substream)
|
static int hsw_pcm_open(struct snd_pcm_substream *substream)
|
||||||
{
|
{
|
||||||
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
||||||
struct hsw_priv_data *pdata =
|
struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
||||||
snd_soc_platform_get_drvdata(rtd->platform);
|
struct hsw_priv_data *pdata = snd_soc_component_get_drvdata(component);
|
||||||
struct hsw_pcm_data *pcm_data;
|
struct hsw_pcm_data *pcm_data;
|
||||||
struct sst_hsw *hsw = pdata->hsw;
|
struct sst_hsw *hsw = pdata->hsw;
|
||||||
int dai;
|
int dai;
|
||||||
@ -840,8 +840,8 @@ static int hsw_pcm_open(struct snd_pcm_substream *substream)
|
|||||||
static int hsw_pcm_close(struct snd_pcm_substream *substream)
|
static int hsw_pcm_close(struct snd_pcm_substream *substream)
|
||||||
{
|
{
|
||||||
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
||||||
struct hsw_priv_data *pdata =
|
struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
||||||
snd_soc_platform_get_drvdata(rtd->platform);
|
struct hsw_priv_data *pdata = snd_soc_component_get_drvdata(component);
|
||||||
struct hsw_pcm_data *pcm_data;
|
struct hsw_pcm_data *pcm_data;
|
||||||
struct sst_hsw *hsw = pdata->hsw;
|
struct sst_hsw *hsw = pdata->hsw;
|
||||||
int ret, dai;
|
int ret, dai;
|
||||||
@ -942,9 +942,9 @@ static void hsw_pcm_free_modules(struct hsw_priv_data *pdata)
|
|||||||
static int hsw_pcm_new(struct snd_soc_pcm_runtime *rtd)
|
static int hsw_pcm_new(struct snd_soc_pcm_runtime *rtd)
|
||||||
{
|
{
|
||||||
struct snd_pcm *pcm = rtd->pcm;
|
struct snd_pcm *pcm = rtd->pcm;
|
||||||
struct snd_soc_platform *platform = rtd->platform;
|
struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
||||||
struct sst_pdata *pdata = dev_get_platdata(platform->dev);
|
struct sst_pdata *pdata = dev_get_platdata(component->dev);
|
||||||
struct hsw_priv_data *priv_data = dev_get_drvdata(platform->dev);
|
struct hsw_priv_data *priv_data = dev_get_drvdata(component->dev);
|
||||||
struct device *dev = pdata->dma_dev;
|
struct device *dev = pdata->dma_dev;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
@ -1052,23 +1052,23 @@ static const struct snd_soc_dapm_route graph[] = {
|
|||||||
{"Analog Capture", NULL, "SSP0 CODEC IN"},
|
{"Analog Capture", NULL, "SSP0 CODEC IN"},
|
||||||
};
|
};
|
||||||
|
|
||||||
static int hsw_pcm_probe(struct snd_soc_platform *platform)
|
static int hsw_pcm_probe(struct snd_soc_component *component)
|
||||||
{
|
{
|
||||||
struct hsw_priv_data *priv_data = snd_soc_platform_get_drvdata(platform);
|
struct hsw_priv_data *priv_data = snd_soc_component_get_drvdata(component);
|
||||||
struct sst_pdata *pdata = dev_get_platdata(platform->dev);
|
struct sst_pdata *pdata = dev_get_platdata(component->dev);
|
||||||
struct device *dma_dev, *dev;
|
struct device *dma_dev, *dev;
|
||||||
int i, ret = 0;
|
int i, ret = 0;
|
||||||
|
|
||||||
if (!pdata)
|
if (!pdata)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
dev = platform->dev;
|
dev = component->dev;
|
||||||
dma_dev = pdata->dma_dev;
|
dma_dev = pdata->dma_dev;
|
||||||
|
|
||||||
priv_data->hsw = pdata->dsp;
|
priv_data->hsw = pdata->dsp;
|
||||||
priv_data->dev = platform->dev;
|
priv_data->dev = dev;
|
||||||
priv_data->pm_state = HSW_PM_STATE_D0;
|
priv_data->pm_state = HSW_PM_STATE_D0;
|
||||||
priv_data->soc_card = platform->component.card;
|
priv_data->soc_card = component->card;
|
||||||
|
|
||||||
/* allocate DSP buffer page tables */
|
/* allocate DSP buffer page tables */
|
||||||
for (i = 0; i < ARRAY_SIZE(hsw_dais); i++) {
|
for (i = 0; i < ARRAY_SIZE(hsw_dais); i++) {
|
||||||
@ -1098,11 +1098,10 @@ static int hsw_pcm_probe(struct snd_soc_platform *platform)
|
|||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
/* enable runtime PM with auto suspend */
|
/* enable runtime PM with auto suspend */
|
||||||
pm_runtime_set_autosuspend_delay(platform->dev,
|
pm_runtime_set_autosuspend_delay(dev, SST_RUNTIME_SUSPEND_DELAY);
|
||||||
SST_RUNTIME_SUSPEND_DELAY);
|
pm_runtime_use_autosuspend(dev);
|
||||||
pm_runtime_use_autosuspend(platform->dev);
|
pm_runtime_enable(dev);
|
||||||
pm_runtime_enable(platform->dev);
|
pm_runtime_idle(dev);
|
||||||
pm_runtime_idle(platform->dev);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@ -1116,13 +1115,13 @@ err:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int hsw_pcm_remove(struct snd_soc_platform *platform)
|
static void hsw_pcm_remove(struct snd_soc_component *component)
|
||||||
{
|
{
|
||||||
struct hsw_priv_data *priv_data =
|
struct hsw_priv_data *priv_data =
|
||||||
snd_soc_platform_get_drvdata(platform);
|
snd_soc_component_get_drvdata(component);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
pm_runtime_disable(platform->dev);
|
pm_runtime_disable(component->dev);
|
||||||
hsw_pcm_free_modules(priv_data);
|
hsw_pcm_free_modules(priv_data);
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(hsw_dais); i++) {
|
for (i = 0; i < ARRAY_SIZE(hsw_dais); i++) {
|
||||||
@ -1131,19 +1130,14 @@ static int hsw_pcm_remove(struct snd_soc_platform *platform)
|
|||||||
if (hsw_dais[i].capture.channels_min)
|
if (hsw_dais[i].capture.channels_min)
|
||||||
snd_dma_free_pages(&priv_data->dmab[i][1]);
|
snd_dma_free_pages(&priv_data->dmab[i][1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct snd_soc_platform_driver hsw_soc_platform = {
|
static const struct snd_soc_component_driver hsw_dai_component = {
|
||||||
|
.name = DRV_NAME,
|
||||||
.probe = hsw_pcm_probe,
|
.probe = hsw_pcm_probe,
|
||||||
.remove = hsw_pcm_remove,
|
.remove = hsw_pcm_remove,
|
||||||
.ops = &hsw_pcm_ops,
|
.ops = &hsw_pcm_ops,
|
||||||
.pcm_new = hsw_pcm_new,
|
.pcm_new = hsw_pcm_new,
|
||||||
};
|
|
||||||
|
|
||||||
static const struct snd_soc_component_driver hsw_dai_component = {
|
|
||||||
.name = "haswell-dai",
|
|
||||||
.controls = hsw_volume_controls,
|
.controls = hsw_volume_controls,
|
||||||
.num_controls = ARRAY_SIZE(hsw_volume_controls),
|
.num_controls = ARRAY_SIZE(hsw_volume_controls),
|
||||||
.dapm_widgets = widgets,
|
.dapm_widgets = widgets,
|
||||||
@ -1172,19 +1166,13 @@ static int hsw_pcm_dev_probe(struct platform_device *pdev)
|
|||||||
priv_data->hsw = sst_pdata->dsp;
|
priv_data->hsw = sst_pdata->dsp;
|
||||||
platform_set_drvdata(pdev, priv_data);
|
platform_set_drvdata(pdev, priv_data);
|
||||||
|
|
||||||
ret = snd_soc_register_platform(&pdev->dev, &hsw_soc_platform);
|
ret = devm_snd_soc_register_component(&pdev->dev, &hsw_dai_component,
|
||||||
|
hsw_dais, ARRAY_SIZE(hsw_dais));
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto err_plat;
|
goto err_plat;
|
||||||
|
|
||||||
ret = snd_soc_register_component(&pdev->dev, &hsw_dai_component,
|
|
||||||
hsw_dais, ARRAY_SIZE(hsw_dais));
|
|
||||||
if (ret < 0)
|
|
||||||
goto err_comp;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err_comp:
|
|
||||||
snd_soc_unregister_platform(&pdev->dev);
|
|
||||||
err_plat:
|
err_plat:
|
||||||
sst_hsw_dsp_free(&pdev->dev, sst_pdata);
|
sst_hsw_dsp_free(&pdev->dev, sst_pdata);
|
||||||
return 0;
|
return 0;
|
||||||
@ -1194,8 +1182,6 @@ static int hsw_pcm_dev_remove(struct platform_device *pdev)
|
|||||||
{
|
{
|
||||||
struct sst_pdata *sst_pdata = dev_get_platdata(&pdev->dev);
|
struct sst_pdata *sst_pdata = dev_get_platdata(&pdev->dev);
|
||||||
|
|
||||||
snd_soc_unregister_platform(&pdev->dev);
|
|
||||||
snd_soc_unregister_component(&pdev->dev);
|
|
||||||
sst_hsw_dsp_free(&pdev->dev, sst_pdata);
|
sst_hsw_dsp_free(&pdev->dev, sst_pdata);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user