All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs
@ 2011-01-12  6:22 Kuninori Morimoto
  2011-01-12  6:23 ` [PATCH 1/3] ASoC: ak4642: add SND_SOC_DAIFMT_FORMAT support Kuninori Morimoto
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2011-01-12  6:22 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Paul Mundt, Liam Girdwood


Dear Mark, Liam, Paul

These patches are for fsi-ak4642, fsi-da7210 to select sound format.

Kuninori Morimoto (3):
      ASoC: ak4642: add SND_SOC_DAIFMT_FORMAT support
      ASoC: sh: fsi: Add fsi_get_priv_frm_dai function
      ASoC: sh: fsi: Add snd_soc_dai_set_fmt support

In current fsi-codecs, fsi format is selected from platform,
and codecs format is selected from fsi-codecs.
These patches modify it, and select format from fsi-codecs only.

ak4642 didn't have SND_SOC_DAIFMT_FORMAT, so 1st patch add it.
(da7210 already have it)

These patches are tested on Ecovec, AP4EVB, Mackerel board,
and Paul's rmobile-latest + Mark's for-2.6.38 branch.

Best regards
--
Kuninori Morimoto

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 1/3] ASoC: ak4642: add SND_SOC_DAIFMT_FORMAT support
  2011-01-12  6:22 [PATCH 0/3] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Kuninori Morimoto
@ 2011-01-12  6:23 ` Kuninori Morimoto
  2011-01-12  6:23 ` [PATCH 2/3] ASoC: sh: fsi: Add fsi_get_priv_frm_dai function Kuninori Morimoto
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2011-01-12  6:23 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Paul Mundt, Liam Girdwood

This patch support LEFT_J / I2S only for now

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 sound/soc/codecs/ak4642.c |   24 ++++++++++++++++++++++++
 sound/soc/sh/fsi-ak4642.c |    3 ++-
 2 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/sound/soc/codecs/ak4642.c b/sound/soc/codecs/ak4642.c
index f00eba3..4be0570 100644
--- a/sound/soc/codecs/ak4642.c
+++ b/sound/soc/codecs/ak4642.c
@@ -116,6 +116,12 @@
 #define BCKO_MASK	(1 << 3)
 #define BCKO_64		BCKO_MASK
 
+#define DIF_MASK	(3 << 0)
+#define DSP		(0 << 0)
+#define RIGHT_J		(1 << 0)
+#define LEFT_J		(2 << 0)
+#define I2S		(3 << 0)
+
 /* MD_CTL2 */
 #define FS0		(1 << 0)
 #define FS1		(1 << 1)
@@ -354,6 +360,24 @@ static int ak4642_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 	snd_soc_update_bits(codec, PW_MGMT2, MS, data);
 	snd_soc_update_bits(codec, MD_CTL1, BCKO_MASK, bcko);
 
+	/* format type */
+	data = 0;
+	switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
+	case SND_SOC_DAIFMT_LEFT_J:
+		data = LEFT_J;
+		break;
+	case SND_SOC_DAIFMT_I2S:
+		data = I2S;
+		break;
+	/* FIXME
+	 * Please add RIGHT_J / DSP support here
+	 */
+	default:
+		return -EINVAL;
+		break;
+	}
+	snd_soc_update_bits(codec, MD_CTL1, DIF_MASK, data);
+
 	return 0;
 }
 
diff --git a/sound/soc/sh/fsi-ak4642.c b/sound/soc/sh/fsi-ak4642.c
index a14820a..9478b55 100644
--- a/sound/soc/sh/fsi-ak4642.c
+++ b/sound/soc/sh/fsi-ak4642.c
@@ -25,7 +25,8 @@ static int fsi_ak4642_dai_init(struct snd_soc_pcm_runtime *rtd)
 	struct snd_soc_dai *dai = rtd->codec_dai;
 	int ret;
 
-	ret = snd_soc_dai_set_fmt(dai, SND_SOC_DAIFMT_CBM_CFM);
+	ret = snd_soc_dai_set_fmt(dai, SND_SOC_DAIFMT_LEFT_J |
+				       SND_SOC_DAIFMT_CBM_CFM);
 	if (ret < 0)
 		return ret;
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 2/3] ASoC: sh: fsi: Add fsi_get_priv_frm_dai function
  2011-01-12  6:22 [PATCH 0/3] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Kuninori Morimoto
  2011-01-12  6:23 ` [PATCH 1/3] ASoC: ak4642: add SND_SOC_DAIFMT_FORMAT support Kuninori Morimoto
@ 2011-01-12  6:23 ` Kuninori Morimoto
  2011-01-12  6:24 ` [PATCH 3/3] ASoC: sh: fsi: Add snd_soc_dai_set_fmt support Kuninori Morimoto
  2011-01-12 11:12 ` [PATCH 0/3] " Liam Girdwood
  3 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2011-01-12  6:23 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Paul Mundt, Liam Girdwood

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 sound/soc/sh/fsi.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/sound/soc/sh/fsi.c b/sound/soc/sh/fsi.c
index 2b06402..1d0a16e 100644
--- a/sound/soc/sh/fsi.c
+++ b/sound/soc/sh/fsi.c
@@ -252,9 +252,8 @@ static struct snd_soc_dai *fsi_get_dai(struct snd_pcm_substream *substream)
 	return  rtd->cpu_dai;
 }
 
-static struct fsi_priv *fsi_get_priv(struct snd_pcm_substream *substream)
+static struct fsi_priv *fsi_get_priv_frm_dai(struct snd_soc_dai *dai)
 {
-	struct snd_soc_dai *dai = fsi_get_dai(substream);
 	struct fsi_master *master = snd_soc_dai_get_drvdata(dai);
 
 	if (dai->id == 0)
@@ -263,6 +262,11 @@ static struct fsi_priv *fsi_get_priv(struct snd_pcm_substream *substream)
 		return &master->fsib;
 }
 
+static struct fsi_priv *fsi_get_priv(struct snd_pcm_substream *substream)
+{
+	return fsi_get_priv_frm_dai(fsi_get_dai(substream));
+}
+
 static u32 fsi_get_info_flags(struct fsi_priv *fsi)
 {
 	int is_porta = fsi_is_port_a(fsi);
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 3/3] ASoC: sh: fsi: Add snd_soc_dai_set_fmt support
  2011-01-12  6:22 [PATCH 0/3] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Kuninori Morimoto
  2011-01-12  6:23 ` [PATCH 1/3] ASoC: ak4642: add SND_SOC_DAIFMT_FORMAT support Kuninori Morimoto
  2011-01-12  6:23 ` [PATCH 2/3] ASoC: sh: fsi: Add fsi_get_priv_frm_dai function Kuninori Morimoto
@ 2011-01-12  6:24 ` Kuninori Morimoto
  2011-01-12 14:53   ` Mark Brown
  2011-01-12 11:12 ` [PATCH 0/3] " Liam Girdwood
  3 siblings, 1 reply; 16+ messages in thread
From: Kuninori Morimoto @ 2011-01-12  6:24 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Paul Mundt, Liam Girdwood

This patch add snd_soc_dai_ops :: set_fmt to FSI driver and
select master/slave clock mode by snd_soc_dai_set_fmt on
fsi-xxx.c instead of platform infomation code.
This patch remove fsi_is_master function which is no longer needed.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 arch/arm/mach-shmobile/board-ap4evb.c   |    2 -
 arch/arm/mach-shmobile/board-mackerel.c |    2 -
 arch/sh/boards/mach-ecovec24/setup.c    |    2 -
 arch/sh/boards/mach-se/7724/setup.c     |    2 -
 include/sound/sh_fsi.h                  |    8 +----
 sound/soc/sh/fsi-ak4642.c               |   13 +++++--
 sound/soc/sh/fsi-da7210.c               |   12 ++++++-
 sound/soc/sh/fsi-hdmi.c                 |   11 ++++++
 sound/soc/sh/fsi.c                      |   54 +++++++++++++++++-------------
 9 files changed, 62 insertions(+), 44 deletions(-)

diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c
index 5b9937c..246bf32 100644
--- a/arch/arm/mach-shmobile/board-ap4evb.c
+++ b/arch/arm/mach-shmobile/board-ap4evb.c
@@ -676,8 +676,6 @@ static int fsi_set_rate(struct device *dev, int is_porta, int rate, int enable)
 
 static struct sh_fsi_platform_info fsi_info = {
 	.porta_flags = SH_FSI_BRS_INV |
-		       SH_FSI_OUT_SLAVE_MODE |
-		       SH_FSI_IN_SLAVE_MODE |
 		       SH_FSI_OFMT(PCM) |
 		       SH_FSI_IFMT(PCM),
 
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c
index 3c50497..7a383d5 100644
--- a/arch/arm/mach-shmobile/board-mackerel.c
+++ b/arch/arm/mach-shmobile/board-mackerel.c
@@ -632,8 +632,6 @@ fsi_set_rate_end:
 
 static struct sh_fsi_platform_info fsi_info = {
 	.porta_flags =	SH_FSI_BRS_INV		|
-			SH_FSI_OUT_SLAVE_MODE	|
-			SH_FSI_IN_SLAVE_MODE	|
 			SH_FSI_OFMT(PCM)	|
 			SH_FSI_IFMT(PCM),
 
diff --git a/arch/sh/boards/mach-ecovec24/setup.c b/arch/sh/boards/mach-ecovec24/setup.c
index f48c492..f4b9c08 100644
--- a/arch/sh/boards/mach-ecovec24/setup.c
+++ b/arch/sh/boards/mach-ecovec24/setup.c
@@ -722,8 +722,6 @@ static struct platform_device camera_devices[] = {
 /* FSI */
 static struct sh_fsi_platform_info fsi_info = {
 	.portb_flags = SH_FSI_BRS_INV |
-		       SH_FSI_OUT_SLAVE_MODE |
-		       SH_FSI_IN_SLAVE_MODE |
 		       SH_FSI_OFMT(I2S) |
 		       SH_FSI_IFMT(I2S),
 };
diff --git a/arch/sh/boards/mach-se/7724/setup.c b/arch/sh/boards/mach-se/7724/setup.c
index b710757..41eee0b 100644
--- a/arch/sh/boards/mach-se/7724/setup.c
+++ b/arch/sh/boards/mach-se/7724/setup.c
@@ -286,8 +286,6 @@ static struct platform_device ceu1_device = {
 /* change J20, J21, J22 pin to 1-2 connection to use slave mode */
 static struct sh_fsi_platform_info fsi_info = {
 	.porta_flags = SH_FSI_BRS_INV |
-		       SH_FSI_OUT_SLAVE_MODE |
-		       SH_FSI_IN_SLAVE_MODE |
 		       SH_FSI_OFMT(PCM) |
 		       SH_FSI_IFMT(PCM),
 };
diff --git a/include/sound/sh_fsi.h b/include/sound/sh_fsi.h
index d798941..18e4327 100644
--- a/include/sound/sh_fsi.h
+++ b/include/sound/sh_fsi.h
@@ -17,12 +17,11 @@
 
 /* flags format
 
- * 0xABCDEEFF
+ * 0xABC0EEFF
  *
  * A:  channel size for TDM (input)
  * B:  channel size for TDM (ooutput)
  * C:  inversion
- * D:  mode
  * E:  input format
  * F:  output format
  */
@@ -46,11 +45,6 @@
 #define SH_FSI_LRS_INV		(1 << 22)
 #define SH_FSI_BRS_INV		(1 << 23)
 
-/* mode */
-#define SH_FSI_MODE_MASK	0x000F0000
-#define SH_FSI_IN_SLAVE_MODE	(1 << 16)  /* default master mode */
-#define SH_FSI_OUT_SLAVE_MODE	(1 << 17)  /* default master mode */
-
 /* DI format */
 #define SH_FSI_FMT_MASK		0x000000FF
 #define SH_FSI_IFMT(x)		(((SH_FSI_FMT_ ## x) & SH_FSI_FMT_MASK) << 8)
diff --git a/sound/soc/sh/fsi-ak4642.c b/sound/soc/sh/fsi-ak4642.c
index 9478b55..88fff23 100644
--- a/sound/soc/sh/fsi-ak4642.c
+++ b/sound/soc/sh/fsi-ak4642.c
@@ -22,15 +22,20 @@ struct fsi_ak4642_data {
 
 static int fsi_ak4642_dai_init(struct snd_soc_pcm_runtime *rtd)
 {
-	struct snd_soc_dai *dai = rtd->codec_dai;
+	struct snd_soc_dai *codec = rtd->codec_dai;
+	struct snd_soc_dai *cpu = rtd->cpu_dai;
 	int ret;
 
-	ret = snd_soc_dai_set_fmt(dai, SND_SOC_DAIFMT_LEFT_J |
-				       SND_SOC_DAIFMT_CBM_CFM);
+	ret = snd_soc_dai_set_fmt(codec, SND_SOC_DAIFMT_LEFT_J |
+					 SND_SOC_DAIFMT_CBM_CFM);
 	if (ret < 0)
 		return ret;
 
-	ret = snd_soc_dai_set_sysclk(dai, 0, 11289600, 0);
+	ret = snd_soc_dai_set_sysclk(codec, 0, 11289600, 0);
+	if (ret < 0)
+		return ret;
+
+	ret = snd_soc_dai_set_fmt(cpu, SND_SOC_DAIFMT_CBS_CFS);
 
 	return ret;
 }
diff --git a/sound/soc/sh/fsi-da7210.c b/sound/soc/sh/fsi-da7210.c
index e8df9da..9b24ed4 100644
--- a/sound/soc/sh/fsi-da7210.c
+++ b/sound/soc/sh/fsi-da7210.c
@@ -15,11 +15,19 @@
 
 static int fsi_da7210_init(struct snd_soc_pcm_runtime *rtd)
 {
-	struct snd_soc_dai *dai = rtd->codec_dai;
+	struct snd_soc_dai *codec = rtd->codec_dai;
+	struct snd_soc_dai *cpu = rtd->cpu_dai;
+	int ret;
 
-	return snd_soc_dai_set_fmt(dai,
+	ret = snd_soc_dai_set_fmt(codec,
 				   SND_SOC_DAIFMT_I2S |
 				   SND_SOC_DAIFMT_CBM_CFM);
+	if (ret < 0)
+		return ret;
+
+	ret = snd_soc_dai_set_fmt(cpu, SND_SOC_DAIFMT_CBS_CFS);
+
+	return ret;
 }
 
 static struct snd_soc_dai_link fsi_da7210_dai = {
diff --git a/sound/soc/sh/fsi-hdmi.c b/sound/soc/sh/fsi-hdmi.c
index a52dd8e..96d8ce3 100644
--- a/sound/soc/sh/fsi-hdmi.c
+++ b/sound/soc/sh/fsi-hdmi.c
@@ -12,6 +12,16 @@
 #include <linux/platform_device.h>
 #include <sound/sh_fsi.h>
 
+static int fsi_hdmi_dai_init(struct snd_soc_pcm_runtime *rtd)
+{
+	struct snd_soc_dai *cpu = rtd->cpu_dai;
+	int ret;
+
+	ret = snd_soc_dai_set_fmt(cpu, SND_SOC_DAIFMT_CBM_CFM);
+
+	return ret;
+}
+
 static struct snd_soc_dai_link fsi_dai_link = {
 	.name		= "HDMI",
 	.stream_name	= "HDMI",
@@ -19,6 +29,7 @@ static struct snd_soc_dai_link fsi_dai_link = {
 	.codec_dai_name	= "sh_mobile_hdmi-hifi",
 	.platform_name	= "sh_fsi2",
 	.codec_name	= "sh-mobile-hdmi",
+	.init		= fsi_hdmi_dai_init,
 };
 
 static struct snd_soc_card fsi_soc_card  = {
diff --git a/sound/soc/sh/fsi.c b/sound/soc/sh/fsi.c
index 1d0a16e..5f39f36 100644
--- a/sound/soc/sh/fsi.c
+++ b/sound/soc/sh/fsi.c
@@ -78,6 +78,8 @@
 /* CKG1 */
 #define ACKMD_MASK	0x00007000
 #define BPFMD_MASK	0x00000700
+#define DIMD		(1 << 4)
+#define DOMD		(1 << 0)
 
 /* A/B MST_CTLR */
 #define BP	(1 << 4)	/* Fix the signal of Biphase output */
@@ -292,21 +294,6 @@ static inline struct fsi_stream *fsi_get_stream(struct fsi_priv *fsi,
 	return is_play ? &fsi->playback : &fsi->capture;
 }
 
-static int fsi_is_master_mode(struct fsi_priv *fsi, int is_play)
-{
-	u32 mode;
-	u32 flags = fsi_get_info_flags(fsi);
-
-	mode = is_play ? SH_FSI_OUT_SLAVE_MODE : SH_FSI_IN_SLAVE_MODE;
-
-	/* return
-	 * 1 : master mode
-	 * 0 : slave mode
-	 */
-
-	return (mode & flags) != mode;
-}
-
 static u32 fsi_get_port_shift(struct fsi_priv *fsi, int is_play)
 {
 	int is_porta = fsi_is_port_a(fsi);
@@ -764,19 +751,11 @@ static int fsi_dai_startup(struct snd_pcm_substream *substream,
 	u32 fmt;
 	u32 data;
 	int is_play = fsi_is_play(substream);
-	int is_master;
 
 	io = fsi_get_stream(fsi, is_play);
 
 	pm_runtime_get_sync(dai->dev);
 
-	/* CKG1 */
-	data = is_play ? (1 << 0) : (1 << 4);
-	is_master = fsi_is_master_mode(fsi, is_play);
-	if (is_master)
-		fsi_reg_mask_set(fsi, CKG1, data, data);
-	else
-		fsi_reg_mask_set(fsi, CKG1, data, 0);
 
 	/* clock inversion (CKG2) */
 	data = 0;
@@ -893,6 +872,34 @@ static int fsi_dai_trigger(struct snd_pcm_substream *substream, int cmd,
 	return ret;
 }
 
+static int fsi_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
+{
+	struct fsi_priv *fsi = fsi_get_priv_frm_dai(dai);
+	u32 data = 0;
+	int ret;
+
+	pm_runtime_get_sync(dai->dev);
+
+	/* set master/slave audio interface */
+	switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
+	case SND_SOC_DAIFMT_CBM_CFM:
+		data = DIMD | DOMD;
+		break;
+	case SND_SOC_DAIFMT_CBS_CFS:
+		break;
+	default:
+		ret = -EINVAL;
+		goto set_fmt_exit;
+	}
+	fsi_reg_mask_set(fsi, CKG1, (DIMD | DOMD), data);
+	ret = 0;
+
+set_fmt_exit:
+	pm_runtime_put_sync(dai->dev);
+
+	return ret;
+}
+
 static int fsi_dai_hw_params(struct snd_pcm_substream *substream,
 			     struct snd_pcm_hw_params *params,
 			     struct snd_soc_dai *dai)
@@ -979,6 +986,7 @@ static struct snd_soc_dai_ops fsi_dai_ops = {
 	.startup	= fsi_dai_startup,
 	.shutdown	= fsi_dai_shutdown,
 	.trigger	= fsi_dai_trigger,
+	.set_fmt	= fsi_dai_set_fmt,
 	.hw_params	= fsi_dai_hw_params,
 };
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/3] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs
  2011-01-12  6:22 [PATCH 0/3] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Kuninori Morimoto
                   ` (2 preceding siblings ...)
  2011-01-12  6:24 ` [PATCH 3/3] ASoC: sh: fsi: Add snd_soc_dai_set_fmt support Kuninori Morimoto
@ 2011-01-12 11:12 ` Liam Girdwood
  3 siblings, 0 replies; 16+ messages in thread
From: Liam Girdwood @ 2011-01-12 11:12 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: Linux-ALSA, Mark Brown, Paul Mundt

On Wed, 2011-01-12 at 15:22 +0900, Kuninori Morimoto wrote:
> Dear Mark, Liam, Paul
> 
> These patches are for fsi-ak4642, fsi-da7210 to select sound format.
> 
> Kuninori Morimoto (3):
>       ASoC: ak4642: add SND_SOC_DAIFMT_FORMAT support
>       ASoC: sh: fsi: Add fsi_get_priv_frm_dai function
>       ASoC: sh: fsi: Add snd_soc_dai_set_fmt support
> 
> In current fsi-codecs, fsi format is selected from platform,
> and codecs format is selected from fsi-codecs.
> These patches modify it, and select format from fsi-codecs only.
> 
> ak4642 didn't have SND_SOC_DAIFMT_FORMAT, so 1st patch add it.
> (da7210 already have it)
> 
> These patches are tested on Ecovec, AP4EVB, Mackerel board,
> and Paul's rmobile-latest + Mark's for-2.6.38 branch.
> 
> Best regards
> --
> Kuninori Morimoto

All

Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
-- 
Freelance Developer, SlimLogic Ltd
ASoC and Voltage Regulator Maintainer.
http://www.slimlogic.co.uk

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] ASoC: sh: fsi: Add snd_soc_dai_set_fmt support
  2011-01-12  6:24 ` [PATCH 3/3] ASoC: sh: fsi: Add snd_soc_dai_set_fmt support Kuninori Morimoto
@ 2011-01-12 14:53   ` Mark Brown
  2011-01-13  0:09     ` Kuninori Morimoto
  2011-01-13 22:28     ` Paul Mundt
  0 siblings, 2 replies; 16+ messages in thread
From: Mark Brown @ 2011-01-12 14:53 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: Linux-ALSA, Paul Mundt, Liam Girdwood

On Wed, Jan 12, 2011 at 03:24:45PM +0900, Kuninori Morimoto wrote:
> This patch add snd_soc_dai_ops :: set_fmt to FSI driver and
> select master/slave clock mode by snd_soc_dai_set_fmt on
> fsi-xxx.c instead of platform infomation code.
> This patch remove fsi_is_master function which is no longer needed.
> 
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> ---
>  arch/arm/mach-shmobile/board-ap4evb.c   |    2 -
>  arch/arm/mach-shmobile/board-mackerel.c |    2 -

This doesn't apply, board-mackarel is only going into mainline during
the merge window so it's not yet merged into the ASoC tree.  Please
resubmit after the merge window is over, including Liam's ack if there
are no code changes when you do so.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] ASoC: sh: fsi: Add snd_soc_dai_set_fmt support
  2011-01-12 14:53   ` Mark Brown
@ 2011-01-13  0:09     ` Kuninori Morimoto
  2011-01-13 22:28     ` Paul Mundt
  1 sibling, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2011-01-13  0:09 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Paul Mundt, Liam Girdwood


Dear Mark

> > This patch add snd_soc_dai_ops :: set_fmt to FSI driver and
> > select master/slave clock mode by snd_soc_dai_set_fmt on
> > fsi-xxx.c instead of platform infomation code.
> > This patch remove fsi_is_master function which is no longer needed.
> > 
> > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> > ---
> >  arch/arm/mach-shmobile/board-ap4evb.c   |    2 -
> >  arch/arm/mach-shmobile/board-mackerel.c |    2 -
> 
> This doesn't apply, board-mackarel is only going into mainline during
> the merge window so it's not yet merged into the ASoC tree.  Please
> resubmit after the merge window is over, including Liam's ack if there
> are no code changes when you do so.

OK. Thanks.
I will do.

Best regards
--
Kuninori Morimoto

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 3/3] ASoC: sh: fsi: Add snd_soc_dai_set_fmt support
  2011-01-12 14:53   ` Mark Brown
  2011-01-13  0:09     ` Kuninori Morimoto
@ 2011-01-13 22:28     ` Paul Mundt
  2011-01-20  2:44       ` [PATCH 0/3 v2] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Kuninori Morimoto
  1 sibling, 1 reply; 16+ messages in thread
From: Paul Mundt @ 2011-01-13 22:28 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Kuninori Morimoto, Liam Girdwood

On Wed, Jan 12, 2011 at 02:53:02PM +0000, Mark Brown wrote:
> On Wed, Jan 12, 2011 at 03:24:45PM +0900, Kuninori Morimoto wrote:
> > This patch add snd_soc_dai_ops :: set_fmt to FSI driver and
> > select master/slave clock mode by snd_soc_dai_set_fmt on
> > fsi-xxx.c instead of platform infomation code.
> > This patch remove fsi_is_master function which is no longer needed.
> > 
> > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> > ---
> >  arch/arm/mach-shmobile/board-ap4evb.c   |    2 -
> >  arch/arm/mach-shmobile/board-mackerel.c |    2 -
> 
> This doesn't apply, board-mackarel is only going into mainline during
> the merge window so it's not yet merged into the ASoC tree.  Please
> resubmit after the merge window is over, including Liam's ack if there
> are no code changes when you do so.

Though not strictly necessary, since these patches have their hands all
over the place, you can add my Acked-by for the relevant ARM and SH bits
as well:

Acked-by: Paul Mundt <lethal@linux-sh.org>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 0/3 v2] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs
  2011-01-13 22:28     ` Paul Mundt
@ 2011-01-20  2:44       ` Kuninori Morimoto
  2011-01-20  2:45         ` [PATCH 1/3 v2] ASoC: ak4642: add SND_SOC_DAIFMT_FORMAT support Kuninori Morimoto
                           ` (6 more replies)
  0 siblings, 7 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2011-01-20  2:44 UTC (permalink / raw)
  To: Mark Brown, Linux-ALSA, Liam Girdwood


Dear Mark, Liam, Paul

These patches are v2 patches of fsi-ak4642, fsi-da7210 to select sound format.

Kuninori Morimoto (3):
      ASoC: ak4642: add SND_SOC_DAIFMT_FORMAT support
      ASoC: sh: fsi: Add fsi_get_priv_frm_dai function
      ASoC: sh: fsi: Add snd_soc_dai_set_fmt support

I sent these patches and got Acked-by from Liam, Paul.
But it were not applied to Mark's branch
because these depend on merge window.

These v2 patches are same as v1.
But based on current Mark's for-2.6.39 branch

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 1/3 v2] ASoC: ak4642: add SND_SOC_DAIFMT_FORMAT support
  2011-01-20  2:44       ` [PATCH 0/3 v2] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Kuninori Morimoto
@ 2011-01-20  2:45         ` Kuninori Morimoto
  2011-01-20  2:45         ` Kuninori Morimoto
                           ` (5 subsequent siblings)
  6 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2011-01-20  2:45 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Liam Girdwood

This patch support LEFT_J / I2S only for now

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
---
v1 -> v2

- based on current Mark's for-2.6.39 branch
- add Acked-by from Liam

 sound/soc/codecs/ak4642.c |   24 ++++++++++++++++++++++++
 sound/soc/sh/fsi-ak4642.c |    3 ++-
 2 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/sound/soc/codecs/ak4642.c b/sound/soc/codecs/ak4642.c
index f00eba3..4be0570 100644
--- a/sound/soc/codecs/ak4642.c
+++ b/sound/soc/codecs/ak4642.c
@@ -116,6 +116,12 @@
 #define BCKO_MASK	(1 << 3)
 #define BCKO_64		BCKO_MASK
 
+#define DIF_MASK	(3 << 0)
+#define DSP		(0 << 0)
+#define RIGHT_J		(1 << 0)
+#define LEFT_J		(2 << 0)
+#define I2S		(3 << 0)
+
 /* MD_CTL2 */
 #define FS0		(1 << 0)
 #define FS1		(1 << 1)
@@ -354,6 +360,24 @@ static int ak4642_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 	snd_soc_update_bits(codec, PW_MGMT2, MS, data);
 	snd_soc_update_bits(codec, MD_CTL1, BCKO_MASK, bcko);
 
+	/* format type */
+	data = 0;
+	switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
+	case SND_SOC_DAIFMT_LEFT_J:
+		data = LEFT_J;
+		break;
+	case SND_SOC_DAIFMT_I2S:
+		data = I2S;
+		break;
+	/* FIXME
+	 * Please add RIGHT_J / DSP support here
+	 */
+	default:
+		return -EINVAL;
+		break;
+	}
+	snd_soc_update_bits(codec, MD_CTL1, DIF_MASK, data);
+
 	return 0;
 }
 
diff --git a/sound/soc/sh/fsi-ak4642.c b/sound/soc/sh/fsi-ak4642.c
index 56cd342..a722a4c 100644
--- a/sound/soc/sh/fsi-ak4642.c
+++ b/sound/soc/sh/fsi-ak4642.c
@@ -26,7 +26,8 @@ static int fsi_ak4642_dai_init(struct snd_soc_pcm_runtime *rtd)
 	struct snd_soc_dai *dai = rtd->codec_dai;
 	int ret;
 
-	ret = snd_soc_dai_set_fmt(dai, SND_SOC_DAIFMT_CBM_CFM);
+	ret = snd_soc_dai_set_fmt(dai, SND_SOC_DAIFMT_LEFT_J |
+				       SND_SOC_DAIFMT_CBM_CFM);
 	if (ret < 0)
 		return ret;
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 1/3 v2] ASoC: ak4642: add SND_SOC_DAIFMT_FORMAT support
  2011-01-20  2:44       ` [PATCH 0/3 v2] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Kuninori Morimoto
  2011-01-20  2:45         ` [PATCH 1/3 v2] ASoC: ak4642: add SND_SOC_DAIFMT_FORMAT support Kuninori Morimoto
@ 2011-01-20  2:45         ` Kuninori Morimoto
  2011-01-20  2:45         ` [PATCH 2/3 v2] ASoC: sh: fsi: Add fsi_get_priv_frm_dai function Kuninori Morimoto
                           ` (4 subsequent siblings)
  6 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2011-01-20  2:45 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Liam Girdwood

This patch support LEFT_J / I2S only for now

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
---
v1 -> v2

- based on current Mark's for-2.6.39 branch
- add Acked-by from Liam

 sound/soc/codecs/ak4642.c |   24 ++++++++++++++++++++++++
 sound/soc/sh/fsi-ak4642.c |    3 ++-
 2 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/sound/soc/codecs/ak4642.c b/sound/soc/codecs/ak4642.c
index f00eba3..4be0570 100644
--- a/sound/soc/codecs/ak4642.c
+++ b/sound/soc/codecs/ak4642.c
@@ -116,6 +116,12 @@
 #define BCKO_MASK	(1 << 3)
 #define BCKO_64		BCKO_MASK
 
+#define DIF_MASK	(3 << 0)
+#define DSP		(0 << 0)
+#define RIGHT_J		(1 << 0)
+#define LEFT_J		(2 << 0)
+#define I2S		(3 << 0)
+
 /* MD_CTL2 */
 #define FS0		(1 << 0)
 #define FS1		(1 << 1)
@@ -354,6 +360,24 @@ static int ak4642_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 	snd_soc_update_bits(codec, PW_MGMT2, MS, data);
 	snd_soc_update_bits(codec, MD_CTL1, BCKO_MASK, bcko);
 
+	/* format type */
+	data = 0;
+	switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
+	case SND_SOC_DAIFMT_LEFT_J:
+		data = LEFT_J;
+		break;
+	case SND_SOC_DAIFMT_I2S:
+		data = I2S;
+		break;
+	/* FIXME
+	 * Please add RIGHT_J / DSP support here
+	 */
+	default:
+		return -EINVAL;
+		break;
+	}
+	snd_soc_update_bits(codec, MD_CTL1, DIF_MASK, data);
+
 	return 0;
 }
 
diff --git a/sound/soc/sh/fsi-ak4642.c b/sound/soc/sh/fsi-ak4642.c
index 56cd342..a722a4c 100644
--- a/sound/soc/sh/fsi-ak4642.c
+++ b/sound/soc/sh/fsi-ak4642.c
@@ -26,7 +26,8 @@ static int fsi_ak4642_dai_init(struct snd_soc_pcm_runtime *rtd)
 	struct snd_soc_dai *dai = rtd->codec_dai;
 	int ret;
 
-	ret = snd_soc_dai_set_fmt(dai, SND_SOC_DAIFMT_CBM_CFM);
+	ret = snd_soc_dai_set_fmt(dai, SND_SOC_DAIFMT_LEFT_J |
+				       SND_SOC_DAIFMT_CBM_CFM);
 	if (ret < 0)
 		return ret;
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 2/3 v2] ASoC: sh: fsi: Add fsi_get_priv_frm_dai function
  2011-01-20  2:44       ` [PATCH 0/3 v2] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Kuninori Morimoto
  2011-01-20  2:45         ` [PATCH 1/3 v2] ASoC: ak4642: add SND_SOC_DAIFMT_FORMAT support Kuninori Morimoto
  2011-01-20  2:45         ` Kuninori Morimoto
@ 2011-01-20  2:45         ` Kuninori Morimoto
  2011-01-20  2:45         ` Kuninori Morimoto
                           ` (3 subsequent siblings)
  6 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2011-01-20  2:45 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Liam Girdwood

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
---
v1 -> v2

- based on current Mark's for-2.6.39 branch
- add Acked-by from Liam

 sound/soc/sh/fsi.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/sound/soc/sh/fsi.c b/sound/soc/sh/fsi.c
index 2b06402..1d0a16e 100644
--- a/sound/soc/sh/fsi.c
+++ b/sound/soc/sh/fsi.c
@@ -252,9 +252,8 @@ static struct snd_soc_dai *fsi_get_dai(struct snd_pcm_substream *substream)
 	return  rtd->cpu_dai;
 }
 
-static struct fsi_priv *fsi_get_priv(struct snd_pcm_substream *substream)
+static struct fsi_priv *fsi_get_priv_frm_dai(struct snd_soc_dai *dai)
 {
-	struct snd_soc_dai *dai = fsi_get_dai(substream);
 	struct fsi_master *master = snd_soc_dai_get_drvdata(dai);
 
 	if (dai->id == 0)
@@ -263,6 +262,11 @@ static struct fsi_priv *fsi_get_priv(struct snd_pcm_substream *substream)
 		return &master->fsib;
 }
 
+static struct fsi_priv *fsi_get_priv(struct snd_pcm_substream *substream)
+{
+	return fsi_get_priv_frm_dai(fsi_get_dai(substream));
+}
+
 static u32 fsi_get_info_flags(struct fsi_priv *fsi)
 {
 	int is_porta = fsi_is_port_a(fsi);
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 2/3 v2] ASoC: sh: fsi: Add fsi_get_priv_frm_dai function
  2011-01-20  2:44       ` [PATCH 0/3 v2] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Kuninori Morimoto
                           ` (2 preceding siblings ...)
  2011-01-20  2:45         ` [PATCH 2/3 v2] ASoC: sh: fsi: Add fsi_get_priv_frm_dai function Kuninori Morimoto
@ 2011-01-20  2:45         ` Kuninori Morimoto
  2011-01-20  2:46         ` [PATCH 3/3 v2] ASoC: sh: fsi: Add snd_soc_dai_set_fmt support Kuninori Morimoto
                           ` (2 subsequent siblings)
  6 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2011-01-20  2:45 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Liam Girdwood

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
---
v1 -> v2

- based on current Mark's for-2.6.39 branch
- add Acked-by from Liam

 sound/soc/sh/fsi.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/sound/soc/sh/fsi.c b/sound/soc/sh/fsi.c
index 2b06402..1d0a16e 100644
--- a/sound/soc/sh/fsi.c
+++ b/sound/soc/sh/fsi.c
@@ -252,9 +252,8 @@ static struct snd_soc_dai *fsi_get_dai(struct snd_pcm_substream *substream)
 	return  rtd->cpu_dai;
 }
 
-static struct fsi_priv *fsi_get_priv(struct snd_pcm_substream *substream)
+static struct fsi_priv *fsi_get_priv_frm_dai(struct snd_soc_dai *dai)
 {
-	struct snd_soc_dai *dai = fsi_get_dai(substream);
 	struct fsi_master *master = snd_soc_dai_get_drvdata(dai);
 
 	if (dai->id == 0)
@@ -263,6 +262,11 @@ static struct fsi_priv *fsi_get_priv(struct snd_pcm_substream *substream)
 		return &master->fsib;
 }
 
+static struct fsi_priv *fsi_get_priv(struct snd_pcm_substream *substream)
+{
+	return fsi_get_priv_frm_dai(fsi_get_dai(substream));
+}
+
 static u32 fsi_get_info_flags(struct fsi_priv *fsi)
 {
 	int is_porta = fsi_is_port_a(fsi);
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 3/3 v2] ASoC: sh: fsi: Add snd_soc_dai_set_fmt support
  2011-01-20  2:44       ` [PATCH 0/3 v2] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Kuninori Morimoto
                           ` (3 preceding siblings ...)
  2011-01-20  2:45         ` Kuninori Morimoto
@ 2011-01-20  2:46         ` Kuninori Morimoto
  2011-01-20  2:46         ` Kuninori Morimoto
  2011-01-21 19:02         ` [PATCH 0/3 v2] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Mark Brown
  6 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2011-01-20  2:46 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Liam Girdwood

This patch add snd_soc_dai_ops :: set_fmt to FSI driver and
select master/slave clock mode by snd_soc_dai_set_fmt on
fsi-xxx.c instead of platform infomation code.
This patch remove fsi_is_master function which is no longer needed.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Acked-by: Paul Mundt <lethal@linux-sh.org>
---
v1 -> v2

- based on current Mark's for-2.6.39 branch
- add Acked-by from Liam, Paul

 arch/arm/mach-shmobile/board-ag5evm.c   |    4 +--
 arch/arm/mach-shmobile/board-ap4evb.c   |    2 -
 arch/arm/mach-shmobile/board-mackerel.c |    2 -
 arch/sh/boards/mach-ecovec24/setup.c    |    2 -
 arch/sh/boards/mach-se/7724/setup.c     |    2 -
 include/sound/sh_fsi.h                  |    8 +----
 sound/soc/sh/fsi-ak4642.c               |   13 +++++--
 sound/soc/sh/fsi-da7210.c               |   12 ++++++-
 sound/soc/sh/fsi-hdmi.c                 |   11 ++++++
 sound/soc/sh/fsi.c                      |   54 +++++++++++++++++-------------
 10 files changed, 63 insertions(+), 47 deletions(-)

diff --git a/arch/arm/mach-shmobile/board-ag5evm.c b/arch/arm/mach-shmobile/board-ag5evm.c
index c18a740..9ee55e0 100644
--- a/arch/arm/mach-shmobile/board-ag5evm.c
+++ b/arch/arm/mach-shmobile/board-ag5evm.c
@@ -119,9 +119,7 @@ static struct platform_device keysc_device = {
 
 /* FSI A */
 static struct sh_fsi_platform_info fsi_info = {
-	.porta_flags = SH_FSI_OUT_SLAVE_MODE	|
-		       SH_FSI_IN_SLAVE_MODE	|
-		       SH_FSI_OFMT(I2S)		|
+	.porta_flags = SH_FSI_OFMT(I2S)		|
 		       SH_FSI_IFMT(I2S),
 };
 
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c
index 3cf0951..d503a74 100644
--- a/arch/arm/mach-shmobile/board-ap4evb.c
+++ b/arch/arm/mach-shmobile/board-ap4evb.c
@@ -674,8 +674,6 @@ static int fsi_set_rate(struct device *dev, int is_porta, int rate, int enable)
 
 static struct sh_fsi_platform_info fsi_info = {
 	.porta_flags = SH_FSI_BRS_INV |
-		       SH_FSI_OUT_SLAVE_MODE |
-		       SH_FSI_IN_SLAVE_MODE |
 		       SH_FSI_OFMT(PCM) |
 		       SH_FSI_IFMT(PCM),
 
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c
index 7b15d21..425962d 100644
--- a/arch/arm/mach-shmobile/board-mackerel.c
+++ b/arch/arm/mach-shmobile/board-mackerel.c
@@ -611,8 +611,6 @@ fsi_set_rate_end:
 
 static struct sh_fsi_platform_info fsi_info = {
 	.porta_flags =	SH_FSI_BRS_INV		|
-			SH_FSI_OUT_SLAVE_MODE	|
-			SH_FSI_IN_SLAVE_MODE	|
 			SH_FSI_OFMT(PCM)	|
 			SH_FSI_IFMT(PCM),
 
diff --git a/arch/sh/boards/mach-ecovec24/setup.c b/arch/sh/boards/mach-ecovec24/setup.c
index 33b6629..037416f 100644
--- a/arch/sh/boards/mach-ecovec24/setup.c
+++ b/arch/sh/boards/mach-ecovec24/setup.c
@@ -724,8 +724,6 @@ static struct platform_device camera_devices[] = {
 /* FSI */
 static struct sh_fsi_platform_info fsi_info = {
 	.portb_flags = SH_FSI_BRS_INV |
-		       SH_FSI_OUT_SLAVE_MODE |
-		       SH_FSI_IN_SLAVE_MODE |
 		       SH_FSI_OFMT(I2S) |
 		       SH_FSI_IFMT(I2S),
 };
diff --git a/arch/sh/boards/mach-se/7724/setup.c b/arch/sh/boards/mach-se/7724/setup.c
index 5276793..b4aef05 100644
--- a/arch/sh/boards/mach-se/7724/setup.c
+++ b/arch/sh/boards/mach-se/7724/setup.c
@@ -287,8 +287,6 @@ static struct platform_device ceu1_device = {
 /* change J20, J21, J22 pin to 1-2 connection to use slave mode */
 static struct sh_fsi_platform_info fsi_info = {
 	.porta_flags = SH_FSI_BRS_INV |
-		       SH_FSI_OUT_SLAVE_MODE |
-		       SH_FSI_IN_SLAVE_MODE |
 		       SH_FSI_OFMT(PCM) |
 		       SH_FSI_IFMT(PCM),
 };
diff --git a/include/sound/sh_fsi.h b/include/sound/sh_fsi.h
index d798941..18e4327 100644
--- a/include/sound/sh_fsi.h
+++ b/include/sound/sh_fsi.h
@@ -17,12 +17,11 @@
 
 /* flags format
 
- * 0xABCDEEFF
+ * 0xABC0EEFF
  *
  * A:  channel size for TDM (input)
  * B:  channel size for TDM (ooutput)
  * C:  inversion
- * D:  mode
  * E:  input format
  * F:  output format
  */
@@ -46,11 +45,6 @@
 #define SH_FSI_LRS_INV		(1 << 22)
 #define SH_FSI_BRS_INV		(1 << 23)
 
-/* mode */
-#define SH_FSI_MODE_MASK	0x000F0000
-#define SH_FSI_IN_SLAVE_MODE	(1 << 16)  /* default master mode */
-#define SH_FSI_OUT_SLAVE_MODE	(1 << 17)  /* default master mode */
-
 /* DI format */
 #define SH_FSI_FMT_MASK		0x000000FF
 #define SH_FSI_IFMT(x)		(((SH_FSI_FMT_ ## x) & SH_FSI_FMT_MASK) << 8)
diff --git a/sound/soc/sh/fsi-ak4642.c b/sound/soc/sh/fsi-ak4642.c
index a722a4c..ce058c7 100644
--- a/sound/soc/sh/fsi-ak4642.c
+++ b/sound/soc/sh/fsi-ak4642.c
@@ -23,15 +23,20 @@ struct fsi_ak4642_data {
 
 static int fsi_ak4642_dai_init(struct snd_soc_pcm_runtime *rtd)
 {
-	struct snd_soc_dai *dai = rtd->codec_dai;
+	struct snd_soc_dai *codec = rtd->codec_dai;
+	struct snd_soc_dai *cpu = rtd->cpu_dai;
 	int ret;
 
-	ret = snd_soc_dai_set_fmt(dai, SND_SOC_DAIFMT_LEFT_J |
-				       SND_SOC_DAIFMT_CBM_CFM);
+	ret = snd_soc_dai_set_fmt(codec, SND_SOC_DAIFMT_LEFT_J |
+					 SND_SOC_DAIFMT_CBM_CFM);
 	if (ret < 0)
 		return ret;
 
-	ret = snd_soc_dai_set_sysclk(dai, 0, 11289600, 0);
+	ret = snd_soc_dai_set_sysclk(codec, 0, 11289600, 0);
+	if (ret < 0)
+		return ret;
+
+	ret = snd_soc_dai_set_fmt(cpu, SND_SOC_DAIFMT_CBS_CFS);
 
 	return ret;
 }
diff --git a/sound/soc/sh/fsi-da7210.c b/sound/soc/sh/fsi-da7210.c
index e8df9da..9b24ed4 100644
--- a/sound/soc/sh/fsi-da7210.c
+++ b/sound/soc/sh/fsi-da7210.c
@@ -15,11 +15,19 @@
 
 static int fsi_da7210_init(struct snd_soc_pcm_runtime *rtd)
 {
-	struct snd_soc_dai *dai = rtd->codec_dai;
+	struct snd_soc_dai *codec = rtd->codec_dai;
+	struct snd_soc_dai *cpu = rtd->cpu_dai;
+	int ret;
 
-	return snd_soc_dai_set_fmt(dai,
+	ret = snd_soc_dai_set_fmt(codec,
 				   SND_SOC_DAIFMT_I2S |
 				   SND_SOC_DAIFMT_CBM_CFM);
+	if (ret < 0)
+		return ret;
+
+	ret = snd_soc_dai_set_fmt(cpu, SND_SOC_DAIFMT_CBS_CFS);
+
+	return ret;
 }
 
 static struct snd_soc_dai_link fsi_da7210_dai = {
diff --git a/sound/soc/sh/fsi-hdmi.c b/sound/soc/sh/fsi-hdmi.c
index a52dd8e..96d8ce3 100644
--- a/sound/soc/sh/fsi-hdmi.c
+++ b/sound/soc/sh/fsi-hdmi.c
@@ -12,6 +12,16 @@
 #include <linux/platform_device.h>
 #include <sound/sh_fsi.h>
 
+static int fsi_hdmi_dai_init(struct snd_soc_pcm_runtime *rtd)
+{
+	struct snd_soc_dai *cpu = rtd->cpu_dai;
+	int ret;
+
+	ret = snd_soc_dai_set_fmt(cpu, SND_SOC_DAIFMT_CBM_CFM);
+
+	return ret;
+}
+
 static struct snd_soc_dai_link fsi_dai_link = {
 	.name		= "HDMI",
 	.stream_name	= "HDMI",
@@ -19,6 +29,7 @@ static struct snd_soc_dai_link fsi_dai_link = {
 	.codec_dai_name	= "sh_mobile_hdmi-hifi",
 	.platform_name	= "sh_fsi2",
 	.codec_name	= "sh-mobile-hdmi",
+	.init		= fsi_hdmi_dai_init,
 };
 
 static struct snd_soc_card fsi_soc_card  = {
diff --git a/sound/soc/sh/fsi.c b/sound/soc/sh/fsi.c
index 1d0a16e..5f39f36 100644
--- a/sound/soc/sh/fsi.c
+++ b/sound/soc/sh/fsi.c
@@ -78,6 +78,8 @@
 /* CKG1 */
 #define ACKMD_MASK	0x00007000
 #define BPFMD_MASK	0x00000700
+#define DIMD		(1 << 4)
+#define DOMD		(1 << 0)
 
 /* A/B MST_CTLR */
 #define BP	(1 << 4)	/* Fix the signal of Biphase output */
@@ -292,21 +294,6 @@ static inline struct fsi_stream *fsi_get_stream(struct fsi_priv *fsi,
 	return is_play ? &fsi->playback : &fsi->capture;
 }
 
-static int fsi_is_master_mode(struct fsi_priv *fsi, int is_play)
-{
-	u32 mode;
-	u32 flags = fsi_get_info_flags(fsi);
-
-	mode = is_play ? SH_FSI_OUT_SLAVE_MODE : SH_FSI_IN_SLAVE_MODE;
-
-	/* return
-	 * 1 : master mode
-	 * 0 : slave mode
-	 */
-
-	return (mode & flags) != mode;
-}
-
 static u32 fsi_get_port_shift(struct fsi_priv *fsi, int is_play)
 {
 	int is_porta = fsi_is_port_a(fsi);
@@ -764,19 +751,11 @@ static int fsi_dai_startup(struct snd_pcm_substream *substream,
 	u32 fmt;
 	u32 data;
 	int is_play = fsi_is_play(substream);
-	int is_master;
 
 	io = fsi_get_stream(fsi, is_play);
 
 	pm_runtime_get_sync(dai->dev);
 
-	/* CKG1 */
-	data = is_play ? (1 << 0) : (1 << 4);
-	is_master = fsi_is_master_mode(fsi, is_play);
-	if (is_master)
-		fsi_reg_mask_set(fsi, CKG1, data, data);
-	else
-		fsi_reg_mask_set(fsi, CKG1, data, 0);
 
 	/* clock inversion (CKG2) */
 	data = 0;
@@ -893,6 +872,34 @@ static int fsi_dai_trigger(struct snd_pcm_substream *substream, int cmd,
 	return ret;
 }
 
+static int fsi_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
+{
+	struct fsi_priv *fsi = fsi_get_priv_frm_dai(dai);
+	u32 data = 0;
+	int ret;
+
+	pm_runtime_get_sync(dai->dev);
+
+	/* set master/slave audio interface */
+	switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
+	case SND_SOC_DAIFMT_CBM_CFM:
+		data = DIMD | DOMD;
+		break;
+	case SND_SOC_DAIFMT_CBS_CFS:
+		break;
+	default:
+		ret = -EINVAL;
+		goto set_fmt_exit;
+	}
+	fsi_reg_mask_set(fsi, CKG1, (DIMD | DOMD), data);
+	ret = 0;
+
+set_fmt_exit:
+	pm_runtime_put_sync(dai->dev);
+
+	return ret;
+}
+
 static int fsi_dai_hw_params(struct snd_pcm_substream *substream,
 			     struct snd_pcm_hw_params *params,
 			     struct snd_soc_dai *dai)
@@ -979,6 +986,7 @@ static struct snd_soc_dai_ops fsi_dai_ops = {
 	.startup	= fsi_dai_startup,
 	.shutdown	= fsi_dai_shutdown,
 	.trigger	= fsi_dai_trigger,
+	.set_fmt	= fsi_dai_set_fmt,
 	.hw_params	= fsi_dai_hw_params,
 };
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 3/3 v2] ASoC: sh: fsi: Add snd_soc_dai_set_fmt support
  2011-01-20  2:44       ` [PATCH 0/3 v2] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Kuninori Morimoto
                           ` (4 preceding siblings ...)
  2011-01-20  2:46         ` [PATCH 3/3 v2] ASoC: sh: fsi: Add snd_soc_dai_set_fmt support Kuninori Morimoto
@ 2011-01-20  2:46         ` Kuninori Morimoto
  2011-01-21 19:02         ` [PATCH 0/3 v2] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Mark Brown
  6 siblings, 0 replies; 16+ messages in thread
From: Kuninori Morimoto @ 2011-01-20  2:46 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA, Liam Girdwood

This patch add snd_soc_dai_ops :: set_fmt to FSI driver and
select master/slave clock mode by snd_soc_dai_set_fmt on
fsi-xxx.c instead of platform infomation code.
This patch remove fsi_is_master function which is no longer needed.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Acked-by: Paul Mundt <lethal@linux-sh.org>
---
v1 -> v2

- based on current Mark's for-2.6.39 branch
- add Acked-by from Liam, Paul

 arch/arm/mach-shmobile/board-ag5evm.c   |    4 +--
 arch/arm/mach-shmobile/board-ap4evb.c   |    2 -
 arch/arm/mach-shmobile/board-mackerel.c |    2 -
 arch/sh/boards/mach-ecovec24/setup.c    |    2 -
 arch/sh/boards/mach-se/7724/setup.c     |    2 -
 include/sound/sh_fsi.h                  |    8 +----
 sound/soc/sh/fsi-ak4642.c               |   13 +++++--
 sound/soc/sh/fsi-da7210.c               |   12 ++++++-
 sound/soc/sh/fsi-hdmi.c                 |   11 ++++++
 sound/soc/sh/fsi.c                      |   54 +++++++++++++++++-------------
 10 files changed, 63 insertions(+), 47 deletions(-)

diff --git a/arch/arm/mach-shmobile/board-ag5evm.c b/arch/arm/mach-shmobile/board-ag5evm.c
index c18a740..9ee55e0 100644
--- a/arch/arm/mach-shmobile/board-ag5evm.c
+++ b/arch/arm/mach-shmobile/board-ag5evm.c
@@ -119,9 +119,7 @@ static struct platform_device keysc_device = {
 
 /* FSI A */
 static struct sh_fsi_platform_info fsi_info = {
-	.porta_flags = SH_FSI_OUT_SLAVE_MODE	|
-		       SH_FSI_IN_SLAVE_MODE	|
-		       SH_FSI_OFMT(I2S)		|
+	.porta_flags = SH_FSI_OFMT(I2S)		|
 		       SH_FSI_IFMT(I2S),
 };
 
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c
index 3cf0951..d503a74 100644
--- a/arch/arm/mach-shmobile/board-ap4evb.c
+++ b/arch/arm/mach-shmobile/board-ap4evb.c
@@ -674,8 +674,6 @@ static int fsi_set_rate(struct device *dev, int is_porta, int rate, int enable)
 
 static struct sh_fsi_platform_info fsi_info = {
 	.porta_flags = SH_FSI_BRS_INV |
-		       SH_FSI_OUT_SLAVE_MODE |
-		       SH_FSI_IN_SLAVE_MODE |
 		       SH_FSI_OFMT(PCM) |
 		       SH_FSI_IFMT(PCM),
 
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c
index 7b15d21..425962d 100644
--- a/arch/arm/mach-shmobile/board-mackerel.c
+++ b/arch/arm/mach-shmobile/board-mackerel.c
@@ -611,8 +611,6 @@ fsi_set_rate_end:
 
 static struct sh_fsi_platform_info fsi_info = {
 	.porta_flags =	SH_FSI_BRS_INV		|
-			SH_FSI_OUT_SLAVE_MODE	|
-			SH_FSI_IN_SLAVE_MODE	|
 			SH_FSI_OFMT(PCM)	|
 			SH_FSI_IFMT(PCM),
 
diff --git a/arch/sh/boards/mach-ecovec24/setup.c b/arch/sh/boards/mach-ecovec24/setup.c
index 33b6629..037416f 100644
--- a/arch/sh/boards/mach-ecovec24/setup.c
+++ b/arch/sh/boards/mach-ecovec24/setup.c
@@ -724,8 +724,6 @@ static struct platform_device camera_devices[] = {
 /* FSI */
 static struct sh_fsi_platform_info fsi_info = {
 	.portb_flags = SH_FSI_BRS_INV |
-		       SH_FSI_OUT_SLAVE_MODE |
-		       SH_FSI_IN_SLAVE_MODE |
 		       SH_FSI_OFMT(I2S) |
 		       SH_FSI_IFMT(I2S),
 };
diff --git a/arch/sh/boards/mach-se/7724/setup.c b/arch/sh/boards/mach-se/7724/setup.c
index 5276793..b4aef05 100644
--- a/arch/sh/boards/mach-se/7724/setup.c
+++ b/arch/sh/boards/mach-se/7724/setup.c
@@ -287,8 +287,6 @@ static struct platform_device ceu1_device = {
 /* change J20, J21, J22 pin to 1-2 connection to use slave mode */
 static struct sh_fsi_platform_info fsi_info = {
 	.porta_flags = SH_FSI_BRS_INV |
-		       SH_FSI_OUT_SLAVE_MODE |
-		       SH_FSI_IN_SLAVE_MODE |
 		       SH_FSI_OFMT(PCM) |
 		       SH_FSI_IFMT(PCM),
 };
diff --git a/include/sound/sh_fsi.h b/include/sound/sh_fsi.h
index d798941..18e4327 100644
--- a/include/sound/sh_fsi.h
+++ b/include/sound/sh_fsi.h
@@ -17,12 +17,11 @@
 
 /* flags format
 
- * 0xABCDEEFF
+ * 0xABC0EEFF
  *
  * A:  channel size for TDM (input)
  * B:  channel size for TDM (ooutput)
  * C:  inversion
- * D:  mode
  * E:  input format
  * F:  output format
  */
@@ -46,11 +45,6 @@
 #define SH_FSI_LRS_INV		(1 << 22)
 #define SH_FSI_BRS_INV		(1 << 23)
 
-/* mode */
-#define SH_FSI_MODE_MASK	0x000F0000
-#define SH_FSI_IN_SLAVE_MODE	(1 << 16)  /* default master mode */
-#define SH_FSI_OUT_SLAVE_MODE	(1 << 17)  /* default master mode */
-
 /* DI format */
 #define SH_FSI_FMT_MASK		0x000000FF
 #define SH_FSI_IFMT(x)		(((SH_FSI_FMT_ ## x) & SH_FSI_FMT_MASK) << 8)
diff --git a/sound/soc/sh/fsi-ak4642.c b/sound/soc/sh/fsi-ak4642.c
index a722a4c..ce058c7 100644
--- a/sound/soc/sh/fsi-ak4642.c
+++ b/sound/soc/sh/fsi-ak4642.c
@@ -23,15 +23,20 @@ struct fsi_ak4642_data {
 
 static int fsi_ak4642_dai_init(struct snd_soc_pcm_runtime *rtd)
 {
-	struct snd_soc_dai *dai = rtd->codec_dai;
+	struct snd_soc_dai *codec = rtd->codec_dai;
+	struct snd_soc_dai *cpu = rtd->cpu_dai;
 	int ret;
 
-	ret = snd_soc_dai_set_fmt(dai, SND_SOC_DAIFMT_LEFT_J |
-				       SND_SOC_DAIFMT_CBM_CFM);
+	ret = snd_soc_dai_set_fmt(codec, SND_SOC_DAIFMT_LEFT_J |
+					 SND_SOC_DAIFMT_CBM_CFM);
 	if (ret < 0)
 		return ret;
 
-	ret = snd_soc_dai_set_sysclk(dai, 0, 11289600, 0);
+	ret = snd_soc_dai_set_sysclk(codec, 0, 11289600, 0);
+	if (ret < 0)
+		return ret;
+
+	ret = snd_soc_dai_set_fmt(cpu, SND_SOC_DAIFMT_CBS_CFS);
 
 	return ret;
 }
diff --git a/sound/soc/sh/fsi-da7210.c b/sound/soc/sh/fsi-da7210.c
index e8df9da..9b24ed4 100644
--- a/sound/soc/sh/fsi-da7210.c
+++ b/sound/soc/sh/fsi-da7210.c
@@ -15,11 +15,19 @@
 
 static int fsi_da7210_init(struct snd_soc_pcm_runtime *rtd)
 {
-	struct snd_soc_dai *dai = rtd->codec_dai;
+	struct snd_soc_dai *codec = rtd->codec_dai;
+	struct snd_soc_dai *cpu = rtd->cpu_dai;
+	int ret;
 
-	return snd_soc_dai_set_fmt(dai,
+	ret = snd_soc_dai_set_fmt(codec,
 				   SND_SOC_DAIFMT_I2S |
 				   SND_SOC_DAIFMT_CBM_CFM);
+	if (ret < 0)
+		return ret;
+
+	ret = snd_soc_dai_set_fmt(cpu, SND_SOC_DAIFMT_CBS_CFS);
+
+	return ret;
 }
 
 static struct snd_soc_dai_link fsi_da7210_dai = {
diff --git a/sound/soc/sh/fsi-hdmi.c b/sound/soc/sh/fsi-hdmi.c
index a52dd8e..96d8ce3 100644
--- a/sound/soc/sh/fsi-hdmi.c
+++ b/sound/soc/sh/fsi-hdmi.c
@@ -12,6 +12,16 @@
 #include <linux/platform_device.h>
 #include <sound/sh_fsi.h>
 
+static int fsi_hdmi_dai_init(struct snd_soc_pcm_runtime *rtd)
+{
+	struct snd_soc_dai *cpu = rtd->cpu_dai;
+	int ret;
+
+	ret = snd_soc_dai_set_fmt(cpu, SND_SOC_DAIFMT_CBM_CFM);
+
+	return ret;
+}
+
 static struct snd_soc_dai_link fsi_dai_link = {
 	.name		= "HDMI",
 	.stream_name	= "HDMI",
@@ -19,6 +29,7 @@ static struct snd_soc_dai_link fsi_dai_link = {
 	.codec_dai_name	= "sh_mobile_hdmi-hifi",
 	.platform_name	= "sh_fsi2",
 	.codec_name	= "sh-mobile-hdmi",
+	.init		= fsi_hdmi_dai_init,
 };
 
 static struct snd_soc_card fsi_soc_card  = {
diff --git a/sound/soc/sh/fsi.c b/sound/soc/sh/fsi.c
index 1d0a16e..5f39f36 100644
--- a/sound/soc/sh/fsi.c
+++ b/sound/soc/sh/fsi.c
@@ -78,6 +78,8 @@
 /* CKG1 */
 #define ACKMD_MASK	0x00007000
 #define BPFMD_MASK	0x00000700
+#define DIMD		(1 << 4)
+#define DOMD		(1 << 0)
 
 /* A/B MST_CTLR */
 #define BP	(1 << 4)	/* Fix the signal of Biphase output */
@@ -292,21 +294,6 @@ static inline struct fsi_stream *fsi_get_stream(struct fsi_priv *fsi,
 	return is_play ? &fsi->playback : &fsi->capture;
 }
 
-static int fsi_is_master_mode(struct fsi_priv *fsi, int is_play)
-{
-	u32 mode;
-	u32 flags = fsi_get_info_flags(fsi);
-
-	mode = is_play ? SH_FSI_OUT_SLAVE_MODE : SH_FSI_IN_SLAVE_MODE;
-
-	/* return
-	 * 1 : master mode
-	 * 0 : slave mode
-	 */
-
-	return (mode & flags) != mode;
-}
-
 static u32 fsi_get_port_shift(struct fsi_priv *fsi, int is_play)
 {
 	int is_porta = fsi_is_port_a(fsi);
@@ -764,19 +751,11 @@ static int fsi_dai_startup(struct snd_pcm_substream *substream,
 	u32 fmt;
 	u32 data;
 	int is_play = fsi_is_play(substream);
-	int is_master;
 
 	io = fsi_get_stream(fsi, is_play);
 
 	pm_runtime_get_sync(dai->dev);
 
-	/* CKG1 */
-	data = is_play ? (1 << 0) : (1 << 4);
-	is_master = fsi_is_master_mode(fsi, is_play);
-	if (is_master)
-		fsi_reg_mask_set(fsi, CKG1, data, data);
-	else
-		fsi_reg_mask_set(fsi, CKG1, data, 0);
 
 	/* clock inversion (CKG2) */
 	data = 0;
@@ -893,6 +872,34 @@ static int fsi_dai_trigger(struct snd_pcm_substream *substream, int cmd,
 	return ret;
 }
 
+static int fsi_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
+{
+	struct fsi_priv *fsi = fsi_get_priv_frm_dai(dai);
+	u32 data = 0;
+	int ret;
+
+	pm_runtime_get_sync(dai->dev);
+
+	/* set master/slave audio interface */
+	switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
+	case SND_SOC_DAIFMT_CBM_CFM:
+		data = DIMD | DOMD;
+		break;
+	case SND_SOC_DAIFMT_CBS_CFS:
+		break;
+	default:
+		ret = -EINVAL;
+		goto set_fmt_exit;
+	}
+	fsi_reg_mask_set(fsi, CKG1, (DIMD | DOMD), data);
+	ret = 0;
+
+set_fmt_exit:
+	pm_runtime_put_sync(dai->dev);
+
+	return ret;
+}
+
 static int fsi_dai_hw_params(struct snd_pcm_substream *substream,
 			     struct snd_pcm_hw_params *params,
 			     struct snd_soc_dai *dai)
@@ -979,6 +986,7 @@ static struct snd_soc_dai_ops fsi_dai_ops = {
 	.startup	= fsi_dai_startup,
 	.shutdown	= fsi_dai_shutdown,
 	.trigger	= fsi_dai_trigger,
+	.set_fmt	= fsi_dai_set_fmt,
 	.hw_params	= fsi_dai_hw_params,
 };
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/3 v2] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs
  2011-01-20  2:44       ` [PATCH 0/3 v2] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Kuninori Morimoto
                           ` (5 preceding siblings ...)
  2011-01-20  2:46         ` Kuninori Morimoto
@ 2011-01-21 19:02         ` Mark Brown
  6 siblings, 0 replies; 16+ messages in thread
From: Mark Brown @ 2011-01-21 19:02 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: Linux-ALSA, Liam Girdwood

On Thu, Jan 20, 2011 at 11:44:37AM +0900, Kuninori Morimoto wrote:

> Kuninori Morimoto (3):
>       ASoC: ak4642: add SND_SOC_DAIFMT_FORMAT support
>       ASoC: sh: fsi: Add fsi_get_priv_frm_dai function
>       ASoC: sh: fsi: Add snd_soc_dai_set_fmt support

> I sent these patches and got Acked-by from Liam, Paul.
> But it were not applied to Mark's branch
> because these depend on merge window.

Applied, thanks.

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2011-01-21 19:02 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-12  6:22 [PATCH 0/3] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Kuninori Morimoto
2011-01-12  6:23 ` [PATCH 1/3] ASoC: ak4642: add SND_SOC_DAIFMT_FORMAT support Kuninori Morimoto
2011-01-12  6:23 ` [PATCH 2/3] ASoC: sh: fsi: Add fsi_get_priv_frm_dai function Kuninori Morimoto
2011-01-12  6:24 ` [PATCH 3/3] ASoC: sh: fsi: Add snd_soc_dai_set_fmt support Kuninori Morimoto
2011-01-12 14:53   ` Mark Brown
2011-01-13  0:09     ` Kuninori Morimoto
2011-01-13 22:28     ` Paul Mundt
2011-01-20  2:44       ` [PATCH 0/3 v2] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Kuninori Morimoto
2011-01-20  2:45         ` [PATCH 1/3 v2] ASoC: ak4642: add SND_SOC_DAIFMT_FORMAT support Kuninori Morimoto
2011-01-20  2:45         ` Kuninori Morimoto
2011-01-20  2:45         ` [PATCH 2/3 v2] ASoC: sh: fsi: Add fsi_get_priv_frm_dai function Kuninori Morimoto
2011-01-20  2:45         ` Kuninori Morimoto
2011-01-20  2:46         ` [PATCH 3/3 v2] ASoC: sh: fsi: Add snd_soc_dai_set_fmt support Kuninori Morimoto
2011-01-20  2:46         ` Kuninori Morimoto
2011-01-21 19:02         ` [PATCH 0/3 v2] ASoC: fsi/ak4642/da7210: select sound format from fsi-codecs Mark Brown
2011-01-12 11:12 ` [PATCH 0/3] " Liam Girdwood

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.