diff options
Diffstat (limited to 'sound/pci/au88x0/au88x0_core.c')
-rw-r--r-- | sound/pci/au88x0/au88x0_core.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sound/pci/au88x0/au88x0_core.c b/sound/pci/au88x0/au88x0_core.c index 3906f5afe27..23f49f356e0 100644 --- a/sound/pci/au88x0/au88x0_core.c +++ b/sound/pci/au88x0/au88x0_core.c | |||
@@ -1255,8 +1255,8 @@ static int inline vortex_adbdma_getlinearpos(vortex_t * vortex, int adbdma) | |||
1255 | int temp; | 1255 | int temp; |
1256 | 1256 | ||
1257 | temp = hwread(vortex->mmio, VORTEX_ADBDMA_STAT + (adbdma << 2)); | 1257 | temp = hwread(vortex->mmio, VORTEX_ADBDMA_STAT + (adbdma << 2)); |
1258 | temp = (dma->period_virt * dma->period_bytes) + (temp & POS_MASK); | 1258 | temp = (dma->period_virt * dma->period_bytes) + (temp & (dma->period_bytes - 1)); |
1259 | return (temp); | 1259 | return temp; |
1260 | } | 1260 | } |
1261 | 1261 | ||
1262 | static void vortex_adbdma_startfifo(vortex_t * vortex, int adbdma) | 1262 | static void vortex_adbdma_startfifo(vortex_t * vortex, int adbdma) |
@@ -1504,8 +1504,7 @@ static int inline vortex_wtdma_getlinearpos(vortex_t * vortex, int wtdma) | |||
1504 | int temp; | 1504 | int temp; |
1505 | 1505 | ||
1506 | temp = hwread(vortex->mmio, VORTEX_WTDMA_STAT + (wtdma << 2)); | 1506 | temp = hwread(vortex->mmio, VORTEX_WTDMA_STAT + (wtdma << 2)); |
1507 | //temp = (temp & POS_MASK) + (((temp>>WT_SUBBUF_SHIFT) & WT_SUBBUF_MASK)*(dma->cfg0&POS_MASK)); | 1507 | temp = (dma->period_virt * dma->period_bytes) + (temp & (dma->period_bytes - 1)); |
1508 | temp = (temp & POS_MASK) + ((dma->period_virt) * (dma->period_bytes)); | ||
1509 | return temp; | 1508 | return temp; |
1510 | } | 1509 | } |
1511 | 1510 | ||
@@ -2441,7 +2440,8 @@ static irqreturn_t vortex_interrupt(int irq, void *dev_id) | |||
2441 | spin_lock(&vortex->lock); | 2440 | spin_lock(&vortex->lock); |
2442 | for (i = 0; i < NR_ADB; i++) { | 2441 | for (i = 0; i < NR_ADB; i++) { |
2443 | if (vortex->dma_adb[i].fifo_status == FIFO_START) { | 2442 | if (vortex->dma_adb[i].fifo_status == FIFO_START) { |
2444 | if (vortex_adbdma_bufshift(vortex, i)) ; | 2443 | if (!vortex_adbdma_bufshift(vortex, i)) |
2444 | continue; | ||
2445 | spin_unlock(&vortex->lock); | 2445 | spin_unlock(&vortex->lock); |
2446 | snd_pcm_period_elapsed(vortex->dma_adb[i]. | 2446 | snd_pcm_period_elapsed(vortex->dma_adb[i]. |
2447 | substream); | 2447 | substream); |