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.
*/
void audio(chanend c_in,
#ifdef SPDIF_TX
#if defined(SPDIF_TX) && (SPDIF_TX_TILE != AUDIO_IO_TILE)
chanend c_spdif_tx,
#endif
#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;
}
#ifdef SPDIF
#if defined(SPDIF_TX) && (SPDIF_TX_TILE != AUDIO_IO_TILE)
void SpdifTxWrapper(chanend c_spdif_tx)
{
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);
// TODO could share clock block here..
// NOTE, Assuming SPDIF tile == USB tile here..
asm("ldw %0, dp[p_mclk_in2]":"=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);
set_clock_fall_delay(clk_mst_spd, 7);
start_clock(clk_mst_spd);
#endif
while(1)
{
SpdifTransmit(p_spdif_tx, c_spdif_tx);
}
}
#endif
/* This function is a dummy version of the deliver thread that does not
connect to the codec ports. It is used during DFU reset. */
unsigned static dummy_deliver(chanend c_out)
@@ -897,7 +891,7 @@ unsigned static dummy_deliver(chanend c_out)
#define SAMPLES_PER_PRINT 1
void audio(chanend c_mix_out,
#if SPDIF
#if defined(SPDIF_TX) && (SPDIF_TX_TILE != AUDIO_IO_TILE)
chanend c_spdif_out,
#endif
#if (defined(ADAT_RX) || defined(SPDIF_RX))
@@ -905,9 +899,9 @@ chanend c_dig_rx,
#endif
chanend ?c_config, chanend ?c)
{
//#ifdef SPDIF
// chan c_spdif_out;
//endif
#if defined (SPDIF_TX) && (SPDIF_TX_TILE == AUDIO_IO_TILE)
chan c_spdif_out;
#endif
#ifdef ADAT_TX
chan c_adat_out;
unsigned adatSmuxMode = 0;
@@ -978,11 +972,10 @@ chanend ?c_config, chanend ?c)
#endif
#endif
/* Configure ADAT/SPDIF tx ports */
#ifdef SPDIF
//SpdifTransmitPortConfig(p_spdif_tx, clk_mst_spd, p_mclk_in);
#if defined(SPDIF_TX) && (SPDIF_TX_TILE == AUDIO_IO_TILE)
SpdifTransmitPortConfig(p_spdif_tx, clk_mst_spd, p_mclk_in);
#endif
/* Perform required CODEC/ADC/DAC initialisation */
AudioHwInit(c_config);
@@ -1124,8 +1117,7 @@ chanend ?c_config, chanend ?c)
par
{
#if 0
//#ifdef SPDIF
#if defined(SPDIF_TX) && (SPDIF_TX_TILE == AUDIO_IO_TILE)
{
set_thread_fast_mode_on();
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... */
outct(c_spdif_out, XS1_CT_END);
#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,
#ifdef SPDIF_TX
#if defined(SPDIF_TX) && (SPDIF_TX_TILE != AUDIO_IO_TILE)
chanend c_spdif_tx,
#endif
#ifdef MIXER
@@ -419,21 +419,18 @@ void usb_audio_io(chanend c_aud_in, chanend ?c_adc,
{
thread_speed();
#ifdef MIXER
audio(c_mix_out,
#ifdef SPDIF_TX
#define AUDIO_CHANNEL c_mix_out
#else
#define AUDIO_CHANNEL c_aud_in
#endif
audio(AUDIO_CHANNEL,
#if defined(SPDIF_TX) && (SPDIF_TX_TILE != AUDIO_IO_TILE)
c_spdif_tx,
#endif
#if defined(SPDIF_RX) || defined(ADAT_RX)
c_dig_rx,
#endif
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)
@@ -498,7 +495,7 @@ int main()
#define c_adat_rx null
#endif
#ifdef SPDIF_TX
#if defined(SPDIF_TX) && (SPDIF_TX_TILE != AUDIO_IO_TILE)
chan c_spdif_tx;
#endif
@@ -532,7 +529,7 @@ int main()
);
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
#endif
#ifdef MIXER
@@ -541,7 +538,7 @@ int main()
,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]:
{
thread_speed();