if (!cs35l56->init_done)
                return;
 
-       cs35l56->dsp.part = devm_kasprintf(cs35l56->dev, GFP_KERNEL, "cs35l56%s-%02x",
-                                          cs35l56->secured ? "s" : "", cs35l56->rev);
-
-       if (!cs35l56->dsp.part)
-               return;
-
        pm_runtime_get_sync(cs35l56->dev);
 
        /*
        dev_info(cs35l56->dev, "Cirrus Logic CS35L56%s Rev %02X OTP%d\n",
                 cs35l56->secured ? "s" : "", cs35l56->rev, otpid);
 
+       /* Populate the DSP information with the revision and security state */
+       cs35l56->dsp.part = devm_kasprintf(cs35l56->dev, GFP_KERNEL, "cs35l56%s-%02x",
+                                          cs35l56->secured ? "s" : "", cs35l56->rev);
+       if (!cs35l56->dsp.part)
+               return -ENOMEM;
+
        /* Wake source and *_BLOCKED interrupts default to unmasked, so mask them */
        regmap_write(cs35l56->regmap, CS35L56_IRQ1_MASK_20, 0xffffffff);
        regmap_update_bits(cs35l56->regmap, CS35L56_IRQ1_MASK_1,