Laurence Darby wrote:
On Tue, 30 Jun 2015 11:43:52 +0200 Clemens Ladisch wrote:
Laurence Darby wrote:
If this is still going to prevent fixing the popping noise for the oxygen chip, what about writing a single 0x00 sample to it in the driver instead of muting it?
This is likely to work (but the zero sample has to go through DMA).
Ok, I eventually got this to work, with this in oxygen_spdif_hw_free():
memset (runtime->dma_area, 0, runtime->dma_bytes); oxygen_trigger(substream,SNDRV_PCM_TRIGGER_START); msleep (1); oxygen_trigger(substream,SNDRV_PCM_TRIGGER_STOP);
Please note that hw_free can be called without a valid configuration.
Calling oxygen_trigger() might affect other streams.
If I create a proper patch for that (it should probably use snd_pcm_format_set_silence() instead of memset)
All supported sample formats uses plain zeros.
Regards, Clemens