* [PATCH] HAL2: fix LE stream playback
@ 2003-01-10 20:43 Ladislav Michl
0 siblings, 0 replies; only message in thread
From: Ladislav Michl @ 2003-01-10 20:43 UTC (permalink / raw)
To: linux-mips; +Cc: Ralf Baechle, Ulf Karlsson
Hi,
several people complained about it on IRC, so here is a patch against
linux_2_4 branch. Please apply.
Side note: recording still doesn't work. while ago i tried to play with
PBUS configuration and found following (refer to hpc3.ps):
1) writing 0x08248844 (ie. 16bit DMA stream) into pbus_dmacfgs produces
noise at output.
2) writing 0x082c8844 (ie. 16bit with EVEN_HIGH bit set) make playback
two times faster.
3) writing 0x08248844 (ie. 8 bit stream) works as expected. That is
strange, because I still believe that HAL2 is 16bit device. I'd guess
that there are two bugs in driver which neutralizes each other.
In all cases DMA stream wasn't started for recording.
--- XXX/drivers/sound/hal2.c Mon Aug 5 19:40:50 2002
+++ linux/drivers/sound/hal2.c Fri Jan 10 21:06:27 2003
@@ -1,6 +1,6 @@
/*
* Driver for HAL2 sound processors
- * Copyright (c) 2001, 2002 Ladislav Michl <ladis@psi.cz>
+ * Copyright (c) 2001-2003 Ladislav Michl <ladis@linux-mips.org>
*
* Based on Ulf Carlsson's code.
*
@@ -394,7 +394,8 @@
fifobeg = 0; /* playback is first */
fifoend = (sample_size * 4) >> 3; /* doublewords */
pbus->ctrl = HPC3_PDMACTRL_RT | HPC3_PDMACTRL_LD |
- (highwater << 8) | (fifobeg << 16) | (fifoend << 24);
+ (highwater << 8) | (fifobeg << 16) | (fifoend << 24) |
+ (hal2->dac.format & AFMT_S16_LE ? HPC3_PDMACTRL_SEL : 0);
/* We disable everything before we do anything at all */
pbus->pbus->pbdma_ctrl = HPC3_PDMACTRL_LD;
hal2_i_clearbit16(hal2, H2I_DMA_PORT_EN, H2I_DMA_PORT_EN_CODECTX);
@@ -420,7 +421,8 @@
fifobeg = (4 * 4) >> 3; /* record is second */
fifoend = (4 * 4 + sample_size * 4) >> 3; /* doublewords */
pbus->ctrl = HPC3_PDMACTRL_RT | HPC3_PDMACTRL_RCV | HPC3_PDMACTRL_LD |
- (highwater << 8) | (fifobeg << 16) | (fifoend << 24);
+ (highwater << 8) | (fifobeg << 16) | (fifoend << 24) |
+ (hal2->adc.format & AFMT_S16_LE ? HPC3_PDMACTRL_SEL : 0);
pbus->pbus->pbdma_ctrl = HPC3_PDMACTRL_LD;
hal2_i_clearbit16(hal2, H2I_DMA_PORT_EN, H2I_DMA_PORT_EN_CODECR);
hal2_i_clearbit16(hal2, H2I_DMA_DRV, (1 << pbus->pbusnr));
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2003-01-10 20:48 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-01-10 20:43 [PATCH] HAL2: fix LE stream playback Ladislav Michl
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.