Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 283894
b: refs/heads/master
c: b960ce7
h: refs/heads/master
v: v3
  • Loading branch information
Mark Brown committed Dec 7, 2011
1 parent 541d44c commit 180639c
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 15 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f18b4e2ee9649c4aa50cc279826d3890f468a80e
refs/heads/master: b960ce74a70477d7d7d3c08669a8f0f52017b4fa
20 changes: 6 additions & 14 deletions trunk/sound/soc/samsung/i2s.c
Original file line number Diff line number Diff line change
Expand Up @@ -945,7 +945,7 @@ struct i2s_dai *i2s_alloc_dai(struct platform_device *pdev, bool sec)
{
struct i2s_dai *i2s;

i2s = kzalloc(sizeof(struct i2s_dai), GFP_KERNEL);
i2s = devm_kzalloc(&pdev->dev, sizeof(struct i2s_dai), GFP_KERNEL);
if (i2s == NULL)
return NULL;

Expand All @@ -972,10 +972,8 @@ struct i2s_dai *i2s_alloc_dai(struct platform_device *pdev, bool sec)
i2s->pdev = platform_device_register_resndata(NULL,
pdev->name, pdev->id + SAMSUNG_I2S_SECOFF,
NULL, 0, NULL, 0);
if (IS_ERR(i2s->pdev)) {
kfree(i2s);
if (IS_ERR(i2s->pdev))
return NULL;
}
}

/* Pre-assign snd_soc_dai_set_drvdata */
Expand Down Expand Up @@ -1048,7 +1046,7 @@ static __devinit int samsung_i2s_probe(struct platform_device *pdev)
if (!pri_dai) {
dev_err(&pdev->dev, "Unable to alloc I2S_pri\n");
ret = -ENOMEM;
goto err1;
goto err;
}

pri_dai->dma_playback.dma_addr = regs_base + I2STXD;
Expand All @@ -1073,7 +1071,7 @@ static __devinit int samsung_i2s_probe(struct platform_device *pdev)
if (!sec_dai) {
dev_err(&pdev->dev, "Unable to alloc I2S_sec\n");
ret = -ENOMEM;
goto err2;
goto err;
}
sec_dai->dma_playback.dma_addr = regs_base + I2STXDS;
sec_dai->dma_playback.client =
Expand All @@ -1092,17 +1090,13 @@ static __devinit int samsung_i2s_probe(struct platform_device *pdev)
if (i2s_pdata->cfg_gpio && i2s_pdata->cfg_gpio(pdev)) {
dev_err(&pdev->dev, "Unable to configure gpio\n");
ret = -EINVAL;
goto err3;
goto err;
}

snd_soc_register_dai(&pri_dai->pdev->dev, &pri_dai->i2s_dai_drv);

return 0;
err3:
kfree(sec_dai);
err2:
kfree(pri_dai);
err1:
err:
release_mem_region(regs_base, resource_size(res));

return ret;
Expand All @@ -1128,8 +1122,6 @@ static __devexit int samsung_i2s_remove(struct platform_device *pdev)
i2s->pri_dai = NULL;
i2s->sec_dai = NULL;

kfree(i2s);

snd_soc_unregister_dai(&pdev->dev);

return 0;
Expand Down

0 comments on commit 180639c

Please sign in to comment.