Merge remote-tracking branches 'asoc/topic/fsl-spdif', 'asoc/topic/imx', 'asoc/topic...
[linux-2.6-block.git] / sound / soc / fsl / fsl_spdif.c
index af0429421fc8b4997874777acf58950908ec317f..75870c0ea2c9f613d9b4ebe3e10efd53430e5363 100644 (file)
@@ -90,7 +90,6 @@ struct spdif_mixer_control {
  * @sysclk: system clock for rx clock rate measurement
  * @dma_params_tx: DMA parameters for transmit channel
  * @dma_params_rx: DMA parameters for receive channel
- * @name: driver name
  */
 struct fsl_spdif_priv {
        struct spdif_mixer_control fsl_spdif_control;
@@ -109,12 +108,8 @@ struct fsl_spdif_priv {
        struct clk *sysclk;
        struct snd_dmaengine_dai_dma_data dma_params_tx;
        struct snd_dmaengine_dai_dma_data dma_params_rx;
-
-       /* The name space will be allocated dynamically */
-       char name[0];
 };
 
-
 /* DPLL locked and lock loss interrupt handler */
 static void spdif_irq_dpll_lock(struct fsl_spdif_priv *spdif_priv)
 {
@@ -1169,19 +1164,15 @@ static int fsl_spdif_probe(struct platform_device *pdev)
        if (!np)
                return -ENODEV;
 
-       spdif_priv = devm_kzalloc(&pdev->dev,
-                       sizeof(struct fsl_spdif_priv) + strlen(np->name) + 1,
-                       GFP_KERNEL);
+       spdif_priv = devm_kzalloc(&pdev->dev, sizeof(*spdif_priv), GFP_KERNEL);
        if (!spdif_priv)
                return -ENOMEM;
 
-       strcpy(spdif_priv->name, np->name);
-
        spdif_priv->pdev = pdev;
 
        /* Initialize this copy of the CPU DAI driver structure */
        memcpy(&spdif_priv->cpu_dai_drv, &fsl_spdif_dai, sizeof(fsl_spdif_dai));
-       spdif_priv->cpu_dai_drv.name = spdif_priv->name;
+       spdif_priv->cpu_dai_drv.name = dev_name(&pdev->dev);
 
        /* Get the addresses and IRQ */
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -1198,12 +1189,12 @@ static int fsl_spdif_probe(struct platform_device *pdev)
 
        irq = platform_get_irq(pdev, 0);
        if (irq < 0) {
-               dev_err(&pdev->dev, "no irq for node %s\n", np->full_name);
+               dev_err(&pdev->dev, "no irq for node %s\n", pdev->name);
                return irq;
        }
 
        ret = devm_request_irq(&pdev->dev, irq, spdif_isr, 0,
-                       spdif_priv->name, spdif_priv);
+                              dev_name(&pdev->dev), spdif_priv);
        if (ret) {
                dev_err(&pdev->dev, "could not claim irq %u\n", irq);
                return ret;