Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 257461
b: refs/heads/master
c: 23ca853
h: refs/heads/master
i:
  257459: cde2d9c
v: v3
  • Loading branch information
Kuninori Morimoto authored and Mark Brown committed May 24, 2011
1 parent 70dc2ec commit 53f7bf0
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 15 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: cda828cafe9df9a8b0687f1b8a17be2cd9cf1950
refs/heads/master: 23ca853392aebdaa56c8138746deb2002e03d827
43 changes: 29 additions & 14 deletions trunk/sound/soc/sh/fsi.c
Original file line number Diff line number Diff line change
Expand Up @@ -689,7 +689,7 @@ static void __fsi_port_clk_ctrl(struct fsi_priv *fsi, int is_play, int enable)
*/
static void fsi_fifo_init(struct fsi_priv *fsi,
int is_play,
struct snd_soc_dai *dai)
struct device *dev)
{
struct fsi_master *master = fsi_get_master(fsi);
struct fsi_stream *io = fsi_get_stream(fsi, is_play);
Expand All @@ -701,7 +701,7 @@ static void fsi_fifo_init(struct fsi_priv *fsi,
shift >>= fsi_get_port_shift(fsi, is_play);
shift &= FIFO_SZ_MASK;
frame_capa = 256 << shift;
dev_dbg(dai->dev, "fifo = %d words\n", frame_capa);
dev_dbg(dev, "fifo = %d words\n", frame_capa);

/*
* The maximum number of sample data varies depending
Expand All @@ -724,7 +724,7 @@ static void fsi_fifo_init(struct fsi_priv *fsi,
*/
for (i = 1; i < fsi->chan_num; i <<= 1)
frame_capa >>= 1;
dev_dbg(dai->dev, "%d channel %d store\n",
dev_dbg(dev, "%d channel %d store\n",
fsi->chan_num, frame_capa);

io->fifo_sample_capa = fsi_frame2sample(fsi, frame_capa);
Expand Down Expand Up @@ -881,15 +881,14 @@ static irqreturn_t fsi_interrupt(int irq, void *data)
* dai ops
*/

static int fsi_dai_startup(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
static int fsi_hw_startup(struct fsi_priv *fsi,
int is_play,
struct device *dev)
{
struct fsi_priv *fsi = fsi_get_priv(substream);
u32 flags = fsi_get_info_flags(fsi);
u32 data = 0;
int is_play = fsi_is_play(substream);

pm_runtime_get_sync(dai->dev);
pm_runtime_get_sync(dev);

/* clock setting */
if (fsi_is_clk_master(fsi))
Expand Down Expand Up @@ -925,22 +924,38 @@ static int fsi_dai_startup(struct snd_pcm_substream *substream,
fsi_irq_clear_status(fsi);

/* fifo init */
fsi_fifo_init(fsi, is_play, dai);
fsi_fifo_init(fsi, is_play, dev);

return 0;
}

static void fsi_hw_shutdown(struct fsi_priv *fsi,
int is_play,
struct device *dev)
{
if (fsi_is_clk_master(fsi))
fsi_set_master_clk(dev, fsi, fsi->rate, 0);

pm_runtime_put_sync(dev);
}

static int fsi_dai_startup(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{
struct fsi_priv *fsi = fsi_get_priv(substream);
int is_play = fsi_is_play(substream);

return fsi_hw_startup(fsi, is_play, dai->dev);
}

static void fsi_dai_shutdown(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{
struct fsi_priv *fsi = fsi_get_priv(substream);
int is_play = fsi_is_play(substream);

if (fsi_is_clk_master(fsi))
fsi_set_master_clk(dai->dev, fsi, fsi->rate, 0);

fsi_hw_shutdown(fsi, is_play, dai->dev);
fsi->rate = 0;

pm_runtime_put_sync(dai->dev);
}

static int fsi_dai_trigger(struct snd_pcm_substream *substream, int cmd,
Expand Down

0 comments on commit 53f7bf0

Please sign in to comment.