ASoC: fsi: stream mode become independent from platform flags
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Fri, 16 Nov 2012 09:17:30 +0000 (01:17 -0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 20 Nov 2012 06:11:21 +0000 (15:11 +0900)
Current FSI driver is using platform information pointer,
but it is not good design for DT support.
This patch makes stream mode format
independent from platform information pointer.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/sh/fsi.c

index 77747b0753698b589a99080121154fb95f5296cf..22037f1c76fb6a82d6adfc6d680fe94c0bc317fb 100644 (file)
@@ -266,6 +266,7 @@ struct fsi_priv {
        int clk_master:1;
        int clk_cpg:1;
        int spdif:1;
+       int enable_stream:1;
 
        long rate;
 };
@@ -395,6 +396,11 @@ static int fsi_is_spdif(struct fsi_priv *fsi)
        return fsi->spdif;
 }
 
+static int fsi_is_enable_stream(struct fsi_priv *fsi)
+{
+       return fsi->enable_stream;
+}
+
 static int fsi_is_play(struct snd_pcm_substream *substream)
 {
        return substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
@@ -1138,10 +1144,9 @@ static int fsi_set_master_clk(struct device *dev, struct fsi_priv *fsi,
  */
 static void fsi_pio_push16(struct fsi_priv *fsi, u8 *_buf, int samples)
 {
-       u32 enable_stream = fsi_get_info_flags(fsi) & SH_FSI_ENABLE_STREAM_MODE;
        int i;
 
-       if (enable_stream) {
+       if (fsi_is_enable_stream(fsi)) {
                /*
                 * stream mode
                 * see
@@ -1299,8 +1304,6 @@ static void fsi_pio_start_stop(struct fsi_priv *fsi, struct fsi_stream *io,
 
 static int fsi_pio_push_init(struct fsi_priv *fsi, struct fsi_stream *io)
 {
-       u32 enable_stream = fsi_get_info_flags(fsi) & SH_FSI_ENABLE_STREAM_MODE;
-
        /*
         * we can use 16bit stream mode
         * when "playback" and "16bit data"
@@ -1308,7 +1311,7 @@ static int fsi_pio_push_init(struct fsi_priv *fsi, struct fsi_stream *io)
         * see
         *      fsi_pio_push16()
         */
-       if (enable_stream)
+       if (fsi_is_enable_stream(fsi))
                io->bus_option = BUSOP_SET(24, PACKAGE_24BITBUS_BACK) |
                                 BUSOP_SET(16, PACKAGE_16BITBUS_STREAM);
        else
@@ -1988,6 +1991,9 @@ static void fsi_port_info_init(struct fsi_priv *fsi,
 
        if (info->flags & SH_FSI_CLK_CPG)
                fsi->clk_cpg = 1;
+
+       if (info->flags & SH_FSI_ENABLE_STREAM_MODE)
+               fsi->enable_stream = 1;
 }
 
 static void fsi_handler_init(struct fsi_priv *fsi,
This page took 0.046556 seconds and 5 git commands to generate.