diff mbox

[3/6] ASoC: fsl_ssi: enable AC'97 asymmetric rates

Message ID 558FFAC4.2060608@maciej.szmigiero.name (mailing list archive)
State Not Applicable
Headers show

Commit Message

Maciej S. Szmigiero June 28, 2015, 1:46 p.m. UTC
AC'97 bus can support asymmetric playback/capture rates
so enable them in this case in fsl_ssi driver.

Signed-off-by: Maciej Szmigiero <mail@maciej.szmigiero.name>
---
 sound/soc/fsl/fsl_ssi.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

Comments

Timur Tabi June 28, 2015, 2:01 p.m. UTC | #1
Maciej S. Szmigiero wrote:
>   	/* Are the RX and the TX clocks locked? */
>   	if (!of_find_property(np, "fsl,ssi-asynchronous", NULL)) {
> -		ssi_private->cpu_dai_drv.symmetric_rates = 1;
> +		if (!fsl_ssi_is_ac97(ssi_private))
> +			ssi_private->cpu_dai_drv.symmetric_rates = 1;
> +

Is this necessary?  Why not just add fsl,ssi-asynchronous to the AC97 
device tree node?
Maciej S. Szmigiero June 28, 2015, 7:12 p.m. UTC | #2
W dniu 28.06.2015 16:01, Timur Tabi pisze:
> Maciej S. Szmigiero wrote:
>>       /* Are the RX and the TX clocks locked? */
>>       if (!of_find_property(np, "fsl,ssi-asynchronous", NULL)) {
>> -        ssi_private->cpu_dai_drv.symmetric_rates = 1;
>> +        if (!fsl_ssi_is_ac97(ssi_private))
>> +            ssi_private->cpu_dai_drv.symmetric_rates = 1;
>> +
> 
> Is this necessary?  Why not just add fsl,ssi-asynchronous to the AC97 device tree node?

Because in the AC'97 mode the driver supports only one channel config and one sample format
anyway the remaining settings controlled by this property don't do anything.

Since it should be safe to enable asymmetric rates with any AC'97 CODEC I think it is good
to do it in driver than to add "fsl,ssi-asynchronous" to every AC'97 DT node.

Also the description of this property in fsl,ssi.txt looks like that it only makes sense in
non-AC'97 mode.

Best regards,
Maciej Szmigiero
diff mbox

Patch

diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c
index 2ce9e1d..f3034b9 100644
--- a/sound/soc/fsl/fsl_ssi.c
+++ b/sound/soc/fsl/fsl_ssi.c
@@ -1377,7 +1377,9 @@  static int fsl_ssi_probe(struct platform_device *pdev)
 
 	/* Are the RX and the TX clocks locked? */
 	if (!of_find_property(np, "fsl,ssi-asynchronous", NULL)) {
-		ssi_private->cpu_dai_drv.symmetric_rates = 1;
+		if (!fsl_ssi_is_ac97(ssi_private))
+			ssi_private->cpu_dai_drv.symmetric_rates = 1;
+
 		ssi_private->cpu_dai_drv.symmetric_channels = 1;
 		ssi_private->cpu_dai_drv.symmetric_samplebits = 1;
 	}