iPod 3G - small audio fixes, but it still isn't working.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8850 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
ecdadcbaed
commit
a1e2a52e3e
3 changed files with 15 additions and 7 deletions
|
@ -348,9 +348,17 @@ prefetch_abort_handler:
|
|||
b UIE
|
||||
|
||||
fiq_handler:
|
||||
#if CONFIG_CPU == PP5020
|
||||
@ Branch straight to FIQ handler in pcm_playback.c. This also handles the
|
||||
@ the correct return sequence.
|
||||
ldr pc, =fiq
|
||||
#else
|
||||
stmfd sp!, {r0-r3, r12, lr}
|
||||
mov lr, pc
|
||||
ldr pc, =fiq
|
||||
ldmfd sp!, {r0-r3, r12, lr}
|
||||
subs pc, lr, #4
|
||||
#endif
|
||||
|
||||
data_abort_handler:
|
||||
sub r0, lr, #8
|
||||
|
|
|
@ -95,6 +95,8 @@
|
|||
#define GPIO_MASK (1 << GPIO_IRQ)
|
||||
#define SER0_MASK (1 << SER0_IRQ)
|
||||
#define SER1_MASK (1 << SER1_IRQ)
|
||||
#define DMA_OUT_MASK (1 << DMA_OUT_IRQ)
|
||||
|
||||
|
||||
#define TIMER1_VAL (*(volatile unsigned long *)(0xcf001104))
|
||||
#define TIMER1_CFG (*(volatile unsigned long *)(0xcf001100))
|
||||
|
|
|
@ -333,8 +333,6 @@ static int pcm_freq = 0x6; /* 44.1 is default */
|
|||
unsigned short* p IBSS_ATTR;
|
||||
long p_size IBSS_ATTR;
|
||||
|
||||
#define PP5002_DMA_OUT_MASK (1 << DMA_OUT_IRQ)
|
||||
|
||||
static void dma_start(const void *addr, size_t size)
|
||||
{
|
||||
p=(unsigned short*)addr;
|
||||
|
@ -348,8 +346,8 @@ static void dma_start(const void *addr, size_t size)
|
|||
outl(I2S_MASK, 0x60004024);
|
||||
#else
|
||||
/* setup I2S interrupt for FIQ */
|
||||
outl(inl(0xcf00103c) | PP5002_DMA_OUT_MASK, 0xcf00103c);
|
||||
outl(PP5002_DMA_OUT_MASK, 0xcf001034);
|
||||
outl(inl(0xcf00103c) | DMA_OUT_MASK, 0xcf00103c);
|
||||
outl(DMA_OUT_MASK, 0xcf001034);
|
||||
#endif
|
||||
|
||||
/* Clear the FIQ disable bit in cpsr_c */
|
||||
|
@ -370,7 +368,7 @@ static void dma_start(const void *addr, size_t size)
|
|||
#if CONFIG_CPU == PP5020
|
||||
IISCONFIG |= 0x2;
|
||||
#elif CONFIG_CPU == PP5002
|
||||
IISFIFO_CFG &= ~(1<<9);
|
||||
IISFIFO_CFG |= (1<<9);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
@ -483,7 +481,7 @@ void pcm_play_pause(bool play)
|
|||
#if CONFIG_CPU == PP5020
|
||||
IISCONFIG |= 0x2;
|
||||
#elif CONFIG_CPU == PP5002
|
||||
IISFIFO_CFG &= ~(1<<9);
|
||||
IISFIFO_CFG |= (1<<9);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
@ -643,7 +641,7 @@ void fiq(void)
|
|||
#if CONFIG_CPU == PP5020
|
||||
IISCONFIG |= 0x2;
|
||||
#elif CONFIG_CPU == PP5002
|
||||
IISFIFO_CFG &= ~(1<<9);
|
||||
IISFIFO_CFG |= (1<<9);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue