]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - sound/soc/fsl/fsl_spdif.c
Merge remote-tracking branches 'asoc/topic/da7213', 'asoc/topic/da732x', 'asoc/topic...
[karo-tx-linux.git] / sound / soc / fsl / fsl_spdif.c
index 4d075f1abe7803387bb01dbb39a2d66a0eac4c59..6452ca83d8893eb35cdc842b8991366c4684c6e2 100644 (file)
@@ -911,8 +911,8 @@ static int fsl_spdif_dai_probe(struct snd_soc_dai *dai)
 {
        struct fsl_spdif_priv *spdif_private = snd_soc_dai_get_drvdata(dai);
 
-       dai->playback_dma_data = &spdif_private->dma_params_tx;
-       dai->capture_dma_data = &spdif_private->dma_params_rx;
+       snd_soc_dai_init_dma_data(dai, &spdif_private->dma_params_tx,
+                                 &spdif_private->dma_params_rx);
 
        snd_soc_add_dai_controls(dai, fsl_spdif_ctrls, ARRAY_SIZE(fsl_spdif_ctrls));
 
@@ -985,7 +985,7 @@ static bool fsl_spdif_writeable_reg(struct device *dev, unsigned int reg)
        }
 }
 
-static const struct regmap_config fsl_spdif_regmap_config = {
+static struct regmap_config fsl_spdif_regmap_config = {
        .reg_bits = 32,
        .reg_stride = 4,
        .val_bits = 32,
@@ -1105,6 +1105,9 @@ static int fsl_spdif_probe(struct platform_device *pdev)
        memcpy(&spdif_priv->cpu_dai_drv, &fsl_spdif_dai, sizeof(fsl_spdif_dai));
        spdif_priv->cpu_dai_drv.name = spdif_priv->name;
 
+       if (of_property_read_bool(np, "big-endian"))
+               fsl_spdif_regmap_config.val_format_endian = REGMAP_ENDIAN_BIG;
+
        /* Get the addresses and IRQ */
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        regs = devm_ioremap_resource(&pdev->dev, res);