summaryrefslogtreecommitdiffstats
path: root/sound/soc/sh/fsi.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/sh/fsi.c')
-rw-r--r--sound/soc/sh/fsi.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sound/soc/sh/fsi.c b/sound/soc/sh/fsi.c
index 1cbe474046f0..24dbe165eda8 100644
--- a/sound/soc/sh/fsi.c
+++ b/sound/soc/sh/fsi.c
@@ -210,6 +210,8 @@ struct fsi_master {
spinlock_t lock;
};
+static int fsi_stream_is_play(struct fsi_priv *fsi, struct fsi_stream *io);
+
/*
* basic read write function
*/
@@ -366,8 +368,10 @@ static int fsi_sample2frame(struct fsi_priv *fsi, int samples)
return samples / fsi->chan_num;
}
-static int fsi_get_current_fifo_samples(struct fsi_priv *fsi, int is_play)
+static int fsi_get_current_fifo_samples(struct fsi_priv *fsi,
+ struct fsi_stream *io)
{
+ int is_play = fsi_stream_is_play(fsi, io);
u32 status;
int frames;
@@ -747,7 +751,7 @@ static int fsi_data_pop(struct fsi_priv *fsi)
int samples;
struct fsi_stream *io = fsi_stream_get(fsi, is_play);
- sample_residues = fsi_get_current_fifo_samples(fsi, is_play);
+ sample_residues = fsi_get_current_fifo_samples(fsi, io);
sample_space = io->buff_sample_capa - io->buff_sample_pos;
samples = min(sample_residues, sample_space);
@@ -768,7 +772,7 @@ static int fsi_data_push(struct fsi_priv *fsi)
sample_residues = io->buff_sample_capa - io->buff_sample_pos;
sample_space = io->fifo_sample_capa -
- fsi_get_current_fifo_samples(fsi, is_play);
+ fsi_get_current_fifo_samples(fsi, io);
samples = min(sample_residues, sample_space);