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

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
Loading
Loading
Loading
Loading
+18 −18
Original line number Diff line number Diff line
@@ -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).
 */
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;
	int index, ret = 0;
	struct snd_card *card = platform->component.card->snd_card;
	struct snd_card *card = component->card->snd_card;
	char *idx;

	down_read(&card->controls_rwsem);
@@ -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
 */
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 snd_soc_dapm_widget *w;
	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)) {
			ids->parent_w = w;
			break;
@@ -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
 */
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;
	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)) {
			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);
			INIT_LIST_HEAD(&ids->algo_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)
				return ret;

			/* fill linked widgets */
			if (ids->parent_wname !=  NULL)
				sst_fill_linked_widgets(platform, ids);
				sst_fill_linked_widgets(component, ids);
		}
	}
	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;
	struct snd_soc_dapm_context *dapm =
			snd_soc_component_get_dapm(&platform->component);
	struct sst_data *drv = snd_soc_platform_get_drvdata(platform);
			snd_soc_component_get_dapm(component);
	struct sst_data *drv = snd_soc_component_get_drvdata(component);
	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);
	if (!drv->byte_stream)
		return -ENOMEM;
@@ -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;
	}

	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));
	if (ret)
		return ret;

	/* Initialize algo control params */
	ret = sst_algo_control_init(platform->dev);
	ret = sst_algo_control_init(component->dev);
	if (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));
	if (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));
	if (ret)
		return ret;

	ret = sst_map_modules_to_pipe(platform);
	ret = sst_map_modules_to_pipe(component);

	return ret;
}
+2 −2
Original line number Diff line number Diff line
@@ -107,8 +107,8 @@ static int sst_platform_compr_set_params(struct snd_compr_stream *cstream,
	struct snd_sst_params str_params;
	struct sst_compress_cb cb;
	struct snd_soc_pcm_runtime *rtd = cstream->private_data;
	struct snd_soc_platform *platform = rtd->platform;
	struct sst_data *ctx = snd_soc_platform_get_drvdata(platform);
	struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
	struct sst_data *ctx = snd_soc_component_get_drvdata(component);

	stream = cstream->runtime->private_data;
	/* construct fw structure for this*/
+9 −23
Original line number Diff line number Diff line
@@ -697,26 +697,22 @@ static int sst_pcm_new(struct snd_soc_pcm_runtime *rtd)
	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;
	return sst_dsp_init_v2_dpcm(platform);
	drv->soc_card = component->card;
	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,
	.ops		= &sst_platform_ops,
	.compr_ops	= &sst_platform_compr_ops,
	.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)
{
	struct sst_data *drv;
@@ -740,26 +736,16 @@ static int sst_platform_probe(struct platform_device *pdev)
	mutex_init(&drv->lock);
	dev_set_drvdata(&pdev->dev, drv);

	ret = snd_soc_register_platform(&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,
	ret = devm_snd_soc_register_component(&pdev->dev, &sst_soc_platform_drv,
				sst_platform_dai, ARRAY_SIZE(sst_platform_dai));
	if (ret) {
	if (ret)
		dev_err(&pdev->dev, "registering cpu dais failed\n");
		snd_soc_unregister_platform(&pdev->dev);
	}

	return ret;
}

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");
	return 0;
}
+3 −1
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@
extern struct sst_device *sst;
extern const struct snd_compr_ops sst_platform_compr_ops;

#define DRV_NAME "sst"

#define SST_MONO		1
#define SST_STEREO		2
#define SST_MAX_CAP		5
@@ -155,7 +157,7 @@ struct sst_device {

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 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);