diff mbox

[1/2,RFC] ASoC: fsi: fixup SND_SOC_DAIFMT_CBx_CFx flags

Message ID 87siqnrjyl.wl%kuninori.morimoto.gx@gmail.com (mailing list archive)
State RFC
Headers show

Commit Message

Kuninori Morimoto March 12, 2014, 6:48 a.m. UTC
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

SND_SOC_DAIFMT_CBx_CFx means "codec" side master/slave mode.
Then, FSI will be master mode if it was SND_SOC_DAIFMT_CBS_CFS.

This patch fixup platform settings too.
Then, it tidyups SND_SOC_DAIFMT_INV settings.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 .../boot/dts/r8a7740-armadillo800eva-reference.dts |    3 ++-
 arch/arm/boot/dts/sh73a0-kzm9g-reference.dts       |    2 ++
 arch/arm/mach-shmobile/board-armadillo800eva.c     |    4 +---
 arch/arm/mach-shmobile/board-kzm9g.c               |    4 +---
 arch/arm/mach-shmobile/board-mackerel.c            |    6 ++----
 arch/sh/boards/mach-ecovec24/setup.c               |    4 +---
 arch/sh/boards/mach-se/7724/setup.c                |    4 +---
 sound/soc/sh/fsi.c                                 |    2 +-
 8 files changed, 11 insertions(+), 18 deletions(-)

Comments

Simon Horman March 13, 2014, 11:55 p.m. UTC | #1
On Tue, Mar 11, 2014 at 11:48:21PM -0700, Kuninori Morimoto wrote:
> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> 
> SND_SOC_DAIFMT_CBx_CFx means "codec" side master/slave mode.
> Then, FSI will be master mode if it was SND_SOC_DAIFMT_CBS_CFS.
> 
> This patch fixup platform settings too.
> Then, it tidyups SND_SOC_DAIFMT_INV settings.
> 
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

arch/arm/mach-shmobile bits:

Acked-by: Simon Horman <horms+renesas@verge.net.au>

N.B: arch/sh/ is now orphaned.

> ---
>  .../boot/dts/r8a7740-armadillo800eva-reference.dts |    3 ++-
>  arch/arm/boot/dts/sh73a0-kzm9g-reference.dts       |    2 ++
>  arch/arm/mach-shmobile/board-armadillo800eva.c     |    4 +---
>  arch/arm/mach-shmobile/board-kzm9g.c               |    4 +---
>  arch/arm/mach-shmobile/board-mackerel.c            |    6 ++----
>  arch/sh/boards/mach-ecovec24/setup.c               |    4 +---
>  arch/sh/boards/mach-se/7724/setup.c                |    4 +---
>  sound/soc/sh/fsi.c                                 |    2 +-
>  8 files changed, 11 insertions(+), 18 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
> index 95a849b..acffbab 100644
> --- a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
> +++ b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
> @@ -135,7 +135,8 @@
>  
>  		simple-audio-card,cpu {
>  			sound-dai = <&sh_fsi2 0>;
> -			bitclock-inversion;
> +			bitclock-master;
> +			frame-master;
>  		};
>  
>  		simple-audio-card,codec {
> diff --git a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
> index eb8886b..68da428 100644
> --- a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
> +++ b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
> @@ -158,6 +158,8 @@
>  		simple-audio-card,format = "left_j";
>  		simple-audio-card,cpu {
>  			sound-dai = <&sh_fsi2 0>;
> +			bitclock-master;
> +			frame-master;
>  		};
>  		simple-audio-card,codec {
>  			sound-dai = <&ak4648>;
> diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c
> index 93533e2..9323854 100644
> --- a/arch/arm/mach-shmobile/board-armadillo800eva.c
> +++ b/arch/arm/mach-shmobile/board-armadillo800eva.c
> @@ -988,14 +988,12 @@ static struct asoc_simple_card_info fsi_wm8978_info = {
>  	.card		= "FSI2A-WM8978",
>  	.codec		= "wm8978.0-001a",
>  	.platform	= "sh_fsi2",
> -	.daifmt		= SND_SOC_DAIFMT_I2S,
> +	.daifmt		= SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
>  	.cpu_dai = {
>  		.name	= "fsia-dai",
> -		.fmt	= SND_SOC_DAIFMT_CBS_CFS | SND_SOC_DAIFMT_IB_NF,
>  	},
>  	.codec_dai = {
>  		.name	= "wm8978-hifi",
> -		.fmt	= SND_SOC_DAIFMT_CBM_CFM | SND_SOC_DAIFMT_NB_NF,
>  		.sysclk	= 12288000,
>  	},
>  };
> diff --git a/arch/arm/mach-shmobile/board-kzm9g.c b/arch/arm/mach-shmobile/board-kzm9g.c
> index bc40b85..03dc3ac 100644
> --- a/arch/arm/mach-shmobile/board-kzm9g.c
> +++ b/arch/arm/mach-shmobile/board-kzm9g.c
> @@ -589,14 +589,12 @@ static struct asoc_simple_card_info fsi2_ak4648_info = {
>  	.card		= "FSI2A-AK4648",
>  	.codec		= "ak4642-codec.0-0012",
>  	.platform	= "sh_fsi2",
> -	.daifmt		= SND_SOC_DAIFMT_LEFT_J,
> +	.daifmt		= SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_CBM_CFM,
>  	.cpu_dai = {
>  		.name	= "fsia-dai",
> -		.fmt	= SND_SOC_DAIFMT_CBS_CFS,
>  	},
>  	.codec_dai = {
>  		.name	= "ak4642-hifi",
> -		.fmt	= SND_SOC_DAIFMT_CBM_CFM,
>  		.sysclk	= 11289600,
>  	},
>  };
> diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c
> index 3aba037..8c43321 100644
> --- a/arch/arm/mach-shmobile/board-mackerel.c
> +++ b/arch/arm/mach-shmobile/board-mackerel.c
> @@ -509,9 +509,9 @@ static struct asoc_simple_card_info fsi2_hdmi_info = {
>  	.card		= "FSI2B-HDMI",
>  	.codec		= "sh-mobile-hdmi",
>  	.platform	= "sh_fsi2",
> +	.fmt		= SND_SOC_DAIFMT_CBS_CFS,
>  	.cpu_dai = {
>  		.name	= "fsib-dai",
> -		.fmt	= SND_SOC_DAIFMT_CBM_CFM | SND_SOC_DAIFMT_IB_NF,
>  	},
>  	.codec_dai = {
>  		.name	= "sh_mobile_hdmi-hifi",
> @@ -905,14 +905,12 @@ static struct asoc_simple_card_info fsi2_ak4643_info = {
>  	.card		= "FSI2A-AK4643",
>  	.codec		= "ak4642-codec.0-0013",
>  	.platform	= "sh_fsi2",
> -	.daifmt		= SND_SOC_DAIFMT_LEFT_J,
> +	.daifmt		= SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_CBM_CFM,
>  	.cpu_dai = {
>  		.name	= "fsia-dai",
> -		.fmt	= SND_SOC_DAIFMT_CBS_CFS,
>  	},
>  	.codec_dai = {
>  		.name	= "ak4642-hifi",
> -		.fmt	= SND_SOC_DAIFMT_CBM_CFM,
>  		.sysclk	= 11289600,
>  	},
>  };
> diff --git a/arch/sh/boards/mach-ecovec24/setup.c b/arch/sh/boards/mach-ecovec24/setup.c
> index 5bc3a15..85d5255 100644
> --- a/arch/sh/boards/mach-ecovec24/setup.c
> +++ b/arch/sh/boards/mach-ecovec24/setup.c
> @@ -861,14 +861,12 @@ static struct asoc_simple_card_info fsi_da7210_info = {
>  	.card		= "FSIB-DA7210",
>  	.codec		= "da7210.0-001a",
>  	.platform	= "sh_fsi.0",
> -	.daifmt		= SND_SOC_DAIFMT_I2S,
> +	.daifmt		= SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
>  	.cpu_dai = {
>  		.name	= "fsib-dai",
> -		.fmt	= SND_SOC_DAIFMT_CBS_CFS | SND_SOC_DAIFMT_IB_NF,
>  	},
>  	.codec_dai = {
>  		.name	= "da7210-hifi",
> -		.fmt	= SND_SOC_DAIFMT_CBM_CFM,
>  	},
>  };
>  
> diff --git a/arch/sh/boards/mach-se/7724/setup.c b/arch/sh/boards/mach-se/7724/setup.c
> index 21e4230..1162bc6 100644
> --- a/arch/sh/boards/mach-se/7724/setup.c
> +++ b/arch/sh/boards/mach-se/7724/setup.c
> @@ -304,14 +304,12 @@ static struct asoc_simple_card_info fsi_ak4642_info = {
>  	.card		= "FSIA-AK4642",
>  	.codec		= "ak4642-codec.0-0012",
>  	.platform	= "sh_fsi.0",
> -	.daifmt		= SND_SOC_DAIFMT_LEFT_J,
> +	.daifmt		= SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_CBM_CFM,
>  	.cpu_dai = {
>  		.name	= "fsia-dai",
> -		.fmt	= SND_SOC_DAIFMT_CBS_CFS | SND_SOC_DAIFMT_IB_NF,
>  	},
>  	.codec_dai = {
>  		.name	= "ak4642-hifi",
> -		.fmt	= SND_SOC_DAIFMT_CBM_CFM,
>  		.sysclk	= 11289600,
>  	},
>  };
> diff --git a/sound/soc/sh/fsi.c b/sound/soc/sh/fsi.c
> index 1967f44..710a079 100644
> --- a/sound/soc/sh/fsi.c
> +++ b/sound/soc/sh/fsi.c
> @@ -1711,9 +1711,9 @@ static int fsi_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
>  	/* set master/slave audio interface */
>  	switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
>  	case SND_SOC_DAIFMT_CBM_CFM:
> -		fsi->clk_master = 1;
>  		break;
>  	case SND_SOC_DAIFMT_CBS_CFS:
> +		fsi->clk_master = 1; /* codec is slave, cpu is master */
>  		break;
>  	default:
>  		return -EINVAL;
> -- 
> 1.7.9.5
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
index 95a849b..acffbab 100644
--- a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
+++ b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
@@ -135,7 +135,8 @@ 
 
 		simple-audio-card,cpu {
 			sound-dai = <&sh_fsi2 0>;
-			bitclock-inversion;
+			bitclock-master;
+			frame-master;
 		};
 
 		simple-audio-card,codec {
diff --git a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
index eb8886b..68da428 100644
--- a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
+++ b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
@@ -158,6 +158,8 @@ 
 		simple-audio-card,format = "left_j";
 		simple-audio-card,cpu {
 			sound-dai = <&sh_fsi2 0>;
+			bitclock-master;
+			frame-master;
 		};
 		simple-audio-card,codec {
 			sound-dai = <&ak4648>;
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c
index 93533e2..9323854 100644
--- a/arch/arm/mach-shmobile/board-armadillo800eva.c
+++ b/arch/arm/mach-shmobile/board-armadillo800eva.c
@@ -988,14 +988,12 @@  static struct asoc_simple_card_info fsi_wm8978_info = {
 	.card		= "FSI2A-WM8978",
 	.codec		= "wm8978.0-001a",
 	.platform	= "sh_fsi2",
-	.daifmt		= SND_SOC_DAIFMT_I2S,
+	.daifmt		= SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
 	.cpu_dai = {
 		.name	= "fsia-dai",
-		.fmt	= SND_SOC_DAIFMT_CBS_CFS | SND_SOC_DAIFMT_IB_NF,
 	},
 	.codec_dai = {
 		.name	= "wm8978-hifi",
-		.fmt	= SND_SOC_DAIFMT_CBM_CFM | SND_SOC_DAIFMT_NB_NF,
 		.sysclk	= 12288000,
 	},
 };
diff --git a/arch/arm/mach-shmobile/board-kzm9g.c b/arch/arm/mach-shmobile/board-kzm9g.c
index bc40b85..03dc3ac 100644
--- a/arch/arm/mach-shmobile/board-kzm9g.c
+++ b/arch/arm/mach-shmobile/board-kzm9g.c
@@ -589,14 +589,12 @@  static struct asoc_simple_card_info fsi2_ak4648_info = {
 	.card		= "FSI2A-AK4648",
 	.codec		= "ak4642-codec.0-0012",
 	.platform	= "sh_fsi2",
-	.daifmt		= SND_SOC_DAIFMT_LEFT_J,
+	.daifmt		= SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_CBM_CFM,
 	.cpu_dai = {
 		.name	= "fsia-dai",
-		.fmt	= SND_SOC_DAIFMT_CBS_CFS,
 	},
 	.codec_dai = {
 		.name	= "ak4642-hifi",
-		.fmt	= SND_SOC_DAIFMT_CBM_CFM,
 		.sysclk	= 11289600,
 	},
 };
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c
index 3aba037..8c43321 100644
--- a/arch/arm/mach-shmobile/board-mackerel.c
+++ b/arch/arm/mach-shmobile/board-mackerel.c
@@ -509,9 +509,9 @@  static struct asoc_simple_card_info fsi2_hdmi_info = {
 	.card		= "FSI2B-HDMI",
 	.codec		= "sh-mobile-hdmi",
 	.platform	= "sh_fsi2",
+	.fmt		= SND_SOC_DAIFMT_CBS_CFS,
 	.cpu_dai = {
 		.name	= "fsib-dai",
-		.fmt	= SND_SOC_DAIFMT_CBM_CFM | SND_SOC_DAIFMT_IB_NF,
 	},
 	.codec_dai = {
 		.name	= "sh_mobile_hdmi-hifi",
@@ -905,14 +905,12 @@  static struct asoc_simple_card_info fsi2_ak4643_info = {
 	.card		= "FSI2A-AK4643",
 	.codec		= "ak4642-codec.0-0013",
 	.platform	= "sh_fsi2",
-	.daifmt		= SND_SOC_DAIFMT_LEFT_J,
+	.daifmt		= SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_CBM_CFM,
 	.cpu_dai = {
 		.name	= "fsia-dai",
-		.fmt	= SND_SOC_DAIFMT_CBS_CFS,
 	},
 	.codec_dai = {
 		.name	= "ak4642-hifi",
-		.fmt	= SND_SOC_DAIFMT_CBM_CFM,
 		.sysclk	= 11289600,
 	},
 };
diff --git a/arch/sh/boards/mach-ecovec24/setup.c b/arch/sh/boards/mach-ecovec24/setup.c
index 5bc3a15..85d5255 100644
--- a/arch/sh/boards/mach-ecovec24/setup.c
+++ b/arch/sh/boards/mach-ecovec24/setup.c
@@ -861,14 +861,12 @@  static struct asoc_simple_card_info fsi_da7210_info = {
 	.card		= "FSIB-DA7210",
 	.codec		= "da7210.0-001a",
 	.platform	= "sh_fsi.0",
-	.daifmt		= SND_SOC_DAIFMT_I2S,
+	.daifmt		= SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
 	.cpu_dai = {
 		.name	= "fsib-dai",
-		.fmt	= SND_SOC_DAIFMT_CBS_CFS | SND_SOC_DAIFMT_IB_NF,
 	},
 	.codec_dai = {
 		.name	= "da7210-hifi",
-		.fmt	= SND_SOC_DAIFMT_CBM_CFM,
 	},
 };
 
diff --git a/arch/sh/boards/mach-se/7724/setup.c b/arch/sh/boards/mach-se/7724/setup.c
index 21e4230..1162bc6 100644
--- a/arch/sh/boards/mach-se/7724/setup.c
+++ b/arch/sh/boards/mach-se/7724/setup.c
@@ -304,14 +304,12 @@  static struct asoc_simple_card_info fsi_ak4642_info = {
 	.card		= "FSIA-AK4642",
 	.codec		= "ak4642-codec.0-0012",
 	.platform	= "sh_fsi.0",
-	.daifmt		= SND_SOC_DAIFMT_LEFT_J,
+	.daifmt		= SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_CBM_CFM,
 	.cpu_dai = {
 		.name	= "fsia-dai",
-		.fmt	= SND_SOC_DAIFMT_CBS_CFS | SND_SOC_DAIFMT_IB_NF,
 	},
 	.codec_dai = {
 		.name	= "ak4642-hifi",
-		.fmt	= SND_SOC_DAIFMT_CBM_CFM,
 		.sysclk	= 11289600,
 	},
 };
diff --git a/sound/soc/sh/fsi.c b/sound/soc/sh/fsi.c
index 1967f44..710a079 100644
--- a/sound/soc/sh/fsi.c
+++ b/sound/soc/sh/fsi.c
@@ -1711,9 +1711,9 @@  static int fsi_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 	/* set master/slave audio interface */
 	switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
 	case SND_SOC_DAIFMT_CBM_CFM:
-		fsi->clk_master = 1;
 		break;
 	case SND_SOC_DAIFMT_CBS_CFS:
+		fsi->clk_master = 1; /* codec is slave, cpu is master */
 		break;
 	default:
 		return -EINVAL;