Merge commit '866a79ac982077a5328f37986974bd62682e24ae' into HEAD
diff --git a/BoardConfig.mk b/BoardConfig.mk
index f11179a..6d8072b 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -68,16 +68,24 @@
 TARGET_USES_SF_BYPASS := true
 TARGET_USES_C2D_COMPOSITON := true
 
-TARGET_RECOVERY_PIXEL_FORMAT := "RGBX_8888"
-TARGET_RECOVERY_UI_LIB := librecovery_ui_mako
+# Enable dex-preoptimization to speed up first boot sequence
+ifeq ($(HOST_OS),linux)
+  ifeq ($(TARGET_BUILD_VARIANT),user)
+    ifeq ($(WITH_DEXPREOPT),)
+      WITH_DEXPREOPT := true
+    endif
+  endif
+endif
+WITH_DEXPREOPT_BOOT_IMG_ONLY ?= true
 
 TARGET_RECOVERY_FSTAB = device/lge/mako/fstab.mako
 TARGET_USERIMAGES_USE_EXT4 := true
 BOARD_BOOTIMAGE_PARTITION_SIZE := 23068672 # 22M
 BOARD_RECOVERYIMAGE_PARTITION_SIZE := 23068672 # 22M
 BOARD_SYSTEMIMAGE_PARTITION_SIZE := 880803840 # 840M
-
 BOARD_USERDATAIMAGE_PARTITION_SIZE := 6189744128 # 5.9G
+BOARD_CACHEIMAGE_PARTITION_SIZE := 738197504 # 704 MByte
+BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
 BOARD_FLASH_BLOCK_SIZE := 131072 # (BOARD_KERNEL_PAGESIZE * 64)
 
 BOARD_USES_SECURE_SERVICES := true
@@ -128,10 +136,13 @@
 USE_DEVICE_SPECIFIC_CAMERA:= true
 USE_DEVICE_SPECIFIC_QCOM_PROPRIETARY:= true
 
-#OVERRIDE_RS_DRIVER := libRSDriver_adreno.so
+OVERRIDE_RS_DRIVER := libRSDriver_adreno.so
 
 HAVE_ADRENO_SOURCE:= false
 
+# Include an expanded selection of fonts
+EXTENDED_FONT_FOOTPRINT := true
+
 MALLOC_IMPL := dlmalloc
 
 -include vendor/lge/mako/BoardConfigVendor.mk
diff --git a/WCNSS_qcom_cfg.ini b/WCNSS_qcom_cfg.ini
index 26c06a4..742664a 100644
--- a/WCNSS_qcom_cfg.ini
+++ b/WCNSS_qcom_cfg.ini
@@ -206,7 +206,7 @@
 gEnableBypass11d=1
 
 #If set to 0, will not scan DFS channels
-gEnableDFSChnlScan=1
+gEnableDFSChnlScan=0
 
 # Enable logp/SSR
 gEnableLogp=1
diff --git a/WCNSS_qcom_wlan_nv.bin b/WCNSS_qcom_wlan_nv.bin
index d4a9f54..0a5b2b3 100644
--- a/WCNSS_qcom_wlan_nv.bin
+++ b/WCNSS_qcom_wlan_nv.bin
Binary files differ
diff --git a/apns-full-conf.xml b/apns-full-conf.xml
index 37761ca..8b61cc0 100644
--- a/apns-full-conf.xml
+++ b/apns-full-conf.xml
@@ -731,6 +731,27 @@
       type="mms"
   />
 
+  <apn carrier="Carrefour"
+      mcc="214"
+      mnc="03"
+      apn="CARREFOURINTERNET"
+      authtype="1"
+      type="default,supl"
+  />
+
+  <apn carrier="Carrefour MMS"
+      mcc="214"
+      mnc="03"
+      apn="CARREFOURMMS"
+      user="CARREFOUR"
+      password="CARREFOUR"
+      mmsc="http://mms.orange.es"
+      mmsproxy="172.22.188.25"
+      mmsport="8080"
+      authtype="1"
+      type="mms"
+  />
+
   <apn carrier="Yoigo Navegador"
       mcc="214"
       mnc="04"
@@ -1051,23 +1072,21 @@
       type="default,supl"
   />
 
-  <apn carrier="HT Eronet WAP"
-      mcc="218"
-      mnc="03"
-      apn="wap.eronet.ba"
-      proxy="10.12.3.10"
-      port="8080"
-      type="default,supl"
-  />
-
-  <apn carrier="HT Eronet GPRS"
+  <apn carrier="ERONET START"
       mcc="218"
       mnc="03"
       apn="gprs.eronet.ba"
       type="default,supl"
   />
 
-  <apn carrier="Ht Eronet MMS"
+  <apn carrier="ERONET WEB"
+      mcc="218"
+      mnc="03"
+      apn="web.eronet.ba"
+      type="default,supl"
+  />
+
+  <apn carrier="MMS-ERONET"
       mcc="218"
       mnc="03"
       apn="mms.eronet.ba"
@@ -1077,12 +1096,10 @@
       type="mms"
   />
 
-  <apn carrier="m:tel"
+  <apn carrier="mtelgprs"
       mcc="218"
       mnc="05"
       apn="3g1"
-      proxy="192.168.61.10"
-      port="80"
       type="default,supl"
   />
 
@@ -1092,7 +1109,7 @@
       apn="mtelmms"
       mmsc="http://mmsc.mtel.ba/mms/wapenc"
       mmsproxy="192.168.61.11"
-      mmsport="8080"
+      mmsport="80"
       type="mms"
   />
 
@@ -1107,7 +1124,7 @@
       mcc="218"
       mnc="90"
       apn="mms.bhmobile.ba"
-      mmsc="http://mms.bhmobile.ba/cmmsc/post"
+      mmsc="http://mms.bhmobile.ba/servlets/mms"
       mmsproxy="195.222.56.041"
       mmsport="8080"
       type="mms"
@@ -2429,6 +2446,30 @@
       type="default,supl,mms"
   />
 
+  <apn carrier="Tele2 Internet"
+      mcc="240"
+      mnc="07"
+      apn="internet.tele2.no"
+      user="wap"
+      password="wap"
+      type="default,supl"
+      authtype="1"
+      mvno_match_data="2400768xxxxxxxx"
+      mvno_type="imsi"
+  />
+
+  <apn carrier="Tele2 MMS"
+      mcc="240"
+      mnc="07"
+      apn="internet.tele2.no"
+      mmsproxy="193.12.40.14"
+      mmsport="8080"
+      mmsc="http://mmsc.tele2.no"
+      type="mms"
+      mvno_match_data="2400768xxxxxxxx"
+      mvno_type="imsi"
+  />
+
   <apn carrier="Telenor Mobilsurf"
       mcc="240"
       mnc="08"
@@ -2513,21 +2554,39 @@
       type="default,supl,mms"
   />
 
-  <apn carrier="NetCom MMS"
+  <apn carrier="NetCom"
       mcc="242"
       mnc="02"
-      apn="mms.netcom.no"
+      apn="netcom"
       mmsc="http://mm/"
       mmsproxy="212.169.66.4"
       mmsport="8080"
-      type="mms"
+      type="default,supl,mms"
   />
 
-  <apn carrier="NetCom Internett"
+  <apn carrier="Chess MMS"
       mcc="242"
       mnc="02"
-      apn="wap"
+      apn="mms.netcom.no"
+      mmsproxy="212.169.66.4"
+      mmsport="8080"
+      mmsc="http://mm/"
+      type="mms"
+      authtype="1"
+      mvno_match_data="2420256xxxxxxxx"
+      mvno_type="imsi"
+  />
+
+  <apn carrier="Chess Internett"
+      mcc="242"
+      mnc="02"
+      apn="internet.netcom.no"
+      proxy="10.254.254.10"
+      port="8080"
+      authtype="1"
       type="default,supl"
+      mvno_match_data="2420256xxxxxxxx"
+      mvno_type="imsi"
   />
 
   <apn carrier="Tele2 Internett"
diff --git a/apq8064-tabla-snd-card_Button_Jack.kl b/apq8064-tabla-snd-card_Button_Jack.kl
index 421b5b8..504e307 100644
--- a/apq8064-tabla-snd-card_Button_Jack.kl
+++ b/apq8064-tabla-snd-card_Button_Jack.kl
@@ -1 +1 @@
-key 256   HEADSETHOOK       WAKE
+key 256   HEADSETHOOK
diff --git a/camera/Android.mk b/camera/Android.mk
index 178020e..5d9dac1 100755
--- a/camera/Android.mk
+++ b/camera/Android.mk
@@ -100,10 +100,10 @@
 
 
       ifeq ($(V4L2_BASED_LIBCAM),true)
-        LOCAL_SHARED_LIBRARIES:= libutils libui libcamera_client liblog libcutils
+        LOCAL_SHARED_LIBRARIES:= libutils libui libcamera_client libcamera_metadata liblog libcutils
         LOCAL_SHARED_LIBRARIES += libmmcamera_interface2
       else
-         LOCAL_SHARED_LIBRARIES:= libutils libui libcamera_client liblog libcutils libmmjpeg
+         LOCAL_SHARED_LIBRARIES:= libutils libui libcamera_client liblog libcamera_metadata libcutils libmmjpeg
       endif
 
       LOCAL_SHARED_LIBRARIES+= libgenlock libbinder
diff --git a/camera/QCamera/HAL/core/src/QCameraHWI.cpp b/camera/QCamera/HAL/core/src/QCameraHWI.cpp
index e2af277..0e5070d 100644
--- a/camera/QCamera/HAL/core/src/QCameraHWI.cpp
+++ b/camera/QCamera/HAL/core/src/QCameraHWI.cpp
@@ -2172,7 +2172,7 @@
   p_camera_memory->alloc[cnt].len = (p_camera_memory->alloc[cnt].len + 4095) & (~4095);
   p_camera_memory->alloc[cnt].align = 4096;
   p_camera_memory->alloc[cnt].flags = ION_FLAG_CACHED;
-  p_camera_memory->alloc[cnt].heap_mask = ion_type;
+  p_camera_memory->alloc[cnt].heap_id_mask = ion_type;
 
 
   rc = ioctl(p_camera_memory->main_ion_fd[cnt], ION_IOC_ALLOC, &p_camera_memory->alloc[cnt]);
@@ -2230,7 +2230,7 @@
   p_camera_memory->alloc[cnt].len = (p_camera_memory->alloc[cnt].len + 4095) & (~4095);
   p_camera_memory->alloc[cnt].align = 4096;
   p_camera_memory->alloc[cnt].flags = ION_FLAG_CACHED;
-  p_camera_memory->alloc[cnt].heap_mask = (0x1 << ion_type | 0x1 << ION_IOMMU_HEAP_ID);
+  p_camera_memory->alloc[cnt].heap_id_mask = (0x1 << ion_type | 0x1 << ION_IOMMU_HEAP_ID);
 
   rc = ioctl(p_camera_memory->main_ion_fd[cnt], ION_IOC_ALLOC, &p_camera_memory->alloc[cnt]);
   if (rc < 0) {
diff --git a/camera/QCameraHWI.cpp b/camera/QCameraHWI.cpp
index 81101a0..f3608f8 100755
--- a/camera/QCameraHWI.cpp
+++ b/camera/QCameraHWI.cpp
@@ -1888,6 +1888,8 @@
     bool status = true;
     isp3a_af_mode_t afMode = getAutoFocusMode(mParameters);
 
+    Mutex::Autolock afLock(mAutofocusLock);
+
     if(mAutoFocusRunning==true){
       ALOGV("%s:AF already running should not have got this call",__func__);
       return NO_ERROR;
@@ -1933,6 +1935,7 @@
 
     mAutofocusLock.lock();
     if(mAutoFocusRunning || mNeedToUnlockCaf) {
+      ALOGV("%s:Af either running or CAF needs unlocking", __func__);
       mNeedToUnlockCaf = false;
       mAutoFocusRunning = false;
       mAutofocusLock.unlock();
@@ -2347,7 +2350,7 @@
   p_camera_memory->alloc[cnt].len = (p_camera_memory->alloc[cnt].len + 4095) & (~4095);
   p_camera_memory->alloc[cnt].align = 4096;
   p_camera_memory->alloc[cnt].flags = ION_FLAG_CACHED;
-  p_camera_memory->alloc[cnt].heap_mask = ion_type;
+  p_camera_memory->alloc[cnt].heap_id_mask = ion_type;
 
   rc = ioctl(p_camera_memory->main_ion_fd[cnt], ION_IOC_ALLOC, &p_camera_memory->alloc[cnt]);
   if (rc < 0) {
@@ -2404,7 +2407,7 @@
   p_camera_memory->alloc[cnt].len = (p_camera_memory->alloc[cnt].len + 4095) & (~4095);
   p_camera_memory->alloc[cnt].align = 4096;
   p_camera_memory->alloc[cnt].flags = ION_FLAG_CACHED;
-  p_camera_memory->alloc[cnt].heap_mask = (0x1 << ion_type | 0x1 << ION_IOMMU_HEAP_ID);
+  p_camera_memory->alloc[cnt].heap_id_mask = (0x1 << ion_type | 0x1 << ION_IOMMU_HEAP_ID);
 
   rc = ioctl(p_camera_memory->main_ion_fd[cnt], ION_IOC_ALLOC, &p_camera_memory->alloc[cnt]);
   if (rc < 0) {
diff --git a/camera/QCameraHWI.h b/camera/QCameraHWI.h
index e7f9397..f7e58ef 100755
--- a/camera/QCameraHWI.h
+++ b/camera/QCameraHWI.h
@@ -201,7 +201,7 @@
 static const char ExifUndefinedPrefix[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };   // "\0\0\0\0\0\0\0\0"
 
 //EXIF detfines
-#define MAX_EXIF_TABLE_ENTRIES           20
+#define MAX_EXIF_TABLE_ENTRIES           23
 #define GPS_PROCESSING_METHOD_SIZE       101
 #define FOCAL_LENGTH_DECIMAL_PRECISION   100
 #define EXIF_ASCII_PREFIX_SIZE           8   //(sizeof(ExifAsciiPrefix))
@@ -219,6 +219,7 @@
     char        gpsProcessingMethod[EXIF_ASCII_PREFIX_SIZE+GPS_PROCESSING_METHOD_SIZE];
     //Other tags
     char        dateTime[20];
+    char subsecTime[7];
     rat_t       focalLength;
     rat_t       f_number;
     uint16_t    flashMode;
@@ -233,6 +234,9 @@
 
     int         mAltitude_ref;
     long        mGPSTimestamp;
+    int         mWbMode;
+    char        make[20];
+    char        model[20];
 
 } exif_values_t;
 
diff --git a/camera/QCameraHWI_Parm.cpp b/camera/QCameraHWI_Parm.cpp
index 3375df7..69c8d2b 100644
--- a/camera/QCameraHWI_Parm.cpp
+++ b/camera/QCameraHWI_Parm.cpp
@@ -69,7 +69,7 @@
 #define EXPOSURE_COMPENSATION_DEFAULT_NUMERATOR 0
 #define EXPOSURE_COMPENSATION_DENOMINATOR 6
 #define EXPOSURE_COMPENSATION_STEP ((float (1))/EXPOSURE_COMPENSATION_DENOMINATOR)
-#define DEFAULT_CAMERA_AREA "(0, 0, 0, 0, 0)"
+#define DEFAULT_CAMERA_AREA "(0,0,0,0,0)" // important: spaces not allowed
 
 #define HDR_HAL_FRAME 2
 
@@ -178,8 +178,6 @@
     { QCameraParameters::EFFECT_SOLARIZE,   CAMERA_EFFECT_SOLARIZE },
     { QCameraParameters::EFFECT_SEPIA,      CAMERA_EFFECT_SEPIA },
     { QCameraParameters::EFFECT_POSTERIZE,  CAMERA_EFFECT_POSTERIZE },
-    { QCameraParameters::EFFECT_WHITEBOARD, CAMERA_EFFECT_WHITEBOARD },
-    { QCameraParameters::EFFECT_BLACKBOARD, CAMERA_EFFECT_BLACKBOARD },
     { QCameraParameters::EFFECT_AQUA,       CAMERA_EFFECT_AQUA },
     { QCameraParameters::EFFECT_EMBOSS,     CAMERA_EFFECT_EMBOSS },
     { QCameraParameters::EFFECT_SKETCH,     CAMERA_EFFECT_SKETCH },
@@ -225,13 +223,20 @@
 };
 
 #define DONT_CARE AF_MODE_MAX
-static const str_map focus_modes[] = {
+// These are listed as the supported focus-modes for cameras with AF
+static const str_map focus_modes_auto[] = {
     { QCameraParameters::FOCUS_MODE_AUTO,     AF_MODE_AUTO},
     { QCameraParameters::FOCUS_MODE_INFINITY, AF_MODE_INFINITY },
     { QCameraParameters::FOCUS_MODE_NORMAL,   AF_MODE_NORMAL },
     { QCameraParameters::FOCUS_MODE_MACRO,    AF_MODE_MACRO },
     { QCameraParameters::FOCUS_MODE_CONTINUOUS_PICTURE, AF_MODE_CAF},
-    { QCameraParameters::FOCUS_MODE_CONTINUOUS_VIDEO, AF_MODE_CAF }
+    { QCameraParameters::FOCUS_MODE_CONTINUOUS_VIDEO, AF_MODE_CAF },
+    // Note that "FIXED" is omitted
+};
+
+// These are the supported focus-modes for cameras without AF
+static const str_map focus_modes_fixed[] = {
+    { QCameraParameters::FOCUS_MODE_FIXED,    AF_MODE_INFINITY },
 };
 
 static const str_map selectable_zone_af[] = {
@@ -812,7 +817,7 @@
 
         if(mHasAutoFocusSupport){
             mFocusModeValues = create_values_str(
-                    focus_modes, sizeof(focus_modes) / sizeof(str_map));
+                    focus_modes_auto, sizeof(focus_modes_auto) / sizeof(str_map));
         }
 
         mSceneModeValues = create_values_str(scenemode, sizeof(scenemode) / sizeof(str_map));
@@ -1094,10 +1099,10 @@
        mParameters.set(QCameraParameters::KEY_MAX_NUM_METERING_AREAS, "1");
    } else {
        mParameters.set(QCameraParameters::KEY_FOCUS_MODE,
-       QCameraParameters::FOCUS_MODE_INFINITY);
+       QCameraParameters::FOCUS_MODE_FIXED);
        mFocusMode = DONT_CARE;
        mParameters.set(QCameraParameters::KEY_SUPPORTED_FOCUS_MODES,
-       QCameraParameters::FOCUS_MODE_INFINITY);
+       QCameraParameters::FOCUS_MODE_FIXED);
        mParameters.set(QCameraParameters::KEY_MAX_NUM_FOCUS_AREAS, "0");
        mParameters.set(QCameraParameters::KEY_MAX_NUM_METERING_AREAS, "0");
    }
@@ -2061,11 +2066,21 @@
 {
     const char *str = params.get(QCameraParameters::KEY_FOCUS_MODE);
     const char *prev_str = mParameters.get(QCameraParameters::KEY_FOCUS_MODE);
+    bool modesAreSame = strcmp(str, prev_str) == 0;
     ALOGV("%s",__func__);
     if (str != NULL) {
-        ALOGV("Focus mode %s",str);
-        int32_t value = attr_lookup(focus_modes,
-                                    sizeof(focus_modes) / sizeof(str_map), str);
+        ALOGV("Focus mode '%s', previous focus mode '%s' (cmp %d)",str, prev_str, strcmp(str, prev_str));
+
+        int32_t value;
+
+        if (mHasAutoFocusSupport){
+            value = attr_lookup(focus_modes_auto,
+                                    sizeof(focus_modes_auto) / sizeof(str_map), str);
+        } else {
+            value = attr_lookup(focus_modes_fixed,
+                                    sizeof(focus_modes_fixed) / sizeof(str_map), str);
+        }
+
         if (value != NOT_FOUND) {
             mParameters.set(QCameraParameters::KEY_FOCUS_MODE, str);
             mFocusMode = value;
@@ -2075,6 +2090,17 @@
                return UNKNOWN_ERROR;
             }
             mParameters.set(QCameraParameters::KEY_FOCUS_DISTANCES, mFocusDistance.string());
+
+            // Do not set the AF state to 'not running';
+            // this prevents a bug where an autoFocus followed by a setParameters
+            // with the same exact focus mode resulting in dropping the autoFocusEvent
+            if(modesAreSame) {
+                ALOGV("AF mode unchanged (still '%s'); don't touch CAF", str);
+                return NO_ERROR;
+            } else {
+                ALOGV("AF made has changed to '%s'", str);
+            }
+
             if(mHasAutoFocusSupport){
                 bool ret = native_set_parms(MM_CAMERA_PARM_FOCUS_MODE,
                                       sizeof(value),
@@ -2099,8 +2125,11 @@
                     }
                     ALOGV("caf_type %d rc %d", caf_type, rc);
                 }
+
+
                 ALOGV("Continuous Auto Focus %d", cafSupport);
                 if(mAutoFocusRunning && cafSupport){
+                  ALOGV("Set auto focus running to false");
                   mAutoFocusRunning = false;
                   if(MM_CAMERA_OK!=cam_ops_action(mCameraId,false,MM_CAMERA_OPS_FOCUS,NULL )) {
                     ALOGE("%s: AF command failed err:%d error %s",__func__, errno,strerror(errno));
@@ -4015,23 +4044,44 @@
 }
 
 void QCameraHardwareInterface::initExifData(){
+    short val_short;
+    char value[PROPERTY_VALUE_MAX];
+    if (property_get("ro.product.manufacturer", value, "QCOM-AA") > 0) {
+        strncpy(mExifValues.make, value, 19);
+        mExifValues.make[19] = '\0';
+        addExifTag(EXIFTAGID_MAKE, EXIF_ASCII, strlen(value) + 1, 1, (void *)mExifValues.make);
+    } else {
+        ALOGE("%s: getExifMaker failed", __func__);
+    }
+
+    if (property_get("ro.product.model", value, "QCAM-AA") > 0) {
+        strncpy(mExifValues.model, value, 19);
+        mExifValues.model[19] = '\0';
+        addExifTag(EXIFTAGID_MODEL, EXIF_ASCII, strlen(value) + 1, 1, (void *)mExifValues.model);
+    } else {
+        ALOGE("%s: getExifModel failed", __func__);
+    }
+
     if(mExifValues.dateTime) {
         addExifTag(EXIFTAGID_EXIF_DATE_TIME_ORIGINAL, EXIF_ASCII,
-                  20, 1, (void *)mExifValues.dateTime);
+                20, 1, (void *)mExifValues.dateTime);
         addExifTag(EXIFTAGID_EXIF_DATE_TIME_DIGITIZED, EXIF_ASCII,
-                  20, 1, (void *)mExifValues.dateTime);
+                20, 1, (void *)mExifValues.dateTime);
     }
     addExifTag(EXIFTAGID_FOCAL_LENGTH, EXIF_RATIONAL, 1, 1, (void *)&(mExifValues.focalLength));
     addExifTag(EXIFTAGID_ISO_SPEED_RATING,EXIF_SHORT,1,1,(void *)&(mExifValues.isoSpeed));
 
     // normal f_number is from 1.2 to 22, but I'd like to put some margin.
-    if(mExifValues.f_number.num>0 && mExifValues.f_number.num<3200)
-      addExifTag(EXIFTAGID_F_NUMBER,EXIF_RATIONAL,1,1,(void *)&(mExifValues.f_number));
+    if(mExifValues.f_number.num>0 && mExifValues.f_number.num<3200) {
+        addExifTag(EXIFTAGID_F_NUMBER,EXIF_RATIONAL,1,1,(void *)&(mExifValues.f_number));
+        addExifTag(EXIFTAGID_APERTURE,EXIF_RATIONAL,1,1,(void *)&(mExifValues.f_number));
+    }
+
 
     if(mExifValues.mGpsProcess) {
         addExifTag(EXIFTAGID_GPS_PROCESSINGMETHOD, EXIF_ASCII,
-           EXIF_ASCII_PREFIX_SIZE + strlen(mExifValues.gpsProcessingMethod + EXIF_ASCII_PREFIX_SIZE) + 1,
-           1, (void *)mExifValues.gpsProcessingMethod);
+                EXIF_ASCII_PREFIX_SIZE + strlen(mExifValues.gpsProcessingMethod + EXIF_ASCII_PREFIX_SIZE) + 1,
+                1, (void *)mExifValues.gpsProcessingMethod);
     }
 
     if(mExifValues.mLatitude) {
@@ -4039,7 +4089,7 @@
 
         if(mExifValues.latRef) {
             addExifTag(EXIFTAGID_GPS_LATITUDE_REF, EXIF_ASCII, 2,
-                                    1, (void *)mExifValues.latRef);
+                    1, (void *)mExifValues.latRef);
         }
     }
 
@@ -4048,13 +4098,13 @@
 
         if(mExifValues.lonRef) {
             addExifTag(EXIFTAGID_GPS_LONGITUDE_REF, EXIF_ASCII, 2,
-                                1, (void *)mExifValues.lonRef);
+                    1, (void *)mExifValues.lonRef);
         }
     }
 
     if(mExifValues.mAltitude) {
         addExifTag(EXIFTAGID_GPS_ALTITUDE, EXIF_RATIONAL, 1,
-                    1, (void *)&(mExifValues.altitude));
+                1, (void *)&(mExifValues.altitude));
 
         addExifTag(EXIFTAGID_GPS_ALTITUDE_REF, EXIF_BYTE, 1, 1, (void *)&mExifValues.mAltitude_ref);
     }
@@ -4068,19 +4118,32 @@
 
         strftime(mExifValues.gpsDateStamp, sizeof(mExifValues.gpsDateStamp), "%Y:%m:%d", UTCTimestamp);
         addExifTag(EXIFTAGID_GPS_DATESTAMP, EXIF_ASCII,
-                          strlen(mExifValues.gpsDateStamp)+1 , 1, (void *)mExifValues.gpsDateStamp);
+                strlen(mExifValues.gpsDateStamp)+1 , 1, (void *)mExifValues.gpsDateStamp);
 
         mExifValues.gpsTimeStamp[0] = getRational(UTCTimestamp->tm_hour, 1);
         mExifValues.gpsTimeStamp[1] = getRational(UTCTimestamp->tm_min, 1);
         mExifValues.gpsTimeStamp[2] = getRational(UTCTimestamp->tm_sec, 1);
 
         addExifTag(EXIFTAGID_GPS_TIMESTAMP, EXIF_RATIONAL,
-                  3, 1, (void *)mExifValues.gpsTimeStamp);
+                3, 1, (void *)mExifValues.gpsTimeStamp);
         ALOGV("EXIFTAGID_GPS_TIMESTAMP set");
     }
     if(mExifValues.exposure_time.num || mExifValues.exposure_time.denom)
         addExifTag(EXIFTAGID_EXPOSURE_TIME, EXIF_RATIONAL, 1, 1, (void *)&mExifValues.exposure_time);
 
+    bool flashCondition = getFlashCondition();
+    addExifTag(EXIFTAGID_FLASH, EXIF_SHORT, 1, 1, &flashCondition);
+    if (mExifValues.mWbMode == CAMERA_WB_AUTO)
+        val_short = 0;
+    else
+        val_short = 1;
+    addExifTag(EXIFTAGID_WHITE_BALANCE, EXIF_SHORT, 1, 1, &val_short);
+
+    addExifTag(EXIFTAGID_SUBSEC_TIME, EXIF_ASCII, 7, 1, (void *)mExifValues.subsecTime);
+
+    addExifTag(EXIFTAGID_SUBSEC_TIME_ORIGINAL, EXIF_ASCII, 7, 1, (void *)mExifValues.subsecTime);
+
+    addExifTag(EXIFTAGID_SUBSEC_TIME_DIGITIZED, EXIF_ASCII, 7, 1, (void *)mExifValues.subsecTime);
 }
 
 //Add all exif tags in this function
@@ -4091,13 +4154,13 @@
     //set TimeStamp
     str = mParameters.get(QCameraParameters::KEY_EXIF_DATETIME);
     if(str != NULL) {
-      strncpy(mExifValues.dateTime, str, 19);
-      mExifValues.dateTime[19] = '\0';
+        strncpy(mExifValues.dateTime, str, 19);
+        mExifValues.dateTime[19] = '\0';
     }
 
     //Set focal length
     int focalLengthValue = (int) (mParameters.getFloat(
-                QCameraParameters::KEY_FOCAL_LENGTH) * FOCAL_LENGTH_DECIMAL_PRECISION);
+            QCameraParameters::KEY_FOCAL_LENGTH) * FOCAL_LENGTH_DECIMAL_PRECISION);
 
     mExifValues.focalLength = getRational(focalLengthValue, FOCAL_LENGTH_DECIMAL_PRECISION);
 
@@ -4137,10 +4200,16 @@
     //Write datetime according to EXIF Spec
     //"YYYY:MM:DD HH:MM:SS" (20 chars including \0)
     snprintf(mExifValues.dateTime, 20, "%04d:%02d:%02d %02d:%02d:%02d",
-                timeinfo->tm_year + 1900, timeinfo->tm_mon + 1,
-                timeinfo->tm_mday, timeinfo->tm_hour,
-                timeinfo->tm_min, timeinfo->tm_sec);
+            timeinfo->tm_year + 1900, timeinfo->tm_mon + 1,
+            timeinfo->tm_mday, timeinfo->tm_hour,
+            timeinfo->tm_min, timeinfo->tm_sec);
     //set gps tags
+
+    struct timeval tv;
+    gettimeofday(&tv, NULL);
+    snprintf(mExifValues.subsecTime, 7, "%06ld", tv.tv_usec);
+
+    mExifValues.mWbMode = mParameters.getInt(QCameraParameters::KEY_WHITE_BALANCE);
     setExifTagsGPS();
 }
 
@@ -4151,13 +4220,13 @@
     //Set GPS processing method
     str = mParameters.get(QCameraParameters::KEY_GPS_PROCESSING_METHOD);
     if(str != NULL) {
-       memcpy(mExifValues.gpsProcessingMethod, ExifAsciiPrefix, EXIF_ASCII_PREFIX_SIZE);
-       strncpy(mExifValues.gpsProcessingMethod + EXIF_ASCII_PREFIX_SIZE, str,
-           GPS_PROCESSING_METHOD_SIZE - 1);
-       mExifValues.gpsProcessingMethod[EXIF_ASCII_PREFIX_SIZE + GPS_PROCESSING_METHOD_SIZE-1] = '\0';
-       ALOGV("EXIFTAGID_GPS_PROCESSINGMETHOD = %s %s", mExifValues.gpsProcessingMethod,
-                                                    mExifValues.gpsProcessingMethod+8);
-       mExifValues.mGpsProcess  = true;
+        memcpy(mExifValues.gpsProcessingMethod, ExifAsciiPrefix, EXIF_ASCII_PREFIX_SIZE);
+        strncpy(mExifValues.gpsProcessingMethod + EXIF_ASCII_PREFIX_SIZE, str,
+                GPS_PROCESSING_METHOD_SIZE - 1);
+        mExifValues.gpsProcessingMethod[EXIF_ASCII_PREFIX_SIZE + GPS_PROCESSING_METHOD_SIZE-1] = '\0';
+        ALOGV("EXIFTAGID_GPS_PROCESSINGMETHOD = %s %s", mExifValues.gpsProcessingMethod,
+                mExifValues.gpsProcessingMethod+8);
+        mExifValues.mGpsProcess  = true;
     }else{
         mExifValues.mGpsProcess = false;
     }
@@ -4228,10 +4297,10 @@
     str = NULL;
     str = mParameters.get(QCameraParameters::KEY_GPS_TIMESTAMP);
     if(str != NULL) {
-      mExifValues.mTimeStamp = true;
-      mExifValues.mGPSTimestamp = atol(str);
+        mExifValues.mTimeStamp = true;
+        mExifValues.mGPSTimestamp = atol(str);
     }else{
-         mExifValues.mTimeStamp = false;
+        mExifValues.mTimeStamp = false;
     }
 }
 
@@ -4258,31 +4327,31 @@
         return true;
 
     if(mHFRLevel > 1) /* hard code the value now. Need to move tgtcommon to camear.h */
-      return true;
+        return true;
 
-      return false;
+    return false;
 }
 
 status_t QCameraHardwareInterface::setNoDisplayMode(const QCameraParameters& params)
 {
-  char prop[PROPERTY_VALUE_MAX];
-  memset(prop, 0, sizeof(prop));
-  property_get("persist.camera.nodisplay", prop, "0");
-  int prop_val = atoi(prop);
+    char prop[PROPERTY_VALUE_MAX];
+    memset(prop, 0, sizeof(prop));
+    property_get("persist.camera.nodisplay", prop, "0");
+    int prop_val = atoi(prop);
 
-  if (prop_val == 0) {
-    const char *str_val  = params.get("no-display-mode");
-    if(str_val && strlen(str_val) > 0) {
-      mNoDisplayMode = atoi(str_val);
+    if (prop_val == 0) {
+        const char *str_val  = params.get("no-display-mode");
+        if(str_val && strlen(str_val) > 0) {
+            mNoDisplayMode = atoi(str_val);
+        } else {
+            mNoDisplayMode = 0;
+        }
+        ALOGV("Param mNoDisplayMode =%d", mNoDisplayMode);
     } else {
-      mNoDisplayMode = 0;
+        mNoDisplayMode = prop_val;
+        ALOGV("prop mNoDisplayMode =%d", mNoDisplayMode);
     }
-    ALOGV("Param mNoDisplayMode =%d", mNoDisplayMode);
-  } else {
-    mNoDisplayMode = prop_val;
-    ALOGV("prop mNoDisplayMode =%d", mNoDisplayMode);
-  }
-  return NO_ERROR;
+    return NO_ERROR;
 }
 
 status_t QCameraHardwareInterface::setCAFLockCancel(void)
@@ -4291,8 +4360,8 @@
 
     //for CAF unlock
     if(MM_CAMERA_OK!=cam_ops_action(mCameraId,false,MM_CAMERA_OPS_FOCUS,NULL )) {
-      ALOGE("%s: AF command failed err:%d error %s",__func__, errno,strerror(errno));
-      return -1;
+        ALOGE("%s: AF command failed err:%d error %s",__func__, errno,strerror(errno));
+        return -1;
     }
 
     ALOGV("%s : X", __func__);
@@ -4309,14 +4378,14 @@
 
         mParameters.setPictureSize(mDimension.video_width, mDimension.video_height);
         mParameters.set(QCameraParameters::KEY_SUPPORTED_PICTURE_SIZES,
-                        str.string());
+                str.string());
         ALOGV("%s: Video Picture size supported = %d X %d",
-              __func__,mDimension.video_width,mDimension.video_height);
+                __func__,mDimension.video_width,mDimension.video_height);
     }else{
         //Set Picture Size
         mParameters.setPictureSize(mDimension.picture_width, mDimension.picture_height);
         mParameters.set(QCameraParameters::KEY_SUPPORTED_PICTURE_SIZES,
-                        mPictureSizeValues.string());
+                mPictureSizeValues.string());
     }
 }
 
diff --git a/camera/QualcommCamera2.cpp b/camera/QualcommCamera2.cpp
index 138dc27..79c2104 100755
--- a/camera/QualcommCamera2.cpp
+++ b/camera/QualcommCamera2.cpp
@@ -188,11 +188,11 @@
 
     pthread_mutex_lock(&camera_session_lock);
 
-    //Return INVALID_OPERATION(-1) to framework if multiple camera instances detected.
+    //Return -EUSERS to framework if multiple camera instances detected.
     if(QCameraSession) {
-       ALOGE("%s Mutliple camera open instances are not supported",__func__);
+       ALOGE("%s Multiple camera open instances are not supported",__func__);
        pthread_mutex_unlock(&camera_session_lock);
-       return rc;
+       return -EUSERS;
     }
     if(module && id && hw_device) {
         int cameraId = atoi(id);
diff --git a/camera/QualcommCameraHardware.cpp b/camera/QualcommCameraHardware.cpp
index d6f6cee..d1e94df 100644
--- a/camera/QualcommCameraHardware.cpp
+++ b/camera/QualcommCameraHardware.cpp
@@ -3671,7 +3671,7 @@
     alloc->len = (alloc->len + 4095) & (~4095);
     alloc->align = 4096;
     alloc->flags = 0;
-    alloc->heap_mask = (0x1 << ion_type | 0x1 << ION_IOMMU_HEAP_ID);
+    alloc->heap_id_mask = (0x1 << ion_type | 0x1 << ION_IOMMU_HEAP_ID);
 
     rc = ioctl(*main_ion_fd, ION_IOC_ALLOC, alloc);
     if (rc < 0) {
diff --git a/device.mk b/device.mk
index f1e4e41..09d7ae2 100644
--- a/device.mk
+++ b/device.mk
@@ -31,6 +31,7 @@
 PRODUCT_PACKAGES := \
     libwpa_client \
     hostapd \
+    dhcpcd.conf \
     wpa_supplicant \
     wpa_supplicant.conf
 
@@ -38,14 +39,17 @@
 	lights.msm8960
 
 PRODUCT_PACKAGES += \
-    charger_res_images \
-    charger
+    charger_res_images
 
-ifneq ($(findstring svelte, $(TARGET_PRODUCT)),)
+ifeq ($(TARGET_PREBUILT_KERNEL),)
+ifeq ($(USE_SVELTE_KERNEL),true)
 LOCAL_KERNEL := device/lge/mako_svelte-kernel/kernel
 else
 LOCAL_KERNEL := device/lge/mako-kernel/kernel
 endif
+else
+LOCAL_KERNEL := $(TARGET_PREBUILT_KERNEL)
+endif
 
 PRODUCT_COPY_FILES := \
 	$(LOCAL_KERNEL):kernel
@@ -56,7 +60,6 @@
 	device/lge/mako/WCNSS_qcom_wlan_nv.bin:system/etc/wifi/WCNSS_qcom_wlan_nv.bin
 
 PRODUCT_COPY_FILES += \
-	device/lge/mako/snd_soc_msm_2x_Fusion3:system/etc/snd_soc_msm/snd_soc_msm_2x_Fusion3 \
 	device/lge/mako/audio_policy.conf:system/etc/audio_policy.conf
 
 PRODUCT_COPY_FILES += \
@@ -71,6 +74,9 @@
 	device/lge/mako/fstab.mako:root/fstab.mako \
 	device/lge/mako/ueventd.mako.rc:root/ueventd.mako.rc \
 	device/lge/mako/media_profiles.xml:system/etc/media_profiles.xml \
+	frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
+	frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \
+	frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml \
 	device/lge/mako/media_codecs.xml:system/etc/media_codecs.xml
 
 # Prebuilt kl and kcm keymaps
@@ -102,29 +108,21 @@
 	frameworks/native/data/etc/android.hardware.sensor.barometer.xml:system/etc/permissions/android.hardware.sensor.barometer.xml \
 	frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
 	frameworks/native/data/etc/android.software.sip.voip.xml:system/etc/permissions/android.software.sip.voip.xml \
+	frameworks/native/data/etc/android.software.print.xml:system/etc/permissions/android.software.print.xml \
 	frameworks/native/data/etc/android.hardware.usb.accessory.xml:system/etc/permissions/android.hardware.usb.accessory.xml \
 	frameworks/native/data/etc/android.hardware.telephony.gsm.xml:system/etc/permissions/android.hardware.telephony.gsm.xml \
 	frameworks/native/data/etc/android.hardware.audio.low_latency.xml:system/etc/permissions/android.hardware.audio.low_latency.xml \
-	frameworks/native/data/etc/android.hardware.bluetooth_le.xml:system/etc/permissions/android.hardware.bluetooth_le.xml
+	frameworks/native/data/etc/android.hardware.bluetooth_le.xml:system/etc/permissions/android.hardware.bluetooth_le.xml \
+	frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.xml
 
 # NFC packages
 PRODUCT_PACKAGES += \
-    nfc_nci.mako \
+    nfc_nci.bcm2079x.default \
     NfcNci \
-    Tag \
-    com.android.nfc_extras
+    Tag
 
-# NFCEE access control
-ifeq ($(TARGET_BUILD_VARIANT),user)
-    NFCEE_ACCESS_PATH := device/lge/mako/nfc/nfcee_access.xml
-else
-    NFCEE_ACCESS_PATH := device/lge/mako/nfc/nfcee_access_debug.xml
-endif
-
-# NFC access control + feature files + configuration
+# NFC feature files + configuration
 PRODUCT_COPY_FILES += \
-    $(NFCEE_ACCESS_PATH):system/etc/nfcee_access.xml \
-    frameworks/native/data/etc/com.android.nfc_extras.xml:system/etc/permissions/com.android.nfc_extras.xml \
     frameworks/native/data/etc/android.hardware.nfc.xml:system/etc/permissions/android.hardware.nfc.xml \
     frameworks/native/data/etc/android.hardware.nfc.hce.xml:system/etc/permissions/android.hardware.nfc.hce.xml \
     device/lge/mako/nfc/libnfc-brcm.conf:system/etc/libnfc-brcm.conf
@@ -144,8 +142,7 @@
 	persist.audio.fluence.voicecall=true \
 	persist.audio.handset.mic=dmic \
 	persist.audio.fluence.mode=endfire \
-	persist.audio.lowlatency.rec=false \
-	af.resampler.quality=4
+	persist.audio.lowlatency.rec=false
 
 
 # Do not power down SIM card when modem is sent to Low Power Mode.
@@ -180,7 +177,6 @@
 	memtrack.msm8960
 
 PRODUCT_PACKAGES += \
-	audio_policy.msm8960 \
 	audio.primary.msm8960 \
 	audio.a2dp.default \
 	audio.usb.default \
@@ -204,6 +200,7 @@
 PRODUCT_PROPERTY_OVERRIDES += \
 	ro.qualcomm.bt.hci_transport=smd
 
+ifeq ($(findstring tiny, $(TARGET_PRODUCT)),)
 PRODUCT_PACKAGES += \
 	camera.mako \
 	camera.msm8960 \
@@ -218,6 +215,7 @@
 	libOmxCore \
 	libstagefrighthw \
 	libc2dcolorconvert
+endif
 
 # GPS configuration
 PRODUCT_COPY_FILES += \
@@ -248,14 +246,19 @@
 	wpa_supplicant_overlay.conf \
 	p2p_supplicant_overlay.conf
 
+PRODUCT_PACKAGES += \
+	power.mako
+
 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
 	rild.libpath=/system/lib/libril-qc-qmi-1.so
 
 PRODUCT_PROPERTY_OVERRIDES += \
 	telephony.lteOnCdmaDevice=0
 
+ifeq ($(findstring tiny, $(TARGET_PRODUCT)),)
 PRODUCT_PROPERTY_OVERRIDES += \
 	drm.service.enabled=true
+endif
 
 PRODUCT_PROPERTY_OVERRIDES += \
 	wifi.interface=wlan0 \
diff --git a/hs_detect.kl b/hs_detect.kl
index 7fb56ab..0492203 100644
--- a/hs_detect.kl
+++ b/hs_detect.kl
@@ -1,4 +1,4 @@
-key 226   HEADSETHOOK       WAKE
-key 116   POWER             WAKE
-key 107   ENDCALL           WAKE_DROPPED
+key 226   HEADSETHOOK
+key 116   POWER
+key 107   ENDCALL
 
diff --git a/init.mako.rc b/init.mako.rc
index bd07d6c..0e430db 100644
--- a/init.mako.rc
+++ b/init.mako.rc
@@ -16,6 +16,7 @@
 
 import init.mako.usb.rc
 import init.mako_svelte.rc
+import init.mako_tiny.rc
 
 on early-init
     mount debugfs debugfs /sys/kernel/debug
@@ -44,7 +45,7 @@
     # the MCC. This is needed by RIL.
     setprop persist.radio.custom_ecc "1"
     setprop persist.radio.custom_ecc_mcc "{234,235,424,426,427,430,431:999},{334:060,066},{422:9999},{730:133}"
-    setprop persist.radio.custom_ecc_mcc_ex "{450:111,112,113,119,122,125,127},{724:190}"
+    setprop persist.radio.custom_ecc_mcc_ex "{450:111,112,113,119,122,125,127},{724:190},{425:100,101,102}"
     setprop persist.radio.custom_ecc_voice "{515:117},{452:113,114,115}"
     setprop persist.radio.custom_ecc_hard "911,*911,#911,112,999,000,08,118,120,122,110,119,995,111,113,125,127,133"
 
@@ -52,7 +53,6 @@
     mount_all ./fstab.mako
     restorecon_recursive /persist
     setprop ro.crypto.fuse_sdcard true
-    write /sys/kernel/boot_adsp/boot 1
 
 on early-boot
     # set RLIMIT_MEMLOCK to 64MB
@@ -126,6 +126,8 @@
     write /proc/sys/net/ipv6/conf/rmnet_sdio6/accept_ra 2
     write /proc/sys/net/ipv6/conf/rmnet_sdio7/accept_ra 2
 
+    #Enable logging of the wake up reasons in the kernel log
+    write /sys/module/msm_show_resume_irq/parameters/debug_mask 1
 
 # NFC: create data/nfc for nv storage
     mkdir /data/nfc 770 nfc nfc
@@ -138,6 +140,8 @@
 
 # msm specific files that need to be created on /data
 on post-fs-data
+    write /sys/kernel/boot_adsp/boot 1
+
     mkdir /data/media 0770 media_rw media_rw
 
 # to observe dnsmasq.leases file for dhcp information of soft ap.
@@ -285,6 +289,7 @@
     class main
     user radio
     group radio
+    disabled
 
 # QMUX must be in multiple groups to support external process connections
 service qmuxd /system/bin/qmuxd
@@ -310,7 +315,6 @@
 service wpa_supplicant /system/bin/wpa_supplicant \
     -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
     -I/system/etc/wifi/wpa_supplicant_overlay.conf \
-    -O/data/misc/wifi/sockets \
     -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
     #   we will start as root and wpa_supplicant will switch to user wifi
     #   after setting up the capabilities required for WEXT
@@ -326,7 +330,7 @@
     -I/system/etc/wifi/p2p_supplicant_overlay.conf -N \
     -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
     -I/system/etc/wifi/wpa_supplicant_overlay.conf \
-    -O/data/misc/wifi/sockets -puse_p2p_group_interface=1 \
+    -puse_p2p_group_interface=1 \
     -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
 #   we will start as root and wpa_supplicant will switch to user wifi
 #   after setting up the capabilities required for WEXT
@@ -369,8 +373,9 @@
     # Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB)
     write /proc/sys/net/ipv4/tcp_adv_win_scale  1
 
-service charger /charger
+service charger /sbin/healthd -c
     class charger
+    critical
     seclabel u:r:healthd:s0
 
 # virtual sdcard daemon running as media_rw (1023)
@@ -412,9 +417,9 @@
     keycodes 114 115 116
 
 service qseecomd /system/bin/qseecomd
-    class late_start
-    user system
-    group system
+    class core
+    user root
+    group root
 
 service diag_mdlog /system/bin/diag_mdlog -s 100
     class late_start
diff --git a/init.mako.usb.rc b/init.mako.usb.rc
index 5e3ed09..4949994 100644
--- a/init.mako.usb.rc
+++ b/init.mako.usb.rc
@@ -18,9 +18,9 @@
     write /sys/class/android_usb/android0/f_rndis/wceis 1
 
 on boot
-    write /sys/class/android_usb/android0/iSerial $ro.serialno
-    write /sys/class/android_usb/android0/iManufacturer $ro.product.manufacturer
-    write /sys/class/android_usb/android0/iProduct $ro.product.model
+    write /sys/class/android_usb/android0/iSerial ${ro.serialno}
+    write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer}
+    write /sys/class/android_usb/android0/iProduct ${ro.product.model}
     write /sys/module/rmnet_usb/parameters/rmnet_data_init 1
 
 # MTP
diff --git a/keypad_8064.kl b/keypad_8064.kl
index 03ac948..1a08304 100644
--- a/keypad_8064.kl
+++ b/keypad_8064.kl
@@ -1,2 +1,2 @@
-key 114   VOLUME_DOWN   WAKE
-key 115   VOLUME_UP     WAKE
+key 114   VOLUME_DOWN
+key 115   VOLUME_UP
diff --git a/media_codecs.xml b/media_codecs.xml
index 7c855b8..500f538 100644
--- a/media_codecs.xml
+++ b/media_codecs.xml
@@ -15,56 +15,85 @@
 -->
 
 <MediaCodecs>
+    <Include href="media_codecs_google_audio.xml" />
+    <Include href="media_codecs_google_telephony.xml" />
     <Encoders>
         <MediaCodec name="OMX.qcom.video.encoder.mpeg4" type="video/mp4v-es" >
             <Quirk name="requires-allocate-on-input-ports" />
             <Quirk name="requires-allocate-on-output-ports"/>
             <Quirk name="requires-loaded-to-idle-after-allocation"/>
+            <Limit name="size" min="96x64" max="1920x1088" />
+            <Limit name="alignment" value="8x8" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="244800" />
+            <Limit name="bitrate" range="1-20000000" />
+            <Feature name="can-swap-width-height" />
         </MediaCodec>
         <MediaCodec name="OMX.qcom.video.encoder.h263" type="video/3gpp" >
             <Quirk name="requires-allocate-on-input-ports" />
             <Quirk name="requires-allocate-on-output-ports"/>
             <Quirk name="requires-loaded-to-idle-after-allocation"/>
+            <Limit name="size" min="96x64" max="720x576" />
+            <Limit name="alignment" value="8x8" />
         </MediaCodec>
         <MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >
             <Quirk name="requires-allocate-on-input-ports" />
             <Quirk name="requires-allocate-on-output-ports"/>
             <Quirk name="requires-loaded-to-idle-after-allocation"/>
+            <Limit name="size" min="96x64" max="1920x1088" />
+            <Limit name="alignment" value="8x8" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="244800" />
+            <Limit name="bitrate" range="1-20000000" />
+            <Feature name="can-swap-width-height" />
         </MediaCodec>
-        <MediaCodec name="OMX.google.amrnb.encoder" type="audio/3gpp" />
-        <MediaCodec name="OMX.google.aac.encoder" type="audio/mp4a-latm" />
-        <MediaCodec name="OMX.google.amrwb.encoder" type="audio/amr-wb" />
-        <MediaCodec name="OMX.google.flac.encoder" type="audio/flac" />
-        <MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" />
     </Encoders>
     <Decoders>
-        <MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis" />
-        <MediaCodec name="OMX.google.gsm.decoder" type="audio/gsm" />
-        <MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg" />
-        <MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp" />
-        <MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb" />
-        <MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm" />
-        <MediaCodec name="OMX.google.g711.alaw.decoder" type="audio/g711-alaw" />
-        <MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw" />
         <MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
             <Quirk name="requires-allocate-on-input-ports" />
             <Quirk name="requires-allocate-on-output-ports"/>
             <Quirk name="defers-output-buffer-allocation"/>
+            <Limit name="size" min="64x64" max="1920x1088" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="244800" />
+            <Limit name="bitrate" range="1-20000000" />
+            <Feature name="adaptive-playback" />
+            <Feature name="can-swap-width-height" />
+        </MediaCodec>
+        <MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" >
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports"/>
+            <Quirk name="defers-output-buffer-allocation"/>
+            <Limit name="size" min="64x64" max="1920x1088" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="244800" />
+            <Limit name="bitrate" range="1-20000000" />
+            <Feature name="adaptive-playback" />
+            <Feature name="secure-playback" required="true" />
+            <Feature name="can-swap-width-height" />
         </MediaCodec>
         <MediaCodec name="OMX.qcom.video.decoder.mpeg4" type="video/mp4v-es" >
             <Quirk name="requires-allocate-on-input-ports" />
             <Quirk name="requires-allocate-on-output-ports"/>
             <Quirk name="defers-output-buffer-allocation"/>
+            <Limit name="size" min="64x64" max="1920x1088" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="244800" />
+            <Limit name="bitrate" range="1-20000000" />
+            <Feature name="adaptive-playback" />
+            <Feature name="can-swap-width-height" />
         </MediaCodec>
         <MediaCodec name="OMX.qcom.video.decoder.h263" type="video/3gpp" >
             <Quirk name="requires-allocate-on-input-ports" />
             <Quirk name="requires-allocate-on-output-ports"/>
             <Quirk name="defers-output-buffer-allocation"/>
+            <Limit name="size" min="64x64" max="720x576" />
+            <Limit name="alignment" value="2x2" />
+            <Feature name="adaptive-playback" />
         </MediaCodec>
-        <MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" />
-        <MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" />
-        <MediaCodec name="OMX.google.h264.decoder" type="video/avc" />
-        <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" />
-        <MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" />
     </Decoders>
+    <Include href="media_codecs_google_video.xml" />
 </MediaCodecs>
diff --git a/mixer_paths.xml b/mixer_paths.xml
index ae3e4aa..6d4857f 100644
--- a/mixer_paths.xml
+++ b/mixer_paths.xml
@@ -116,6 +116,7 @@
     <ctl name="SLIM_0_TX Channels" value="One" />
     <ctl name="SLIM_3_RX Channels" value="One" />
     <ctl name="HDMI_RX Channels" value="Two" />
+    <ctl name="Internal BTSCO SampleRate" value="8000" />
 
     <!-- These are audio route (FE to BE) specific mixer settings -->
     <path name="deep-buffer-playback">
@@ -135,6 +136,11 @@
         <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1" value="1" />
     </path>
 
+    <path name="deep-buffer-playback bt-sco-wb">
+        <ctl name="Internal BTSCO SampleRate" value="16000" />
+        <path name="deep-buffer-playback bt-sco" />
+    </path>
+
     <path name="low-latency-playback">
         <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia5" value="1" />
     </path>
@@ -146,6 +152,11 @@
         <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5" value="1" />
     </path>
 
+    <path name="low-latency-playback bt-sco-wb">
+        <ctl name="Internal BTSCO SampleRate" value="16000" />
+        <path name="low-latency-playback bt-sco" />
+    </path>
+
     <path name="low-latency-playback speaker-and-hdmi">
         <ctl name="HDMI Mixer MultiMedia5" value="1" />
         <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia5" value="1" />
@@ -163,6 +174,11 @@
         <ctl name="MultiMedia1 Mixer INTERNAL_BT_SCO_TX" value="1" />
     </path>
 
+    <path name="audio-record bt-sco-wb">
+        <ctl name="Internal BTSCO SampleRate" value="16000" />
+        <path name="audio-record bt-sco" />
+    </path>
+
     <path name="low-latency-record">
         <ctl name="MultiMedia5 Mixer SLIM_0_TX" value="1" />
     </path>
@@ -171,6 +187,11 @@
         <ctl name="MultiMedia5 Mixer INTERNAL_BT_SCO_TX" value="1" />
     </path>
 
+    <path name="low-latency-record bt-sco-wb">
+        <ctl name="Internal BTSCO SampleRate" value="16000" />
+        <path name="low-latency-record bt-sco" />
+    </path>
+
     <path name="voice-call">
         <ctl name="STUB_RX Mixer Voice Stub" value="1" />
         <ctl name="Voice Stub Tx Mixer STUB_TX_HL" value="1" />
@@ -185,7 +206,6 @@
     </path>
 
     <path name="voice-call bt-sco">
-        <ctl name="Internal BTSCO SampleRate" value="8000" />
         <ctl name="Voice Stub Tx Mixer INTERNAL_BT_SCO_TX" value="1" />
         <ctl name="SLIMBUS_1_RX Mixer Voice Stub" value="1" />
         <ctl name="Voice Stub Tx Mixer SLIM_1_TX" value="1" />
@@ -197,6 +217,11 @@
         <ctl name="SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX" value="1" />
     </path>
 
+    <path name="voice-call bt-sco-wb">
+        <ctl name="Internal BTSCO SampleRate" value="16000" />
+        <path name="voice-call bt-sco" />
+    </path>
+
     <!-- These are actual sound device specific mixer settings -->
     <path name="dmic1">
         <ctl name="SLIM_0_TX Channels" value="One" />
@@ -442,4 +467,10 @@
         <path name="adc1" />
     </path>
 
+    <path name="bt-sco-mic-wb">
+    </path>
+
+    <path name="bt-sco-headset-wb">
+    </path>
+
 </mixer>
diff --git a/nfc/libnfc-brcm.conf b/nfc/libnfc-brcm.conf
index d3d4e40..4eb8325 100644
--- a/nfc/libnfc-brcm.conf
+++ b/nfc/libnfc-brcm.conf
@@ -124,14 +124,14 @@
 # The value is set to 3 by default as it assumes we will discover 0xF2,
 # 0xF3, and 0xF4. If a platform will exclude and SE, this value can be reduced
 # so that the stack will not wait any longer than necessary.
-#NFA_MAX_EE_SUPPORTED=3
+NFA_MAX_EE_SUPPORTED=0
 
 ###############################################################################
 # Configure the single default SE to use.  The default is to use the first
 # SE that is detected by the stack.  This value might be used when the phone
 # supports multiple SE (e.g. 0xF3 and 0xF4) but you want to force it to use
 # one of them (e.g. 0xF4).
-ACTIVE_SE=0xF4
+ACTIVE_SE=0x00
 
 ###############################################################################
 # Configure the default NfcA/IsoDep techology and protocol route. Can be
@@ -207,9 +207,9 @@
 ###############################################################################
 # When screen is turned off, specify the desired power state of the controller.
 # 0: power-off-sleep state; DEFAULT
-# 1: full-power state
+# 1: full-power state (note: this is still low-power ("snooze") on BRCM devices.
 # 2: screen-off card-emulation (CE4/CE3/CE1 modes are used)
-#SCREEN_OFF_POWER_STATE=0
+SCREEN_OFF_POWER_STATE=1
 
 ###############################################################################
 # Firmware patch file
@@ -306,3 +306,13 @@
 # Default poll duration (in ms)
 #  The defualt is 500ms if not set (see nfc_target.h)
 #NFA_DM_DISC_DURATION_POLL=333
+
+###############################################################################
+# Choose the presence-check algorithm for type-4 tag.  If not defined,
+# the default value is 1.
+# 0  NFA_RW_PRES_CHK_DEFAULT; Let stack selects an algorithm
+# 1  NFA_RW_PRES_CHK_I_BLOCK; ISO-DEP protocol's empty I-block
+# 2  NFA_RW_PRES_CHK_RESET; Deactivate to Sleep, then re-activate
+# 3  NFA_RW_PRES_CHK_RB_CH0; Type-4 tag protocol's ReadBinary command on channel 0
+# 4  NFA_RW_PRES_CHK_RB_CH3; Type-4 tag protocol's ReadBinary command on channel 3
+PRESENCE_CHECK_ALGORITHM=1
diff --git a/nfc/nfcee_access.xml b/nfc/nfcee_access.xml
deleted file mode 100644
index 02e12fd..0000000
--- a/nfc/nfcee_access.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Applications granted NFCEE access on user builds
-
-    See packages/apps/Nfc/etc/sample_nfcee_access.xml for full documentation.
-     -->
-
-    <!--  Google wallet release signature -->
-    <signer android:signature="3082044c30820334a003020102020900a8cd17c93da5d990300d06092a864886f70d01010505003077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e4643301e170d3131303332343031303635335a170d3338303830393031303635335a3077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e464330820120300d06092a864886f70d01010105000382010d00308201080282010100c30f88add9b492096a2c586a5a9a80356bfa026958f8ff0c5dfaf59f49268ad870dee821a53e1f5b170fc96245a3c982a7cb4527053be35e34f396d24b2291ec0c528d6e26927465e06875ea621f7ff98c40e3345b204907cc9354743acdaace65565f48ba74cd4121cdc876df3522badb095c20d934c56a3e5c393ee5f0e02f8fe0621f918d1f35a82489252c6fa6b63392a7686b3e48612d06a9cf6f49bff11d5d96289c9dfe14ac5762439697dd29eafdb9810de3263513a905ac8e8eaf20907e46750a5ab7bf9a77262f47b03f5a3c6e6d7b51343f69c7f725f70bcc1b4ad592250b705a86e6e83ee2ae37fe5701bcbdb26feefdfff60f6a5bdfb5b64793020103a381dc3081d9301d0603551d0e041604141ccece0eea4dc1121fc7515f0d0a0c72e08cc96d3081a90603551d230481a130819e80141ccece0eea4dc1121fc7515f0d0a0c72e08cc96da17ba4793077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e4643820900a8cd17c93da5d990300c0603551d13040530030101ff300d06092a864886f70d01010505000382010100a470c728e1d31b06d9af6ae768b565046c57806b9843724931d75d4ca10c321520d33ccfed2aa65462234c9ef9b6f910cc676b99cb7f9895d6c06763574fbb78331275dc5cf38fbaa918d7938c051ffba2ade8f303cde8d9e68a048d1fdb9e7c9f2a49b222c68fff422bf15569b85eeeedb04aa30873dbe64b9c9e74f8f2c2f6c40124aaa8d1780d18512b540add28b3e9581971a4170dd868cf5f31e44712b2c23bb51037d7ef9f87a6e5bdb35e2ceb6bb022636c17a56a96bc7a50258c0bd2ed7b31555a18452e17321a0d52838c82f63f742d74ff79586a5cbb7faf7198a84bcf744310e9e927597f00a23dd00660800c2238d90b2fb372dfdbba75bd852e" />
-
-</resources>
diff --git a/nfc/nfcee_access_debug.xml b/nfc/nfcee_access_debug.xml
deleted file mode 100644
index a96a2d1..0000000
--- a/nfc/nfcee_access_debug.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Applications granted NFCEE access on userdebug/eng builds
-
-    See packages/apps/Nfc/etc/sample_nfcee_access.xml for full documentation.
-     -->
-
-    <!-- Google Wallet dev signature -->
-    <signer android:signature="3082044c30820334a003020102020900de7695041d7650c0300d06092a864886f70d01010505003077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e4643301e170d3131303332343031303332345a170d3338303830393031303332345a3077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e464330820120300d06092a864886f70d01010105000382010d00308201080282010100e6ff3defe92aa10d71eb0fa6408bc036b7e243eeed68a6a4763dc7a52a31757cdac61fe510bb73c716e4000104265b347fcecef4c42bf1e1379dd0a876f028227fbbc1f9bdd5d713b2f6a935a379d2cba9c96f92d2d0787c11f1eb19548008a6a072b34b91836cfa0ae1276780e9007530166986a11c9cef46cef7c704806dde9431fb60284d120ab0e7de1d633f07687d468c51139afffdc6bc9a207ca904b8be1da0aa7b4e97756f43606488be5cae3c68e8bb7942cdf51607c930a2fcda655b75d0759cba89ad06e739bd0ba29b1f404296c2c0a85a847f5ab0d067c6c3ec9c49212042ac63a7e53b546c65b46080b4e3e680e23e1f77cfe7f6de744b1a65020103a381dc3081d9301d0603551d0e04160414a2e89064b05d08865c34db930a9d840050117aec3081a90603551d230481a130819e8014a2e89064b05d08865c34db930a9d840050117aeca17ba4793077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e4643820900de7695041d7650c0300c0603551d13040530030101ff300d06092a864886f70d010105050003820101003771870ce87c3c52ea84899230c6e962d94b4d5f1293c25d88261541fd90b5555d1285cef3b8312c3f5df691a8aae04cb981b305e427fd1d2d9e1987e1d29078f13c8452990f1821980263d8d4bd36519348d8d8ba26d8b99fbf09f5fd3ebb0ea3c2f0c9376f1e1fca76f3a6a405429d081b752a7a90b756e9ab44da41abc8e1e8f88ac2758da743fb73e650719a57840ccb6b7add21b99fc681e456e1872c223d5c074adf55f6abda268c2d8b64ea0a8845eecd968f92b493127e75c753c3ff30cbc678b51c9f52961472f17da20a0dc6274aa2463434c1a9b614df697d8ff5ca8101e7a25c7db3fb055d65569c04b01d389cabba57b3a1703ec2e74a88d334" />
-
-    <!-- Google wallet release signature -->
-    <signer android:signature="3082044c30820334a003020102020900a8cd17c93da5d990300d06092a864886f70d01010505003077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e4643301e170d3131303332343031303635335a170d3338303830393031303635335a3077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e464330820120300d06092a864886f70d01010105000382010d00308201080282010100c30f88add9b492096a2c586a5a9a80356bfa026958f8ff0c5dfaf59f49268ad870dee821a53e1f5b170fc96245a3c982a7cb4527053be35e34f396d24b2291ec0c528d6e26927465e06875ea621f7ff98c40e3345b204907cc9354743acdaace65565f48ba74cd4121cdc876df3522badb095c20d934c56a3e5c393ee5f0e02f8fe0621f918d1f35a82489252c6fa6b63392a7686b3e48612d06a9cf6f49bff11d5d96289c9dfe14ac5762439697dd29eafdb9810de3263513a905ac8e8eaf20907e46750a5ab7bf9a77262f47b03f5a3c6e6d7b51343f69c7f725f70bcc1b4ad592250b705a86e6e83ee2ae37fe5701bcbdb26feefdfff60f6a5bdfb5b64793020103a381dc3081d9301d0603551d0e041604141ccece0eea4dc1121fc7515f0d0a0c72e08cc96d3081a90603551d230481a130819e80141ccece0eea4dc1121fc7515f0d0a0c72e08cc96da17ba4793077310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e205669657731143012060355040a130b476f6f676c6520496e632e3110300e060355040b1307416e64726f6964311330110603550403130a476f6f676c65204e4643820900a8cd17c93da5d990300c0603551d13040530030101ff300d06092a864886f70d01010505000382010100a470c728e1d31b06d9af6ae768b565046c57806b9843724931d75d4ca10c321520d33ccfed2aa65462234c9ef9b6f910cc676b99cb7f9895d6c06763574fbb78331275dc5cf38fbaa918d7938c051ffba2ade8f303cde8d9e68a048d1fdb9e7c9f2a49b222c68fff422bf15569b85eeeedb04aa30873dbe64b9c9e74f8f2c2f6c40124aaa8d1780d18512b540add28b3e9581971a4170dd868cf5f31e44712b2c23bb51037d7ef9f87a6e5bdb35e2ceb6bb022636c17a56a96bc7a50258c0bd2ed7b31555a18452e17321a0d52838c82f63f742d74ff79586a5cbb7faf7198a84bcf744310e9e927597f00a23dd00660800c2238d90b2fb372dfdbba75bd852e" />
-
-    <!-- Platform dev-keys signature -->
-    <signer android:signature="308204a830820390a003020102020900bcdfe81405d5c69e300d06092a864886f70d0101050500308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d301e170d3131303931393230303634325a170d3339303230343230303634325a308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d30820120300d06092a864886f70d01010105000382010d00308201080282010100ef7a8a34d8151d0479a239903261fe5026c520d5d88cd65920c98e096d2770f49636da9ffc4e80c472b05bd62a435f8266912aa2a34a18f6f4856f9ef52c10b88c267627136726823e8f3389b051ba92920e10bbaae0e38879efbe681b05863b655d81a6f3b75a85eb230b38b23ea4ef56f2161ff01652ae2049881adbe60d3bf8b5386a81f7404c0cf0c111c0a35ab0a9760426e4af12add73327ec433e047e3517f47a2d3674c2b819354d56eb7fd6c9aa67dd05b4bb1ca8a7e1946c2494e9364ea677a25481ac81f434bff3dd56e93e59fccef0e24a753461cd1cf15f22b62251d07416057ac5ca3e03a24f7f4eca876bacc5a1828acbde04c5cfdb608c47020103a381fc3081f9301d0603551d0e0416041402f997668541fa74693bea699a5766893a362a5d3081c90603551d230481c13081be801402f997668541fa74693bea699a5766893a362a5da1819aa48197308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d820900bcdfe81405d5c69e300c0603551d13040530030101ff300d06092a864886f70d0101050500038201010047d6fb32cadeae4444c379b3441ff9ba10990c23d10472c54fb7ebd9c33b2a173836337e1c175c980847a8894f6a99782e9c2e2133629254295fe52749f93ec1e39d213dd06d0ba99de3b6b5d4d856fafe74e08113b7b23a1b56f4918ed41218a03b9564456480b665200267d3770a9463db413c6a47bd81d725cb7d39c9d0941693c59cbe727d40415f0815c3c8363fb8fa2e028ceeb3bbfbc6b119db5b72f0edb0bb417bfcbf74d9fa069de22afe56a50bcde7ea1078749bb9ec0adc0e6de045641ee3a82c576645160b4ab9710d3cb3201f23957da8de9084c0bec93ad1c8c2054195f13c926db07c8bdf15673acf6d791ec1d3a0d7e1b3470447acd95873" />
-
-</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-az-rAZ/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-be/config.xml
copy to overlay/frameworks/base/core/res/res/values-az-rAZ/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-bn-rBD/config.xml
similarity index 100%
rename from overlay/frameworks/base/core/res/res/values-be/config.xml
rename to overlay/frameworks/base/core/res/res/values-bn-rBD/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-et/config.xml b/overlay/frameworks/base/core/res/res/values-en-rIN/config.xml
similarity index 100%
rename from overlay/frameworks/base/core/res/res/values-et/config.xml
rename to overlay/frameworks/base/core/res/res/values-en-rIN/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-et/config.xml b/overlay/frameworks/base/core/res/res/values-et-rEE/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-et/config.xml
copy to overlay/frameworks/base/core/res/res/values-et-rEE/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-et/config.xml b/overlay/frameworks/base/core/res/res/values-eu-rES/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-et/config.xml
copy to overlay/frameworks/base/core/res/res/values-eu-rES/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-fr-rCA/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-be/config.xml
copy to overlay/frameworks/base/core/res/res/values-fr-rCA/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-gl-rES/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-be/config.xml
copy to overlay/frameworks/base/core/res/res/values-gl-rES/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-hy-rAM/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-be/config.xml
copy to overlay/frameworks/base/core/res/res/values-hy-rAM/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-is-rIS/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-be/config.xml
copy to overlay/frameworks/base/core/res/res/values-is-rIS/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-ka-rGE/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-be/config.xml
copy to overlay/frameworks/base/core/res/res/values-ka-rGE/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-kk-rKZ/config.xml b/overlay/frameworks/base/core/res/res/values-kk-rKZ/config.xml
new file mode 100644
index 0000000..9a93c70
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-kk-rKZ/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="config_usbHostBlacklist">
+    <item msgid="2854983642221012800">"/құр/шина/usb/001"</item>
+  </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-km-rKH/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-be/config.xml
copy to overlay/frameworks/base/core/res/res/values-km-rKH/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-kn-rIN/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-be/config.xml
copy to overlay/frameworks/base/core/res/res/values-kn-rIN/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-ky-rKG/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-be/config.xml
copy to overlay/frameworks/base/core/res/res/values-ky-rKG/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-lo-rLA/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-be/config.xml
copy to overlay/frameworks/base/core/res/res/values-lo-rLA/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-ms/config.xml b/overlay/frameworks/base/core/res/res/values-mk-rMK/config.xml
similarity index 100%
rename from overlay/frameworks/base/core/res/res/values-ms/config.xml
rename to overlay/frameworks/base/core/res/res/values-mk-rMK/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-ms/config.xml b/overlay/frameworks/base/core/res/res/values-ml-rIN/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-ms/config.xml
copy to overlay/frameworks/base/core/res/res/values-ml-rIN/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-ms/config.xml b/overlay/frameworks/base/core/res/res/values-mn-rMN/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-ms/config.xml
copy to overlay/frameworks/base/core/res/res/values-mn-rMN/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-ms/config.xml b/overlay/frameworks/base/core/res/res/values-mr-rIN/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-ms/config.xml
copy to overlay/frameworks/base/core/res/res/values-mr-rIN/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-ms/config.xml b/overlay/frameworks/base/core/res/res/values-ms-rMY/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-ms/config.xml
copy to overlay/frameworks/base/core/res/res/values-ms-rMY/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-ms/config.xml b/overlay/frameworks/base/core/res/res/values-my-rMM/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-ms/config.xml
copy to overlay/frameworks/base/core/res/res/values-my-rMM/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-ne-rNP/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-be/config.xml
copy to overlay/frameworks/base/core/res/res/values-ne-rNP/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-si-rLK/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-be/config.xml
copy to overlay/frameworks/base/core/res/res/values-si-rLK/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-ta-rIN/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-be/config.xml
copy to overlay/frameworks/base/core/res/res/values-ta-rIN/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-te-rIN/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-be/config.xml
copy to overlay/frameworks/base/core/res/res/values-te-rIN/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-ur-rPK/config.xml b/overlay/frameworks/base/core/res/res/values-ur-rPK/config.xml
new file mode 100644
index 0000000..2032648
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-ur-rPK/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="config_usbHostBlacklist">
+    <item msgid="2854983642221012800">"‎/dev/bus/usb/001"</item>
+  </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-uz-rUZ/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-be/config.xml
copy to overlay/frameworks/base/core/res/res/values-uz-rUZ/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-zh-rHK/config.xml
similarity index 100%
copy from overlay/frameworks/base/core/res/res/values-be/config.xml
copy to overlay/frameworks/base/core/res/res/values-zh-rHK/config.xml
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index d523630..bb55f50 100644
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -264,4 +264,9 @@
 
     <!-- MMS user agent prolfile url -->
     <string name="config_mms_user_agent_profile_url" translatable="false">http://gsm.lge.com/html/gsm/20130914.xml</string>
+
+    <!--  Maximum number of supported users -->
+    <integer name="config_multiuserMaximumUsers">4</integer>
+    <!--  Whether Multiuser UI should be shown -->
+    <bool name="config_enableMultiUserUI">true</bool>
 </resources>
diff --git a/overlay/frameworks/base/core/res/res/xml/power_profile.xml b/overlay/frameworks/base/core/res/res/xml/power_profile.xml
index 9b6ddc7..49f79e1 100644
--- a/overlay/frameworks/base/core/res/res/xml/power_profile.xml
+++ b/overlay/frameworks/base/core/res/res/xml/power_profile.xml
@@ -19,7 +19,7 @@
 <device name="Android">
     <!-- All values are in mAh except as noted -->
     <item name="none">0</item>
-    <item name="screen.on">42.4</item>
+    <item name="screen.on">98.19</item>
     <item name="screen.full">211.6</item>
     <item name="bluetooth.active">59.22</item>
     <item name="bluetooth.on">0.7</item>
@@ -28,14 +28,14 @@
     <item name="wifi.scan">52.1</item>
     <item name="dsp.audio">0.1</item>
     <item name="dsp.video">0.1</item>
-    <item name="gps.on">20.9</item>
+    <item name="gps.on">70.05</item>
     <item name="radio.active">185.6</item>
     <!-- The current consumed by the radio when it is scanning for a signal -->
     <item name="radio.scanning">122.68</item>
     <!-- Current consumed by the radio at different signal strengths, when paging -->
     <array name="radio.on"> <!-- Strength 0 to BINS-1 -->
-        <value>1.16</value>
-        <value>2.15</value>
+        <value>7.65</value> <!-- no signal -->
+        <value>0.97</value> <!-- others -->
     </array>
     <!-- Different CPU speeds as reported in
          /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state -->
@@ -54,22 +54,22 @@
         <value>1512000</value> <!-- 1512 MHz CPU speed -->
     </array>
     <!-- Power consumption when CPU is idle -->
-    <item name="cpu.idle">3.5</item>
-    <item name="cpu.awake">10.43</item>
+    <item name="cpu.idle">3.68</item>
+    <item name="cpu.awake">14.74</item>
     <!-- Power consumption at different speeds -->
     <array name="cpu.active">
-        <value>92.6</value> <!-- 384 MHz CPU speed -->
-        <value>108.6</value> <!-- 486 MHz CPU speed -->
-        <value>118.8</value> <!-- 594 MHz CPU speed -->
-        <value>121.4</value> <!-- 702 MHz CPU speed -->
-        <value>127.3</value> <!-- 810 MHz CPU speed -->
-        <value>133.1</value> <!-- 918 MHz CPU speed -->
-        <value>173.3</value> <!-- 1026 MHz CPU speed -->
-        <value>209.5</value> <!-- 1134 MHz CPU speed -->
-        <value>216.5</value> <!-- 1242 MHz CPU speed -->
-        <value>228.5</value> <!-- 1350 MHz CPU speed -->
-        <value>236.0</value> <!-- 1458 MHz CPU speed -->
-        <value>239.7</value> <!-- 1512 MHz CPU speed -->
+        <value>47.05</value> <!-- 384 MHz CPU speed -->
+        <value>75.78</value> <!-- 486 MHz CPU speed -->
+        <value>84.5</value> <!-- 594 MHz CPU speed -->
+        <value>93.99</value> <!-- 702 MHz CPU speed -->
+        <value>109.46</value> <!-- 810 MHz CPU speed -->
+        <value>122.35</value> <!-- 918 MHz CPU speed -->
+        <value>135.35</value> <!-- 1026 MHz CPU speed -->
+        <value>187.07</value> <!-- 1134 MHz CPU speed -->
+        <value>206.62</value> <!-- 1242 MHz CPU speed -->
+        <value>224.54</value> <!-- 1350 MHz CPU speed -->
+        <value>237.52</value> <!-- 1458 MHz CPU speed -->
+        <value>247.18</value> <!-- 1512 MHz CPU speed -->
     </array>
     <!-- This is the battery capacity in mAh -->
     <item name="battery.capacity">2100</item>
diff --git a/overlay/frameworks/base/packages/SystemUI/res/values/config.xml b/overlay/frameworks/base/packages/SystemUI/res/values/config.xml
index bf2577e..0d4a1f0 100644
--- a/overlay/frameworks/base/packages/SystemUI/res/values/config.xml
+++ b/overlay/frameworks/base/packages/SystemUI/res/values/config.xml
@@ -27,5 +27,9 @@
 
     <!-- Vibration duration for MultiWaveView used in SearchPanelView -->
     <integer translatable="false" name="config_search_panel_view_vibration_duration">7</integer>
+
+    <!-- Whether recents should use hardware layers for its taskviews. This flag can be enabled
+    for devices where the java drawing of round rects may be slow -->
+    <bool name="config_recents_use_hardware_layers">true</bool>
 </resources>
 
diff --git a/overlay/packages/apps/Settings/res/values/bools.xml b/overlay/packages/apps/Settings/res/values/bools.xml
new file mode 100644
index 0000000..50e5edd
--- /dev/null
+++ b/overlay/packages/apps/Settings/res/values/bools.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<resources>
+    <!-- Whether to show a preference item for mobile plan -->
+    <bool name="config_show_mobile_plan">false</bool>
+
+    <!-- PowerControl is deprecated, but it was shipped with this device -->
+    <bool name="has_powercontrol_widget">true</bool>
+</resources>
diff --git a/overlay/packages/services/Telecomm/res/values/config.xml b/overlay/packages/services/Telecomm/res/values/config.xml
new file mode 100644
index 0000000..e45257b
--- /dev/null
+++ b/overlay/packages/services/Telecomm/res/values/config.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<!-- Telecomm resources that may need to be customized
+     for different hardware or product builds. -->
+<resources>
+    <!-- Flag indicating if the tty is enabled -->
+    <bool name="tty_enabled">true</bool>
+</resources>
diff --git a/overlay/packages/services/Telephony/res/values/config.xml b/overlay/packages/services/Telephony/res/values/config.xml
index 355bf1c..af352a4 100644
--- a/overlay/packages/services/Telephony/res/values/config.xml
+++ b/overlay/packages/services/Telephony/res/values/config.xml
@@ -21,6 +21,4 @@
          are routed through the android.media.AudioManager class (true) or through
          the com.android.internal.telephony.Phone interface (false). -->
     <bool name="send_mic_mute_to_AudioManager">true</bool>
-    <!-- Flag indicating if the tty is enabled -->
-    <bool name="tty_enabled">true</bool>
 </resources>
diff --git a/p2p_supplicant_overlay.conf b/p2p_supplicant_overlay.conf
index acbace2..8077abc 100644
--- a/p2p_supplicant_overlay.conf
+++ b/p2p_supplicant_overlay.conf
@@ -1 +1,2 @@
 disable_scan_offload=1
+no_ctrl_interface=
\ No newline at end of file
diff --git a/pmic8xxx_pwrkey.kl b/pmic8xxx_pwrkey.kl
index 469d742..50fe058 100644
--- a/pmic8xxx_pwrkey.kl
+++ b/pmic8xxx_pwrkey.kl
@@ -1 +1 @@
-key 116   POWER     WAKE
+key 116   POWER
diff --git a/power/Android.mk b/power/Android.mk
new file mode 100644
index 0000000..0fcc5fa
--- /dev/null
+++ b/power/Android.mk
@@ -0,0 +1,24 @@
+# Copyright 2014 The Android Open Source Project
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_SRC_FILES := power_mako.c
+LOCAL_SHARED_LIBRARIES := liblog libcutils
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE := power.mako
+include $(BUILD_SHARED_LIBRARY)
diff --git a/power/power_mako.c b/power/power_mako.c
new file mode 100644
index 0000000..0d5e1e1
--- /dev/null
+++ b/power/power_mako.c
@@ -0,0 +1,405 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <errno.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <fcntl.h>
+#include <dlfcn.h>
+#include <cutils/uevent.h>
+#include <errno.h>
+#include <sys/poll.h>
+#include <pthread.h>
+#include <linux/netlink.h>
+#include <stdlib.h>
+#include <stdbool.h>
+
+#define LOG_TAG "PowerHAL"
+#include <utils/Log.h>
+
+#include <hardware/hardware.h>
+#include <hardware/power.h>
+
+#define STATE_ON "state=1"
+#define STATE_OFF "state=0"
+#define STATE_HDR_ON "state=2"
+#define STATE_HDR_OFF "state=3"
+
+#define MAX_LENGTH         50
+#define BOOST_SOCKET       "/dev/socket/pb"
+
+#define UEVENT_MSG_LEN 2048
+#define TOTAL_CPUS 4
+#define RETRY_TIME_CHANGING_FREQ 20
+#define SLEEP_USEC_BETWN_RETRY 200
+#define LOW_POWER_MAX_FREQ "1026000"
+#define LOW_POWER_MIN_FREQ "384000"
+#define NORMAL_MAX_FREQ "1512000"
+#define UEVENT_STRING "online@/devices/system/cpu/"
+
+static int client_sockfd;
+static struct sockaddr_un client_addr;
+static int last_state = -1;
+
+static struct pollfd pfd;
+static char *cpu_path_min[] = {
+    "/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq",
+    "/sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq",
+    "/sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq",
+    "/sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq",
+};
+static char *cpu_path_max[] = {
+    "/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq",
+    "/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq",
+    "/sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq",
+    "/sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq",
+};
+static bool freq_set[TOTAL_CPUS];
+static bool low_power_mode = false;
+static pthread_mutex_t low_power_mode_lock = PTHREAD_MUTEX_INITIALIZER;
+
+static void socket_init()
+{
+    if (!client_sockfd) {
+        client_sockfd = socket(PF_UNIX, SOCK_DGRAM, 0);
+        if (client_sockfd < 0) {
+            ALOGE("%s: failed to open: %s", __func__, strerror(errno));
+            return;
+        }
+        memset(&client_addr, 0, sizeof(struct sockaddr_un));
+        client_addr.sun_family = AF_UNIX;
+        snprintf(client_addr.sun_path, UNIX_PATH_MAX, BOOST_SOCKET);
+    }
+}
+
+static int sysfs_write(const char *path, char *s)
+{
+    char buf[80];
+    int len;
+    int fd = open(path, O_WRONLY);
+
+    if (fd < 0) {
+        strerror_r(errno, buf, sizeof(buf));
+        ALOGE("Error opening %s: %s\n", path, buf);
+        return -1;
+    }
+
+    len = write(fd, s, strlen(s));
+    if (len < 0) {
+        strerror_r(errno, buf, sizeof(buf));
+        ALOGE("Error writing to %s: %s\n", path, buf);
+        return -1;
+    }
+
+    close(fd);
+    return 0;
+}
+
+static int uevent_event()
+{
+    char msg[UEVENT_MSG_LEN];
+    char *cp;
+    int n, cpu, ret, retry = RETRY_TIME_CHANGING_FREQ;
+
+    n = recv(pfd.fd, msg, UEVENT_MSG_LEN, MSG_DONTWAIT);
+    if (n <= 0) {
+        return -1;
+    }
+    if (n >= UEVENT_MSG_LEN) {   /* overflow -- discard */
+        return -1;
+    }
+
+    cp = msg;
+
+    if (strstr(cp, UEVENT_STRING)) {
+        n = strlen(cp);
+        errno = 0;
+        cpu = strtol(cp + n - 1, NULL, 10);
+
+        if (errno == EINVAL || errno == ERANGE || cpu < 0 || cpu >= TOTAL_CPUS) {
+            return -1;
+        }
+
+        pthread_mutex_lock(&low_power_mode_lock);
+        if (low_power_mode && !freq_set[cpu]) {
+            while (retry) {
+                sysfs_write(cpu_path_min[cpu], LOW_POWER_MIN_FREQ);
+                ret = sysfs_write(cpu_path_max[cpu], LOW_POWER_MAX_FREQ);
+                if (!ret) {
+                    freq_set[cpu] = true;
+                    break;
+                }
+                usleep(SLEEP_USEC_BETWN_RETRY);
+                retry--;
+           }
+        } else if (!low_power_mode && freq_set[cpu]) {
+             while (retry) {
+                  ret = sysfs_write(cpu_path_max[cpu], NORMAL_MAX_FREQ);
+                  if (!ret) {
+                      freq_set[cpu] = false;
+                      break;
+                  }
+                  usleep(SLEEP_USEC_BETWN_RETRY);
+                  retry--;
+             }
+        }
+        pthread_mutex_unlock(&low_power_mode_lock);
+    }
+    return 0;
+}
+
+void *thread_uevent(__attribute__((unused)) void *x)
+{
+    while (1) {
+        int nevents, ret;
+
+        nevents = poll(&pfd, 1, -1);
+
+        if (nevents == -1) {
+            if (errno == EINTR)
+                continue;
+            ALOGE("powerhal: thread_uevent: poll_wait failed\n");
+            break;
+        }
+        ret = uevent_event();
+        if (ret < 0)
+            ALOGE("Error processing the uevent event");
+    }
+    return NULL;
+}
+
+static void uevent_init()
+{
+    struct sockaddr_nl client;
+    pthread_t tid;
+    pfd.fd = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT);
+
+    if (pfd.fd < 0) {
+        ALOGE("%s: failed to open: %s", __func__, strerror(errno));
+        return;
+    }
+    memset(&client, 0, sizeof(struct sockaddr_nl));
+    pthread_create(&tid, NULL, thread_uevent, NULL);
+    client.nl_family = AF_NETLINK;
+    client.nl_pid = tid;
+    client.nl_groups = -1;
+    pfd.events = POLLIN;
+    bind(pfd.fd, (void *)&client, sizeof(struct sockaddr_nl));
+    return;
+}
+
+static void power_init(__attribute__((unused)) struct power_module *module)
+{
+    ALOGI("%s", __func__);
+    socket_init();
+    uevent_init();
+}
+
+static void sync_thread(int off)
+{
+    int rc;
+    pid_t client;
+    char data[MAX_LENGTH];
+
+    if (client_sockfd < 0) {
+        ALOGE("%s: boost socket not created", __func__);
+        return;
+    }
+
+    client = getpid();
+
+    if (!off) {
+        snprintf(data, MAX_LENGTH, "2:%d", client);
+        rc = sendto(client_sockfd, data, strlen(data), 0,
+            (const struct sockaddr *)&client_addr, sizeof(struct sockaddr_un));
+    } else {
+        snprintf(data, MAX_LENGTH, "3:%d", client);
+        rc = sendto(client_sockfd, data, strlen(data), 0,
+            (const struct sockaddr *)&client_addr, sizeof(struct sockaddr_un));
+    }
+
+    if (rc < 0) {
+        ALOGE("%s: failed to send: %s", __func__, strerror(errno));
+    }
+}
+
+static void enc_boost(int off)
+{
+    int rc;
+    pid_t client;
+    char data[MAX_LENGTH];
+
+    if (client_sockfd < 0) {
+        ALOGE("%s: boost socket not created", __func__);
+        return;
+    }
+
+    client = getpid();
+
+    if (!off) {
+        snprintf(data, MAX_LENGTH, "5:%d", client);
+        rc = sendto(client_sockfd, data, strlen(data), 0,
+            (const struct sockaddr *)&client_addr, sizeof(struct sockaddr_un));
+    } else {
+        snprintf(data, MAX_LENGTH, "6:%d", client);
+        rc = sendto(client_sockfd, data, strlen(data), 0,
+            (const struct sockaddr *)&client_addr, sizeof(struct sockaddr_un));
+    }
+
+    if (rc < 0) {
+        ALOGE("%s: failed to send: %s", __func__, strerror(errno));
+    }
+}
+
+static void process_video_encode_hint(void *metadata)
+{
+
+    socket_init();
+
+    if (client_sockfd < 0) {
+        ALOGE("%s: boost socket not created", __func__);
+        return;
+    }
+
+    if (metadata) {
+        if (!strncmp(metadata, STATE_ON, sizeof(STATE_ON))) {
+            /* Video encode started */
+            sync_thread(1);
+            enc_boost(1);
+        } else if (!strncmp(metadata, STATE_OFF, sizeof(STATE_OFF))) {
+            /* Video encode stopped */
+            sync_thread(0);
+            enc_boost(0);
+        }  else if (!strncmp(metadata, STATE_HDR_ON, sizeof(STATE_HDR_ON))) {
+            /* HDR usecase started */
+        } else if (!strncmp(metadata, STATE_HDR_OFF, sizeof(STATE_HDR_OFF))) {
+            /* HDR usecase stopped */
+        }else
+            return;
+    } else {
+        return;
+    }
+}
+
+
+static void touch_boost()
+{
+    int rc;
+    pid_t client;
+    char data[MAX_LENGTH];
+
+    if (client_sockfd < 0) {
+        ALOGE("%s: boost socket not created", __func__);
+        return;
+    }
+
+    client = getpid();
+
+    snprintf(data, MAX_LENGTH, "1:%d", client);
+    rc = sendto(client_sockfd, data, strlen(data), 0,
+        (const struct sockaddr *)&client_addr, sizeof(struct sockaddr_un));
+    if (rc < 0) {
+        ALOGE("%s: failed to send: %s", __func__, strerror(errno));
+    }
+}
+
+static void power_set_interactive(__attribute__((unused)) struct power_module *module, int on)
+{
+    if (last_state == -1) {
+        last_state = on;
+    } else {
+        if (last_state == on)
+            return;
+        else
+            last_state = on;
+    }
+
+    ALOGV("%s %s", __func__, (on ? "ON" : "OFF"));
+    if (on) {
+        sync_thread(0);
+        touch_boost();
+    } else {
+        sync_thread(1);
+    }
+}
+
+static void power_hint( __attribute__((unused)) struct power_module *module,
+                      power_hint_t hint, __attribute__((unused)) void *data)
+{
+    int cpu, ret;
+
+    switch (hint) {
+        case POWER_HINT_INTERACTION:
+            ALOGV("POWER_HINT_INTERACTION");
+            touch_boost();
+            break;
+#if 0
+        case POWER_HINT_VSYNC:
+            ALOGV("POWER_HINT_VSYNC %s", (data ? "ON" : "OFF"));
+            break;
+#endif
+        case POWER_HINT_VIDEO_ENCODE:
+            process_video_encode_hint(data);
+            break;
+
+        case POWER_HINT_LOW_POWER:
+             pthread_mutex_lock(&low_power_mode_lock);
+             if (data) {
+                 low_power_mode = true;
+                 for (cpu = 0; cpu < TOTAL_CPUS; cpu++) {
+                     sysfs_write(cpu_path_min[cpu], LOW_POWER_MIN_FREQ);
+                     ret = sysfs_write(cpu_path_max[cpu], LOW_POWER_MAX_FREQ);
+                     if (!ret) {
+                         freq_set[cpu] = true;
+                     }
+                 }
+             } else {
+                 low_power_mode = false;
+                 for (cpu = 0; cpu < TOTAL_CPUS; cpu++) {
+                     ret = sysfs_write(cpu_path_max[cpu], NORMAL_MAX_FREQ);
+                     if (!ret) {
+                         freq_set[cpu] = false;
+                     }
+                 }
+             }
+             pthread_mutex_unlock(&low_power_mode_lock);
+             break;
+        default:
+             break;
+    }
+}
+
+static struct hw_module_methods_t power_module_methods = {
+    .open = NULL,
+};
+
+struct power_module HAL_MODULE_INFO_SYM = {
+    .common = {
+        .tag = HARDWARE_MODULE_TAG,
+        .module_api_version = POWER_MODULE_API_VERSION_0_2,
+        .hal_api_version = HARDWARE_HAL_API_VERSION,
+        .id = POWER_HARDWARE_MODULE_ID,
+        .name = "Mako Power HAL",
+        .author = "The Android Open Source Project",
+        .methods = &power_module_methods,
+    },
+
+    .init = power_init,
+    .setInteractive = power_set_interactive,
+    .powerHint = power_hint,
+};
diff --git a/proprietary-blobs.txt b/proprietary-blobs.txt
index 5bb7052..1ab7afc 100644
--- a/proprietary-blobs.txt
+++ b/proprietary-blobs.txt
@@ -51,26 +51,26 @@
 /system/etc/firmware/vidc_1080p.fw
 /system/etc/firmware/wcd9310/wcd9310_anc.bin
 /system/etc/firmware/wcd9310/wcd9310_mbhc.bin
-/system/lib/egl/eglsubAndroid.so
-/system/lib/egl/libEGL_adreno.so
-/system/lib/egl/libGLESv1_CM_adreno.so
-/system/lib/egl/libGLESv2_adreno.so
-/system/lib/egl/libplayback_adreno.so
-/system/lib/egl/libq3dtools_adreno.so
+/system/vendor/lib/egl/eglsubAndroid.so
+/system/vendor/lib/egl/libEGL_adreno.so
+/system/vendor/lib/egl/libGLESv1_CM_adreno.so
+/system/vendor/lib/egl/libGLESv2_adreno.so
+/system/vendor/lib/egl/libplayback_adreno.so
+/system/vendor/lib/egl/libq3dtools_adreno.so
 /system/lib/hw/flp.msm8960.so
 /system/lib/hw/gps.msm8960.so
 /system/lib/hw/sensors.msm8960.so
 /system/lib/libacdbdata.so
 /system/lib/libacdbloader.so
-/system/lib/libadreno_utils.so
+/system/vendor/lib/libadreno_utils.so
 /system/lib/libAKM.so
 /system/lib/libaudcal.so
 /system/lib/libaudioalsa.so
-/system/lib/libC2D2.so
-/system/lib/libc2d30-a3xx.so
-/system/lib/libc2d30.so
+/system/vendor/lib/libC2D2.so
+/system/vendor/lib/libc2d30-a3xx.so
+/system/vendor/lib/libc2d30.so
 /system/lib/libcamera_fast_af.so
-/system/lib/libCB.so
+/system/vendor/lib/libCB.so
 /system/lib/libchromatix_imx111_default_video.so
 /system/lib/libchromatix_imx111_preview.so
 /system/lib/libchromatix_imx111_zsl.so
@@ -104,13 +104,14 @@
 /system/lib/libdsutils.so
 /system/lib/libgemini.so
 /system/lib/libgps.utils.so
-/system/lib/libgsl.so
+/system/vendor/lib/libgsl.so
 /system/lib/libI420colorconvert.so
 /system/lib/libidl.so
 /system/lib/libimage-jpeg-dec-omx-comp.so
 /system/lib/libimage-jpeg-enc-omx-comp.so
 /system/lib/libimage-omx-common.so
-/system/lib/libllvm-a3xx.so
+/system/vendor/lib/libllvm-qcom.so
+/system/vendor/lib/libbccQTI.so
 /system/lib/libloc_core.so
 /system/lib/libloc_eng.so
 /system/lib/libmercury.so
@@ -145,10 +146,10 @@
 /system/lib/libQSEEComAPI.so
 /system/lib/libril-qc-qmi-1.so
 /system/lib/libril-qcril-hook-oem.so
-/system/lib/libRSDriver_adreno.so
-/system/lib/librs_adreno.so
-/system/lib/librs_adreno_sha1.so
-/system/lib/libsc-a3xx.so
+/system/vendor/lib/libRSDriver_adreno.so
+/system/vendor/lib/librs_adreno.so
+/system/vendor/lib/librs_adreno_sha1.so
+/system/vendor/lib/libsc-a3xx.so
 /system/lib/libsensor1.so
 /system/lib/libsensor_reg.so
 /system/lib/libsensor_user_cal.so
diff --git a/recovery/Android.mk b/recovery/Android.mk
deleted file mode 100644
index c26b0eb..0000000
--- a/recovery/Android.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := eng
-LOCAL_C_INCLUDES += bootable/recovery
-LOCAL_SRC_FILES := recovery_ui.cpp
-
-# should match TARGET_RECOVERY_UI_LIB set in BoardConfig.mk
-LOCAL_MODULE := librecovery_ui_mako
-
-include $(BUILD_STATIC_LIBRARY)
-
-include $(CLEAR_VARS)
diff --git a/recovery/recovery_ui.cpp b/recovery/recovery_ui.cpp
deleted file mode 100644
index c13f5c9..0000000
--- a/recovery/recovery_ui.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <linux/input.h>
-#include <sys/stat.h>
-#include <errno.h>
-#include <string.h>
-
-#include "common.h"
-#include "device.h"
-#include "screen_ui.h"
-
-const char* HEADERS[] = { "Volume up/down to move highlight;",
-                          "power button to select.",
-                          "",
-                          NULL };
-
-const char* ITEMS[] = { "reboot system now",
-                        "apply update from ADB",
-                        "wipe data/factory reset",
-                        "wipe cache partition",
-                        NULL };
-
-class MakoUI : public ScreenRecoveryUI
-{
-public:
-    MakoUI() :
-        consecutive_power_keys(0) {
-    }
-
-    virtual KeyAction CheckKey(int key) {
-        if (IsKeyPressed(KEY_POWER) && key == KEY_VOLUMEUP) {
-            return TOGGLE;
-        }
-        if (key == KEY_POWER) {
-            ++consecutive_power_keys;
-            if (consecutive_power_keys >= 7) {
-                return REBOOT;
-            }
-        } else {
-            consecutive_power_keys = 0;
-        }
-        return ENQUEUE;
-    }
-
-private:
-    int consecutive_power_keys;
-};
-
-class MakoDevice : public Device
-{
-public:
-    MakoDevice() :
-        ui(new MakoUI) {
-    }
-
-    RecoveryUI* GetUI() { return ui; }
-
-    int HandleMenuKey(int key_code, int visible) {
-        if (visible) {
-            switch (key_code) {
-            case KEY_DOWN:
-            case KEY_VOLUMEDOWN:
-                return kHighlightDown;
-
-            case KEY_UP:
-            case KEY_VOLUMEUP:
-                return kHighlightUp;
-
-            case KEY_POWER:
-                return kInvokeItem;
-            }
-        }
-
-        return kNoAction;
-    }
-
-    BuiltinAction InvokeMenuItem(int menu_position) {
-        switch (menu_position) {
-        case 0: return REBOOT;
-        case 1: return APPLY_ADB_SIDELOAD;
-        case 2: return WIPE_DATA;
-        case 3: return WIPE_CACHE;
-        default: return NO_ACTION;
-        }
-    }
-
-    const char* const* GetMenuHeaders() { return HEADERS; }
-    const char* const* GetMenuItems() { return ITEMS; }
-
-private:
-    RecoveryUI* ui;
-};
-
-Device* make_device() {
-    return new MakoDevice;
-}
diff --git a/self-extractors/extract-lists.txt b/self-extractors/extract-lists.txt
index be728df..a0b455c 100644
--- a/self-extractors/extract-lists.txt
+++ b/self-extractors/extract-lists.txt
@@ -54,23 +54,23 @@
             system/etc/firmware/vidc.b02 \
             system/etc/firmware/vidc.b03 \
             system/etc/firmware/vidc.mdt \
-            system/lib/egl/eglsubAndroid.so \
-            system/lib/egl/libEGL_adreno.so \
-            system/lib/egl/libGLESv1_CM_adreno.so \
-            system/lib/egl/libGLESv2_adreno.so \
-            system/lib/egl/libplayback_adreno.so \
-            system/lib/egl/libq3dtools_adreno.so \
+            system/vendor/lib/egl/eglsubAndroid.so \
+            system/vendor/lib/egl/libEGL_adreno.so \
+            system/vendor/lib/egl/libGLESv1_CM_adreno.so \
+            system/vendor/lib/egl/libGLESv2_adreno.so \
+            system/vendor/lib/egl/libplayback_adreno.so \
+            system/vendor/lib/egl/libq3dtools_adreno.so \
             system/lib/hw/flp.msm8960.so \
             system/lib/hw/gps.msm8960.so \
             system/lib/hw/sensors.msm8960.so \
             system/lib/libacdbloader.so \
-            system/lib/libadreno_utils.so \
+            system/vendor/lib/libadreno_utils.so \
             system/lib/libaudcal.so \
             system/lib/libaudioalsa.so \
-            system/lib/libC2D2.so \
-            system/lib/libc2d30-a3xx.so \
-            system/lib/libc2d30.so \
-            system/lib/libCB.so \
+            system/vendor/lib/libC2D2.so \
+            system/vendor/lib/libc2d30-a3xx.so \
+            system/vendor/lib/libc2d30.so \
+            system/vendor/lib/libCB.so \
             system/lib/libchromatix_imx111_default_video.so \
             system/lib/libchromatix_imx111_preview.so \
             system/lib/libchromatix_imx111_zsl.so \
@@ -104,13 +104,14 @@
             system/lib/libdsutils.so \
             system/lib/libgemini.so \
             system/lib/libgps.utils.so \
-            system/lib/libgsl.so \
+            system/vendor/lib/libgsl.so \
             system/lib/libI420colorconvert.so \
             system/lib/libidl.so \
             system/lib/libimage-jpeg-dec-omx-comp.so \
             system/lib/libimage-jpeg-enc-omx-comp.so \
             system/lib/libimage-omx-common.so \
-            system/lib/libllvm-a3xx.so \
+            system/vendor/lib/libllvm-qcom.so \
+            system/vendor/lib/libbccQTI.so \
             system/lib/libloc_core.so \
             system/lib/libloc_eng.so \
             system/lib/libmercury.so \
@@ -144,10 +145,10 @@
             system/lib/libQSEEComAPI.so \
             system/lib/libril-qc-qmi-1.so \
             system/lib/libril-qcril-hook-oem.so \
-            system/lib/librs_adreno_sha1.so \
-            system/lib/librs_adreno.so \
-            system/lib/libRSDriver_adreno.so \
-            system/lib/libsc-a3xx.so \
+            system/vendor/lib/librs_adreno_sha1.so \
+            system/vendor/lib/librs_adreno.so \
+            system/vendor/lib/libRSDriver_adreno.so \
+            system/vendor/lib/libsc-a3xx.so \
             system/lib/libsensor1.so \
             system/lib/libsensor_reg.so \
             system/lib/libsensor_user_cal.so \
diff --git a/self-extractors/generate-packages.sh b/self-extractors/generate-packages.sh
index 1c76675..f52b35f 100755
--- a/self-extractors/generate-packages.sh
+++ b/self-extractors/generate-packages.sh
@@ -116,23 +116,23 @@
             system/etc/firmware/vidc.b02 \
             system/etc/firmware/vidc.b03 \
             system/etc/firmware/vidc.mdt \
-            system/lib/egl/eglsubAndroid.so \
-            system/lib/egl/libEGL_adreno.so \
-            system/lib/egl/libGLESv1_CM_adreno.so \
-            system/lib/egl/libGLESv2_adreno.so \
-            system/lib/egl/libplayback_adreno.so \
-            system/lib/egl/libq3dtools_adreno.so \
+            system/vendor/lib/egl/eglsubAndroid.so \
+            system/vendor/lib/egl/libEGL_adreno.so \
+            system/vendor/lib/egl/libGLESv1_CM_adreno.so \
+            system/vendor/lib/egl/libGLESv2_adreno.so \
+            system/vendor/lib/egl/libplayback_adreno.so \
+            system/vendor/lib/egl/libq3dtools_adreno.so \
             system/lib/hw/flp.msm8960.so \
             system/lib/hw/gps.msm8960.so \
             system/lib/hw/sensors.msm8960.so \
             system/lib/libacdbloader.so \
-            system/lib/libadreno_utils.so \
+            system/vendor/lib/libadreno_utils.so \
             system/lib/libaudcal.so \
             system/lib/libaudioalsa.so \
-            system/lib/libC2D2.so \
-            system/lib/libc2d30-a3xx.so \
-            system/lib/libc2d30.so \
-            system/lib/libCB.so \
+            system/vendor/lib/libC2D2.so \
+            system/vendor/lib/libc2d30-a3xx.so \
+            system/vendor/lib/libc2d30.so \
+            system/vendor/lib/libCB.so \
             system/lib/libchromatix_imx111_default_video.so \
             system/lib/libchromatix_imx111_preview.so \
             system/lib/libchromatix_imx111_zsl.so \
@@ -166,13 +166,14 @@
             system/lib/libdsutils.so \
             system/lib/libgemini.so \
             system/lib/libgps.utils.so \
-            system/lib/libgsl.so \
+            system/vendor/lib/libgsl.so \
             system/lib/libI420colorconvert.so \
             system/lib/libidl.so \
             system/lib/libimage-jpeg-dec-omx-comp.so \
             system/lib/libimage-jpeg-enc-omx-comp.so \
             system/lib/libimage-omx-common.so \
-            system/lib/libllvm-a3xx.so \
+            system/vendor/lib/libllvm-qcom.so \
+            system/vendor/lib/libbccQTI.so \
             system/lib/libloc_core.so \
             system/lib/libloc_eng.so \
             system/lib/libmercury.so \
@@ -206,10 +207,10 @@
             system/lib/libQSEEComAPI.so \
             system/lib/libril-qc-qmi-1.so \
             system/lib/libril-qcril-hook-oem.so \
-            system/lib/librs_adreno_sha1.so \
-            system/lib/librs_adreno.so \
-            system/lib/libRSDriver_adreno.so \
-            system/lib/libsc-a3xx.so \
+            system/vendor/lib/librs_adreno_sha1.so \
+            system/vendor/lib/librs_adreno.so \
+            system/vendor/lib/libRSDriver_adreno.so \
+            system/vendor/lib/libsc-a3xx.so \
             system/lib/libsensor1.so \
             system/lib/libsensor_reg.so \
             system/lib/libsensor_user_cal.so \
diff --git a/self-extractors/qcom/staging/device-partial.mk b/self-extractors/qcom/staging/device-partial.mk
index 25e333b..3eb75d8 100644
--- a/self-extractors/qcom/staging/device-partial.mk
+++ b/self-extractors/qcom/staging/device-partial.mk
@@ -49,22 +49,22 @@
     vendor/qcom/mako/proprietary/vidc.b02:system/etc/firmware/vidc.b02:qcom \
     vendor/qcom/mako/proprietary/vidc.b03:system/etc/firmware/vidc.b03:qcom \
     vendor/qcom/mako/proprietary/vidc.mdt:system/etc/firmware/vidc.mdt:qcom \
-    vendor/qcom/mako/proprietary/eglsubAndroid.so:system/lib/egl/eglsubAndroid.so:qcom \
-    vendor/qcom/mako/proprietary/libEGL_adreno.so:system/lib/egl/libEGL_adreno.so:qcom \
-    vendor/qcom/mako/proprietary/libGLESv1_CM_adreno.so:system/lib/egl/libGLESv1_CM_adreno.so:qcom \
-    vendor/qcom/mako/proprietary/libGLESv2_adreno.so:system/lib/egl/libGLESv2_adreno.so:qcom \
-    vendor/qcom/mako/proprietary/libplayback_adreno.so:system/lib/egl/libplayback_adreno.so:qcom \
-    vendor/qcom/mako/proprietary/libq3dtools_adreno.so:system/lib/egl/libq3dtools_adreno.so:qcom \
+    vendor/qcom/mako/proprietary/eglsubAndroid.so:system/vendor/lib/egl/eglsubAndroid.so:qcom \
+    vendor/qcom/mako/proprietary/libEGL_adreno.so:system/vendor/lib/egl/libEGL_adreno.so:qcom \
+    vendor/qcom/mako/proprietary/libGLESv1_CM_adreno.so:system/vendor/lib/egl/libGLESv1_CM_adreno.so:qcom \
+    vendor/qcom/mako/proprietary/libGLESv2_adreno.so:system/vendor/lib/egl/libGLESv2_adreno.so:qcom \
+    vendor/qcom/mako/proprietary/libplayback_adreno.so:system/vendor/lib/egl/libplayback_adreno.so:qcom \
+    vendor/qcom/mako/proprietary/libq3dtools_adreno.so:system/vendor/lib/egl/libq3dtools_adreno.so:qcom \
     vendor/qcom/mako/proprietary/flp.msm8960.so:system/lib/hw/flp.msm8960.so:qcom \
     vendor/qcom/mako/proprietary/gps.msm8960.so:system/lib/hw/gps.msm8960.so:qcom \
     vendor/qcom/mako/proprietary/sensors.msm8960.so:system/lib/hw/sensors.msm8960.so:qcom \
-    vendor/qcom/mako/proprietary/libadreno_utils.so:system/lib/libadreno_utils.so:qcom \
+    vendor/qcom/mako/proprietary/libadreno_utils.so:system/vendor/lib/libadreno_utils.so:qcom \
     vendor/qcom/mako/proprietary/libaudcal.so:system/lib/libaudcal.so:qcom \
     vendor/qcom/mako/proprietary/libaudioalsa.so:system/lib/libaudioalsa.so:qcom \
-    vendor/qcom/mako/proprietary/libC2D2.so:system/lib/libC2D2.so:qcom \
-    vendor/qcom/mako/proprietary/libc2d30-a3xx.so:system/lib/libc2d30-a3xx.so:qcom \
-    vendor/qcom/mako/proprietary/libc2d30.so:system/lib/libc2d30.so:qcom \
-    vendor/qcom/mako/proprietary/libCB.so:system/lib/libCB.so:qcom \
+    vendor/qcom/mako/proprietary/libC2D2.so:system/vendor/lib/libC2D2.so:qcom \
+    vendor/qcom/mako/proprietary/libc2d30-a3xx.so:system/vendor/lib/libc2d30-a3xx.so:qcom \
+    vendor/qcom/mako/proprietary/libc2d30.so:system/vendor/lib/libc2d30.so:qcom \
+    vendor/qcom/mako/proprietary/libCB.so:system/vendor/lib/libCB.so:qcom \
     vendor/qcom/mako/proprietary/libchromatix_imx111_default_video.so:system/lib/libchromatix_imx111_default_video.so:qcom \
     vendor/qcom/mako/proprietary/libchromatix_imx111_preview.so:system/lib/libchromatix_imx111_preview.so:qcom \
     vendor/qcom/mako/proprietary/libchromatix_imx111_zsl.so:system/lib/libchromatix_imx111_zsl.so:qcom \
@@ -98,13 +98,14 @@
     vendor/qcom/mako/proprietary/libdsutils.so:system/lib/libdsutils.so:qcom \
     vendor/qcom/mako/proprietary/libgemini.so:system/lib/libgemini.so:qcom \
     vendor/qcom/mako/proprietary/libgps.utils.so:system/lib/libgps.utils.so:qcom \
-    vendor/qcom/mako/proprietary/libgsl.so:system/lib/libgsl.so:qcom \
+    vendor/qcom/mako/proprietary/libgsl.so:system/vendor/lib/libgsl.so:qcom \
     vendor/qcom/mako/proprietary/libI420colorconvert.so:system/lib/libI420colorconvert.so:qcom \
     vendor/qcom/mako/proprietary/libidl.so:system/lib/libidl.so:qcom \
     vendor/qcom/mako/proprietary/libimage-jpeg-dec-omx-comp.so:system/lib/libimage-jpeg-dec-omx-comp.so:qcom \
     vendor/qcom/mako/proprietary/libimage-jpeg-enc-omx-comp.so:system/lib/libimage-jpeg-enc-omx-comp.so:qcom \
     vendor/qcom/mako/proprietary/libimage-omx-common.so:system/lib/libimage-omx-common.so:qcom \
-    vendor/qcom/mako/proprietary/libllvm-a3xx.so:system/lib/libllvm-a3xx.so:qcom \
+    vendor/qcom/mako/proprietary/libllvm-qcom.so:system/vendor/lib/libllvm-qcom.so:qcom \
+    vendor/qcom/mako/proprietary/libbccQTI.so:system/vendor/lib/libbccQTI.so:qcom \
     vendor/qcom/mako/proprietary/libloc_core.so:system/lib/libloc_core.so:qcom \
     vendor/qcom/mako/proprietary/libloc_eng.so:system/lib/libloc_eng.so:qcom \
     vendor/qcom/mako/proprietary/libmercury.so:system/lib/libmercury.so:qcom \
@@ -138,10 +139,10 @@
     vendor/qcom/mako/proprietary/libQSEEComAPI.so:system/lib/libQSEEComAPI.so:qcom \
     vendor/qcom/mako/proprietary/libril-qc-qmi-1.so:system/lib/libril-qc-qmi-1.so:qcom \
     vendor/qcom/mako/proprietary/libril-qcril-hook-oem.so:system/lib/libril-qcril-hook-oem.so:qcom \
-    vendor/qcom/mako/proprietary/librs_adreno_sha1.so:system/lib/librs_adreno_sha1.so:qcom \
-    vendor/qcom/mako/proprietary/librs_adreno.so:system/lib/librs_adreno.so:qcom \
-    vendor/qcom/mako/proprietary/libRSDriver_adreno.so:system/lib/libRSDriver_adreno.so:qcom \
-    vendor/qcom/mako/proprietary/libsc-a3xx.so:system/lib/libsc-a3xx.so:qcom \
+    vendor/qcom/mako/proprietary/librs_adreno_sha1.so:system/vendor/lib/librs_adreno_sha1.so:qcom \
+    vendor/qcom/mako/proprietary/librs_adreno.so:system/vendor/lib/librs_adreno.so:qcom \
+    vendor/qcom/mako/proprietary/libRSDriver_adreno.so:system/vendor/lib/libRSDriver_adreno.so:qcom \
+    vendor/qcom/mako/proprietary/libsc-a3xx.so:system/vendor/lib/libsc-a3xx.so:qcom \
     vendor/qcom/mako/proprietary/libsensor1.so:system/lib/libsensor1.so:qcom \
     vendor/qcom/mako/proprietary/libsensor_reg.so:system/lib/libsensor_reg.so:qcom \
     vendor/qcom/mako/proprietary/libsensor_user_cal.so:system/lib/libsensor_user_cal.so:qcom \
diff --git a/sepolicy/tee.te b/sepolicy/tee.te
index 44603a9..0efead7 100644
--- a/sepolicy/tee.te
+++ b/sepolicy/tee.te
@@ -10,6 +10,7 @@
 allow tee drm_data_file:file create_file_perms;
 
 # Access /persist/{widevine,playready}
-allow tee persist_file:dir search;
-allow tee persist_drm_file:dir r_dir_perms;
-allow tee persist_drm_file:file r_file_perms;
+allow tee persist_file:dir r_dir_perms;
+# Write to drm related pieces of persist partition
+allow tee persist_drm_file:dir create_dir_perms;
+allow tee persist_drm_file:file create_file_perms;
diff --git a/snd_soc_msm_2x_Fusion3 b/snd_soc_msm_2x_Fusion3
deleted file mode 100644
index 0f13713..0000000
--- a/snd_soc_msm_2x_Fusion3
+++ /dev/null
@@ -1,4542 +0,0 @@
-# Master file for snd_soc_msm tabla 2.0 sound card
-# Lists all use case verbs
-SectionUseCase."HiFi" {
-Comment "Music playback use case"
-SectionVerb
-	Name "HiFi"
-
-	EnableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionVerb
-	Name "HiFiSpeaker FM Tx"
-
-	EnableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionVerb
-	Name "HiFiFM Tx"
-
-	EnableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionVerb
-	Name "HiFiHDMI"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia1':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionVerb
-	Name "HiFiHDMI Speaker"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia1':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia1':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-EndSection
-
-SectionVerb
-	Name "HiFiBT SCO Rx"
-
-	EnableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionVerb
-	Name "HiFiBT SCO WB Rx"
-
-	EnableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionVerb
-	Name "HiFiPROXY Rx"
-
-	EnableSequence
-		'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
-	EndSequence
-
-	DisableSequence
-		'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionVerb
-	Name "HiFiPROXY Tx"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-}
-SectionUseCase."HiFi Low Power" {
-Comment "LPA use case"
-SectionVerb
-	Name "HiFi Low Power"
-
-	EnableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 4
-
-EndSection
-
-SectionVerb
-	Name "HiFi Low PowerSpeaker FM Tx"
-
-	EnableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
-		'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
-		'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 4
-
-EndSection
-
-SectionVerb
-	Name "HiFi Low PowerFM Tx"
-
-	EnableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 4
-
-EndSection
-
-SectionVerb
-	Name "HiFi Low PowerHDMI"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia3':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia3':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 4
-
-EndSection
-
-SectionVerb
-	Name "HiFi Low PowerHDMI Speaker"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia3':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia3':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 4
-
-EndSection
-
-SectionVerb
-	Name "HiFi Low PowerBT SCO Rx"
-
-	EnableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 4
-
-EndSection
-
-SectionVerb
-	Name "HiFi Low PowerBT SCO WB Rx"
-
-	EnableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 4
-
-EndSection
-
-SectionVerb
-	Name "HiFi Low PowerPROXY Rx"
-
-	EnableSequence
-		'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
-	EndSequence
-
-	DisableSequence
-		'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 4
-
-EndSection
-
-SectionVerb
-	Name "HiFi Low PowerPROXY Tx"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 4
-
-EndSection
-}
-SectionUseCase."HiFi2" {
-Comment "Music playback use case for MM2 FE"
-SectionVerb
-	Name "HiFi2"
-
-	EnableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-	Name "HiFi2Speaker FM Tx"
-
-	EnableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-	Name "HiFi2FM Tx"
-
-	EnableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-	Name "HiFi2HDMI"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-	Name "HiFi2HDMI Speaker"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia2':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia2':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-EndSection
-
-SectionVerb
-	Name "HiFi2HDMI SPDIF"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia2':1:1
-		'SEC_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia2':1:0
-		'SEC_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-	Name "HiFi2BT SCO Rx"
-
-	EnableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-	Name "HiFi2BT SCO WB Rx"
-
-	EnableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-        Name "HiFi2PROXY Rx"
-
-        EnableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
-        EndSequence
-
-        DisableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 1
-        PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-        Name "HiFi2PROXY Tx"
-
-        EnableSequence
-        EndSequence
-
-        DisableSequence
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 1
-        PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-	Name "HiFi2SPDIF"
-
-	EnableSequence
-		'SEC_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'SEC_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-	Name "HiFi2SPDIF Speaker"
-
-	EnableSequence
-		'SEC_RX Audio Mixer MultiMedia2':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'SEC_RX Audio Mixer MultiMedia2':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-	Name "HiFi2SPDIF Earpiece"
-
-	EnableSequence
-		'SEC_RX Audio Mixer MultiMedia2':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'SEC_RX Audio Mixer MultiMedia2':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-	Name "HiFi2SPDIF Headphones"
-
-	EnableSequence
-		'SEC_RX Audio Mixer MultiMedia2':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'SEC_RX Audio Mixer MultiMedia2':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-	Name "HiFi2SPDIF ANC Headset"
-
-	EnableSequence
-		'SEC_RX Audio Mixer MultiMedia2':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'SEC_RX Audio Mixer MultiMedia2':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-	Name "HiFi2SPDIF Speaker Headset"
-
-	EnableSequence
-		'SEC_RX Audio Mixer MultiMedia2':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'SEC_RX Audio Mixer MultiMedia2':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-	Name "HiFi2SPDIF Speaker ANC Headset"
-
-	EnableSequence
-		'SEC_RX Audio Mixer MultiMedia2':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'SEC_RX Audio Mixer MultiMedia2':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-        Name "HiFi2PROXY Rx Speaker"
-
-        EnableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
-                'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-        EndSequence
-
-        DisableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
-                'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 1
-        PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-        Name "HiFi2PROXY Rx Earpiece"
-
-        EnableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
-                'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-        EndSequence
-
-        DisableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
-                'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 1
-        PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-        Name "HiFi2PROXY Rx Headphones"
-
-        EnableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
-                'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-        EndSequence
-
-        DisableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
-                'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 1
-        PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-        Name "HiFi2PROXY Rx ANC Headset"
-
-        EnableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
-                'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-        EndSequence
-
-        DisableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
-                'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 1
-        PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-        Name "HiFi2PROXY Rx Speaker Headset"
-
-        EnableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
-                'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-        EndSequence
-
-        DisableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
-                'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 1
-        PlaybackPCM 1
-
-EndSection
-
-SectionVerb
-        Name "HiFi2PROXY Rx Speaker ANC Headset"
-
-        EnableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
-                'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-        EndSequence
-
-        DisableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
-                'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 1
-        PlaybackPCM 1
-
-EndSection
-}
-SectionUseCase."HiFi Rec" {
-Comment "Recording use case"
-SectionVerb
-	Name "HiFi Rec"
-
-	EnableSequence
-		'MultiMedia1 Mixer SLIM_0_TX':1:1
-	EndSequence
-
-	DisableSequence
-		'MultiMedia1 Mixer SLIM_0_TX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionVerb
-	Name "HiFi RecBT SCO Tx"
-
-	EnableSequence
-		'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:1
-	EndSequence
-
-	DisableSequence
-		'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionVerb
-	Name "HiFi RecBT SCO WB Tx"
-
-	EnableSequence
-		'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:1
-	EndSequence
-
-	DisableSequence
-		'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionVerb
-	Name "HiFi RecSSR QMIC"
-
-	EnableSequence
-		'MultiMedia1 Mixer SLIM_0_TX':1:1
-	EndSequence
-
-	DisableSequence
-		'MultiMedia1 Mixer SLIM_0_TX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-}
-SectionUseCase."Voice Call" {
-Comment "Voice Call use case"
-SectionVerb
-	Name "Voice Call"
-
-	EnableSequence
-		'STUB_RX Mixer Voice Stub':1:1
-		'Voice Stub Tx Mixer STUB_TX_HL':1:1
-		'Voice Stub Tx Mixer STUB_1_TX_HL':1:1
-	EndSequence
-
-	DisableSequence
-		'STUB_RX Mixer Voice Stub':1:0
-		'Voice Stub Tx Mixer STUB_TX_HL':1:0
-		'Voice Stub Tx Mixer STUB_1_TX_HL':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 12
-	CapturePCM 12
-
-EndSection
-
-SectionVerb
-	Name "Voice CallHDMI"
-
-	EnableSequence
-		'Voice Stub Tx Mixer SLIM_3_TX':1:0
-		'HDMI_RX_Voice Mixer Voice Stub':1:0
-		'HDMI_RX Port Mixer SLIM_3_TX':1:0
-		'Voice Stub Tx Mixer STUB_TX_HL':1:0
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 12
-	CapturePCM 12
-
-EndSection
-
-SectionVerb
-	Name "Voice CallHDMI Tx"
-
-	EnableSequence
-		'Voice Stub Tx Mixer SLIM_3_TX':1:1
-		'HDMI_RX_Voice Mixer Voice Stub':1:1
-		'HDMI_RX Port Mixer SLIM_3_TX':1:1
-		'Voice Stub Tx Mixer STUB_TX_HL':1:1
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 12
-	CapturePCM 12
-
-EndSection
-
-SectionVerb
-	Name "Voice CallBT SCO Rx"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-		'Internal BTSCO SampleRate':0:8000
-		'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:0
-		'SLIMBUS_1_RX Mixer Voice Stub':1:0
-		'Voice Stub Tx Mixer SLIM_1_TX':1:0
-		'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:0
-		'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:0
-		'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:0
-		'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:0
-		'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 12
-	CapturePCM 12
-
-EndSection
-
-SectionVerb
-	Name "Voice CallBT SCO Tx"
-
-	EnableSequence
-		'Internal BTSCO SampleRate':0:8000
-		'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:1
-		'SLIMBUS_1_RX Mixer Voice Stub':1:1
-		'Voice Stub Tx Mixer SLIM_1_TX':1:1
-		'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:1
-		'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:1
-		'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:1
-		'SLIM_3_RX Channels':0:One
-		'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:1
-		'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:1
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 12
-	CapturePCM 12
-
-EndSection
-
-SectionVerb
-	Name "Voice CallBT SCO WB Rx"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-		'Internal BTSCO SampleRate':0:8000
-		'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:0
-		'SLIMBUS_1_RX Mixer Voice Stub':1:0
-		'Voice Stub Tx Mixer SLIM_1_TX':1:0
-		'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:0
-		'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:0
-		'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:0
-		'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:0
-		'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 12
-	CapturePCM 12
-
-EndSection
-
-SectionVerb
-	Name "Voice CallBT SCO WB Tx"
-
-	EnableSequence
-		'Internal BTSCO SampleRate':0:16000
-		'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:1
-		'SLIMBUS_1_RX Mixer Voice Stub':1:1
-		'Voice Stub Tx Mixer SLIM_1_TX':1:1
-		'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:1
-		'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:1
-		'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:1
-		'SLIM_3_RX Channels':0:One
-		'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:1
-		'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:1
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 12
-	CapturePCM 12
-
-EndSection
-}
-SectionUseCase."Voice Call IP" {
-Comment "VOIP Call use case"
-SectionVerb
-	Name "Voice Call IP"
-
-	EnableSequence
-		'SLIM_0_RX_Voice Mixer Voip':1:1
-		'Voip_Tx Mixer SLIM_0_TX_Voip':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIM_0_RX_Voice Mixer Voip':1:0
-		'Voip_Tx Mixer SLIM_0_TX_Voip':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 3
-	CapturePCM 3
-
-EndSection
-
-SectionVerb
-	Name "Voice Call IPHDMI Tx"
-
-	EnableSequence
-		'HDMI_RX_Voice Mixer Voip':1:1
-		'Voip_Tx Mixer SLIM_0_TX_Voip':1:1
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 3
-	CapturePCM 3
-
-EndSection
-
-SectionVerb
-	Name "Voice Call IPBT SCO Rx"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-		'Internal BTSCO SampleRate':0:8000
-		'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:0
-		'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 3
-	CapturePCM 3
-
-EndSection
-
-SectionVerb
-	Name "Voice Call IPBT SCO Tx"
-
-	EnableSequence
-		'Internal BTSCO SampleRate':0:8000
-		'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:1
-		'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:1
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 3
-	CapturePCM 3
-
-EndSection
-
-SectionVerb
-	Name "Voice Call IPBT SCO WB Rx"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-		'Internal BTSCO SampleRate':0:8000
-		'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:0
-		'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 3
-	CapturePCM 3
-
-EndSection
-
-SectionVerb
-	Name "Voice Call IPBT SCO WB Tx"
-
-	EnableSequence
-		'Internal BTSCO SampleRate':0:16000
-		'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:1
-		'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:1
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 3
-	CapturePCM 3
-
-EndSection
-
-SectionVerb
-	Name "Voice Call IPHDMI"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-		'HDMI_RX_Voice Mixer Voip':1:0
-		'Voip_Tx Mixer SLIM_0_TX_Voip':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 3
-	CapturePCM 3
-
-EndSection
-
-SectionVerb
-	Name "Voice Call IPFM Tx"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-		'SLIM_0_RX_Voice Mixer Voip':1:0
-		'Voip_Tx Mixer SLIM_0_TX_Voip':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 3
-	CapturePCM 3
-
-EndSection
-}
-
-SectionUseCase."FM Digital Radio" {
-Comment "FM Radio use case"
-SectionVerb
-	Name "FM Digital Radio"
-
-	EnableSequence
-		'Internal FM RX Volume':1:0
-		'SLIMBUS_0_RX Port Mixer INTERNAL_FM_TX':1:1
-		'SLIMBUS_DL_HL Switch':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIMBUS_0_RX Port Mixer INTERNAL_FM_TX':1:0
-		'SLIMBUS_DL_HL Switch':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 5
-	CapturePCM 6
-
-EndSection
-
-SectionVerb
-	Name "FM Digital RadioPROXY Rx"
-
-	EnableSequence
-		'Internal FM RX Volume':1:0
-		'AFE_PCM_RX Port Mixer INTERNAL_FM_TX':1:1
-		'PCM_RX_DL_HL Switch':1:1
-	EndSequence
-
-	DisableSequence
-		'AFE_PCM_RX Port Mixer INTERNAL_FM_TX':1:0
-		'PCM_RX_DL_HL Switch':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 5
-	CapturePCM 6
-
-EndSection
-
-SectionVerb
-	Name "FM Digital RadioPROXY Tx"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 5
-	CapturePCM 6
-
-EndSection
-}
-SectionUseCase."FM REC" {
-Comment "FM Recording use case"
-SectionVerb
-	Name "FM REC"
-
-	EnableSequence
-		'MultiMedia1 Mixer INTERNAL_FM_TX':1:1
-	EndSequence
-
-	DisableSequence
-		'MultiMedia1 Mixer INTERNAL_FM_TX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 0
-	CapturePCM 0
-
-EndSection
-}
-SectionUseCase."FM A2DP REC" {
-Comment "FM A2DP playback use case"
-SectionVerb
-	Name "FM A2DP REC"
-
-	EnableSequence
-		'MultiMedia2 Mixer INTERNAL_FM_TX':1:1
-	EndSequence
-
-	DisableSequence
-		'MultiMedia2 Mixer INTERNAL_FM_TX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 1
-	CapturePCM 1
-
-EndSection
-}
-SectionUseCase."Incall REC" {
-Comment "Voice Recording use case"
-SectionVerb
-	Name "Incall REC"
-
-	EnableSequence
-		'MultiMedia1 Mixer SLIM_4_TX':1:1
-	EndSequence
-
-	DisableSequence
-		'MultiMedia1 Mixer SLIM_4_TX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 0
-	CapturePCM 0
-
-EndSection
-}
-SectionUseCase."HiFi Tunnel" {
-Comment "Tunnel mode playback use case"
-SectionVerb
-	Name "HiFi Tunnel"
-
-	EnableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 9
-
-EndSection
-
-SectionVerb
-	Name "HiFi TunnelSpeaker FM Tx"
-
-	EnableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
-		'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
-		'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 9
-
-EndSection
-
-SectionVerb
-	Name "HiFi TunnelFM Tx"
-
-	EnableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 9
-
-EndSection
-
-SectionVerb
-	Name "HiFi TunnelHDMI"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia4':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia4':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 9
-
-EndSection
-
-SectionVerb
-	Name "HiFi TunnelHDMI Speaker"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia4':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia4':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 9
-
-EndSection
-
-SectionVerb
-	Name "HiFi TunnelBT SCO Rx"
-
-	EnableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 9
-
-EndSection
-
-SectionVerb
-	Name "HiFi TunnelBT SCO WB Rx"
-
-	EnableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 9
-
-EndSection
-
-SectionVerb
-	Name "HiFi TunnelPROXY Rx"
-
-	EnableSequence
-		'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
-	EndSequence
-
-	DisableSequence
-		'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 9
-
-EndSection
-
-}
-SectionUseCase."ADSP testfwk" {
-Comment "ADSP testfwk use case"
-
-SectionVerb
-	Name "ADSP testfwk"
-
-	EnableSequence
-		'SLIMBUS_DL_HL Switch':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIMBUS_DL_HL Switch':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 5
-	CapturePCM 5
-
-EndSection
-}
-
-SectionUseCase."HiFi Lowlatency" {
-Comment "LowLatnecy mode playback use case"
-SectionVerb
-        Name "HiFi Lowlatency"
-
-        EnableSequence
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        PlaybackPCM 14
-        CapturePCM 14
-
-EndSection
-
-SectionVerb
-        Name "HiFi LowlatencySpeaker FM Tx"
-
-        EnableSequence
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
-                'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
-                'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        PlaybackPCM 14
-
-EndSection
-
-SectionVerb
-        Name "HiFi LowlatencyFM Tx"
-
-        EnableSequence
-                'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        PlaybackPCM 14
-
-EndSection
-
-SectionVerb
-        Name "HiFi LowlatencyHDMI"
-
-        EnableSequence
-                'HDMI Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'HDMI Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        PlaybackPCM 14
-
-EndSection
-
-SectionVerb
-        Name "HiFi LowlatencyHDMI Speaker"
-
-        EnableSequence
-                'HDMI Mixer MultiMedia5':1:1
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'HDMI Mixer MultiMedia5':1:0
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        PlaybackPCM 14
-
-EndSection
-
-SectionVerb
-        Name "HiFi LowlatencyBT SCO Rx"
-
-        EnableSequence
-                'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        PlaybackPCM 14
-
-EndSection
-
-SectionVerb
-        Name "HiFi LowlatencyBT SCO WB Rx"
-
-        EnableSequence
-                'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        PlaybackPCM 14
-
-EndSection
-
-SectionVerb
-        Name "HiFi LowlatencyPROXY Rx"
-
-        EnableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        PlaybackPCM 14
-
-EndSection
-
-SectionVerb
-        Name "HiFi LowlatencyPROXY Tx"
-
-        EnableSequence
-        EndSequence
-
-        DisableSequence
-        EndSequence
-
-        # ALSA PCMs
-        PlaybackPCM 14
-
-EndSection
-
-SectionVerb
-        Name "HiFi LowlatencyPROXY Rx Speaker"
-
-        EnableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        PlaybackPCM 14
-
-EndSection
-SectionVerb
-        Name "HiFi LowlatencyPROXY Rx Earpiece"
-
-        EnableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        PlaybackPCM 14
-
-EndSection
-SectionVerb
-        Name "HiFi LowlatencyPROXY Rx Headphones"
-
-        EnableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        PlaybackPCM 14
-
-EndSection
-SectionVerb
-        Name "HiFi LowlatencyPROXY Rx ANC Headset"
-
-        EnableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        PlaybackPCM 14
-
-EndSection
-SectionVerb
-        Name "HiFi LowlatencyPROXY Rx Speaker Headset"
-
-        EnableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        PlaybackPCM 14
-
-EndSection
-SectionVerb
-        Name "HiFi LowlatencyPROXY Rx Speaker ANC Headset"
-
-        EnableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        PlaybackPCM 14
-
-EndSection
-}
-
-SectionUseCase."HiFi Lowlatency Rec" {
-Comment "Recording use case"
-SectionVerb
-        Name "HiFi Lowlatency Rec"
-
-        EnableSequence
-                'MultiMedia5 Mixer SLIM_0_TX':1:1
-        EndSequence
-
-        DisableSequence
-                'MultiMedia5 Mixer SLIM_0_TX':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionVerb
-        Name "HiFi Lowlatency RecBT SCO Tx"
-
-        EnableSequence
-                'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:1
-        EndSequence
-
-        DisableSequence
-                'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionVerb
-        Name "HiFi Lowlatency RecBT SCO WB Tx"
-
-        EnableSequence
-                'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:1
-        EndSequence
-
-        DisableSequence
-                'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionVerb
-        Name "HiFi Lowlatency RecPROXY Rx"
-
-        EnableSequence
-        EndSequence
-
-        DisableSequence
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionVerb
-        Name "HiFi Lowlatency RecPROXY Tx"
-
-        EnableSequence
-                'MultiMedia5 Mixer AFE_PCM_TX':1:1
-        EndSequence
-
-        DisableSequence
-                'MultiMedia5 Mixer AFE_PCM_TX':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionVerb
-        Name "HiFi Lowlatency RecSSR QMIC"
-
-        EnableSequence
-                'MultiMedia5 Mixer SLIM_0_TX':1:1
-        EndSequence
-
-        DisableSequence
-                'MultiMedia5 Mixer SLIM_0_TX':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-}
-
-SectionDevice
-	Name "Earpiece"
-	Comment "Handset Rx device"
-
-	EnableSequence
-		'SLIM_0_RX Channels':0:One
-		'RX1 MIX1 INP1':0:RX1
-		'RX1 MIX1 INP2':0:RX6
-		'RX1 Digital Volume':1:68
-		'EAR PA Gain':0:POS_6_DB
-		'DAC1 Switch':1:1
-		'SLIM TX3 MUX':0:RMIX1
-	EndSequence
-
-	DisableSequence
-		'RX1 MIX1 INP1':0:ZERO
-		'RX1 MIX1 INP2':0:ZERO
-		'RX1 Digital Volume':1:68
-		'DAC1 Switch':1:0
-		'SLIM TX3 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	7:1
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "Voice Earpiece"
-	Comment "Handset Rx device"
-
-	EnableSequence
-		'SLIM_0_RX Channels':0:One
-		'RX1 MIX1 INP1':0:RX1
-		'RX1 MIX1 INP2':0:RX6
-		'RX1 Digital Volume':1:68
-		'EAR PA Gain':0:POS_6_DB
-		'DAC1 Switch':1:1
-		'SLIM TX3 MUX':0:RMIX1
-	EndSequence
-
-	DisableSequence
-		'RX1 MIX1 INP1':0:ZERO
-		'RX1 MIX1 INP2':0:ZERO
-		'RX1 Digital Volume':1:68
-		'DAC1 Switch':1:0
-		'SLIM TX3 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	7:1
-
-EndSection
-
-SectionDevice
-	Name "Voice Earpiece TMUS"
-	Comment "Handset Rx device"
-
-	EnableSequence
-		'SLIM_0_RX Channels':0:One
-		'RX1 MIX1 INP1':0:RX1
-		'RX1 MIX1 INP2':0:RX6
-		'RX1 Digital Volume':1:68
-		'EAR PA Gain':0:POS_6_DB
-		'DAC1 Switch':1:1
-		'SLIM TX3 MUX':0:RMIX1
-	EndSequence
-
-	DisableSequence
-		'RX1 MIX1 INP1':0:ZERO
-		'RX1 MIX1 INP2':0:ZERO
-		'RX1 Digital Volume':1:68
-		'DAC1 Switch':1:0
-		'SLIM TX3 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	81:1
-
-EndSection
-
-SectionDevice
-	Name "HAC Earpiece"
-	Comment "Handset Rx device for Hearing AID"
-
-	EnableSequence
-		'SLIM_0_RX Channels':0:One
-		'RX1 MIX1 INP1':0:RX1
-		'RX1 MIX1 INP2':0:RX6
-		'RX1 Digital Volume':1:68
-		'EAR PA Gain':0:POS_2_DB
-		'DAC1 Switch':1:1
-		'SLIM TX3 MUX':0:RMIX1
-	EndSequence
-
-	DisableSequence
-		'RX1 MIX1 INP1':0:ZERO
-		'RX1 MIX1 INP2':0:ZERO
-		'RX1 Digital Volume':1:68
-		'DAC1 Switch':1:0
-		'SLIM TX3 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	60:1
-
-EndSection
-
-SectionDevice
-	Name "TTY Handset Rx"
-	Comment "TTY HCO Handset Rx device"
-
-	EnableSequence
-		'SLIM_0_RX Channels':0:One
-		'RX1 MIX1 INP1':0:RX1
-		'RX1 MIX1 INP2':0:RX6
-		'RX1 Digital Volume':1:68
-		'EAR PA Gain':0:POS_6_DB
-		'DAC1 Switch':1:1
-	EndSequence
-
-	DisableSequence
-		'RX1 MIX1 INP1':0:ZERO
-		'RX1 MIX1 INP2':0:ZERO
-		'RX1 Digital Volume':1:68
-		'DAC1 Switch':1:0
-	EndSequence
-
-	ACDBID	37:1
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "ANC Handset"
-	Comment "ANC Handset Rx device"
-
-	EnableSequence
-		'SLIM_0_RX Channels':0:One
-		'RX1 MIX1 INP1':0:RX1
-		'RX1 MIX1 INP2':0:RX6
-		'DAC1 Switch':1:1
-		'ANC Slot':1:1
-		'ANC1 MUX':0:DMIC1
-		'MICBIAS1 CAPLESS Switch':1:1
-		'SLIM TX3 MUX':0:RMIX1
-	EndSequence
-
-	DisableSequence
-		'RX1 MIX1 INP1':0:ZERO
-		'RX1 MIX1 INP2':0:ZERO
-		'DAC1 Switch':1:0
-		'ANC Slot':1:0
-		'ANC1 MUX':0:ZERO
-		'MICBIAS1 CAPLESS Switch':1:0
-		'SLIM TX3 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	30:1
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "Speaker"
-	Comment "Speaker Rx device"
-
-	EnableSequence
-		'SLIM_0_RX Channels':0:One
-		'RX3 MIX1 INP1':0:RX1
-		'RX3 MIX1 INP2':0:RX6
-		'RX4 DSM MUX':0:DSM_INV
-		'RX3 Digital Volume':1:68
-		'LINEOUT1 Volume':1:100
-		'LINEOUT3 Volume':1:100
-		'SLIM TX3 MUX':0:RMIX3
-	EndSequence
-
-	DisableSequence
-		'RX3 MIX1 INP1':0:ZERO
-		'RX3 MIX1 INP2':0:ZERO
-		'RX4 DSM MUX':0:CIC_OUT
-		'RX3 Digital Volume':1:68
-		'LINEOUT1 Volume':1:0
-		'LINEOUT3 Volume':1:0
-		'SLIM TX3 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	14:1
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "Voice Speaker"
-	Comment "Speaker for voice call"
-
-	EnableSequence
-		'SLIM_0_RX Channels':0:One
-		'RX3 MIX1 INP1':0:RX1
-		'RX3 MIX1 INP2':0:RX6
-		'RX4 DSM MUX':0:DSM_INV
-		'RX3 Digital Volume':1:68
-		'LINEOUT1 Volume':1:100
-		'LINEOUT3 Volume':1:100
-		'SLIM TX3 MUX':0:RMIX3
-	EndSequence
-
-	DisableSequence
-		'RX3 MIX1 INP1':0:ZERO
-		'RX3 MIX1 INP2':0:ZERO
-		'RX4 DSM MUX':0:CIC_OUT
-		'RX3 Digital Volume':1:68
-		'LINEOUT1 Volume':1:0
-		'LINEOUT3 Volume':1:0
-		'SLIM TX3 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	14:1
-
-EndSection
-
-SectionDevice
-	Name "Headphones"
-	Comment "Headset Rx device"
-
-	EnableSequence
-		'SLIM_0_RX Channels':0:Two
-		'RX1 MIX1 INP1':0:RX1
-		'RX1 MIX1 INP2':0:RX6
-		'RX2 MIX1 INP1':0:RX2
-		'RX2 MIX1 INP2':0:RX7
-		'HPHL DAC Switch':1:1
-		'HPHR DAC Switch':1:1
-		'RX1 Digital Volume':1:68
-		'RX2 Digital Volume':1:68
-		'HPHL Volume':1:50
-		'HPHR Volume':1:50
-		'SLIM TX3 MUX':0:RMIX1
-		'SLIM TX5 MUX':0:RMIX2
-	EndSequence
-
-	DisableSequence
-		'RX1 MIX1 INP1':0:ZERO
-		'RX1 MIX1 INP2':0:ZERO
-		'RX2 MIX1 INP1':0:ZERO
-		'RX2 MIX1 INP2':0:ZERO
-		'HPHL DAC Switch':1:0
-		'HPHR DAC Switch':1:0
-		'RX1 Digital Volume':1:68
-		'RX2 Digital Volume':1:68
-		'HPHL Volume':1:0
-		'HPHR Volume':1:0
-		'SLIM TX3 MUX':0:ZERO
-		'SLIM TX5 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	10:1
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "Voice Headphones"
-	Comment "Headset Rx device for voice call"
-
-	EnableSequence
-		'SLIM_0_RX Channels':0:Two
-		'RX1 MIX1 INP1':0:RX1
-		'RX1 MIX1 INP2':0:RX6
-		'RX2 MIX1 INP1':0:RX2
-		'RX2 MIX1 INP2':0:RX7
-		'HPHL DAC Switch':1:1
-		'HPHR DAC Switch':1:1
-		'RX1 Digital Volume':1:68
-		'RX2 Digital Volume':1:68
-		'HPHL Volume':1:50
-		'HPHR Volume':1:50
-		'SLIM TX3 MUX':0:RMIX1
-		'SLIM TX5 MUX':0:RMIX2
-	EndSequence
-
-	DisableSequence
-		'RX1 MIX1 INP1':0:ZERO
-		'RX1 MIX1 INP2':0:ZERO
-		'RX2 MIX1 INP1':0:ZERO
-		'RX2 MIX1 INP2':0:ZERO
-		'HPHL DAC Switch':1:0
-		'HPHR DAC Switch':1:0
-		'RX1 Digital Volume':1:68
-		'RX2 Digital Volume':1:68
-		'HPHL Volume':1:0
-		'HPHR Volume':1:0
-		'SLIM TX3 MUX':0:ZERO
-		'SLIM TX5 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	10:1
-
-EndSection
-
-SectionDevice
-	Name "Speaker Headset"
-	Comment "Speaker Headset Rx combo device"
-
-	EnableSequence
-		'SLIM_0_RX Channels':0:Two
-		'RX3 MIX1 INP1':0:RX1
-		'RX3 MIX1 INP2':0:RX6
-		'RX5 MIX1 INP1':0:RX2
-		'RX5 MIX1 INP2':0:RX7
-		'RX4 DSM MUX':0:DSM_INV
-		'RX6 DSM MUX':0:DSM_INV
-		'RX3 Digital Volume':1:68
-		'LINEOUT1 Volume':1:66
-		'LINEOUT3 Volume':1:66
-		'RX1 MIX1 INP1':0:RX1
-		'RX1 MIX1 INP2':0:RX6
-		'RX2 MIX1 INP1':0:RX2
-		'RX2 MIX1 INP2':0:RX7
-		'HPHL DAC Switch':1:1
-		'HPHR DAC Switch':1:1
-		'RX1 Digital Volume':1:53
-		'RX2 Digital Volume':1:53
-		'HPHL Volume':1:80
-		'HPHR Volume':1:80
-		'SLIM TX3 MUX':0:RMIX1
-		'SLIM TX5 MUX':0:RMIX2
-	EndSequence
-
-	DisableSequence
-		'RX3 MIX1 INP1':0:ZERO
-		'RX3 MIX1 INP2':0:ZERO
-		'RX5 MIX1 INP1':0:ZERO
-		'RX5 MIX1 INP2':0:ZERO
-		'RX4 DSM MUX':0:CIC_OUT
-		'RX6 DSM MUX':0:CIC_OUT
-		'RX3 Digital Volume':1:68
-		'LINEOUT1 Volume':1:0
-		'LINEOUT3 Volume':1:0
-		'RX1 MIX1 INP1':0:ZERO
-		'RX1 MIX1 INP2':0:ZERO
-		'RX2 MIX1 INP1':0:ZERO
-		'RX2 MIX1 INP2':0:ZERO
-		'HPHL DAC Switch':1:0
-		'HPHR DAC Switch':1:0
-		'RX1 Digital Volume':1:68
-		'RX2 Digital Volume':1:68
-		'HPHL Volume':1:0
-		'HPHR Volume':1:0
-		'SLIM TX3 MUX':0:ZERO
-		'SLIM TX5 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	10:1
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "Speaker ANC Headset"
-	Comment "Speaker ANC Headset Rx combo device"
-
-	EnableSequence
-		'SLIM_0_RX Channels':0:Two
-		'RX3 MIX1 INP1':0:RX1
-		'RX3 MIX1 INP2':0:RX6
-		'RX5 MIX1 INP1':0:RX2
-		'RX5 MIX1 INP2':0:RX7
-		'RX4 DSM MUX':0:DSM_INV
-		'RX6 DSM MUX':0:DSM_INV
-		'LINEOUT1 Volume':1:66
-		'LINEOUT2 Volume':1:66
-		'LINEOUT3 Volume':1:66
-		'LINEOUT4 Volume':1:66
-		'RX1 MIX1 INP1':0:RX1
-		'RX1 MIX1 INP2':0:RX6
-		'RX2 MIX1 INP1':0:RX2
-		'RX2 MIX1 INP2':0:RX7
-		'HPHL DAC Switch':1:1
-		'HPHR DAC Switch':1:1
-		'HPHL Volume':1:70
-		'HPHR Volume':1:70
-		'RX1 Digital Volume':1:65
-		'RX2 Digital Volume':1:65
-		'ANC Slot':1:0
-		'ANC1 MUX':0:ADC4
-		'ANC2 MUX':0:ADC3
-		'ANC1 FB MUX':0:EAR_HPH_L
-		'ADC3 Volume':1:85
-		'ADC4 Volume':1:85
-		'MICBIAS3 CAPLESS Switch':1:1
-		'MICBIAS1 CAPLESS Switch':1:1
-		'SLIM TX3 MUX':0:RMIX1
-		'SLIM TX5 MUX':0:RMIX2
-	EndSequence
-
-	DisableSequence
-		'RX3 MIX1 INP1':0:ZERO
-		'RX3 MIX1 INP2':0:ZERO
-		'RX5 MIX1 INP1':0:ZERO
-		'RX5 MIX1 INP2':0:ZERO
-		'RX4 DSM MUX':0:CIC_OUT
-		'RX6 DSM MUX':0:CIC_OUT
-		'LINEOUT1 Volume':1:0
-		'LINEOUT2 Volume':1:0
-		'LINEOUT3 Volume':1:0
-		'LINEOUT4 Volume':1:0
-		'RX1 MIX1 INP1':0:ZERO
-		'RX1 MIX1 INP2':0:ZERO
-		'RX2 MIX1 INP1':0:ZERO
-		'RX2 MIX1 INP2':0:ZERO
-		'HPHL DAC Switch':1:0
-		'HPHR DAC Switch':1:0
-		'HPHL Volume':1:0
-		'HPHR Volume':1:0
-		'RX1 Digital Volume':1:0
-		'RX2 Digital Volume':1:0
-		'ANC1 MUX':0:ZERO
-		'ANC2 MUX':0:ZERO
-		'ADC3 Volume':1:0
-		'ADC4 Volume':1:0
-		'MICBIAS3 CAPLESS Switch':1:0
-		'MICBIAS1 CAPLESS Switch':1:0
-		'SLIM TX3 MUX':0:ZERO
-		'SLIM TX5 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	26:1
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "ANC Headset"
-	Comment "ANC Headset Rx device"
-
-	EnableSequence
-		'SLIM_0_RX Channels':0:Two
-		'RX1 MIX1 INP1':0:RX1
-		'RX1 MIX1 INP2':0:RX6
-		'RX2 MIX1 INP1':0:RX2
-		'RX2 MIX1 INP2':0:RX7
-		'HPHL DAC Switch':1:1
-		'HPHR DAC Switch':1:1
-		'HPHL Volume':1:70
-		'HPHR Volume':1:70
-		'RX1 Digital Volume':1:65
-		'RX2 Digital Volume':1:65
-		'ANC Slot':1:0
-		'ANC1 MUX':0:ADC4
-		'ANC2 MUX':0:ADC3
-		'ANC1 FB MUX':0:EAR_HPH_L
-		'ADC3 Volume':1:85
-		'ADC4 Volume':1:85
-		'MICBIAS3 CAPLESS Switch':1:1
-		'MICBIAS1 CAPLESS Switch':1:1
-		'SLIM TX3 MUX':0:RMIX1
-		'SLIM TX5 MUX':0:RMIX2
-	EndSequence
-
-	DisableSequence
-		'RX1 MIX1 INP1':0:ZERO
-		'RX1 MIX1 INP2':0:ZERO
-		'RX2 MIX1 INP1':0:ZERO
-		'RX2 MIX1 INP2':0:ZERO
-		'HPHL DAC Switch':1:0
-		'HPHR DAC Switch':1:0
-		'HPHL Volume':1:0
-		'HPHR Volume':1:0
-		'RX1 Digital Volume':1:0
-		'RX2 Digital Volume':1:0
-		'ANC1 MUX':0:ZERO
-		'ANC2 MUX':0:ZERO
-		'ADC3 Volume':1:0
-		'ADC4 Volume':1:0
-		'MICBIAS3 CAPLESS Switch':1:0
-		'MICBIAS1 CAPLESS Switch':1:0
-		'SLIM TX3 MUX':0:ZERO
-		'SLIM TX5 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	26:1
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "Voice ANC Headset"
-	Comment "ANC Headset Rx device for voice call"
-
-	EnableSequence
-		'SLIM_0_RX Channels':0:Two
-		'RX1 MIX1 INP1':0:RX1
-		'RX1 MIX1 INP2':0:RX6
-		'RX2 MIX1 INP1':0:RX2
-		'RX2 MIX1 INP2':0:RX7
-		'HPHL DAC Switch':1:1
-		'HPHR DAC Switch':1:1
-		'HPHL Volume':1:70
-		'HPHR Volume':1:70
-		'RX1 Digital Volume':1:65
-		'RX2 Digital Volume':1:65
-		'ANC Slot':1:0
-		'ANC1 MUX':0:ADC4
-		'ANC2 MUX':0:ADC3
-		'ANC1 FB MUX':0:EAR_HPH_L
-		'ADC3 Volume':1:85
-		'ADC4 Volume':1:85
-		'MICBIAS3 CAPLESS Switch':1:1
-		'MICBIAS1 CAPLESS Switch':1:1
-		'SLIM TX3 MUX':0:RMIX1
-		'SLIM TX5 MUX':0:RMIX2
-	EndSequence
-
-	DisableSequence
-		'RX1 MIX1 INP1':0:ZERO
-		'RX1 MIX1 INP2':0:ZERO
-		'RX2 MIX1 INP1':0:ZERO
-		'RX2 MIX1 INP2':0:ZERO
-		'HPHL DAC Switch':1:0
-		'HPHR DAC Switch':1:0
-		'HPHL Volume':1:0
-		'HPHR Volume':1:0
-		'RX1 Digital Volume':1:0
-		'RX2 Digital Volume':1:0
-		'ANC1 MUX':0:ZERO
-		'ANC2 MUX':0:ZERO
-		'ADC3 Volume':1:0
-		'ADC4 Volume':1:0
-		'MICBIAS3 CAPLESS Switch':1:0
-		'MICBIAS1 CAPLESS Switch':1:0
-		'SLIM TX3 MUX':0:ZERO
-		'SLIM TX5 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	26:1
-
-EndSection
-
-SectionDevice
-	Name "Speaker FM Tx"
-	Comment "Speaker FM Tx combo device"
-
-	EnableSequence
-		'SLIM_0_RX Channels':0:Two
-		'RX3 MIX1 INP1':0:RX1
-		'RX3 MIX1 INP2':0:RX6
-		'RX5 MIX1 INP1':0:RX2
-		'RX5 MIX1 INP2':0:RX7
-		'RX4 DSM MUX':0:DSM_INV
-		'RX6 DSM MUX':0:DSM_INV
-		'LINEOUT1 Volume':1:66
-		'LINEOUT2 Volume':1:66
-		'LINEOUT3 Volume':1:66
-		'LINEOUT4 Volume':1:66
-		'SLIM TX3 MUX':0:RMIX3
-		'SLIM TX5 MUX':0:RMIX5
-	EndSequence
-
-	DisableSequence
-		'RX3 MIX1 INP1':0:ZERO
-		'RX3 MIX1 INP2':0:ZERO
-		'RX5 MIX1 INP1':0:ZERO
-		'RX5 MIX1 INP2':0:ZERO
-		'RX4 DSM MUX':0:CIC_OUT
-		'RX6 DSM MUX':0:CIC_OUT
-		'LINEOUT1 Volume':1:0
-		'LINEOUT2 Volume':1:0
-		'LINEOUT3 Volume':1:0
-		'LINEOUT4 Volume':1:0
-		'SLIM TX3 MUX':0:ZERO
-		'SLIM TX5 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	15:1
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "Headset"
-	Comment "Headset Tx device"
-
-	EnableSequence
-		'SLIM_0_TX Channels':0:One
-		'SLIM TX7 MUX':0:DEC8
-		'DEC8 MUX':0:ADC2
-		'ADC2 Volume':1:66
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC8 MUX':0:ZERO
-		'ADC2 Volume':1:0
-	EndSequence
-
-	ACDBID	8:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "Voice Headset"
-	Comment "Headset Tx device for Voice call"
-
-	EnableSequence
-		'SLIM_0_TX Channels':0:One
-		'SLIM TX7 MUX':0:DEC8
-		'DEC8 MUX':0:ADC2
-		'ADC2 Volume':1:66
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC8 MUX':0:ZERO
-		'ADC2 Volume':1:0
-	EndSequence
-
-	ACDBID	8:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "HeadsetVM Tx"
-	Comment "Headset Tx device"
-
-	EnableSequence
-		'SLIM_0_TX Channels':0:One
-		'SLIM TX7 MUX':0:DEC8
-		'DEC8 MUX':0:ADC2
-		'ADC2 Volume':1:100
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC8 MUX':0:ZERO
-		'ADC2 Volume':1:0
-	EndSequence
-
-	ACDBID	8:2
-
-EndSection
-
-SectionDevice
-	Name "Handset"
-	Comment "Handset Tx device"
-
-	EnableSequence
-		'SLIM_0_TX Channels':0:One
-		'SLIM TX7 MUX':0:DEC7
-		'DEC7 MUX':0:ADC1
-		'DEC7 Volume':1:80
-		'ADC1 Volume':1:100
-		'MICBIAS1 CAPLESS Switch':1:0
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC7 MUX':0:ZERO
-		'DEC7 Volume':1:0
-		'ADC1 Volume':1:0
-		'MICBIAS1 CAPLESS Switch':1:1
-	EndSequence
-
-	ACDBID	4:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "HandsetVM Tx"
-	Comment "Handset Tx device"
-
-	EnableSequence
-		'SLIM_0_TX Channels':0:One
-		'SLIM TX7 MUX':0:DEC7
-		'DEC7 MUX':0:ADC1
-		'DEC7 Volume':1:60
-		'ADC1 Volume':1:100
-		'MICBIAS1 CAPLESS Switch':1:0
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC7 MUX':0:ZERO
-		'DEC7 Volume':1:60
-		'ADC1 Volume':1:0
-		'MICBIAS1 CAPLESS Switch':1:1
-	EndSequence
-
-	ACDBID	4:2
-
-EndSection
-
-SectionDevice
-	Name "Camcorder Tx"
-	Comment "Camcorder Tx device"
-
-	EnableSequence
-		'SLIM_0_TX Channels':0:One
-		'SLIM TX7 MUX':0:DEC6
-		'DEC6 MUX':0:ADC1
-		'DEC6 Volume':1:72
-		'ADC1 Volume':1:100
-		'MICBIAS1 CAPLESS Switch':1:0
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC6 MUX':0:ZERO
-		'DEC6 Volume':1:60
-		'ADC1 Volume':1:0
-		'MICBIAS1 CAPLESS Switch':1:1
-	EndSequence
-
-	ACDBID	61:2
-
-EndSection
-
-SectionDevice
-	Name "Voice Recognition"
-	Comment "Voice Recognition Tx device"
-
-	EnableSequence
-		'SLIM_0_TX Channels':0:One
-		'SLIM TX7 MUX':0:DEC6
-		'DEC6 MUX':0:ADC1
-		'DEC6 Volume':1:68
-		'ADC1 Volume':1:66
-		'MICBIAS1 CAPLESS Switch':1:0
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC6 MUX':0:ZERO
-		'DEC6 Volume':1:68
-		'ADC1 Volume':1:0
-		'MICBIAS1 CAPLESS Switch':1:1
-	EndSequence
-
-	ACDBID	62:2
-
-EndSection
-
-SectionDevice
-	Name "TTY Handset Analog Tx"
-	Comment "TTY Handset Analog Tx device"
-
-	EnableSequence
-		'SLIM_0_TX Channels':0:One
-		'SLIM TX7 MUX':0:DEC7
-		'DEC7 MUX':0:ADC1
-		'DEC7 Volume':1:68
-		'ADC1 Volume':1:100
-		'MICBIAS1 CAPLESS Switch':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC7 MUX':0:ZERO
-		'DEC7 Volume':1:68
-		'ADC1 Volume':1:0
-		'MICBIAS1 CAPLESS Switch':1:0
-	EndSequence
-
-	ACDBID	36:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "Line"
-	Comment "Speaker Tx device"
-
-	EnableSequence
-		'SLIM_0_TX Channels':0:One
-		'SLIM TX7 MUX':0:DEC4
-		'DEC4 MUX':0:ADC3
-		'DEC4 Volume':1:80
-		'ADC3 Volume':1:100
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC4 MUX':0:ZERO
-		'DEC4 Volume':1:60
-		'ADC3 Volume':1:0
-	EndSequence
-
-	ACDBID	4:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "Voice Line"
-	Comment "Speaker Tx device for voice call"
-
-	EnableSequence
-		'SLIM_0_TX Channels':0:One
-		'SLIM TX7 MUX':0:DEC4
-		'DEC4 MUX':0:ADC3
-		'DEC4 Volume':1:70
-		'ADC3 Volume':1:100
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC4 MUX':0:ZERO
-		'DEC4 Volume':1:68
-		'ADC3 Volume':1:100
-	EndSequence
-
-	ACDBID	11:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "TTY Handset Tx"
-	Comment "TTY VCO Handset Tx device"
-
-	EnableSequence
-		'SLIM_0_TX Channels':0:One
-		'SLIM TX7 MUX':0:DEC7
-		'DEC7 MUX':0:ADC1
-		'DEC7 Volume':1:68
-		'ADC1 Volume':1:100
-		'MICBIAS1 CAPLESS Switch':1:0
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC7 MUX':0:ZERO
-		'DEC7 Volume':1:68
-		'ADC1 Volume':1:0
-		'MICBIAS1 CAPLESS Switch':1:1
-	EndSequence
-
-	ACDBID	36:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "HDMI Tx"
-	Comment "HDMI Tx device"
-
-	EnableSequence
-		'SLIM_0_TX Channels':0:One
-		'SLIM TX7 MUX':0:DEC7
-		'DEC7 MUX':0:DMIC1
-		'MICBIAS1 CAPLESS Switch':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC7 MUX':0:ZERO
-		'MICBIAS1 CAPLESS Switch':1:0
-	EndSequence
-
-	ACDBID	4:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-
-	Name "QMIC"
-	Comment "Quad mic device"
-
-	EnableSequence
-		'SLIM_0_TX Channels':0:Four
-		'SLIM TX7 MUX':0:DEC7
-		'DEC7 MUX':0:DMIC1
-		'SLIM TX8 MUX':0:DEC8
-		'DEC8 MUX':0:DMIC2
-		'SLIM TX9 MUX':0:DEC10
-		'DEC10 MUX':0:DMIC3
-		'SLIM TX10 MUX':0:DEC9
-		'DEC9 MUX':0:DMIC4
-		'MICBIAS1 CAPLESS Switch':1:1
-		'MICBIAS3 CAPLESS Switch':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC7 MUX':0:ZERO
-		'SLIM TX8 MUX':0:ZERO
-		'DEC8 MUX':0:ZERO
-		'SLIM TX9 MUX':0:ZERO
-		'DEC9 MUX':0:ZERO
-		'SLIM TX10 MUX':0:ZERO
-		'DEC10 MUX':0:ZERO
-		'MICBIAS1 CAPLESS Switch':1:0
-		'MICBIAS3 CAPLESS Switch':1:0
-	EndSequence
-
-	ACDBID	19:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "DMIC Broadside"
-	Comment "Dual MIC Broadside Tx device"
-
-	EnableSequence
-		'SLIM TX7 MUX':0:DEC7
-		'DEC7 MUX':0:DMIC1
-		'SLIM TX8 MUX':0:DEC8
-		'DEC8 MUX':0:DMIC2
-		'MICBIAS1 CAPLESS Switch':1:1
-		'SLIM_0_TX Channels':0:Two
-		'IIR1 INP1 Volume':1:50
-		'IIR1 INP1 MUX':0:DEC7
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC7 MUX':0:ZERO
-		'SLIM TX8 MUX':0:ZERO
-		'DEC8 MUX':0:ZERO
-		'MICBIAS1 CAPLESS Switch':1:0
-		'IIR1 INP1 Volume':1:0
-		'IIR1 INP1 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	5:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "DMIC Broadside Voice Rec"
-	Comment "Dual MIC Broadside Tx device Voice recognition"
-
-	EnableSequence
-		'SLIM TX7 MUX':0:DEC7
-		'DEC7 MUX':0:DMIC1
-		'SLIM TX8 MUX':0:DEC8
-		'DEC8 MUX':0:DMIC2
-		'MICBIAS1 CAPLESS Switch':1:1
-		'SLIM_0_TX Channels':0:Two
-		'IIR1 INP1 Volume':1:50
-		'IIR1 INP1 MUX':0:DEC7
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC7 MUX':0:ZERO
-		'SLIM TX8 MUX':0:ZERO
-		'DEC8 MUX':0:ZERO
-		'MICBIAS1 CAPLESS Switch':1:0
-		'IIR1 INP1 Volume':1:0
-		'IIR1 INP1 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	62:2
-
-EndSection
-
-SectionDevice
-	Name "DMIC Endfire"
-	Comment "Dual MIC Endfire Tx device"
-
-	EnableSequence
-		'SLIM TX7 MUX':0:DEC7
-		'DEC7 MUX':0:ADC1
-		'SLIM TX8 MUX':0:DEC9
-		'DEC9 MUX':0:ADC3
-		'DEC7 Volume':1:66
-		'ADC1 Volume':1:100
-		'DEC9 Volume':1:66
-		'ADC3 Volume':1:100
-		'SLIM_0_TX Channels':0:Two
-		'MICBIAS1 CAPLESS Switch':1:0
-		'RX1 MIX2 INP1':0:IIR1
-		'RX2 MIX2 INP1':0:IIR1
-		'IIR1 INP1 Volume':1:51
-		'IIR1 INP1 MUX':0:DEC7
-	EndSequence
-
-	DisableSequence
-		'DEC7 Volume':1:60
-		'DEC9 Volume':1:60
-		'SLIM TX7 MUX':0:ZERO
-		'DEC7 MUX':0:ZERO
-		'SLIM TX8 MUX':0:ZERO
-		'DEC9 MUX':0:ZERO
-		'MICBIAS1 CAPLESS Switch':1:1
-		'RX1 MIX2 INP1':0:ZERO
-		'RX2 MIX2 INP1':0:ZERO
-		'IIR1 INP1 Volume':1:0
-		'IIR1 INP1 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	6:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "DMIC Endfire TMUS"
-	Comment "Dual MIC Endfire Tx device"
-
-	EnableSequence
-		'SLIM TX7 MUX':0:DEC7
-		'DEC7 MUX':0:ADC1
-		'SLIM TX8 MUX':0:DEC9
-		'DEC9 MUX':0:ADC3
-		'DEC7 Volume':1:66
-		'ADC1 Volume':1:100
-		'DEC9 Volume':1:66
-		'ADC3 Volume':1:100
-		'SLIM_0_TX Channels':0:Two
-		'MICBIAS1 CAPLESS Switch':1:0
-		'RX1 MIX2 INP1':0:IIR1
-		'RX2 MIX2 INP1':0:IIR1
-		'IIR1 INP1 Volume':1:51
-		'IIR1 INP1 MUX':0:DEC7
-	EndSequence
-
-	DisableSequence
-		'DEC7 Volume':1:60
-		'DEC9 Volume':1:60
-		'SLIM TX7 MUX':0:ZERO
-		'DEC7 MUX':0:ZERO
-		'SLIM TX8 MUX':0:ZERO
-		'DEC9 MUX':0:ZERO
-		'MICBIAS1 CAPLESS Switch':1:1
-		'RX1 MIX2 INP1':0:ZERO
-		'RX2 MIX2 INP1':0:ZERO
-		'IIR1 INP1 Volume':1:0
-		'IIR1 INP1 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	91:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "DMIC Endfire Voice Rec"
-	Comment "Dual MIC Endfire Tx device voice recognition"
-
-	EnableSequence
-		'SLIM TX7 MUX':0:DEC7
-		'DEC7 MUX':0:ADC1
-		'SLIM TX8 MUX':0:DEC9
-		'DEC9 MUX':0:ADC3
-		'DEC7 Volume':1:66
-		'ADC1 Volume':1:100
-		'DEC9 Volume':1:66
-		'ADC3 Volume':1:100
-		'SLIM_0_TX Channels':0:Two
-		'MICBIAS1 CAPLESS Switch':1:0
-		'RX1 MIX2 INP1':0:IIR1
-		'RX2 MIX2 INP1':0:IIR1
-		'IIR1 INP1 Volume':1:51
-		'IIR1 INP1 MUX':0:DEC7
-	EndSequence
-
-	DisableSequence
-		'DEC7 Volume':1:60
-		'DEC9 Volume':1:60
-		'SLIM TX7 MUX':0:ZERO
-		'DEC7 MUX':0:ZERO
-		'SLIM TX8 MUX':0:ZERO
-		'DEC9 MUX':0:ZERO
-		'MICBIAS1 CAPLESS Switch':1:1
-		'RX1 MIX2 INP1':0:ZERO
-		'RX2 MIX2 INP1':0:ZERO
-		'IIR1 INP1 Volume':1:0
-		'IIR1 INP1 MUX':0:ZERO
-	EndSequence
-
-	ACDBID	62:2
-
-EndSection
-
-SectionDevice
-	Name "Speaker DMIC Broadside"
-	Comment "Dual MIC Broadside Tx device"
-
-	EnableSequence
-		'SLIM TX7 MUX':0:DEC7
-		'DEC7 MUX':0:DMIC1
-		'SLIM TX8 MUX':0:DEC8
-		'DEC8 MUX':0:DMIC2
-		'MICBIAS1 CAPLESS Switch':1:1
-		'SLIM_0_TX Channels':0:Two
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC7 MUX':0:ZERO
-		'SLIM TX8 MUX':0:ZERO
-		'DEC8 MUX':0:ZERO
-		'MICBIAS1 CAPLESS Switch':1:0
-	EndSequence
-
-	ACDBID	12:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "Speaker DMIC Endfire"
-	Comment "Dual MIC Endfire Tx device"
-
-	EnableSequence
-		'SLIM TX7 MUX':0:DEC7
-		'DEC7 MUX':0:ADC1
-		'SLIM TX8 MUX':0:DEC9
-		'DEC9 MUX':0:ADC3
-		'MICBIAS1 CAPLESS Switch':1:1
-		'MICBIAS3 CAPLESS Switch':1:1
-		'SLIM_0_TX Channels':0:Two
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC7 MUX':0:ZERO
-		'SLIM TX8 MUX':0:ZERO
-		'DEC9 MUX':0:ZERO
-		'MICBIAS1 CAPLESS Switch':1:0
-		'MICBIAS3 CAPLESS Switch':1:0
-	EndSequence
-
-	ACDBID	13:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "TTY Headset Rx"
-	Comment "TTY Headset Rx device"
-
-	EnableSequence
-		'TTY Mode':0:VCO
-		'SLIM_0_RX Channels':0:One
-		'RX1 MIX1 INP1':0:RX6
-		'RX2 MIX1 INP1':0:RX6
-		'HPHL DAC Switch':1:1
-		'HPHR DAC Switch':1:1
-		'RX1 Digital Volume':1:68
-		'RX2 Digital Volume':1:68
-		'HPHL Volume':1:80
-		'HPHR Volume':1:80
-	EndSequence
-
-	DisableSequence
-		'TTY Mode':0:ZERO
-		'RX1 MIX1 INP1':0:ZERO
-		'RX2 MIX1 INP1':0:ZERO
-		'HPHL DAC Switch':1:0
-		'HPHR DAC Switch':1:0
-		'RX1 Digital Volume':1:68
-		'RX2 Digital Volume':1:68
-		'HPHL Volume':1:0
-		'HPHR Volume':1:0
-	EndSequence
-
-	ACDBID	17:1
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "TTY Headset Tx"
-	Comment "TTY Headset Tx device"
-
-	EnableSequence
-		'TTY Mode':0:HCO
-		'SLIM_0_TX Channels':0:One
-		'SLIM TX7 MUX':0:DEC8
-		'DEC8 MUX':0:ADC2
-		'DEC8 Volume':1:68
-		'ADC2 Volume':1:100
-	EndSequence
-
-	DisableSequence
-		'TTY Mode':0:ZERO
-		'SLIM TX7 MUX':0:ZERO
-		'DEC8 MUX':0:ZERO
-		'DEC8 Volume':1:68
-		'ADC2 Volume':1:0
-	EndSequence
-
-	ACDBID	16:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "TTY Full Rx"
-	Comment "TTY Full Rx device"
-
-	EnableSequence
-		'TTY Mode':0:FULL
-		'SLIM_0_RX Channels':0:One
-		'RX1 MIX1 INP1':0:RX6
-		'RX2 MIX1 INP1':0:RX6
-		'HPHL DAC Switch':1:1
-		'HPHR DAC Switch':1:1
-		'RX1 Digital Volume':1:68
-		'RX2 Digital Volume':1:68
-		'HPHL Volume':1:80
-		'HPHR Volume':1:80
-	EndSequence
-
-	DisableSequence
-		'TTY Mode':0:ZERO
-		'RX1 MIX1 INP1':0:ZERO
-		'RX2 MIX1 INP1':0:ZERO
-		'HPHL DAC Switch':1:0
-		'HPHR DAC Switch':1:0
-		'RX1 Digital Volume':1:68
-		'RX2 Digital Volume':1:68
-		'HPHL Volume':1:0
-		'HPHR Volume':1:0
-	EndSequence
-
-	ACDBID	17:1
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "TTY Full Tx"
-	Comment "TTY Full Tx device"
-
-	EnableSequence
-		'SLIM_0_TX Channels':0:One
-		'SLIM TX7 MUX':0:DEC8
-		'DEC8 MUX':0:ADC2
-		'DEC8 Volume':1:68
-		'ADC2 Volume':1:100
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC8 MUX':0:ZERO
-		'DEC8 Volume':1:68
-		'ADC2 Volume':1:0
-	EndSequence
-
-	ACDBID	16:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "BT SCO Rx"
-	Comment "BT SCO Rx device"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	ACDBID	22:1
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "BT SCO Tx"
-	Comment "BT SCO Tx device"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	ACDBID	21:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "BT SCO WB Rx"
-	Comment "BT SCO Rx device"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	ACDBID	39:1
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "BT SCO WB Tx"
-	Comment "BT SCO Tx device"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	ACDBID	38:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "HDMI"
-	Comment "HDMI Rx device"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	ACDBID	18:1
-	EffectsMixerCTL "SRS TruMedia HDMI"
-
-EndSection
-
-
-SectionDevice
-        Name "HDMI Speaker"
-        Comment "HDMI Speaker Rx device"
-
-        EnableSequence
-                'SLIM_0_RX Channels':0:One
-                'RX3 MIX1 INP1':0:RX1
-                'RX3 MIX1 INP2':0:RX6
-                'RX4 DSM MUX':0:DSM_INV
-                'RX3 Digital Volume':1:68
-                'LINEOUT1 Volume':1:100
-                'LINEOUT3 Volume':1:100
-                'SLIM TX3 MUX':0:RMIX3
-        EndSequence
-
-        DisableSequence
-                'RX3 MIX1 INP1':0:ZERO
-                'RX3 MIX1 INP2':0:ZERO
-                'RX4 DSM MUX':0:CIC_OUT
-                'RX3 Digital Volume':1:68
-                'LINEOUT1 Volume':1:0
-                'LINEOUT3 Volume':1:0
-                'SLIM TX3 MUX':0:ZERO
-        EndSequence
-
-        ACDBID  14:1
-        EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "FM Tx"
-	Comment "FM Tx device"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	ACDBID	0:1
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "PROXY Rx"
-	Comment "PROXY Rx device"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	ACDBID	0:1
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "PROXY Tx"
-	Comment "PROXY Tx device"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	ACDBID	0:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "SSR QMIC"
-	Comment "Quad mic device for Surround Sound Recording"
-
-	EnableSequence
-		'SLIM_0_TX Channels':0:Four
-		'SLIM TX7 MUX':0:DEC9
-		'DEC9 MUX':0:DMIC4
-		'SLIM TX8 MUX':0:DEC10
-		'DEC10 MUX':0:DMIC3
-		'SLIM TX9 MUX':0:DEC7
-		'DEC7 MUX':0:DMIC1
-		'SLIM TX10 MUX':0:DEC6
-		'DEC6 MUX':0:DMIC6
-		'MICBIAS1 CAPLESS Switch':1:1
-		'MICBIAS3 CAPLESS Switch':1:1
-		'MICBIAS4 CAPLESS Switch':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIM TX7 MUX':0:ZERO
-		'DEC9 MUX':0:ZERO
-		'SLIM TX8 MUX':0:ZERO
-		'DEC10 MUX':0:ZERO
-		'SLIM TX9 MUX':0:ZERO
-		'DEC7 MUX':0:ZERO
-		'SLIM TX10 MUX':0:ZERO
-		'DEC6 MUX':0:ZERO
-		'MICBIAS1 CAPLESS Switch':1:0
-		'MICBIAS3 CAPLESS Switch':1:0
-		'MICBIAS4 CAPLESS Switch':1:0
-	EndSequence
-
-	ACDBID  46:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
-	Name "Dummy Tx"
-	Comment "Dummy Tx device, not a physical device just for routing"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	ACDBID	0:2
-	EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionModifier
-	Name "Play Music"
-	Comment "Modifier for music playback"
-
-	EnableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Play MusicHeadphones"
-	Comment "Modifier for music playback via headphone"
-
-	EnableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
-		'SLIM_0_RX Channels':0:Two
-		'RX1 MIX1 INP1':0:RX1
-		'RX1 MIX1 INP2':0:RX6
-		'RX2 MIX1 INP1':0:RX2
-		'RX2 MIX1 INP2':0:RX7
-		'HPHL DAC Switch':1:1
-		'HPHR DAC Switch':1:1
-		'RX1 Digital Volume':1:68
-		'RX2 Digital Volume':1:68
-		'HPHL Volume':1:50
-		'HPHR Volume':1:50
-		'SLIM TX3 MUX':0:RMIX1
-		'SLIM TX5 MUX':0:RMIX2
-	EndSequence
-
-	DisableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Play MusicSpeaker FM Tx"
-	Comment "Modifier for music playback"
-
-	EnableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Play MusicFM Tx"
-	Comment "Modifier for music playback on FM Tx"
-
-	EnableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Play MusicHDMI"
-	Comment "Modifier for music playback on HDMI"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia1':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Play MusicHDMI Speaker"
-	Comment "Modifier for music playback on HDMI Speaker"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia1':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia1':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Play MusicBT SCO Rx"
-	Comment "Modifier for music playback"
-
-	EnableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Play MusicBT SCO WB Rx"
-	Comment "Modifier for music playback"
-
-	EnableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Play MusicPROXY Rx"
-
-	EnableSequence
-		'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
-	EndSequence
-
-	DisableSequence
-		'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Play FM"
-
-	EnableSequence
-		'Internal FM RX Volume':1:0
-		'SLIMBUS_0_RX Port Mixer INTERNAL_FM_TX':1:1
-		'SLIMBUS_DL_HL Switch':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIMBUS_0_RX Port Mixer INTERNAL_FM_TX':1:0
-		'SLIMBUS_DL_HL Switch':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 5
-	CapturePCM 6
-
-EndSection
-
-SectionModifier
-	Name "Play Music2"
-
-	EnableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionModifier
-	Name "Play Music2Speaker FM Tx"
-	Comment "Modifier for music playback"
-
-	EnableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionModifier
-	Name "Play Music2FM Tx"
-	Comment "Modifier for music playback on FM Tx"
-
-	EnableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionModifier
-	Name "Play Music2HDMI"
-	Comment "Modifier for music playback on HDMI"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionModifier
-	Name "Play Music2HDMI Speaker"
-	Comment "Modifier for music playback on HDMI Speaker"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia2':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia2':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionModifier
-	Name "Play Music2HDMI SPDIF"
-	Comment "Modifier for music playback on HDMI SPDIF"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia2':1:1
-		'SEC_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia2':1:0
-		'SEC_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionModifier
-	Name "Play Music2BT SCO Rx"
-	Comment "Modifier for music playback"
-
-	EnableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionModifier
-	Name "Play Music2BT SCO WB Rx"
-	Comment "Modifier for music playback"
-
-	EnableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionModifier
-	Name "Play Music2PROXY Rx"
-
-	EnableSequence
-		'AFE_PCM_RX Audio Mixer MultiMedia2':1:1
-	EndSequence
-
-	DisableSequence
-		'AFE_PCM_RX Audio Mixer MultiMedia2':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 1
-	PlaybackPCM 1
-
-EndSection
-
-SectionModifier
-	Name "Capture FM"
-
-	EnableSequence
-		'MultiMedia1 Mixer INTERNAL_FM_TX':1:1
-	EndSequence
-
-	DisableSequence
-		'MultiMedia1 Mixer INTERNAL_FM_TX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 0
-	CapturePCM 0
-
-EndSection
-
-SectionModifier
-	Name "Play LPA"
-
-	EnableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 4
-
-EndSection
-
-SectionModifier
-	Name "Play LPASpeaker FM Tx"
-
-	EnableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
-		'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
-		'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 4
-
-EndSection
-
-SectionModifier
-	Name "Play LPAFM Tx"
-
-	EnableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia3':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 4
-
-EndSection
-
-SectionModifier
-	Name "Play LPAHDMI"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia3':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia3':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 4
-
-EndSection
-
-SectionModifier
-	Name "Play LPAHDMI Speaker"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia3':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia3':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 4
-
-EndSection
-
-SectionModifier
-	Name "Play LPABT SCO Rx"
-
-	EnableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 4
-
-EndSection
-
-SectionModifier
-	Name "Play LPABT SCO WB Rx"
-
-	EnableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 4
-
-EndSection
-
-SectionModifier
-	Name "Play LPAPROXY Rx"
-
-	EnableSequence
-		'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
-	EndSequence
-
-	DisableSequence
-		'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 4
-
-EndSection
-
-SectionModifier
-	Name "Capture Music"
-
-	EnableSequence
-		'MultiMedia1 Mixer SLIM_0_TX':1:1
-	EndSequence
-
-	DisableSequence
-		'MultiMedia1 Mixer SLIM_0_TX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Capture MusicBT SCO Tx"
-
-	EnableSequence
-		'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:1
-	EndSequence
-
-	DisableSequence
-		'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Capture MusicBT SCO WB Tx"
-
-	EnableSequence
-		'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:1
-	EndSequence
-
-	DisableSequence
-		'MultiMedia1 Mixer INTERNAL_BT_SCO_TX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Play Voice"
-
-	EnableSequence
-		'STUB_RX Mixer Voice Stub':1:1
-		'Voice Stub Tx Mixer STUB_TX_HL':1:1
-		'Voice Stub Tx Mixer STUB_1_TX_HL':1:1
-	EndSequence
-
-	DisableSequence
-		'STUB_RX Mixer Voice Stub':1:0
-		'Voice Stub Tx Mixer STUB_TX_HL':1:0
-		'Voice Stub Tx Mixer STUB_1_TX_HL':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 12
-	CapturePCM 12
-
-EndSection
-
-SectionModifier
-	Name "Play VoiceHDMI"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-		'Voice Stub Tx Mixer SLIM_3_TX':1:0
-		'HDMI_RX_Voice Mixer Voice Stub':1:0
-		'HDMI_RX Port Mixer SLIM_3_TX':1:0
-		'Voice Stub Tx Mixer STUB_TX_HL':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 12
-	CapturePCM 12
-
-EndSection
-
-SectionModifier
-	Name "Play VoiceHDMI Tx"
-
-	EnableSequence
-		'Voice Stub Tx Mixer SLIM_3_TX':1:1
-		'HDMI_RX_Voice Mixer Voice Stub':1:1
-		'HDMI_RX Port Mixer SLIM_3_TX':1:1
-		'Voice Stub Tx Mixer STUB_TX_HL':1:1
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 12
-	CapturePCM 12
-
-EndSection
-
-SectionModifier
-	Name "Play VoiceBT SCO Rx"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-		'Internal BTSCO SampleRate':0:8000
-		'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:0
-		'SLIMBUS_1_RX Mixer Voice Stub':1:0
-		'Voice Stub Tx Mixer SLIM_1_TX':1:0
-		'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:0
-		'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:0
-		'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:0
-		'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:0
-		'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 12
-	CapturePCM 12
-
-EndSection
-
-SectionModifier
-	Name "Play VoiceBT SCO Tx"
-
-	EnableSequence
-		'Internal BTSCO SampleRate':0:8000
-		'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:1
-		'SLIMBUS_1_RX Mixer Voice Stub':1:1
-		'Voice Stub Tx Mixer SLIM_1_TX':1:1
-		'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:1
-		'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:1
-		'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:1
-		'SLIM_3_RX Channels':0:One
-		'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:1
-		'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:1
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 12
-	CapturePCM 12
-
-EndSection
-
-SectionModifier
-	Name "Play VoiceBT SCO WB Rx"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-		'Internal BTSCO SampleRate':0:8000
-		'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:0
-		'SLIMBUS_1_RX Mixer Voice Stub':1:0
-		'Voice Stub Tx Mixer SLIM_1_TX':1:0
-		'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:0
-		'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:0
-		'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:0
-		'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:0
-		'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 12
-	CapturePCM 12
-
-EndSection
-
-SectionModifier
-	Name "Play VoiceBT SCO WB Tx"
-
-	EnableSequence
-		'Internal BTSCO SampleRate':0:16000
-		'Voice Stub Tx Mixer INTERNAL_BT_SCO_TX':1:1
-		'SLIMBUS_1_RX Mixer Voice Stub':1:1
-		'Voice Stub Tx Mixer SLIM_1_TX':1:1
-		'INTERNAL_BT_SCO_RX_Voice Mixer Voice Stub':1:1
-		'SLIMBUS_1_RX Port Mixer INTERNAL_BT_SCO_TX':1:1
-		'INTERNAL_BT_SCO_RX Port Mixer SLIM_1_TX':1:1
-		'SLIM_3_RX Channels':0:One
-		'SLIMBUS_3_RX_Voice Mixer Voice Stub':1:1
-		'SLIMBUS_3_RX Port Mixer INTERNAL_BT_SCO_RX':1:1
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 12
-	CapturePCM 12
-
-EndSection
-
-SectionModifier
-	Name "Capture Voice"
-
-	EnableSequence
-		'MultiMedia1 Mixer SLIM_4_TX':1:1
-	EndSequence
-
-	DisableSequence
-		'MultiMedia1 Mixer SLIM_4_TX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 0
-	CapturePCM 0
-
-EndSection
-
-SectionModifier
-	Name "Capture A2DP FM"
-
-	EnableSequence
-		'MultiMedia2 Mixer INTERNAL_FM_TX':1:1
-	EndSequence
-
-	DisableSequence
-		'MultiMedia2 Mixer INTERNAL_FM_TX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 1
-	CapturePCM 1
-
-EndSection
-
-SectionModifier
-	Name "Play VOIP"
-
-	EnableSequence
-		'SLIM_0_RX_Voice Mixer Voip':1:1
-		'Voip_Tx Mixer SLIM_0_TX_Voip':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIM_0_RX_Voice Mixer Voip':1:0
-		'Voip_Tx Mixer SLIM_0_TX_Voip':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 3
-	CapturePCM 3
-
-EndSection
-
-SectionModifier
-	Name "Play VOIPBT SCO Rx"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-		'Internal BTSCO SampleRate':0:8000
-		'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:0
-		'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 3
-	CapturePCM 3
-
-EndSection
-
-SectionModifier
-	Name "Play VOIPBT SCO Tx"
-
-	EnableSequence
-		'Internal BTSCO SampleRate':0:8000
-		'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:1
-		'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:1
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 3
-	CapturePCM 3
-
-EndSection
-
-SectionModifier
-	Name "Play VOIPBT SCO WB Rx"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-		'Internal BTSCO SampleRate':0:8000
-		'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:0
-		'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 3
-	CapturePCM 3
-
-EndSection
-
-SectionModifier
-	Name "Play VOIPBT SCO WB Tx"
-
-	EnableSequence
-		'Internal BTSCO SampleRate':0:16000
-		'INTERNAL_BT_SCO_RX_Voice Mixer Voip':1:1
-		'Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip':1:1
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 3
-	CapturePCM 3
-
-EndSection
-
-SectionModifier
-	Name "Play VOIPHDMI"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-		'HDMI_RX_Voice Mixer Voip':1:0
-		'Voip_Tx Mixer SLIM_0_TX_Voip':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 3
-	CapturePCM 3
-
-EndSection
-
-SectionModifier
-	Name "Play VOIPHDMI Tx"
-
-	EnableSequence
-		'HDMI_RX_Voice Mixer Voip':1:1
-		'Voip_Tx Mixer SLIM_0_TX_Voip':1:1
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 3
-	CapturePCM 3
-
-EndSection
-
-SectionModifier
-	Name "Play MusicPROXY Tx"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Play LPAPROXY Tx"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Play FMPROXY Tx"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Capture MusicPROXY Rx"
-
-	EnableSequence
-	EndSequence
-
-	DisableSequence
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Capture MusicSSR QMIC"
-
-	EnableSequence
-		'MultiMedia1 Mixer SLIM_0_TX':1:1
-	EndSequence
-
-	DisableSequence
-		'MultiMedia1 Mixer SLIM_0_TX':1:0
-	EndSequence
-
-	# ALSA PCMs
-	CapturePCM 0
-	PlaybackPCM 0
-
-EndSection
-
-SectionModifier
-	Name "Play Tunnel"
-
-	EnableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 9
-
-EndSection
-
-SectionModifier
-	Name "Play TunnelSpeaker FM Tx"
-
-	EnableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
-		'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:1
-	EndSequence
-
-	DisableSequence
-		'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
-		'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 9
-
-EndSection
-
-SectionModifier
-	Name "Play TunnelFM Tx"
-
-	EnableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_FM_RX Audio Mixer MultiMedia4':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 9
-
-EndSection
-
-SectionModifier
-	Name "Play TunnelHDMI"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia4':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia4':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 9
-
-EndSection
-
-SectionModifier
-	Name "Play TunnelHDMI Speaker"
-
-	EnableSequence
-		'HDMI Mixer MultiMedia4':1:1
-		'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
-	EndSequence
-
-	DisableSequence
-		'HDMI Mixer MultiMedia4':1:0
-		'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 9
-
-EndSection
-
-SectionModifier
-	Name "Play TunnelBT SCO Rx"
-
-	EnableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 9
-
-EndSection
-
-SectionModifier
-	Name "Play TunnelBT SCO WB Rx"
-
-	EnableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:1
-	EndSequence
-
-	DisableSequence
-		'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 9
-
-EndSection
-
-SectionModifier
-	Name "Play TunnelPROXY Rx"
-
-	EnableSequence
-		'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
-	EndSequence
-
-	DisableSequence
-		'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
-	EndSequence
-
-	# ALSA PCMs
-	PlaybackPCM 9
-
-EndSection
-
-
-SectionModifier
-        Name "Capture Lowlatency Music"
-
-        EnableSequence
-                'MultiMedia5 Mixer SLIM_0_TX':1:1
-        EndSequence
-
-        DisableSequence
-                'MultiMedia5 Mixer SLIM_0_TX':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionModifier
-        Name "Capture Lowlatency Music"
-
-        EnableSequence
-                'MultiMedia5 Mixer SLIM_0_TX':1:1
-        EndSequence
-
-        DisableSequence
-                'MultiMedia5 Mixer SLIM_0_TX':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-
-SectionModifier
-        Name "Capture Lowlatency MusicBT SCO Tx"
-
-        EnableSequence
-                'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:1
-        EndSequence
-
-        DisableSequence
-                'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionModifier
-        Name "Capture Lowlatency MusicBT SCO WB Tx"
-
-        EnableSequence
-                'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:1
-        EndSequence
-
-        DisableSequence
-                'MultiMedia5 Mixer INTERNAL_BT_SCO_TX':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionModifier
-        Name "Play Lowlatency Music"
-        Comment "Modifier for Lowlatency music playback"
-
-        EnableSequence
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionModifier
-        Name "Play Lowlatency MusicSpeaker FM Tx"
-        Comment "Modifier for Lowlatency music playback"
-
-        EnableSequence
-                'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:1
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:0
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionModifier
-        Name "Play Lowlatency MusicFM Tx"
-        Comment "Modifier for Lowlatency music playback on FM Tx"
-
-        EnableSequence
-                'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'INTERNAL_FM_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionModifier
-        Name "Play Lowlatency MusicHDMI"
-        Comment "Modifier for music playback on HDMI"
-
-        EnableSequence
-                'HDMI Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'HDMI Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionModifier
-        Name "Play Lowlatency MusicHDMI Speaker"
-        Comment "Modifier for music playback on HDMI Speaker"
-
-        EnableSequence
-                'HDMI Mixer MultiMedia5':1:1
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'HDMI Mixer MultiMedia5':1:0
-                'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-EndSection
-
-SectionModifier
-        Name "Play Lowlatency MusicBT SCO Rx"
-        Comment "Modifier for music playback"
-
-        EnableSequence
-                'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionModifier
-        Name "Play Lowlatency MusicBT SCO WB Rx"
-        Comment "Modifier for music playback"
-
-        EnableSequence
-                'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionModifier
-        Name "Play Lowlatency MusicPROXY Rx"
-
-        EnableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionModifier
-        Name "Play Lowlatency MusicBT SCO Rx"
-        Comment "Modifier for music playback"
-
-        EnableSequence
-                'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionModifier
-        Name "Play Lowlatency MusicBT SCO WB Rx"
-        Comment "Modifier for music playback"
-
-        EnableSequence
-                'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-
-SectionModifier
-        Name "Play Lowlatency MusicPROXY Rx"
-
-        EnableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:1
-        EndSequence
-
-        DisableSequence
-                'AFE_PCM_RX Audio Mixer MultiMedia5':1:0
-        EndSequence
-
-        # ALSA PCMs
-        CapturePCM 14
-        PlaybackPCM 14
-
-EndSection
-# End of master file
diff --git a/ueventd.mako.rc b/ueventd.mako.rc
index b299e6b..f7ca672 100644
--- a/ueventd.mako.rc
+++ b/ueventd.mako.rc
@@ -1,5 +1,5 @@
-/dev/smd3                 0660   bluetooth  bluetooth
-/dev/smd2                 0660   bluetooth  bluetooth
+/dev/smd3                 0660   bluetooth  net_bt_stack
+/dev/smd2                 0660   bluetooth  net_bt_stack
 /dev/uinput               0660   system     bluetooth
 /dev/ttyHS0               0600   bluetooth  bluetooth
 /dev/ttyMSM0              0600   bluetooth  bluetooth
diff --git a/vendor_owner_info.txt b/vendor_owner_info.txt
index 095b762..74ab8a2 100644
--- a/vendor_owner_info.txt
+++ b/vendor_owner_info.txt
@@ -42,25 +42,25 @@
 system/vendor/firmware/wcnss.b05:qcom
 system/vendor/firmware/wcnss.mdt:qcom
 system/bin/ks:qcom
-system/lib/egl/libEGL_adreno.so:qcom
-system/lib/egl/libGLESv1_CM_adreno.so:qcom
-system/lib/egl/libGLESv2_adreno.so:qcom
-system/lib/egl/libplayback_adreno.so:qcom
-system/lib/egl/libq3dtools_adreno.so:qcom
+system/vendor/lib/egl/libEGL_adreno.so:qcom
+system/vendor/lib/egl/libGLESv1_CM_adreno.so:qcom
+system/vendor/lib/egl/libGLESv2_adreno.so:qcom
+system/vendor/lib/egl/libplayback_adreno.so:qcom
+system/vendor/lib/egl/libq3dtools_adreno.so:qcom
 system/lib/libAKM.so:lge
-system/lib/libCB.so:qcom
+system/vendor/lib/libCB.so:qcom
 system/lib/libCommandSvc.so:qcom
 system/lib/libDxHdcp.so:lge
 system/lib/libI420colorconvert.so:qcom
 system/lib/libQSEEComAPI.so:qcom
 system/lib/libacdbdata.so:lge
 system/lib/libacdbloader.so:qcom
-system/lib/libadreno_utils.so:qcom
+system/vendor/lib/libadreno_utils.so:qcom
 system/lib/libaudcal.so:qcom
 system/lib/libaudioalsa.so:qcom
 system/lib/libcamera_fast_af.so:lge
-system/lib/libc2d30-a3xx.so:qcom
-system/lib/libc2d30.so:qcom
+system/vendor/lib/libc2d30-a3xx.so:qcom
+system/vendor/lib/libc2d30.so:qcom
 system/lib/libchromatix_imx111_default_video.so:qcom
 system/lib/libchromatix_imx111_preview.so:qcom
 system/lib/libchromatix_imx111_zsl.so:qcom
@@ -91,9 +91,9 @@
 system/lib/libdrmdiag.so:qcom
 system/lib/libdrmfs.so:qcom
 system/lib/libdrmtime.so:qcom
-system/lib/librs_adreno_sha1.so:qcom
-system/lib/librs_adreno.so:qcom
-system/lib/libRSDriver_adreno.so:qcom
+system/vendor/lib/librs_adreno_sha1.so:qcom
+system/vendor/lib/librs_adreno.so:qcom
+system/vendor/lib/libRSDriver_adreno.so:qcom
 system/lib/libdsi_netctrl.so:qcom
 system/lib/libdsprofile.so:qcom
 system/lib/libdss.so:qcom
@@ -167,15 +167,16 @@
 system/vendor/firmware/a300_pfp.fw:qcom
 system/vendor/firmware/a300_pm4.fw:qcom
 system/lib/egl/eglsubAndroid.so:qcom
-system/lib/libC2D2.so:qcom
+system/vendor/lib/libC2D2.so:qcom
 system/lib/egl/libEGL_adreno200.so:qcom
 system/lib/egl/libGLESv1_CM_adreno200.so:qcom
 system/lib/egl/libGLESv2_adreno200.so:qcom
 system/lib/libc2d2_a3xx.so:qcom
-system/lib/libgsl.so:qcom
-system/lib/libllvm-a3xx.so:qcom
+system/vendor/lib/libgsl.so:qcom
+system/vendor/lib/libllvm-qcom.so:qcom
+system/vendor/lib/libbccQTI.so:qcom
 system/lib/egl/libq3dtools_adreno200.so:qcom
-system/lib/libsc-a3xx.so:qcom
+system/vendor/lib/libsc-a3xx.so:qcom
 system/lib/libgeofence.so:qcom
 system/lib/libidl.so:qcom
 system/lib/libmercury.so:qcom
diff --git a/wpa_supplicant_overlay.conf b/wpa_supplicant_overlay.conf
index 8f824e8..2137fb4 100644
--- a/wpa_supplicant_overlay.conf
+++ b/wpa_supplicant_overlay.conf
@@ -1,2 +1,3 @@
 disable_scan_offload=1
-tdls_external_control=1
\ No newline at end of file
+tdls_external_control=1
+no_ctrl_interface=
\ No newline at end of file