On Thursday 18 February 2010 22:22:29 ext Jarkko Nikula wrote:
I still have two concern:
- port number vs. index difference inside driver code is not enough
It's just confusing if a machine driver and internal API (mcbsp.c) has to use different indexing. See:
omap_mcbsp_st_add_controls(codec, 2); ... *(unsigned int *)omap3beagle_dai.cpu_dai->private_data = 1; /* McBSP2 */
Agreed.
and mcbsp->id use in mcbsp.c.
It has always bothered me, I'll take a look and check if there is a reason why it is like that, and if possible I'll change the mcbsp->id to be 0 based (thus harmonizing the internal and external interface).
- I cannot change the sidetone level with alsamixer
Is this bug with the alsamixer? With amixer I'm able to set positive values but not negative
amixer set -D hw:0 'McBSP2 Sidetone Channel 0' 32767
What I'm looking here, is that I can execute a test below with unit impulse response tap filter, hear the sound and note that the volume is changing as I'm changing the sidetone volume :-)
I'm not sure, but you might need to configure the taps as well to have the correct sidetone. Also I have a recollection, that the McBSP sidetone requires DSP mode (TDM) in order to operate correctly, so on Beagle you might need to set up 4 channel mode. And how the channel mapping in 4 channel mode works in McBSP sidetone is another matter...
arecord -f dat >/dev/null |aplay -f dat /dev/zero