6/02/2012

ACDB ( Audio Calibration Database) images in Fusion3 Android

APQ ACDB file at: <APQ8064BuildPath>\LINUX\android\vendor\qcom\proprietary\mm-audio\audcal\8960

MDM ACDB file at: <MDM9x15APSSBuildpath>\apps_proc\multimedia\audio\drivers\audcal\acdbdata\

1.. Calibration data present in MDM ACDB File is used for Circuit switched Voice call. One will not find Audio related Calibration data present in this ACDB file .
2.. Calibration data present in the APQ ACDB file is used for playback recording and VOIP related use cases .
3.. The Device pair present MDM ACDB file should also be present in the APQ ACDB file as the device Management is controlled from the code running on APQ8064 .

4.. During Circuit switched Voice call the APQ8064 will let the MDM 9x15 Apps the TX and RX device pair so that the calibration data can be pushed to the QDSP LPASS on MDM9x15 .
How to incorporate changes in the MDM9x15 ACDB file into the build.

To incorporate the changes in the MDM9x15 ACDB file into the Fusion3 build one has to replace theacdb_default_data.c in the MDM9x15APSSbuildpath<MDM9x15APSSBuildpath>\apps_proc\multimedia\audio\drivers\audcal\acdbdata\





When the MDM9x15 build is done then mdm_acdb.img containing the calibrationd data gets generated at<MDM9x15APSSBuildPath>\apps_proc\multimedia\audio\drivers\audcal\acdbdata\image




Now the Meta build has the link to all the component builds ( Apps build in APQ8064 , Apps build of MDM9x15 , LPASS of MDM and APSS , etc )




One need to run the "python update_common_info.py" present in <metaBuild>\common\build which will generate common\build\update_common.log .

In the logs higlighted below one can find see that mdm_acdb.img is added to NON-HLOS.bin . This NON-HLOS.bin is flashed during the fastboot

"update_common_info.py:fatadd <MDM9x15APSSBuildpath>/apps_proc/multimedia/audio/drivers/audcal/acdbdata/image/mdm_acdb.img NON-HLOS.bin"




One can refer to the section 3.2.1.6 of the document SP80-N8635-4 : "APQ8064 LA Software User Manual" for more details

3.3.1.6 Update NON-HLOS.bin

If any of MPSS, DSPS, WCNSS, or LPASS is recompiled, use the following commands to update the NON-HLOS.bin file with the new images (<target_root> is the top-level directory that is created in Section 3.2.1):

Navigate to the following directory:

1 .cd <target_root>/common/build

2. Enter the command: python update_common_info.py



The MDM9x15 binaries including the mdm_acdb.img is copied to the location /system/etc/firmware/mdm_acdb.img and there is a symbolic link

to firmware/image/mdm_acdb.img .





This symbolic link is mentioned in the file APQ8064BuildPath>\LINUX\android\device\qcom\msm8960\init.qcom.mdm_links.sh

ln -s $MDM_IMAGES/mdm_acdb.img /system/etc/firmware/mdm_acdb.img 2>/dev/null




How to test the MDM9x15 ACDB changes without making a build for test purposes

1. Load the apps.mbn presnt in <MDM9x15APSSBuildPath>\apps_proc\build\ms\bin\<buildflavour> file to your phone using the command:

adb push <location>\apps.mbn /firmware/image/

2. Download the latest QACT version 2.8.19 or later from Docs and Downloads and install it to your computer.

3. Obtain the MDM ACDB file from the build at:

<MDM9x15APSSBuildPath>\apps_proc\multimedia\audio\drivers\audcal\acdbdata\sysdef\bin\audio_cal.acdb

4. Using QACT 2.8.19 or later , open this file and save it as *.acdb file on your computer.

5. Rename this file to "mdm_acdb.img"

6. When the device is up, push this file to APQ with these commands:

adb shell mount -t vfat -o remount,rw /dev/block/mmcblk0p1 /firmware

adb push mdm_acdb.img /firmware/image/

adb shell sync

7. Reboot the device .

3 comments:

  1. Hi

    Where can I download QACT?

    ReplyDelete
  2. Hi Sir,

    A big Thank you for your valuable information on Audio calibration, there is no much information on the same anywhere except from Qualcomm.

    I have some doubts in audio calibration. I want to calibrate the playback to have the same effect as that of audio played during the Voice Call. For this I have created a topology for Playback and is associated with the playback devices present. Here you have mentioned that the we need to replace the acdb_default_data.c, how to create this file using the updated acdb files. And when I am integrated the same into source code how to select the selected topology from the framework API's, i.e., for AudioTrack api's.

    ReplyDelete
  3. there someone have the source code for Qact ? i wont to change the ACDB file with external tool

    ReplyDelete