[alsa-devel] [PATCH 1/2][RFC] ASoC: fsi: fixup SND_SOC_DAIFMT_CBx_CFx flags

Simon Horman horms at verge.net.au
Fri Mar 14 00:55:50 CET 2014


On Tue, Mar 11, 2014 at 11:48:21PM -0700, Kuninori Morimoto wrote:
> From: Kuninori Morimoto <kuninori.morimoto.gx at 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 at renesas.com>

arch/arm/mach-shmobile bits:

Acked-by: Simon Horman <horms+renesas at 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 at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


More information about the Alsa-devel mailing list