|
@@ -641,12 +641,13 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
|
|
|
goto err_pm_disable;
|
|
|
}
|
|
|
|
|
|
- soc_dai = devm_kzalloc(&pdev->dev,
|
|
|
+ soc_dai = devm_kmemdup(&pdev->dev, &rockchip_i2s_dai
|
|
|
sizeof(*soc_dai), GFP_KERNEL);
|
|
|
- if (!soc_dai)
|
|
|
- return -ENOMEM;
|
|
|
+ if (!soc_dai) {
|
|
|
+ err = -ENOMEM;
|
|
|
+ goto err_pm_disable;
|
|
|
+ }
|
|
|
|
|
|
- memcpy(soc_dai, &rockchip_i2s_dai, sizeof(*soc_dai));
|
|
|
if (!of_property_read_u32(node, "rockchip,playback-channels", &val)) {
|
|
|
if (val >= 2 && val <= 8)
|
|
|
soc_dai->playback.channels_max = val;
|