Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 270632
b: refs/heads/master
c: b199adf
h: refs/heads/master
v: v3
  • Loading branch information
Peter Ujfalusi committed Sep 22, 2011
1 parent 239e02e commit 7fc6ea1
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 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: d05e2ea8dcf5e30de3d5607abf44883ef17d589d
refs/heads/master: b199adfdff98092b16f67860013fb5263579c476
17 changes: 12 additions & 5 deletions trunk/sound/soc/omap/omap-mcpdm.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,13 @@ static struct omap_mcpdm_link omap_mcpdm_links[] = {
/* downlink */
{
.irq_mask = MCPDM_DN_IRQ_EMPTY | MCPDM_DN_IRQ_FULL,
.threshold = 1,
.threshold = 2,
.format = PDMOUTFORMAT_LJUST,
},
/* uplink */
{
.irq_mask = MCPDM_UP_IRQ_EMPTY | MCPDM_UP_IRQ_FULL,
.threshold = 1,
.threshold = UP_THRES_MAX - 3,
.format = PDMOUTFORMAT_LJUST,
},
};
Expand Down Expand Up @@ -136,12 +136,11 @@ static int omap_mcpdm_dai_hw_params(struct snd_pcm_substream *substream,
{
struct omap_mcpdm_data *mcpdm_priv = snd_soc_dai_get_drvdata(dai);
struct omap_mcpdm_link *mcpdm_links = mcpdm_priv->links;
struct omap_pcm_dma_data *dma_data;
int threshold;
int stream = substream->stream;
int channels, err, link_mask = 0;

snd_soc_dai_set_dma_data(dai, substream,
&omap_mcpdm_dai_dma_params[stream]);

channels = params_channels(params);
switch (channels) {
case 4:
Expand All @@ -164,14 +163,22 @@ static int omap_mcpdm_dai_hw_params(struct snd_pcm_substream *substream,
return -EINVAL;
}

dma_data = &omap_mcpdm_dai_dma_params[stream];
threshold = mcpdm_links[stream].threshold;

if (stream == SNDRV_PCM_STREAM_PLAYBACK) {
mcpdm_links[stream].channels = link_mask << 3;
dma_data->packet_size = (DN_THRES_MAX - threshold) * channels;

err = omap_mcpdm_playback_open(&mcpdm_links[stream]);
} else {
mcpdm_links[stream].channels = link_mask << 0;
dma_data->packet_size = threshold * channels;

err = omap_mcpdm_capture_open(&mcpdm_links[stream]);
}

snd_soc_dai_set_dma_data(dai, substream, dma_data);
return err;
}

Expand Down

0 comments on commit 7fc6ea1

Please sign in to comment.