erased_ecc_vec = bch16_vector;
                break;
        default:
-               pr_err("invalid driver configuration\n");
+               dev_err(&info->pdev->dev, "invalid driver configuration\n");
                return -EINVAL;
        }
 
        err = 0;
        for (i = 0; i < eccsteps; i++) {
                if (err_vec[i].error_uncorrectable) {
-                       pr_err("nand: uncorrectable bit-flips found\n");
+                       dev_err(&info->pdev->dev,
+                               "uncorrectable bit-flips found\n");
                        err = -EBADMSG;
                } else if (err_vec[i].error_reported) {
                        for (j = 0; j < err_vec[i].error_count; j++) {
                                                        1 << bit_pos;
                                        }
                                } else {
-                                       pr_err("invalid bit-flip @ %d:%d\n",
-                                                        byte_pos, bit_pos);
+                                       dev_err(&info->pdev->dev,
+                                               "invalid bit-flip @ %d:%d\n",
+                                               byte_pos, bit_pos);
                                        err = -EBADMSG;
                                }
                        }
 
        /* check whether elm-id is passed via DT */
        if (!elm_node) {
-               pr_err("nand: error: ELM DT node not found\n");
+               dev_err(&info->pdev->dev, "ELM devicetree node not found\n");
                return false;
        }
        pdev = of_find_device_by_node(elm_node);
        /* check whether ELM device is registered */
        if (!pdev) {
-               pr_err("nand: error: ELM device not found\n");
+               dev_err(&info->pdev->dev, "ELM device not found\n");
                return false;
        }
        /* ELM module available, now configure it */
        /* scan NAND device connected to chip controller */
        nand_chip->options |= pdata->devsize & NAND_BUSWIDTH_16;
        if (nand_scan_ident(mtd, 1, NULL)) {
-               pr_err("nand device scan failed, may be bus-width mismatch\n");
+               dev_err(&info->pdev->dev, "scan failed, may be bus-width mismatch\n");
                err = -ENXIO;
                goto return_error;
        }
 
        /* check for small page devices */
        if ((mtd->oobsize < 64) && (pdata->ecc_opt != OMAP_ECC_HAM1_CODE_HW)) {
-               pr_err("small page devices are not supported\n");
+               dev_err(&info->pdev->dev, "small page devices are not supported\n");
                err = -EINVAL;
                goto return_error;
        }
                                                        nand_chip->ecc.bytes,
                                                        &ecclayout);
                if (!nand_chip->ecc.priv) {
-                       pr_err("nand: error: unable to use s/w BCH library\n");
+                       dev_err(&info->pdev->dev, "unable to use BCH library\n");
                        err = -EINVAL;
+                       goto return_error;
                }
                break;
 
                                                        nand_chip->ecc.bytes,
                                                        &ecclayout);
                if (!nand_chip->ecc.priv) {
-                       pr_err("nand: error: unable to use s/w BCH library\n");
+                       dev_err(&info->pdev->dev, "unable to use BCH library\n");
                        err = -EINVAL;
                        goto return_error;
                }
                                ecclayout->eccpos[ecclayout->eccbytes - 1] + 1;
                break;
        default:
-               pr_err("nand: error: invalid or unsupported ECC scheme\n");
+               dev_err(&info->pdev->dev, "invalid or unsupported ECC scheme\n");
                err = -EINVAL;
                goto return_error;
        }
        ecclayout->oobfree->length = mtd->oobsize - ecclayout->oobfree->offset;
        /* check if NAND device's OOB is enough to store ECC signatures */
        if (mtd->oobsize < (ecclayout->eccbytes + BADBLOCK_MARKER_LENGTH)) {
-               pr_err("not enough OOB bytes required = %d, available=%d\n",
-                                          ecclayout->eccbytes, mtd->oobsize);
+               dev_err(&info->pdev->dev,
+                       "not enough OOB bytes required = %d, available=%d\n",
+                       ecclayout->eccbytes, mtd->oobsize);
                err = -EINVAL;
                goto return_error;
        }