Commit 6840962b authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown

ASoC: intel: atom: replace platform to component

Now platform can be replaced to component, let's do it.
Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: default avatar"Kp, Jeeja" <jeeja.kp@intel.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent be7ee5f3
...@@ -1414,11 +1414,11 @@ static int sst_fill_module_list(struct snd_kcontrol *kctl, ...@@ -1414,11 +1414,11 @@ static int sst_fill_module_list(struct snd_kcontrol *kctl,
* name. First part of control name contains the pipe name (widget name). * name. First part of control name contains the pipe name (widget name).
*/ */
static int sst_fill_widget_module_info(struct snd_soc_dapm_widget *w, static int sst_fill_widget_module_info(struct snd_soc_dapm_widget *w,
struct snd_soc_platform *platform) struct snd_soc_component *component)
{ {
struct snd_kcontrol *kctl; struct snd_kcontrol *kctl;
int index, ret = 0; int index, ret = 0;
struct snd_card *card = platform->component.card->snd_card; struct snd_card *card = component->card->snd_card;
char *idx; char *idx;
down_read(&card->controls_rwsem); down_read(&card->controls_rwsem);
...@@ -1468,13 +1468,13 @@ static int sst_fill_widget_module_info(struct snd_soc_dapm_widget *w, ...@@ -1468,13 +1468,13 @@ static int sst_fill_widget_module_info(struct snd_soc_dapm_widget *w,
/** /**
* sst_fill_linked_widgets - fill the parent pointer for the linked widget * sst_fill_linked_widgets - fill the parent pointer for the linked widget
*/ */
static void sst_fill_linked_widgets(struct snd_soc_platform *platform, static void sst_fill_linked_widgets(struct snd_soc_component *component,
struct sst_ids *ids) struct sst_ids *ids)
{ {
struct snd_soc_dapm_widget *w; struct snd_soc_dapm_widget *w;
unsigned int len = strlen(ids->parent_wname); unsigned int len = strlen(ids->parent_wname);
list_for_each_entry(w, &platform->component.card->widgets, list) { list_for_each_entry(w, &component->card->widgets, list) {
if (!strncmp(ids->parent_wname, w->name, len)) { if (!strncmp(ids->parent_wname, w->name, len)) {
ids->parent_w = w; ids->parent_w = w;
break; break;
...@@ -1485,41 +1485,41 @@ static void sst_fill_linked_widgets(struct snd_soc_platform *platform, ...@@ -1485,41 +1485,41 @@ static void sst_fill_linked_widgets(struct snd_soc_platform *platform,
/** /**
* sst_map_modules_to_pipe - fill algo/gains list for all pipes * sst_map_modules_to_pipe - fill algo/gains list for all pipes
*/ */
static int sst_map_modules_to_pipe(struct snd_soc_platform *platform) static int sst_map_modules_to_pipe(struct snd_soc_component *component)
{ {
struct snd_soc_dapm_widget *w; struct snd_soc_dapm_widget *w;
int ret = 0; int ret = 0;
list_for_each_entry(w, &platform->component.card->widgets, list) { list_for_each_entry(w, &component->card->widgets, list) {
if (is_sst_dapm_widget(w) && (w->priv)) { if (is_sst_dapm_widget(w) && (w->priv)) {
struct sst_ids *ids = w->priv; struct sst_ids *ids = w->priv;
dev_dbg(platform->dev, "widget type=%d name=%s\n", dev_dbg(component->dev, "widget type=%d name=%s\n",
w->id, w->name); w->id, w->name);
INIT_LIST_HEAD(&ids->algo_list); INIT_LIST_HEAD(&ids->algo_list);
INIT_LIST_HEAD(&ids->gain_list); INIT_LIST_HEAD(&ids->gain_list);
ret = sst_fill_widget_module_info(w, platform); ret = sst_fill_widget_module_info(w, component);
if (ret < 0) if (ret < 0)
return ret; return ret;
/* fill linked widgets */ /* fill linked widgets */
if (ids->parent_wname != NULL) if (ids->parent_wname != NULL)
sst_fill_linked_widgets(platform, ids); sst_fill_linked_widgets(component, ids);
} }
} }
return 0; return 0;
} }
int sst_dsp_init_v2_dpcm(struct snd_soc_platform *platform) int sst_dsp_init_v2_dpcm(struct snd_soc_component *component)
{ {
int i, ret = 0; int i, ret = 0;
struct snd_soc_dapm_context *dapm = struct snd_soc_dapm_context *dapm =
snd_soc_component_get_dapm(&platform->component); snd_soc_component_get_dapm(component);
struct sst_data *drv = snd_soc_platform_get_drvdata(platform); struct sst_data *drv = snd_soc_component_get_drvdata(component);
unsigned int gains = ARRAY_SIZE(sst_gain_controls)/3; unsigned int gains = ARRAY_SIZE(sst_gain_controls)/3;
drv->byte_stream = devm_kzalloc(platform->dev, drv->byte_stream = devm_kzalloc(component->dev,
SST_MAX_BIN_BYTES, GFP_KERNEL); SST_MAX_BIN_BYTES, GFP_KERNEL);
if (!drv->byte_stream) if (!drv->byte_stream)
return -ENOMEM; return -ENOMEM;
...@@ -1537,26 +1537,26 @@ int sst_dsp_init_v2_dpcm(struct snd_soc_platform *platform) ...@@ -1537,26 +1537,26 @@ int sst_dsp_init_v2_dpcm(struct snd_soc_platform *platform)
sst_gains[i].ramp_duration = SST_GAIN_RAMP_DURATION_DEFAULT; sst_gains[i].ramp_duration = SST_GAIN_RAMP_DURATION_DEFAULT;
} }
ret = snd_soc_add_platform_controls(platform, sst_gain_controls, ret = snd_soc_add_component_controls(component, sst_gain_controls,
ARRAY_SIZE(sst_gain_controls)); ARRAY_SIZE(sst_gain_controls));
if (ret) if (ret)
return ret; return ret;
/* Initialize algo control params */ /* Initialize algo control params */
ret = sst_algo_control_init(platform->dev); ret = sst_algo_control_init(component->dev);
if (ret) if (ret)
return ret; return ret;
ret = snd_soc_add_platform_controls(platform, sst_algo_controls, ret = snd_soc_add_component_controls(component, sst_algo_controls,
ARRAY_SIZE(sst_algo_controls)); ARRAY_SIZE(sst_algo_controls));
if (ret) if (ret)
return ret; return ret;
ret = snd_soc_add_platform_controls(platform, sst_slot_controls, ret = snd_soc_add_component_controls(component, sst_slot_controls,
ARRAY_SIZE(sst_slot_controls)); ARRAY_SIZE(sst_slot_controls));
if (ret) if (ret)
return ret; return ret;
ret = sst_map_modules_to_pipe(platform); ret = sst_map_modules_to_pipe(component);
return ret; return ret;
} }
...@@ -107,8 +107,8 @@ static int sst_platform_compr_set_params(struct snd_compr_stream *cstream, ...@@ -107,8 +107,8 @@ static int sst_platform_compr_set_params(struct snd_compr_stream *cstream,
struct snd_sst_params str_params; struct snd_sst_params str_params;
struct sst_compress_cb cb; struct sst_compress_cb cb;
struct snd_soc_pcm_runtime *rtd = cstream->private_data; struct snd_soc_pcm_runtime *rtd = cstream->private_data;
struct snd_soc_platform *platform = rtd->platform; struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
struct sst_data *ctx = snd_soc_platform_get_drvdata(platform); struct sst_data *ctx = snd_soc_component_get_drvdata(component);
stream = cstream->runtime->private_data; stream = cstream->runtime->private_data;
/* construct fw structure for this*/ /* construct fw structure for this*/
......
...@@ -697,26 +697,22 @@ static int sst_pcm_new(struct snd_soc_pcm_runtime *rtd) ...@@ -697,26 +697,22 @@ static int sst_pcm_new(struct snd_soc_pcm_runtime *rtd)
return retval; return retval;
} }
static int sst_soc_probe(struct snd_soc_platform *platform) static int sst_soc_probe(struct snd_soc_component *component)
{ {
struct sst_data *drv = dev_get_drvdata(platform->dev); struct sst_data *drv = dev_get_drvdata(component->dev);
drv->soc_card = platform->component.card; drv->soc_card = component->card;
return sst_dsp_init_v2_dpcm(platform); return sst_dsp_init_v2_dpcm(component);
} }
static const struct snd_soc_platform_driver sst_soc_platform_drv = { static const struct snd_soc_component_driver sst_soc_platform_drv = {
.name = DRV_NAME,
.probe = sst_soc_probe, .probe = sst_soc_probe,
.ops = &sst_platform_ops, .ops = &sst_platform_ops,
.compr_ops = &sst_platform_compr_ops, .compr_ops = &sst_platform_compr_ops,
.pcm_new = sst_pcm_new, .pcm_new = sst_pcm_new,
}; };
static const struct snd_soc_component_driver sst_component = {
.name = "sst",
};
static int sst_platform_probe(struct platform_device *pdev) static int sst_platform_probe(struct platform_device *pdev)
{ {
struct sst_data *drv; struct sst_data *drv;
...@@ -740,26 +736,16 @@ static int sst_platform_probe(struct platform_device *pdev) ...@@ -740,26 +736,16 @@ static int sst_platform_probe(struct platform_device *pdev)
mutex_init(&drv->lock); mutex_init(&drv->lock);
dev_set_drvdata(&pdev->dev, drv); dev_set_drvdata(&pdev->dev, drv);
ret = snd_soc_register_platform(&pdev->dev, &sst_soc_platform_drv); ret = devm_snd_soc_register_component(&pdev->dev, &sst_soc_platform_drv,
if (ret) {
dev_err(&pdev->dev, "registering soc platform failed\n");
return ret;
}
ret = snd_soc_register_component(&pdev->dev, &sst_component,
sst_platform_dai, ARRAY_SIZE(sst_platform_dai)); sst_platform_dai, ARRAY_SIZE(sst_platform_dai));
if (ret) { if (ret)
dev_err(&pdev->dev, "registering cpu dais failed\n"); dev_err(&pdev->dev, "registering cpu dais failed\n");
snd_soc_unregister_platform(&pdev->dev);
}
return ret; return ret;
} }
static int sst_platform_remove(struct platform_device *pdev) static int sst_platform_remove(struct platform_device *pdev)
{ {
snd_soc_unregister_component(&pdev->dev);
snd_soc_unregister_platform(&pdev->dev);
dev_dbg(&pdev->dev, "sst_platform_remove success\n"); dev_dbg(&pdev->dev, "sst_platform_remove success\n");
return 0; return 0;
} }
......
...@@ -27,6 +27,8 @@ ...@@ -27,6 +27,8 @@
extern struct sst_device *sst; extern struct sst_device *sst;
extern const struct snd_compr_ops sst_platform_compr_ops; extern const struct snd_compr_ops sst_platform_compr_ops;
#define DRV_NAME "sst"
#define SST_MONO 1 #define SST_MONO 1
#define SST_STEREO 2 #define SST_STEREO 2
#define SST_MAX_CAP 5 #define SST_MAX_CAP 5
...@@ -155,7 +157,7 @@ struct sst_device { ...@@ -155,7 +157,7 @@ struct sst_device {
struct sst_data; struct sst_data;
int sst_dsp_init_v2_dpcm(struct snd_soc_platform *platform); int sst_dsp_init_v2_dpcm(struct snd_soc_component *component);
int sst_send_pipe_gains(struct snd_soc_dai *dai, int stream, int mute); int sst_send_pipe_gains(struct snd_soc_dai *dai, int stream, int mute);
int send_ssp_cmd(struct snd_soc_dai *dai, const char *id, bool enable); int send_ssp_cmd(struct snd_soc_dai *dai, const char *id, bool enable);
int sst_handle_vb_timer(struct snd_soc_dai *dai, bool enable); int sst_handle_vb_timer(struct snd_soc_dai *dai, bool enable);
......
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