if (cpu_dai->driver->ops->startup) {
                ret = cpu_dai->driver->ops->startup(substream, cpu_dai);
                if (ret < 0) {
-                       printk(KERN_ERR "asoc: can't open interface %s\n",
-                               cpu_dai->name);
+                       dev_err(cpu_dai->dev, "can't open interface %s: %d\n",
+                               cpu_dai->name, ret);
                        goto out;
                }
        }
        if (platform->driver->ops && platform->driver->ops->open) {
                ret = platform->driver->ops->open(substream);
                if (ret < 0) {
-                       printk(KERN_ERR "asoc: can't open platform %s\n", platform->name);
+                       dev_err(platform->dev, "can't open platform %s: %d\n",
+                               platform->name, ret);
                        goto platform_err;
                }
        }
        if (codec_dai->driver->ops->startup) {
                ret = codec_dai->driver->ops->startup(substream, codec_dai);
                if (ret < 0) {
-                       printk(KERN_ERR "asoc: can't open codec %s\n",
-                               codec_dai->name);
+                       dev_err(codec_dai->dev, "can't open codec %s: %d\n",
+                               codec_dai->name, ret);
                        goto codec_dai_err;
                }
        }
        if (rtd->dai_link->ops && rtd->dai_link->ops->startup) {
                ret = rtd->dai_link->ops->startup(substream);
                if (ret < 0) {
-                       printk(KERN_ERR "asoc: %s startup failed\n", rtd->dai_link->name);
+                       pr_err("asoc: %s startup failed: %d\n",
+                              rtd->dai_link->name, ret);
                        goto machine_err;
                }
        }
        if (rtd->dai_link->ops && rtd->dai_link->ops->prepare) {
                ret = rtd->dai_link->ops->prepare(substream);
                if (ret < 0) {
-                       printk(KERN_ERR "asoc: machine prepare error\n");
+                       pr_err("asoc: machine prepare error: %d\n", ret);
                        goto out;
                }
        }
        if (platform->driver->ops && platform->driver->ops->prepare) {
                ret = platform->driver->ops->prepare(substream);
                if (ret < 0) {
-                       printk(KERN_ERR "asoc: platform prepare error\n");
+                       dev_err(platform->dev, "platform prepare error: %d\n",
+                               ret);
                        goto out;
                }
        }
        if (codec_dai->driver->ops->prepare) {
                ret = codec_dai->driver->ops->prepare(substream, codec_dai);
                if (ret < 0) {
-                       printk(KERN_ERR "asoc: codec DAI prepare error\n");
+                       dev_err(codec_dai->dev, "DAI prepare error: %d\n",
+                               ret);
                        goto out;
                }
        }
        if (cpu_dai->driver->ops->prepare) {
                ret = cpu_dai->driver->ops->prepare(substream, cpu_dai);
                if (ret < 0) {
-                       printk(KERN_ERR "asoc: cpu DAI prepare error\n");
+                       dev_err(cpu_dai->dev, "DAI prepare error: %d\n",
+                               ret);
                        goto out;
                }
        }
        if (rtd->dai_link->ops && rtd->dai_link->ops->hw_params) {
                ret = rtd->dai_link->ops->hw_params(substream, params);
                if (ret < 0) {
-                       printk(KERN_ERR "asoc: machine hw_params failed\n");
+                       pr_err("asoc: machine hw_params failed: %d\n", ret);
                        goto out;
                }
        }
        if (codec_dai->driver->ops->hw_params) {
                ret = codec_dai->driver->ops->hw_params(substream, params, codec_dai);
                if (ret < 0) {
-                       printk(KERN_ERR "asoc: can't set codec %s hw params\n",
-                               codec_dai->name);
+                       dev_err(codec_dai->dev, "can't set %s hw params: %d\n",
+                               codec_dai->name, ret);
                        goto codec_err;
                }
        }
        if (cpu_dai->driver->ops->hw_params) {
                ret = cpu_dai->driver->ops->hw_params(substream, params, cpu_dai);
                if (ret < 0) {
-                       printk(KERN_ERR "asoc: interface %s hw params failed\n",
-                               cpu_dai->name);
+                       dev_err(cpu_dai->dev, "%s hw params failed: %d\n",
+                               cpu_dai->name, ret);
                        goto interface_err;
                }
        }
        if (platform->driver->ops && platform->driver->ops->hw_params) {
                ret = platform->driver->ops->hw_params(substream, params);
                if (ret < 0) {
-                       printk(KERN_ERR "asoc: platform %s hw params failed\n",
-                               platform->name);
+                       dev_err(platform->dev, "%s hw params failed: %d\n",
+                              platform->name, ret);
                        goto platform_err;
                }
        }