Compare commits

5 Commits

Author SHA1 Message Date
Ross Owen
a485ffe41a 'Release: 3.5.1' 2023-06-21 12:21:02 +01:00
Ross Owen
f25a9eeade Merge branch 'develop' 2023-06-21 12:15:33 +01:00
Ross Owen
f7331a1ed3 Merge branch 'develop' 2023-06-21 12:14:02 +01:00
Ross Owen
15036f2bcc 'Release: 3.5.0' 2023-06-15 12:45:03 +01:00
Ross Owen
fa5723947f xpd: Cleaned up whitespace 2023-06-15 12:44:02 +01:00
5 changed files with 14 additions and 12 deletions

View File

@@ -1,8 +1,10 @@
lib_xua lib_xua
####### #######
:Version: 3.5.0 :Version: 3.5.1
:Vendor: XMOS :Vendor: XMOS
:Scope: General Use :Scope: General Use
Summary Summary

View File

@@ -38,12 +38,12 @@ void InitPorts_master(buffered _XUA_CLK_DIR port:32 p_lrclk, buffered _XUA_CLK_D
#endif #endif
unsigned tmp; unsigned tmp;
if(XUA_I2S_N_BITS == 32) if(XUA_I2S_N_BITS == 32)
p_lrclk <: 0 @ tmp; p_lrclk <: 0 @ tmp;
else else
tmp = partout_timestamped(p_lrclk, XUA_I2S_N_BITS, 0); tmp = partout_timestamped(p_lrclk, XUA_I2S_N_BITS, 0);
tmp += 100; tmp += 100;
/* Since BCLK is free-running, setup outputs/inputs at a known point in the future */ /* Since BCLK is free-running, setup outputs/inputs at a known point in the future */
@@ -72,7 +72,7 @@ void InitPorts_master(buffered _XUA_CLK_DIR port:32 p_lrclk, buffered _XUA_CLK_D
for(int i = 0; i < I2S_WIRES_ADC; i++) for(int i = 0; i < I2S_WIRES_ADC; i++)
{ {
asm("setpt res[%0], %1"::"r"(p_i2s_adc[i]),"r"(tmp-1)); asm("setpt res[%0], %1"::"r"(p_i2s_adc[i]),"r"(tmp-1));
if(XUA_I2S_N_BITS != 32) if(XUA_I2S_N_BITS != 32)
set_port_shift_count(p_i2s_adc[i], XUA_I2S_N_BITS); set_port_shift_count(p_i2s_adc[i], XUA_I2S_N_BITS);
} }
@@ -127,13 +127,13 @@ void InitPorts_slave(buffered _XUA_CLK_DIR port:32 p_lrclk, buffered _XUA_CLK_DI
for(int i = 0; i < I2S_WIRES_ADC; i++) for(int i = 0; i < I2S_WIRES_ADC; i++)
{ {
asm("setpt res[%0], %1"::"r"(p_i2s_adc[i]),"r"(tmp-1)); asm("setpt res[%0], %1"::"r"(p_i2s_adc[i]),"r"(tmp-1));
if(XUA_I2S_N_BITS != 32) if(XUA_I2S_N_BITS != 32)
set_port_shift_count(p_i2s_adc[i], XUA_I2S_N_BITS); set_port_shift_count(p_i2s_adc[i], XUA_I2S_N_BITS);
} }
#endif #endif
asm("setpt res[%0], %1"::"r"(p_lrclk),"r"(tmp-1)); asm("setpt res[%0], %1"::"r"(p_lrclk),"r"(tmp-1));
if(XUA_I2S_N_BITS != 32) if(XUA_I2S_N_BITS != 32)
set_port_shift_count(p_lrclk, XUA_I2S_N_BITS); set_port_shift_count(p_lrclk, XUA_I2S_N_BITS);
#endif /* (I2S_CHANS_ADC != 0 || I2S_CHANS_DAC != 0) */ #endif /* (I2S_CHANS_ADC != 0 || I2S_CHANS_DAC != 0) */
} }

View File

@@ -86,7 +86,7 @@ static inline int HandleSampleClock(int frameCount, buffered _XUA_CLK_DIR port:3
unsigned syncError = 0; unsigned syncError = 0;
unsigned lrval = 0; unsigned lrval = 0;
const unsigned lrval_mask = (0xffffffff << (32 - XUA_I2S_N_BITS)); const unsigned lrval_mask = (0xffffffff << (32 - XUA_I2S_N_BITS));
if(XUA_I2S_N_BITS != 32) if(XUA_I2S_N_BITS != 32)
{ {
asm volatile("in %0, res[%1]":"=r"(lrval):"r"(p_lrclk):"memory"); asm volatile("in %0, res[%1]":"=r"(lrval):"r"(p_lrclk):"memory");
@@ -306,7 +306,7 @@ unsigned static AudioHub_MainLoop(chanend ?c_out, chanend ?c_spd_out
// Manual IN instruction since compiler generates an extra setc per IN (bug #15256) // Manual IN instruction since compiler generates an extra setc per IN (bug #15256)
unsigned sample; unsigned sample;
asm volatile("in %0, res[%1]" : "=r"(sample) : "r"(p_i2s_adc[index])); asm volatile("in %0, res[%1]" : "=r"(sample) : "r"(p_i2s_adc[index]));
sample = bitrev(sample); sample = bitrev(sample);
if(XUA_I2S_N_BITS != 32) if(XUA_I2S_N_BITS != 32)
{ {

View File

@@ -394,7 +394,7 @@ __builtin_unreachable();
unsigned l; unsigned l;
unsafe unsafe
{ {
mult = multInPtr[i]; mult = multInPtr[i];
} }
{h, l} = macs(mult, sample, 0, 0); {h, l} = macs(mult, sample, 0, 0);
sample = h << 3; sample = h << 3;
@@ -427,7 +427,7 @@ __builtin_unreachable();
unsigned l; unsigned l;
unsafe unsafe
{ {
mult = multInPtr[i]; mult = multInPtr[i];
} }
{h, l} = macs(mult, sample, 0, 0); {h, l} = macs(mult, sample, 0, 0);
sample = h << 3; sample = h << 3;
@@ -461,7 +461,7 @@ __builtin_unreachable();
unsigned l; unsigned l;
unsafe unsafe
{ {
mult = multInPtr[i]; mult = multInPtr[i];
} }
{h, l} = macs(mult, sample, 0, 0); {h, l} = macs(mult, sample, 0, 0);
sample = h << 3; sample = h << 3;

View File

@@ -145,7 +145,7 @@ static void updateMasterVol(int unitID, chanend ?c_mix_ctl)
outuint(c_mix_ctl, x); outuint(c_mix_ctl, x);
outct(c_mix_ctl, XS1_CT_END); outct(c_mix_ctl, XS1_CT_END);
} }
#else #else
unsafe unsafe
{ {
unsigned int * unsafe multOutPtr = multOut; unsigned int * unsafe multOutPtr = multOut;