This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

blutooth HFP PCM audio

Other Parts Discussed in Thread: WL1281

Our software is based on 4AJ2.1 release and we are using omap4430 and wilink7 WL1281. Our device will behave as HFP HF role after it establishes connection with the mobile phone. Our speaker using I2S is connected to MM_EXT_OUT and microphone connected to DMIC0. They all work fine. 

All BT up/down link work fine too(http://e2e.ti.com/support/wireless_connectivity/f/307/p/349528/1230646.aspx#1230646).

During a phone call, I need:

1. Capture BT-VX-UL back end, and send to MM_EXT_OUT(where is our speak connected using I2S master interface) back end. 

2. Meanwhile, I need to capture DMIC0 back end, and then send to the wilink, which is BT-VX-DL.

From the http://www.omappedia.com/wiki/Audio_Drive_Arch, I notice MM_EXT_OUT and BT-VX-DL come from the same source. I'm wondering the possibility to do the two audio routing above in parallel.

I did some digging and know I need to modify audio_hw.c to route audio properly. I'm kind of new to the tinyalsa. Do you have any guide to know how to direct routing DMIC0 data to BT_VX_DL port and routing BT_VX_UL to MM_EXT_OUT?

For instance, in the tinymix:

Number of controls: 54

ctl type num name value

0 ENUM 1 DL1 Equalizer 4Khz LPF 0dB

1 ENUM 1 Sidetone Equalizer Flat response

2 ENUM 1 AMIC Equalizer High-pass 0dB

3 ENUM 1 DMIC Equalizer High-pass 0dB

4 INT 1 DL1 Media Playback Volume 115

5 INT 1 DL1 Tones Playback Volume 115

6 INT 1 DL1 Voice Playback Volume 145

7 INT 1 DL1 Capture Playback Volume 0

8 INT 1 VXREC Media Volume 0

9 INT 1 VXREC Tones Volume 0

10 INT 1 VXREC Voice DL Volume 0

11 INT 1 VXREC Voice UL Volume 0

12 INT 1 AUDUL Media Volume 0

13 INT 1 AUDUL Tones Volume 0

14 INT 1 AUDUL Voice UL Volume 120

15 INT 1 AUDUL Voice DL Volume 0

16 INT 1 SDT UL Volume 120

17 INT 1 SDT DL Volume 130

18 INT 2 DMIC1 UL Volume 140 140

19 INT 2 DMIC2 UL Volume 120 120

20 INT 2 DMIC3 UL Volume 120 120

21 INT 2 AMIC UL Volume 120 120

22 INT 2 BT UL Volume 120 120

23 BOOL 1 DL1 Mono Mixer On

24 BOOL 1 AUDUL Mono Mixer On

25 BOOL 1 DL1 MM_EXT Switch On

26 BOOL 1 DL1 BT_VX Switch On

27 BOOL 1 DL1 PDM_DL2 Switch Off

28 BOOL 1 DL1 PDM Switch Off

29 BOOL 1 Sidetone Mixer Capture On

30 BOOL 1 Sidetone Mixer Playback On

31 BOOL 1 Capture Mixer Tones Off

32 BOOL 1 Capture Mixer Voice Playback Off

33 BOOL 1 Capture Mixer Voice Capture Off

34 BOOL 1 Capture Mixer Media Playback Off

35 BOOL 1 Voice Capture Mixer Tones Playback Off

36 BOOL 1 Voice Capture Mixer Media Playback Off

37 BOOL 1 Voice Capture Mixer Capture On

38 BOOL 1 DL1 Mixer Tones On

39 BOOL 1 DL1 Mixer Voice On

40 BOOL 1 DL1 Mixer Capture Off

41 BOOL 1 DL1 Mixer Multimedia Off

42 ENUM 1 MUX_VX1 BT Right

43 ENUM 1 MUX_VX0 BT Left

44 ENUM 1 MUX_UL11 None

45 ENUM 1 MUX_UL10 DMic0L

46 ENUM 1 MUX_UL07 None

47 ENUM 1 MUX_UL06 None

48 ENUM 1 MUX_UL05 None

49 ENUM 1 MUX_UL04 None

50 ENUM 1 MUX_UL03 None

51 ENUM 1 MUX_UL02 None

52 ENUM 1 MUX_UL01 None

53 ENUM 1 MUX_UL00 None

For the loopback test,how can I send MUX_VX0/MUX_VX1 data to the BT_VX_DL port by enabling "Sidestone MIxer Capture" path? Should I open any frontend port from audio_hw.c to active such path, or have to modify kernel code?

Thanks!