const char *dmic_str)
 {
        const char *tplg_filename = NULL;
-       char *filename;
-       char *split_ext;
+       char *filename, *tmp;
+       const char *split_ext;
 
-       filename = devm_kstrdup(sdev->dev, sof_tplg_filename, GFP_KERNEL);
+       filename = kstrdup(sof_tplg_filename, GFP_KERNEL);
        if (!filename)
                return NULL;
 
        /* this assumes a .tplg extension */
-       split_ext = strsep(&filename, ".");
-       if (split_ext) {
+       tmp = filename;
+       split_ext = strsep(&tmp, ".");
+       if (split_ext)
                tplg_filename = devm_kasprintf(sdev->dev, GFP_KERNEL,
                                               "%s%s%s.tplg",
                                               split_ext, idisp_str, dmic_str);
-               if (!tplg_filename)
-                       return NULL;
-       }
+       kfree(filename);
+
        return tplg_filename;
 }