diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2007-05-20 20:26:36 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2007-05-20 20:26:36 +0000 |
commit | 8f659ae8d3845b40ff93ebfa3692f7b2302e6c7e (patch) | |
tree | a54381487762ec69bdec99f69dd24b148d3400b9 /firmware/target | |
parent | 731d7a16c3f606d586237fc8b4086ee54a0d0704 (diff) | |
download | rockbox-8f659ae8d3845b40ff93ebfa3692f7b2302e6c7e.tar.gz rockbox-8f659ae8d3845b40ff93ebfa3692f7b2302e6c7e.zip |
Use bitmasks to define which inputs are available. Makes it easier to remove old assumptions of which are available. Inspired by e200 being unique in having FM Radio and Mic but no Line. Doesn't remove the assumption that Mic is available or that one of Mic and/or Line is available just to avoid excessive #ifdef'ing until needed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13448 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target')
-rw-r--r-- | firmware/target/arm/audio-pp.c | 7 | ||||
-rw-r--r-- | firmware/target/arm/system-pp502x.c | 10 | ||||
-rw-r--r-- | firmware/target/coldfire/pcm-coldfire.c | 8 |
3 files changed, 18 insertions, 7 deletions
diff --git a/firmware/target/arm/audio-pp.c b/firmware/target/arm/audio-pp.c index 603bbad5fe..82c5545a3f 100644 --- a/firmware/target/arm/audio-pp.c +++ b/firmware/target/arm/audio-pp.c | |||
@@ -40,7 +40,6 @@ void audio_set_source(int source, unsigned flags) | |||
40 | { | 40 | { |
41 | default: /* playback - no recording */ | 41 | default: /* playback - no recording */ |
42 | source = AUDIO_SRC_PLAYBACK; | 42 | source = AUDIO_SRC_PLAYBACK; |
43 | #ifdef HAVE_RECORDING | ||
44 | case AUDIO_SRC_PLAYBACK: | 43 | case AUDIO_SRC_PLAYBACK: |
45 | if (source != last_source) | 44 | if (source != last_source) |
46 | { | 45 | { |
@@ -48,6 +47,7 @@ void audio_set_source(int source, unsigned flags) | |||
48 | audiohw_set_monitor(false); | 47 | audiohw_set_monitor(false); |
49 | } | 48 | } |
50 | break; | 49 | break; |
50 | #ifdef HAVE_MIC_REC | ||
51 | case AUDIO_SRC_MIC: /* recording only */ | 51 | case AUDIO_SRC_MIC: /* recording only */ |
52 | if (source != last_source) | 52 | if (source != last_source) |
53 | { | 53 | { |
@@ -55,7 +55,8 @@ void audio_set_source(int source, unsigned flags) | |||
55 | audiohw_set_monitor(false); | 55 | audiohw_set_monitor(false); |
56 | } | 56 | } |
57 | break; | 57 | break; |
58 | 58 | #endif | |
59 | #ifdef HAVE_LINEIN_REC | ||
59 | case AUDIO_SRC_LINEIN: /* recording only */ | 60 | case AUDIO_SRC_LINEIN: /* recording only */ |
60 | if (source != last_source) | 61 | if (source != last_source) |
61 | { | 62 | { |
@@ -64,7 +65,7 @@ void audio_set_source(int source, unsigned flags) | |||
64 | } | 65 | } |
65 | break; | 66 | break; |
66 | #endif | 67 | #endif |
67 | #if CONFIG_TUNER | 68 | #ifdef HAVE_FMRADIO_REC |
68 | case AUDIO_SRC_FMRADIO: /* recording and playback */ | 69 | case AUDIO_SRC_FMRADIO: /* recording and playback */ |
69 | if (!recording) | 70 | if (!recording) |
70 | audiohw_set_recvol(0, 0, AUDIO_GAIN_LINEIN); | 71 | audiohw_set_recvol(0, 0, AUDIO_GAIN_LINEIN); |
diff --git a/firmware/target/arm/system-pp502x.c b/firmware/target/arm/system-pp502x.c index 1f2d27a7b7..0148f3d9de 100644 --- a/firmware/target/arm/system-pp502x.c +++ b/firmware/target/arm/system-pp502x.c | |||
@@ -62,6 +62,11 @@ extern void clickwheel_int(void); | |||
62 | void irq(void) | 62 | void irq(void) |
63 | { | 63 | { |
64 | if(CURRENT_CORE == CPU) { | 64 | if(CURRENT_CORE == CPU) { |
65 | if (CPU_HI_INT_STAT) | ||
66 | { | ||
67 | gui_syncsplash(0, "%08X %08X", inl(0x6000414c), CPU_HI_INT_STAT); | ||
68 | } | ||
69 | |||
65 | if (CPU_INT_STAT & TIMER1_MASK) { | 70 | if (CPU_INT_STAT & TIMER1_MASK) { |
66 | #ifdef SANSA_E200 | 71 | #ifdef SANSA_E200 |
67 | if (GPIOF_INT_STAT & 0xff) | 72 | if (GPIOF_INT_STAT & 0xff) |
@@ -239,6 +244,11 @@ void system_init(void) | |||
239 | CPU_INT_CLR = -1; | 244 | CPU_INT_CLR = -1; |
240 | INT_FORCED_CLR = -1; | 245 | INT_FORCED_CLR = -1; |
241 | 246 | ||
247 | outl(0, 0x6000414c); | ||
248 | outl(0, 0x60004144); | ||
249 | |||
250 | // outl(0x80000, 0x6000414c); | ||
251 | |||
242 | GPIOA_INT_EN = 0; | 252 | GPIOA_INT_EN = 0; |
243 | GPIOB_INT_EN = 0; | 253 | GPIOB_INT_EN = 0; |
244 | GPIOC_INT_EN = 0; | 254 | GPIOC_INT_EN = 0; |
diff --git a/firmware/target/coldfire/pcm-coldfire.c b/firmware/target/coldfire/pcm-coldfire.c index b52e5e09b5..dc40dacf0e 100644 --- a/firmware/target/coldfire/pcm-coldfire.c +++ b/firmware/target/coldfire/pcm-coldfire.c | |||
@@ -22,7 +22,7 @@ | |||
22 | #include "logf.h" | 22 | #include "logf.h" |
23 | #include "audio.h" | 23 | #include "audio.h" |
24 | #include "sound.h" | 24 | #include "sound.h" |
25 | #if defined(HAVE_SPDIF_IN) || defined(HAVE_SPDIF_OUT) | 25 | #if defined(HAVE_SPDIF_REC) || defined(HAVE_SPDIF_OUT) |
26 | #include "spdif.h" | 26 | #include "spdif.h" |
27 | #endif | 27 | #endif |
28 | 28 | ||
@@ -276,7 +276,7 @@ void pcm_init(void) | |||
276 | audiohw_set_frequency(freq_ent[FPARM_FSEL]); | 276 | audiohw_set_frequency(freq_ent[FPARM_FSEL]); |
277 | coldfire_set_pllcr_audio_bits(PLLCR_SET_AUDIO_BITS_DEFPARM); | 277 | coldfire_set_pllcr_audio_bits(PLLCR_SET_AUDIO_BITS_DEFPARM); |
278 | 278 | ||
279 | #if defined(HAVE_SPDIF_IN) || defined(HAVE_SPDIF_OUT) | 279 | #if defined(HAVE_SPDIF_REC) || defined(HAVE_SPDIF_OUT) |
280 | spdif_init(); | 280 | spdif_init(); |
281 | #endif | 281 | #endif |
282 | /* Enable interrupt at level 6, priority 0 */ | 282 | /* Enable interrupt at level 6, priority 0 */ |
@@ -365,7 +365,7 @@ void pcm_rec_dma_start(void *addr, size_t size) | |||
365 | _pcm_apply_settings(!is_playback_monitoring()); | 365 | _pcm_apply_settings(!is_playback_monitoring()); |
366 | 366 | ||
367 | /* Start the DMA transfer.. */ | 367 | /* Start the DMA transfer.. */ |
368 | #ifdef HAVE_SPDIF_IN | 368 | #ifdef HAVE_SPDIF_REC |
369 | /* clear: ebu1cnew, valnogood, symbolerr, parityerr */ | 369 | /* clear: ebu1cnew, valnogood, symbolerr, parityerr */ |
370 | INTERRUPTCLEAR = (1 << 25) | (1 << 24) | (1 << 23) | (1 << 22); | 370 | INTERRUPTCLEAR = (1 << 25) | (1 << 24) | (1 << 23) | (1 << 22); |
371 | #endif | 371 | #endif |
@@ -462,7 +462,7 @@ void DMA1(void) | |||
462 | logf(" DCR1: %08x", DCR1); | 462 | logf(" DCR1: %08x", DCR1); |
463 | #endif | 463 | #endif |
464 | } | 464 | } |
465 | #ifdef HAVE_SPDIF_IN | 465 | #ifdef HAVE_SPDIF_REC |
466 | else if (DATAINCONTROL == 0xc038 && | 466 | else if (DATAINCONTROL == 0xc038 && |
467 | (INTERRUPTSTAT & ((1 << 24) | (1 << 23) | (1 << 22)))) | 467 | (INTERRUPTSTAT & ((1 << 24) | (1 << 23) | (1 << 22)))) |
468 | { | 468 | { |