summaryrefslogtreecommitdiffstats
path: root/drivers/media/pci/solo6x10/solo6x10-g723.c
diff options
context:
space:
mode:
authorKrzysztof HaƂasa <khalasa@piap.pl>2015-06-08 15:35:05 +0200
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2015-07-06 13:25:46 +0200
commit9d1b1f61a49c66145ebbf2844124987118e65632 (patch)
tree13ea6f579b82482349904afa4188d53b192e6730 /drivers/media/pci/solo6x10/solo6x10-g723.c
parent[media] stk1160: fix sequence handling (diff)
downloadlinux-9d1b1f61a49c66145ebbf2844124987118e65632.tar.xz
linux-9d1b1f61a49c66145ebbf2844124987118e65632.zip
[media] SOLO6x10: Fix G.723 minimum audio period count
The period count is fixed, don't confuse ALSA. Signed-off-by: Krzysztof Ha?asa <khalasa@piap.pl> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/pci/solo6x10/solo6x10-g723.c')
-rw-r--r--drivers/media/pci/solo6x10/solo6x10-g723.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/media/pci/solo6x10/solo6x10-g723.c b/drivers/media/pci/solo6x10/solo6x10-g723.c
index 7ddc76709caa..4a37a1c51c48 100644
--- a/drivers/media/pci/solo6x10/solo6x10-g723.c
+++ b/drivers/media/pci/solo6x10/solo6x10-g723.c
@@ -48,10 +48,8 @@
/* The solo writes to 1k byte pages, 32 pages, in the dma. Each 1k page
* is broken down to 20 * 48 byte regions (one for each channel possible)
* with the rest of the page being dummy data. */
-#define G723_MAX_BUFFER (G723_PERIOD_BYTES * PERIODS_MAX)
+#define PERIODS G723_FDMA_PAGES
#define G723_INTR_ORDER 4 /* 0 - 4 */
-#define PERIODS_MIN (1 << G723_INTR_ORDER)
-#define PERIODS_MAX G723_FDMA_PAGES
struct solo_snd_pcm {
int on;
@@ -130,11 +128,11 @@ static const struct snd_pcm_hardware snd_solo_pcm_hw = {
.rate_max = SAMPLERATE,
.channels_min = 1,
.channels_max = 1,
- .buffer_bytes_max = G723_MAX_BUFFER,
+ .buffer_bytes_max = G723_PERIOD_BYTES * PERIODS,
.period_bytes_min = G723_PERIOD_BYTES,
.period_bytes_max = G723_PERIOD_BYTES,
- .periods_min = PERIODS_MIN,
- .periods_max = PERIODS_MAX,
+ .periods_min = PERIODS,
+ .periods_max = PERIODS,
};
static int snd_solo_pcm_open(struct snd_pcm_substream *ss)
@@ -340,7 +338,8 @@ static int solo_snd_pcm_init(struct solo_dev *solo_dev)
ret = snd_pcm_lib_preallocate_pages_for_all(pcm,
SNDRV_DMA_TYPE_CONTINUOUS,
snd_dma_continuous_data(GFP_KERNEL),
- G723_MAX_BUFFER, G723_MAX_BUFFER);
+ G723_PERIOD_BYTES * PERIODS,
+ G723_PERIOD_BYTES * PERIODS);
if (ret < 0)
return ret;