Resolving build issues with SPDIF on same core.

This commit is contained in:
Ross Owen
2015-04-09 14:54:06 +01:00
parent 29535560db
commit 31bae905ee
3 changed files with 23 additions and 34 deletions

View File

@@ -15,7 +15,7 @@
* CODEC configuration functions. * CODEC configuration functions.
*/ */
void audio(chanend c_in, void audio(chanend c_in,
#ifdef SPDIF_TX #if defined(SPDIF_TX) && (SPDIF_TX_TILE != AUDIO_IO_TILE)
chanend c_spdif_tx, chanend c_spdif_tx,
#endif #endif
#if(defined(SPDIF_RX) || defined(ADAT_RX)) #if(defined(SPDIF_RX) || defined(ADAT_RX))

View File

@@ -817,33 +817,27 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out,
return 0; return 0;
} }
#ifdef SPDIF #if defined(SPDIF_TX) && (SPDIF_TX_TILE != AUDIO_IO_TILE)
void SpdifTxWrapper(chanend c_spdif_tx) void SpdifTxWrapper(chanend c_spdif_tx)
{ {
unsigned portId; unsigned portId;
#if SPDIF_TX_TILE == AUDIO_IO_TILE
SpdifTransmitPortConfig(p_spdif_tx, clk_mst_spd, p_mclk_in);
#error
#else
//configure_clock_src(clk, p_mclk); //configure_clock_src(clk, p_mclk);
// TODO could share clock block here.. // TODO could share clock block here..
// NOTE, Assuming SPDIF tile == USB tile here..
asm("ldw %0, dp[p_mclk_in2]":"=r"(portId)); asm("ldw %0, dp[p_mclk_in2]":"=r"(portId));
asm("setclk res[%0], %1"::"r"(clk_mst_spd), "r"(portId)); asm("setclk res[%0], %1"::"r"(clk_mst_spd), "r"(portId));
configure_out_port_no_ready(p_spdif_tx, clk_mst_spd, 0); configure_out_port_no_ready(p_spdif_tx, clk_mst_spd, 0);
set_clock_fall_delay(clk_mst_spd, 7); set_clock_fall_delay(clk_mst_spd, 7);
start_clock(clk_mst_spd); start_clock(clk_mst_spd);
#endif
while(1) while(1)
{ {
SpdifTransmit(p_spdif_tx, c_spdif_tx); SpdifTransmit(p_spdif_tx, c_spdif_tx);
} }
} }
#endif #endif
/* This function is a dummy version of the deliver thread that does not /* This function is a dummy version of the deliver thread that does not
connect to the codec ports. It is used during DFU reset. */ connect to the codec ports. It is used during DFU reset. */
unsigned static dummy_deliver(chanend c_out) unsigned static dummy_deliver(chanend c_out)
@@ -897,7 +891,7 @@ unsigned static dummy_deliver(chanend c_out)
#define SAMPLES_PER_PRINT 1 #define SAMPLES_PER_PRINT 1
void audio(chanend c_mix_out, void audio(chanend c_mix_out,
#if SPDIF #if defined(SPDIF_TX) && (SPDIF_TX_TILE != AUDIO_IO_TILE)
chanend c_spdif_out, chanend c_spdif_out,
#endif #endif
#if (defined(ADAT_RX) || defined(SPDIF_RX)) #if (defined(ADAT_RX) || defined(SPDIF_RX))
@@ -905,9 +899,9 @@ chanend c_dig_rx,
#endif #endif
chanend ?c_config, chanend ?c) chanend ?c_config, chanend ?c)
{ {
//#ifdef SPDIF #if defined (SPDIF_TX) && (SPDIF_TX_TILE == AUDIO_IO_TILE)
// chan c_spdif_out; chan c_spdif_out;
//endif #endif
#ifdef ADAT_TX #ifdef ADAT_TX
chan c_adat_out; chan c_adat_out;
unsigned adatSmuxMode = 0; unsigned adatSmuxMode = 0;
@@ -978,11 +972,10 @@ chanend ?c_config, chanend ?c)
#endif #endif
#endif #endif
/* Configure ADAT/SPDIF tx ports */ /* Configure ADAT/SPDIF tx ports */
#ifdef SPDIF #if defined(SPDIF_TX) && (SPDIF_TX_TILE == AUDIO_IO_TILE)
//SpdifTransmitPortConfig(p_spdif_tx, clk_mst_spd, p_mclk_in); SpdifTransmitPortConfig(p_spdif_tx, clk_mst_spd, p_mclk_in);
#endif #endif
/* Perform required CODEC/ADC/DAC initialisation */ /* Perform required CODEC/ADC/DAC initialisation */
AudioHwInit(c_config); AudioHwInit(c_config);
@@ -1124,8 +1117,7 @@ chanend ?c_config, chanend ?c)
par par
{ {
#if 0 #if defined(SPDIF_TX) && (SPDIF_TX_TILE == AUDIO_IO_TILE)
//#ifdef SPDIF
{ {
set_thread_fast_mode_on(); set_thread_fast_mode_on();
SpdifTransmit(p_spdif_tx, c_spdif_out); SpdifTransmit(p_spdif_tx, c_spdif_out);
@@ -1206,7 +1198,7 @@ chanend ?c_config, chanend ?c)
} }
} }
} }
#ifdef SPDIF #ifdef SPDIF_TX
/* Notify S/PDIF thread of impending new freq... */ /* Notify S/PDIF thread of impending new freq... */
outct(c_spdif_out, XS1_CT_END); outct(c_spdif_out, XS1_CT_END);
#endif #endif

View File

@@ -383,7 +383,7 @@ void usb_audio_core(chanend c_mix_out
} }
void usb_audio_io(chanend c_aud_in, chanend ?c_adc, void usb_audio_io(chanend c_aud_in, chanend ?c_adc,
#ifdef SPDIF_TX #if defined(SPDIF_TX) && (SPDIF_TX_TILE != AUDIO_IO_TILE)
chanend c_spdif_tx, chanend c_spdif_tx,
#endif #endif
#ifdef MIXER #ifdef MIXER
@@ -419,21 +419,18 @@ void usb_audio_io(chanend c_aud_in, chanend ?c_adc,
{ {
thread_speed(); thread_speed();
#ifdef MIXER #ifdef MIXER
audio(c_mix_out, #define AUDIO_CHANNEL c_mix_out
#ifdef SPDIF_TX #else
#define AUDIO_CHANNEL c_aud_in
#endif
audio(AUDIO_CHANNEL,
#if defined(SPDIF_TX) && (SPDIF_TX_TILE != AUDIO_IO_TILE)
c_spdif_tx, c_spdif_tx,
#endif #endif
#if defined(SPDIF_RX) || defined(ADAT_RX) #if defined(SPDIF_RX) || defined(ADAT_RX)
c_dig_rx, c_dig_rx,
#endif #endif
c_aud_cfg, c_adc); c_aud_cfg, c_adc);
#else
audio(c_aud_in,
#if defined(SPDIF_RX) || defined(ADAT_RX)
c_dig_rx,
#endif
c_aud_cfg, c_adc);
#endif
} }
#if defined(SPDIF_RX) || defined(ADAT_RX) #if defined(SPDIF_RX) || defined(ADAT_RX)
@@ -498,7 +495,7 @@ int main()
#define c_adat_rx null #define c_adat_rx null
#endif #endif
#ifdef SPDIF_TX #if defined(SPDIF_TX) && (SPDIF_TX_TILE != AUDIO_IO_TILE)
chan c_spdif_tx; chan c_spdif_tx;
#endif #endif
@@ -532,7 +529,7 @@ int main()
); );
on tile[AUDIO_IO_TILE]: usb_audio_io(c_mix_out, c_adc on tile[AUDIO_IO_TILE]: usb_audio_io(c_mix_out, c_adc
#ifdef SPDIF_TX #if defined(SPDIF_TX) && (SPDIF_TX_TILE != AUDIO_IO_TILE)
, c_spdif_tx , c_spdif_tx
#endif #endif
#ifdef MIXER #ifdef MIXER
@@ -541,7 +538,7 @@ int main()
,c_aud_cfg, c_spdif_rx, c_adat_rx, c_clk_ctl, c_clk_int ,c_aud_cfg, c_spdif_rx, c_adat_rx, c_clk_ctl, c_clk_int
); );
#ifdef SPDIF_TX #if defined(SPDIF_TX) && (SPDIF_TX_TILE != AUDIO_IO_TILE)
on tile[SPDIF_TX_TILE]: on tile[SPDIF_TX_TILE]:
{ {
thread_speed(); thread_speed();