Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2bc16ed8 authored by Mark Brown's avatar Mark Brown
Browse files

ASoC: wm8994: Push wm8994 private data allocation out into device probe

parent fe4085e8
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
@@ -3472,23 +3472,16 @@ static irqreturn_t wm8994_temp_shut(int irq, void *data)
static int wm8994_codec_probe(struct snd_soc_codec *codec)
{
	struct wm8994 *control = dev_get_drvdata(codec->dev->parent);
	struct wm8994_priv *wm8994;
	struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec);
	struct snd_soc_dapm_context *dapm = &codec->dapm;
	unsigned int reg;
	int ret, i;

	wm8994->codec = codec;
	codec->control_data = control->regmap;

	wm8994 = devm_kzalloc(codec->dev, sizeof(struct wm8994_priv),
			      GFP_KERNEL);
	if (wm8994 == NULL)
		return -ENOMEM;
	snd_soc_codec_set_drvdata(codec, wm8994);

	snd_soc_codec_set_cache_io(codec, 16, 16, SND_SOC_REGMAP);

	wm8994->wm8994 = dev_get_drvdata(codec->dev->parent);
	wm8994->pdata = dev_get_platdata(codec->dev->parent);
	wm8994->codec = codec;

	mutex_init(&wm8994->accdet_lock);
@@ -3953,6 +3946,17 @@ static struct snd_soc_codec_driver soc_codec_dev_wm8994 = {

static int __devinit wm8994_probe(struct platform_device *pdev)
{
	struct wm8994_priv *wm8994;

	wm8994 = devm_kzalloc(&pdev->dev, sizeof(struct wm8994_priv),
			      GFP_KERNEL);
	if (wm8994 == NULL)
		return -ENOMEM;
	platform_set_drvdata(pdev, wm8994);

	wm8994->wm8994 = dev_get_drvdata(pdev->dev.parent);
	wm8994->pdata = dev_get_platdata(pdev->dev.parent);

	return snd_soc_register_codec(&pdev->dev, &soc_codec_dev_wm8994,
			wm8994_dai, ARRAY_SIZE(wm8994_dai));
}