Hi all,
Currently I am working an embedded OSS sound driver, my sound IC is controlled by i2c and with ssi channels.
Due to my i2c is really heavy loaded, so I need to disable the dma before access the the sound IC register (e.g. volume control)via i2c.
I use the following two scripts to disable the dma.
dmaflags = claim_dma_lock(); disable_dma(ssi_dma);
And I use these lines to enable the dma.
enable_dma(ssi_dma); release_dma_lock(dmaflags);
However, I find that when I tune the volume very frequently, the sound play faster than normal. I am very sure that it caused by stopping dma, but I don't know how to fix it. Any idea?
Many thanks.
Regards, Jacky