ASoC: fsi: add .init/.quit handler support
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Fri, 3 Feb 2012 08:59:02 +0000 (00:59 -0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 3 Feb 2012 11:55:40 +0000 (11:55 +0000)
This is preparation for DMAEngine support

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 75d0cda4bad4cead65eebde99bcb21adc89aa486..79a0afb78725b1cd03715fec61de4a0cbe4a0f0c 100644 (file)
@@ -201,6 +201,8 @@ struct fsi_priv {
 };
 
 struct fsi_stream_handler {
+       int (*init)(struct fsi_priv *fsi, struct fsi_stream *io);
+       int (*quit)(struct fsi_priv *fsi, struct fsi_stream *io);
        int (*probe)(struct fsi_priv *fsi, struct fsi_stream *io);
        int (*transfer)(struct fsi_priv *fsi, struct fsi_stream *io);
        int (*remove)(struct fsi_priv *fsi, struct fsi_stream *io);
@@ -474,6 +476,7 @@ static void fsi_stream_init(struct fsi_priv *fsi,
        io->sample_width        = samples_to_bytes(runtime, 1);
        io->oerr_num    = -1; /* ignore 1st err */
        io->uerr_num    = -1; /* ignore 1st err */
+       fsi_stream_handler_call(io, init, fsi, io);
        spin_unlock_irqrestore(&master->lock, flags);
 }
 
@@ -491,6 +494,7 @@ static void fsi_stream_quit(struct fsi_priv *fsi, struct fsi_stream *io)
        if (io->uerr_num > 0)
                dev_err(dai->dev, "under_run = %d\n", io->uerr_num);
 
+       fsi_stream_handler_call(io, quit, fsi, io);
        io->substream   = NULL;
        io->buff_sample_capa    = 0;
        io->buff_sample_pos     = 0;