@@ -126,6 +126,8 @@ XAUD_CTRLH = $001c
126
126
XAUD_CTRLL = $001e
127
127
MEMF_REPLAY = (1 <<14 )
128
128
129
+ DMA_ALIGN = (1 <<12 ) ; 4k page size
130
+
129
131
*************************************************************************
130
132
131
133
TRUE EQU 1
@@ -1900,26 +1902,26 @@ AHIsub_Start:
1900
1902
; move.l ahiac_MaxBuffSamples(a2),d0
1901
1903
; add.l d0,d0 ; buffer 2x sample speed
1902
1904
lsl.l #2 ,d0 ; multiply by 4 because output is always 16 bit stereo
1903
- addi.l #15 ,d0 ; need 16byte alignment size
1904
- andi.l #~15 ,d0
1905
+ addi.l #DMA_ALIGN -1 ,d0 ; need aligned size
1906
+ andi.l #~(DMA_ALIGN -1 ) ,d0
1905
1907
move.l d0 ,r_OutputBufferSize(a3 )
1906
- addi.l #15 ,d0 ; need 16byte alignment ptr
1908
+ addi.l #DMA_ALIGN -1 ,d0 ; need aligned ptr
1907
1909
move.l #MEMF_PUBLIC|MEMF_CLEAR|MEMF_REPLAY,d1
1908
1910
CALLLIB _LVOAllocVec
1909
1911
move.l d0 ,r_OutputBuffer(a3 )
1910
1912
bne.b .memory_ok
1911
1913
1912
1914
kprintf "WARNING : unable to allocate REPLAY memory"
1913
1915
move.l r_OutputBufferSize(a3 ),d0
1914
- addi.l #15 ,d0 ; need 16byte alignment ptr
1916
+ addi.l #DMA_ALIGN -1 ,d0 ; need aligned ptr
1915
1917
move.l #MEMF_PUBLIC|MEMF_CLEAR|MEMF_24BITDMA,d1
1916
1918
CALLLIB _LVOAllocVec
1917
1919
move.l d0 ,r_OutputBuffer(a3 )
1918
1920
beq .error_nomem
1919
1921
1920
1922
.memory_ok:
1921
- addi.l #15 ,d0
1922
- andi.l #~15 ,d0
1923
+ addi.l #DMA_ALIGN -1 ,d0
1924
+ andi.l #~(DMA_ALIGN -1 ) ,d0
1923
1925
move.l d0 ,r_OutputBufferAligned(a3 )
1924
1926
1925
1927
0 commit comments