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.

Linux/CC2564C: HFP WBS has no audio output based on android system

Part Number: CC2564C

Tool/software: Linux


I am planning to support WBS of HFP  on android system. Currently NBS of HFP works well.

After set some proper HCI commands, there is no audio output.

Help to check whether there is something wrong please about the FW log attached.


  • Peije,

    From the FW logs, it appears that you are enabling the BLE during the device initialization and disabling BLE to switch to AVPR later on. However, your host does not download the complete AVPR add-on, it just sends the AVPR enable command (AVPR ROM code without patches from the AVPR add-on). Since the AVPR is running the ROM code (without patch), such issues are expected. Please initialize the AVPR properly by disabling the BLE and downloading the complete AVPR add-on to the controller.

    While reviewing the logs, I also noticed all the parameters of HCI commands and events are repeated 3 times. The device power-up traces (trace #1 to #39) are also repeated 3 times indicating the nSHUTD pin was toggled 3 times during initialization. This usually is not an issue as long as the power-up and power-down sequence of the datasheet is followed. However, the abnormal HCI traces after this indicate that these subsequent nSHUTD toggles were not performed properly. You may want to investigate this further on the host side.

    Best regards,
  • Hello Vihang,

    I replaced another bts file which should include the AVPR code patches.

    FW log attached.

    I found that the phone call audio is one direction with very bad audio quality.

    Please help check the log.



  • Peijie,

    I see the AVPR patch getting downloaded during the device initialization (#848 to #936), but the BLE patch is downloaded immediately after that (#951). This overwrites the AVPR patch. Moreover, the BLE is disabled later-on (#1531) and AVPR is enabled (#1536) with "Code upload = 0x01". This means the ROM image of AVPR is downloaded to the co-processor at this point. So the AVPR patch downloaded at the very beginning is completely ineffective.

    Looking at the logs, this implementation looks like a giant mess. In general:

    1. The CC2564C's co-processor can either operate in BLE or AVPR mode.

    2. There is a code image for each BLE and AVPR mode inside the CC2564C ROM. When the HCI_VS_LE_Enable or HCI_VS_AVPR_Enable is sent to the CC2564C with "code upload = 1", this ROM image is written to the co-processor.

    3. So the complete BLE or AVPR service-pack add-on (aka BLE or AVPR patch) must be downloaded every time enabling the BLE or AVPR. Otherwise, you are just running the ROM code which might have bugs that we have already fixed in the patches.

    Hope this clears it up. Moreover, I still see every HCI command/event having all the parameters repeated 3 times.


    Please fix this behavior from the host stack side. It is inconsistent with the HCI specification and might be contributing in some of the issues that you are observing with the CC2564C controller.

    Best regards,


  • Hello,

    In android, the BLE is enabled by default, we have to stop it by HCI command in order to make WBS work.

    We tried another time and from log BLE is stoped, but there is still big noise on one side with distortion and no voice on the other side.

    Another log androidWbs is attached.

    Our another type of phone uses Linux system with BLE beacon enabled. We stop BLE then start WBS after that and the voice is OK in both side. The log is attached for reference.

    Would you help check what cause the WBS voice problem in android?

    Thank you very much.


    Gao Hong


  • Hello,

    The logs for both android failed and Linux successful are attached above.

    Would you help to check whether in android log BLE has no bad impact on WBS after it is disabled and WBS is set correctly?

    In our test the adroid is still not OK.

    Thank you very much.


    Gao Hong

  • Hong,

    - Please refer to my earlier comment about downloading the complete AVPR add-on (not just the VS_AVPR_Enable with code upload = 1) every time there is a switch between BLE mode and AVPR mode. The complete AVPR add-on must be downloaded to the device each time in order to ensure that all the latest bug-fixes are being used.

    - In the Linux logs, I noticed the VS_WBS_Associate(0xfd78) and VS_WBS_Disassociate(0xfd79) are used to enable and disable WBS respectively. These commands are missing in the Android logs and might be causing this issue. Please see if you can add these two commands in your Android setup exactly the way they are being used in your Linux setup.

    Best regards,