*   which do not use devicetree.
  * @process: Callback used to apply processing on samples transferred from/to
  *   user space.
+ * @name: Component name. If null, dev_name will be used.
  * @compat_filter_fn: Will be used as the filter function when requesting a
  *  channel for platforms which do not use devicetree. The filter parameter
  *  will be the DAI's DMA data.
        int (*process)(struct snd_pcm_substream *substream,
                       int channel, unsigned long hwoff,
                       unsigned long bytes);
+       const char *name;
        dma_filter_fn compat_filter_fn;
        struct device *dma_dev;
        const char *chan_names[SNDRV_PCM_STREAM_LAST + 1];
 
        INIT_LIST_HEAD(&component->list);
        mutex_init(&component->io_mutex);
 
-       component->name = fmt_single_name(dev, &component->id);
        if (!component->name) {
-               dev_err(dev, "ASoC: Failed to allocate name\n");
-               return -ENOMEM;
+               component->name = fmt_single_name(dev, &component->id);
+               if (!component->name) {
+                       dev_err(dev, "ASoC: Failed to allocate name\n");
+                       return -ENOMEM;
+               }
        }
 
        component->dev          = dev;