Merge remote-tracking branches 'asoc/topic/fsl', 'asoc/topic/fsl-card', 'asoc/topic...
[cascardo/linux.git] / sound / soc / fsl / fsl_ssi.c
index e695517..b6b0d25 100644 (file)
@@ -67,8 +67,6 @@
 /**
  * FSLSSI_I2S_FORMATS: audio formats supported by the SSI
  *
- * This driver currently only supports the SSI running in I2S slave mode.
- *
  * The SSI has a limitation in that the samples must be in the same byte
  * order as the host CPU.  This is because when multiple bytes are written
  * to the STX register, the bytes and bits must be written in the same
@@ -1099,7 +1097,7 @@ static const struct snd_soc_component_driver fsl_ssi_component = {
 };
 
 static struct snd_soc_dai_driver fsl_ssi_ac97_dai = {
-       .ac97_control = 1,
+       .bus_control = true,
        .playback = {
                .stream_name = "AC97 Playback",
                .channels_min = 2,
@@ -1363,7 +1361,7 @@ static int fsl_ssi_probe(struct platform_device *pdev)
                return PTR_ERR(ssi_private->regs);
        }
 
-       ssi_private->irq = irq_of_parse_and_map(np, 0);
+       ssi_private->irq = platform_get_irq(pdev, 0);
        if (!ssi_private->irq) {
                dev_err(&pdev->dev, "no irq for node %s\n", np->full_name);
                return -ENXIO;
@@ -1389,7 +1387,7 @@ static int fsl_ssi_probe(struct platform_device *pdev)
        if (ssi_private->soc->imx) {
                ret = fsl_ssi_imx_probe(pdev, ssi_private, iomem);
                if (ret)
-                       goto error_irqmap;
+                       return ret;
        }
 
        ret = snd_soc_register_component(&pdev->dev, &fsl_ssi_component,
@@ -1412,7 +1410,7 @@ static int fsl_ssi_probe(struct platform_device *pdev)
 
        ret = fsl_ssi_debugfs_create(&ssi_private->dbg_stats, &pdev->dev);
        if (ret)
-               goto error_asoc_register;
+               goto error_irq;
 
        /*
         * If codec-handle property is missing from SSI node, we assume
@@ -1460,10 +1458,6 @@ error_asoc_register:
        if (ssi_private->soc->imx)
                fsl_ssi_imx_clean(pdev, ssi_private);
 
-error_irqmap:
-       if (ssi_private->use_dma)
-               irq_dispose_mapping(ssi_private->irq);
-
        return ret;
 }
 
@@ -1480,9 +1474,6 @@ static int fsl_ssi_remove(struct platform_device *pdev)
        if (ssi_private->soc->imx)
                fsl_ssi_imx_clean(pdev, ssi_private);
 
-       if (ssi_private->use_dma)
-               irq_dispose_mapping(ssi_private->irq);
-
        return 0;
 }