diff options
-rw-r--r-- | sound/soc/fsl/fsl_spdif.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/soc/fsl/fsl_spdif.c b/sound/soc/fsl/fsl_spdif.c index bf3e8e6de1a2..668b9bad02ff 100644 --- a/sound/soc/fsl/fsl_spdif.c +++ b/sound/soc/fsl/fsl_spdif.c @@ -50,6 +50,7 @@ struct fsl_spdif_soc_data { u32 rx_burst; u32 interrupts; u64 tx_formats; + u64 rx_rates; }; /* @@ -127,6 +128,7 @@ static struct fsl_spdif_soc_data fsl_spdif_vf610 = { .rx_burst = FSL_SPDIF_RXFIFO_WML, .interrupts = 1, .tx_formats = FSL_SPDIF_FORMATS_PLAYBACK, + .rx_rates = FSL_SPDIF_RATES_CAPTURE, .constrain_period_size = false, }; @@ -136,6 +138,7 @@ static struct fsl_spdif_soc_data fsl_spdif_imx35 = { .rx_burst = FSL_SPDIF_RXFIFO_WML, .interrupts = 1, .tx_formats = FSL_SPDIF_FORMATS_PLAYBACK, + .rx_rates = FSL_SPDIF_RATES_CAPTURE, .constrain_period_size = false, }; @@ -145,6 +148,7 @@ static struct fsl_spdif_soc_data fsl_spdif_imx8qm = { .rx_burst = 2, .interrupts = 2, .tx_formats = SNDRV_PCM_FMTBIT_S24_LE, + .rx_rates = (FSL_SPDIF_RATES_CAPTURE | SNDRV_PCM_RATE_192000), .constrain_period_size = true, }; @@ -1295,6 +1299,8 @@ static int fsl_spdif_probe(struct platform_device *pdev) spdif_priv->cpu_dai_drv.name = dev_name(&pdev->dev); spdif_priv->cpu_dai_drv.playback.formats = spdif_priv->soc->tx_formats; + spdif_priv->cpu_dai_drv.capture.rates = + spdif_priv->soc->rx_rates; /* Get the addresses and IRQ */ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |