forked from PAWPAW-Mirror/lib_xua
DSD native mode now outputs mute pattern on invalid freq. Previously only output clks. Helps with pop issue when changing pcm/dsd versions in foobar. (BUG #14769)
This commit is contained in:
@@ -509,22 +509,9 @@ static inline void doI2SClocks(unsigned divide)
|
|||||||
dsdSample_r = bitrev(byterev(dsdSample_r));
|
dsdSample_r = bitrev(byterev(dsdSample_r));
|
||||||
dsdSample_l = bitrev(byterev(dsdSample_l));
|
dsdSample_l = bitrev(byterev(dsdSample_l));
|
||||||
|
|
||||||
|
/* Output DSD data to ports then 32 clocks */
|
||||||
switch (divide)
|
switch (divide)
|
||||||
{
|
{
|
||||||
case 8:
|
|
||||||
/* Output DSD data to ports then 32 clocks */
|
|
||||||
asm volatile("out res[%0], %1"::"r"(p_dsd_dac[0]),"r"(dsdSample_l));
|
|
||||||
asm volatile("out res[%0], %1"::"r"(p_dsd_dac[1]),"r"(dsdSample_r));
|
|
||||||
p_dsd_clk <: 0xF0F0F0F0;
|
|
||||||
p_dsd_clk <: 0xF0F0F0F0;
|
|
||||||
p_dsd_clk <: 0xF0F0F0F0;
|
|
||||||
p_dsd_clk <: 0xF0F0F0F0;
|
|
||||||
p_dsd_clk <: 0xF0F0F0F0;
|
|
||||||
p_dsd_clk <: 0xF0F0F0F0;
|
|
||||||
p_dsd_clk <: 0xF0F0F0F0;
|
|
||||||
p_dsd_clk <: 0xF0F0F0F0;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
asm volatile("out res[%0], %1"::"r"(p_dsd_dac[0]),"r"(dsdSample_l));
|
asm volatile("out res[%0], %1"::"r"(p_dsd_dac[0]),"r"(dsdSample_l));
|
||||||
asm volatile("out res[%0], %1"::"r"(p_dsd_dac[1]),"r"(dsdSample_r));
|
asm volatile("out res[%0], %1"::"r"(p_dsd_dac[1]),"r"(dsdSample_r));
|
||||||
@@ -543,6 +530,8 @@ static inline void doI2SClocks(unsigned divide)
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
/* Do some clocks anyway - this will stop us interrupting decouple too much */
|
/* Do some clocks anyway - this will stop us interrupting decouple too much */
|
||||||
|
asm volatile("out res[%0], %1"::"r"(p_dsd_dac[0]),"r"(dsdSample_l));
|
||||||
|
asm volatile("out res[%0], %1"::"r"(p_dsd_dac[1]),"r"(dsdSample_r));
|
||||||
p_dsd_clk <: 0xF0F0F0F0;
|
p_dsd_clk <: 0xF0F0F0F0;
|
||||||
p_dsd_clk <: 0xF0F0F0F0;
|
p_dsd_clk <: 0xF0F0F0F0;
|
||||||
p_dsd_clk <: 0xF0F0F0F0;
|
p_dsd_clk <: 0xF0F0F0F0;
|
||||||
|
|||||||
Reference in New Issue
Block a user