Skip to content

Instantly share code, notes, and snippets.

@championswimmer
Created July 11, 2013 21:22
Show Gist options
  • Save championswimmer/5979368 to your computer and use it in GitHub Desktop.
Save championswimmer/5979368 to your computer and use it in GitHub Desktop.
blue.diff
This file has been truncated, but you can view the full file.
diff --git a/Android.mk b/Android.mk
index 633ab40..f6cd116 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1,5 +1,5 @@
LOCAL_PATH := $(call my-dir)
-ifeq ($(TARGET_BOOTLOADER_BOARD_NAME),blue)
+ifeq ($(BOARD_VENDOR_PLATFORM),blue)
include $(call all-subdir-makefiles,$(LOCAL_PATH))
endif
diff --git a/BoardConfigCommon.mk b/BoardConfigCommon.mk
index f100a42..94c4b84 100644
--- a/BoardConfigCommon.mk
+++ b/BoardConfigCommon.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2012 The CyanogenMod Project
+# Copyright (C) 2013 The CyanogenMod Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,107 +12,125 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-TARGET_SPECIFIC_HEADER_PATH := device/sony/blue-common/include
+# inherit from Sony common
+-include device/sony/common/BoardConfigCommon.mk
+
+# inherit from qcom-common
+-include device/sony/qcom-common/BoardConfigCommon.mk
-TARGET_NO_BOOTLOADER := true
-TARGET_NO_RADIOIMAGE := true
-BOARD_HAS_NO_MISC_PARTITION := true
+TARGET_SPECIFIC_HEADER_PATH := device/sony/blue-common/include
# Kernel properties
TARGET_KERNEL_SOURCE := kernel/sony/msm8x60
-#BOARD_USES_UNCOMPRESSED_BOOT := true
-#TARGET_KERNEL_CUSTOM_TOOLCHAIN := arm-eabi-4.4.3
# Platform
-TARGET_BOOTLOADER_BOARD_NAME := blue
+TARGET_BOOTLOADER_BOARD_NAME := MSM8960
TARGET_BOARD_PLATFORM := msm8960
-TARGET_BOARD_PLATFORM_GPU := qcom-adreno200
+BOARD_VENDOR_PLATFORM := blue
# Architecture
-TARGET_ARCH := arm
-TARGET_CPU_ABI := armeabi-v7a
-TARGET_CPU_ABI2 := armeabi
-TARGET_ARCH_VARIANT := armv7-a-neon
TARGET_ARCH_VARIANT_CPU := cortex-a9
-TARGET_CPU_SMP := true
-# Flags
-COMMON_GLOBAL_CFLAGS += -DQCOM_HARDWARE -D__ARM_USE_PLD -D__ARM_CACHE_LINE_SIZE=64
+# Architecture
+TARGET_GLOBAL_CFLAGS += -mfpu=neon-vfpv4 -mfloat-abi=softfp
+TARGET_GLOBAL_CPPFLAGS += -mfpu=neon-vfpv4 -mfloat-abi=softfp
+COMMON_GLOBAL_CFLAGS += -D__ARM_USE_PLD -D__ARM_CACHE_LINE_SIZE=64
# Krait optimizations
TARGET_USE_KRAIT_BIONIC_OPTIMIZATION := true
-TARGET_USE_KRAIT_PLD_SET := true
-TARGET_KRAIT_BIONIC_PLDOFFS := 10
+TARGET_USE_KRAIT_PLD_SET := true
+TARGET_KRAIT_BIONIC_PLDOFFS := 10
TARGET_KRAIT_BIONIC_PLDTHRESH := 10
-TARGET_KRAIT_BIONIC_BBTHRESH := 64
-TARGET_KRAIT_BIONIC_PLDSIZE := 64
+TARGET_KRAIT_BIONIC_BBTHRESH := 64
+TARGET_KRAIT_BIONIC_PLDSIZE := 64
# Kernel information
BOARD_KERNEL_CMDLINE := # This is ignored by sony's bootloader
BOARD_KERNEL_BASE := 0x80200000
BOARD_RECOVERY_BASE := 0x80200000
BOARD_KERNEL_PAGESIZE := 2048
-BOARD_FORCE_RAMDISK_ADDRESS := 0x81500000
+SONY_FORCE_RAMDISK_ADDRESS := 0x81700000
+BOARD_MKBOOTIMG_ARGS := --ramdisk_offset 0x01500000
# Wifi
+BOARD_HAS_QCOM_WLAN := true
+BOARD_WLAN_DEVICE := qcwcn
WPA_SUPPLICANT_VERSION := VER_0_8_X
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
+BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
BOARD_HOSTAPD_DRIVER := NL80211
-BOARD_WLAN_DEVICE := qcwcn
-WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/prima_wlan.ko"
-WIFI_DRIVER_MODULE_NAME := "prima_wlan"
-
-# Graphics
-USE_OPENGL_RENDERER := true
-TARGET_USES_ION := true
-TARGET_USES_C2D_COMPOSITION := true
-BOARD_EGL_CFG := device/sony/blue-common/config/egl.cfg
-
-TARGET_PROVIDES_LIBLIGHTS := true
+BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
+WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/wlan.ko"
+WIFI_DRIVER_MODULE_NAME := "wlan"
+WIFI_DRIVER_FW_PATH_STA := "sta"
+WIFI_DRIVER_FW_PATH_AP := "ap"
-# Camera
-COMMON_GLOBAL_CFLAGS += -DICS_CAMERA_BLOB
-BOARD_NEEDS_MEMORYHEAPPMEM := true
-
-# QCOM hardware
-BOARD_USES_QCOM_HARDWARE := true
+TARGET_PROVIDES_LIBLIGHT := true
# GPS
-BOARD_USES_QCOM_GPS := true
-BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := sony
-BOARD_VENDOR_QCOM_GPS_LOC_API_AMSS_VERSION := 50000
+BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := $(TARGET_BOARD_PLATFORM)
+TARGET_NO_RPC := true
# Bluetooth
-BOARD_HAVE_BLUETOOTH := true
-TARGET_CUSTOM_BLUEDROID := ../../../device/sony/blue-common/bluedroid/bluetooth.c
+BOARD_HAVE_BLUETOOTH_QCOM := true
+BLUETOOTH_HCI_USE_MCT := true
-# Webkit
-ENABLE_WEBGL := true
-TARGET_FORCE_CPU_UPLOAD := true
-DYNAMIC_SHARED_LIBV8SO := true
+# Vold
+TARGET_USE_CUSTOM_LUN_FILE_PATH := /sys/devices/platform/msm_hsusb/gadget/lun%d/file
# Custom boot
TARGET_RECOVERY_PIXEL_FORMAT := "RGBX_8888"
-TARGET_RECOVERY_PRE_COMMAND := "touch /cache/recovery/boot;sync;"
BOARD_CUSTOM_BOOTIMG_MK := device/sony/blue-common/custombootimg.mk
-TARGET_RELEASETOOL_OTA_FROM_TARGET_SCRIPT := device/sony/blue-common/releasetools/sony_ota_from_target_files
+TARGET_RELEASETOOLS_EXTENSIONS := device/sony/blue-common
BOARD_CUSTOM_GRAPHICS := ../../../device/sony/blue-common/recovery/recovery.c
BOARD_CUSTOM_RECOVERY_KEYMAPPING := ../../device/sony/blue-common/recovery/recovery-keys.c
BOARD_USE_CUSTOM_RECOVERY_FONT := \"roboto_15x24.h\"
-TARGET_USE_CUSTOM_LUN_FILE_PATH := /sys/devices/platform/msm_hsusb/gadget/lun%d/file
-
# Audio
BOARD_USES_ALSA_AUDIO := true
+TARGET_USES_QCOM_MM_AUDIO := true
+BOARD_AUDIO_EXPECTS_MIN_BUFFERSIZE := true
+BOARD_AUDIO_CAF_LEGACY_INPUT_BUFFERSIZE := true
+
+# FM radio
+BOARD_USES_STE_FMRADIO := true
+COMMON_GLOBAL_CFLAGS += -DSTE_FM
# Sensors
SOMC_CFG_SENSORS := true
-SOMC_CFG_SENSORS_LIGHT_LIBALS := yes
+SOMC_CFG_SENSORS_LIGHT_AS3676 := yes
+SOMC_CFG_SENSORS_LIGHT_AS3676_MAXRANGE := 9000
+SOMC_CFG_SENSORS_LIGHT_AS3676_PATH := "/sys/devices/i2c-10/10-0040/adc_als_value"
SOMC_CFG_SENSORS_GYRO_MPU3050 := yes
SOMC_CFG_SENSORS_PROXIMITY_APDS9702 := yes
SOMC_CFG_SENSORS_ACCEL_BMA250NA_INPUT := yes
SOMC_CFG_SENSORS_COMPASS_AK8972 := yes
-# FM radio
-BOARD_USES_STE_FMRADIO := true
-COMMON_GLOBAL_CFLAGS += -DSTE_FM
+# Internal storage fuse daemon permissions
+TARGET_FUSE_SDCARD_UID := 2800
+TARGET_FUSE_SDCARD_GID := 2800
+
+#TWRP flags
+DEVICE_RESOLUTION := 720x1280
+RECOVERY_GRAPHICS_USE_LINELENGTH := true
+RECOVERY_SDCARD_ON_DATA := true
+TW_HAS_NO_RECOVERY_PARTITION := true
+TW_FLASH_FROM_STORAGE := true
+TW_EXTERNAL_STORAGE_PATH := "/external_sd"
+TW_EXTERNAL_STORAGE_MOUNT_POINT := "external_sd"
+TW_DEFAULT_EXTERNAL_STORAGE := true
+#TW_INCLUDE_CRYPTO := true
+TW_INCLUDE_JB_CRYPTO := true
+TW_CRYPTO_FS_TYPE := "ext4"
+TW_CRYPTO_REAL_BLKDEV := "/dev/block/platform/msm_sdcc.1/by-name/Userdata"
+TW_CRYPTO_MNT_POINT := "/data"
+TW_CRYPTO_FS_OPTIONS := "nosuid,nodev,barrier=1,noauto_da_alloc,discard"
+TW_CRYPTO_FS_FLAGS := "0x00000406"
+TW_CRYPTO_KEY_LOC := "footer"
+TW_INCLUDE_FUSE_EXFAT := true
+TW_BOARD_CUSTOM_GRAPHICS := ../../../device/sony/blue-common/recovery/twrpgraphics.c
+TW_MAX_BRIGHTNESS := 255
+TW_NO_USB_STORAGE := true
+
+# inherit from the proprietary version
+-include vendor/sony/blue-common/BoardConfigVendor.mk
diff --git a/XperiaSettings/Android.mk b/XperiaSettings/Android.mk
deleted file mode 100644
index eda9808..0000000
--- a/XperiaSettings/Android.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_STATIC_JAVA_LIBRARIES := android-support-v13
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := XperiaSettings
-LOCAL_CERTIFICATE := platform
-
-include $(BUILD_PACKAGE)
-
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/XperiaSettings/AndroidManifest.xml b/XperiaSettings/AndroidManifest.xml
deleted file mode 100644
index 6d56e49..0000000
--- a/XperiaSettings/AndroidManifest.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.cyanogenmod.settings.device"
- android:sharedUserId="android.uid.system" >
-
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
- <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
-
- <application android:label="@string/app_name">
- <activity
- android:name="com.cyanogenmod.settings.device.DeviceSettings"
- android:icon="@drawable/ic_launcher_cmdevicesettings"
- android:label="@string/app_name" >
- <intent-filter>
- <action android:name="com.cyanogenmod.action.LAUNCH_DEVICE_SETTINGS" />
- <action android:name="android.intent.action.MAIN" />
- </intent-filter>
- </activity>
-
- <receiver android:name=".Startup">
- <intent-filter android:priority="100">
- <action android:name="android.intent.action.BOOT_COMPLETED" />
- </intent-filter>
- </receiver>
-
- <activity android:name=".HapticFragmentActivity" />
-
- </application>
-</manifest>
diff --git a/XperiaSettings/res/drawable/ic_launcher_cmdevicesettings.png b/XperiaSettings/res/drawable/ic_launcher_cmdevicesettings.png
deleted file mode 100755
index 66de9c3..0000000
Binary files a/XperiaSettings/res/drawable/ic_launcher_cmdevicesettings.png and /dev/null differ
diff --git a/XperiaSettings/res/layout/preference_dialog_vibrator_intensity.xml b/XperiaSettings/res/layout/preference_dialog_vibrator_intensity.xml
deleted file mode 100644
index 5daf090..0000000
--- a/XperiaSettings/res/layout/preference_dialog_vibrator_intensity.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center_horizontal"
- android:paddingBottom="20dip">
-
- <TextView android:id="@+id/vibrator_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/vibrator_text"
- android:paddingTop="10dip"
- android:paddingLeft="20dip"
- android:paddingRight="20dip" />
- <TextView android:id="@+id/vibrator_value"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentRight="true"
- android:paddingTop="10dip"
- android:paddingLeft="20dip"
- android:paddingRight="20dip" />
- <SeekBar android:id="@+id/vibrator_seekbar"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_below="@id/vibrator_text"
- android:paddingTop="2dip"
- android:paddingLeft="20dip"
- android:paddingRight="20dip" />
-
- </RelativeLayout>
-</ScrollView>
diff --git a/XperiaSettings/res/layout/top.xml b/XperiaSettings/res/layout/top.xml
deleted file mode 100755
index 744b568..0000000
--- a/XperiaSettings/res/layout/top.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/viewPager"
- android:layout_width="match_parent"
- android:layout_height="match_parent" />
-
diff --git a/XperiaSettings/res/values-de/strings.xml b/XperiaSettings/res/values-de/strings.xml
deleted file mode 100644
index 2cc8394..0000000
--- a/XperiaSettings/res/values-de/strings.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string name="app_name">Xperia Einstellungen</string>
-
- <!-- Haptic Preference -->
- <string name="category_haptic_title">Haptik</string>
-
- <!-- Subcategory Vibrator -->
- <string name="vibrator_subcat_title">Vibrator</string>
- <string name="vibrator_title">Vibrator Intensität</string>
- <string name="vibrator_text">Intensität</string>
-
-</resources>
diff --git a/XperiaSettings/res/values-it/strings.xml b/XperiaSettings/res/values-it/strings.xml
deleted file mode 100644
index acb2bce..0000000
--- a/XperiaSettings/res/values-it/strings.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string name="app_name">Impostazioni Xperia</string>
-
- <!-- Haptic Preference -->
- <string name="category_haptic_title">Vibrazione</string>
-
- <!-- Subcategory Vibrator -->
- <string name="vibrator_subcat_title">Vibrazione</string>
- <string name="vibrator_title">Intensità Vibrazione</string>
- <string name="vibrator_text">Intensità</string>
-
-</resources>
diff --git a/XperiaSettings/res/values/strings.xml b/XperiaSettings/res/values/strings.xml
deleted file mode 100644
index 5ad80e4..0000000
--- a/XperiaSettings/res/values/strings.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <string name="app_name">Xperia Settings</string>
-
- <!-- Haptic Preference -->
- <string name="category_haptic_title">Haptic</string>
-
- <!-- Subcategory Vibrator -->
- <string name="vibrator_subcat_title">Vibrator</string>
- <string name="vibrator_title">Vibrator Intensity</string>
- <string name="vibrator_text">Intensity</string>
-
-</resources>
diff --git a/XperiaSettings/res/xml/haptic_preferences.xml b/XperiaSettings/res/xml/haptic_preferences.xml
deleted file mode 100644
index 4c6a0bf..0000000
--- a/XperiaSettings/res/xml/haptic_preferences.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
- <PreferenceCategory
- android:title="@string/vibrator_subcat_title">
- <com.cyanogenmod.settings.device.VibratorIntensityPreference
- android:key="vibrator_intensity"
- android:title="@string/vibrator_title"
- android:dialogTitle="@string/vibrator_title" />
- </PreferenceCategory>
-</PreferenceScreen>
diff --git a/XperiaSettings/src/com/cyanogenmod/settings/device/DeviceSettings.java b/XperiaSettings/src/com/cyanogenmod/settings/device/DeviceSettings.java
deleted file mode 100644
index 74e4d0c..0000000
--- a/XperiaSettings/src/com/cyanogenmod/settings/device/DeviceSettings.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (C) 2012 The CyanogenMod 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.
- */
-
-package com.cyanogenmod.settings.device;
-
-import android.app.ActionBar;
-import android.app.ActionBar.Tab;
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.FragmentTransaction;
-import android.content.Context;
-import android.os.Bundle;
-import android.support.v4.app.FragmentActivity;
-import android.support.v13.app.FragmentPagerAdapter;
-import android.support.v4.view.ViewPager;
-import android.view.MenuItem;
-
-import com.cyanogenmod.settings.device.R;
-
-import java.util.ArrayList;
-
-public class DeviceSettings extends FragmentActivity {
-
- public static final String SHARED_PREFERENCES_BASENAME = "com.cyanogenmod.settings.device";
- public static final String ACTION_UPDATE_PREFERENCES = "com.cyanogenmod.settings.device.UPDATE";
- public static final String KEY_VIBRATOR_INTENSITY = "vibrator_intensity";
-
- ViewPager mViewPager;
- TabsAdapter mTabsAdapter;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- mViewPager = new ViewPager(this);
- mViewPager.setId(R.id.viewPager);
- setContentView(mViewPager);
-
- final ActionBar bar = getActionBar();
- bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
- bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE, ActionBar.DISPLAY_SHOW_TITLE);
- bar.setTitle(R.string.app_name);
- bar.setDisplayHomeAsUpEnabled(true);
-
- mTabsAdapter = new TabsAdapter(this, mViewPager);
- mTabsAdapter.addTab(bar.newTab().setText(R.string.category_haptic_title),
- HapticFragmentActivity.class, null);
-
-
- if (savedInstanceState != null) {
- bar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0));
- }
- }
-
- @Override
- protected void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- outState.putInt("tab", getActionBar().getSelectedNavigationIndex());
- }
-
- public static class TabsAdapter extends FragmentPagerAdapter
- implements ActionBar.TabListener, ViewPager.OnPageChangeListener {
- private final Context mContext;
- private final ActionBar mActionBar;
- private final ViewPager mViewPager;
- private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
-
- static final class TabInfo {
- private final Class<?> clss;
- private final Bundle args;
-
- TabInfo(Class<?> _class, Bundle _args) {
- clss = _class;
- args = _args;
- }
- }
-
- public TabsAdapter(Activity activity, ViewPager pager) {
- super(activity.getFragmentManager());
- mContext = activity;
- mActionBar = activity.getActionBar();
- mViewPager = pager;
- mViewPager.setAdapter(this);
- mViewPager.setOnPageChangeListener(this);
- }
-
- public void addTab(ActionBar.Tab tab, Class<?> clss, Bundle args) {
- TabInfo info = new TabInfo(clss, args);
- tab.setTag(info);
- tab.setTabListener(this);
- mTabs.add(info);
- mActionBar.addTab(tab);
- notifyDataSetChanged();
- }
-
- @Override
- public int getCount() {
- return mTabs.size();
- }
-
- @Override
- public Fragment getItem(int position) {
- TabInfo info = mTabs.get(position);
- return Fragment.instantiate(mContext, info.clss.getName(), info.args);
- }
-
- public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
- }
-
- public void onPageSelected(int position) {
- mActionBar.setSelectedNavigationItem(position);
- }
-
- public void onPageScrollStateChanged(int state) {
- }
-
- public void onTabSelected(Tab tab, FragmentTransaction ft) {
- Object tag = tab.getTag();
- for (int i=0; i<mTabs.size(); i++) {
- if (mTabs.get(i) == tag) {
- mViewPager.setCurrentItem(i);
- }
- }
- }
-
- public void onTabUnselected(Tab tab, FragmentTransaction ft) {
- }
-
- public void onTabReselected(Tab tab, FragmentTransaction ft) {
- }
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
- DeviceSettings.this.onBackPressed();
- default:
- return super.onOptionsItemSelected(item);
- }
- }
-}
diff --git a/XperiaSettings/src/com/cyanogenmod/settings/device/HapticFragmentActivity.java b/XperiaSettings/src/com/cyanogenmod/settings/device/HapticFragmentActivity.java
deleted file mode 100644
index 85757fb..0000000
--- a/XperiaSettings/src/com/cyanogenmod/settings/device/HapticFragmentActivity.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2012 The CyanogenMod 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.
- */
-
-package com.cyanogenmod.settings.device;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-import android.preference.CheckBoxPreference;
-import android.preference.ListPreference;
-import android.preference.Preference;
-import android.preference.PreferenceActivity;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceManager;
-import android.preference.PreferenceScreen;
-import android.util.Log;
-
-import com.cyanogenmod.settings.device.R;
-
-public class HapticFragmentActivity extends PreferenceFragment {
-
- private static final String PREF_ENABLED = "1";
- private static final String TAG = "XperiaSettings_Haptic";
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.haptic_preferences);
- PreferenceScreen prefSet = getPreferenceScreen();
- }
-
- @Override
- public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
- String boxValue;
- String key = preference.getKey();
- Log.w(TAG, "key: " + key);
- return true;
- }
-
- public static boolean isSupported(String FILE) {
- return Utils.fileExists(FILE);
- }
-
- public static void restore(Context context) {
- SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
- }
-}
diff --git a/XperiaSettings/src/com/cyanogenmod/settings/device/Startup.java b/XperiaSettings/src/com/cyanogenmod/settings/device/Startup.java
deleted file mode 100644
index 8f1e550..0000000
--- a/XperiaSettings/src/com/cyanogenmod/settings/device/Startup.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2012 The CyanogenMod 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.
- */
-
-package com.cyanogenmod.settings.device;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-
-public class Startup extends BroadcastReceiver {
-
- @Override
- public void onReceive(final Context context, final Intent bootintent) {
- HapticFragmentActivity.restore(context);
- VibratorIntensityPreference.restore(context);
- }
-}
diff --git a/XperiaSettings/src/com/cyanogenmod/settings/device/Utils.java b/XperiaSettings/src/com/cyanogenmod/settings/device/Utils.java
deleted file mode 100644
index 0273193..0000000
--- a/XperiaSettings/src/com/cyanogenmod/settings/device/Utils.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (C) 2012 The CyanogenMod 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.
- */
-
-package com.cyanogenmod.settings.device;
-
-import android.util.Log;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.SyncFailedException;
-import android.app.AlertDialog;
-import android.content.DialogInterface;
-import android.content.Context;
-
-public class Utils {
-
- private static final String TAG = "XperiaSettings_Utils";
- private static final String TAG_READ = "XperiaSettings_Utils_Read";
- private static final String TAG_WRITE = "XperiaSettings_Utils_Write";
-
- // Read value from sysfs interface
- public static String readOneLine(String sFile) {
- BufferedReader brBuffer;
- String sLine = null;
-
- try {
- brBuffer = new BufferedReader(new FileReader(sFile), 512);
- try {
- sLine = brBuffer.readLine();
- } finally {
- Log.w(TAG_READ, "file " + sFile + ": " + sLine);
- brBuffer.close();
- }
- } catch (Exception e) {
- Log.e(TAG_READ, "IO Exception when reading /sys/ file", e);
- }
- return sLine;
- }
-
- /**
- * Write a string value to the specified file.
- *
- * @param filename The filename
- * @param value The value
- */
- public static void writeValue(String filename, String value) {
- FileOutputStream fos = null;
- try {
- fos = new FileOutputStream(new File(filename), false);
- fos.write(value.getBytes());
- fos.flush();
- // fos.getFD().sync();
- } catch (FileNotFoundException ex) {
- Log.w(TAG, "file " + filename + " not found: " + ex);
- } catch (SyncFailedException ex) {
- Log.w(TAG, "file " + filename + " sync failed: " + ex);
- } catch (IOException ex) {
- Log.w(TAG, "IOException trying to sync " + filename + ": " + ex);
- } catch (RuntimeException ex) {
- Log.w(TAG, "exception while syncing file: ", ex);
- } finally {
- if (fos != null) {
- try {
- Log.w(TAG_WRITE, "file " + filename + ": " + value);
- fos.close();
- } catch (IOException ex) {
- Log.w(TAG, "IOException while closing synced file: ", ex);
- } catch (RuntimeException ex) {
- Log.w(TAG, "exception while closing file: ", ex);
- }
- }
- }
- }
-
- /**
- * Write a bool value to the specified file.
- *
- * @param filename The filename
- * @param value The value
- */
- public static void writeValue(String filename, Boolean value) {
- FileOutputStream fos = null;
- String sEnvia;
- try {
- fos = new FileOutputStream(new File(filename), false);
- if (value)
- sEnvia = "1";
- else
- sEnvia = "0";
- fos.write(sEnvia.getBytes());
- fos.flush();
- // fos.getFD().sync();
- } catch (FileNotFoundException ex) {
- Log.w(TAG, "file " + filename + " not found: " + ex);
- } catch (SyncFailedException ex) {
- Log.w(TAG, "file " + filename + " sync failed: " + ex);
- } catch (IOException ex) {
- Log.w(TAG, "IOException trying to sync " + filename + ": " + ex);
- } catch (RuntimeException ex) {
- Log.w(TAG, "exception while syncing file: ", ex);
- } finally {
- if (fos != null) {
- try {
- Log.w(TAG_WRITE, "file " + filename + ": " + value);
- fos.close();
- } catch (IOException ex) {
- Log.w(TAG, "IOException while closing synced file: ", ex);
- } catch (RuntimeException ex) {
- Log.w(TAG, "exception while closing file: ", ex);
- }
- }
- }
- }
-
- /**
- * Write the "color value" to the specified file. The value is scaled from
- * an integer to an unsigned integer by multiplying by 2.
- * @param filename The filename
- * @param value The value of max value Integer.MAX
- */
- public static void writeColor(String filename, int value) {
- writeValue(filename, String.valueOf((long) value * 2));
- }
-
- /**
- * Check if the specified file exists.
- * @param filename The filename
- * @return Whether the file exists or not
- */
- public static boolean fileExists(String filename) {
- return new File(filename).exists();
- }
-
-
- public static void showDialog(Context ctx, String title, String message) {
- final AlertDialog alertDialog = new AlertDialog.Builder(ctx).create();
- alertDialog.setTitle(title);
- alertDialog.setMessage(message);
- alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- alertDialog.dismiss();
- }
- });
- alertDialog.show();
- }
-}
diff --git a/XperiaSettings/src/com/cyanogenmod/settings/device/VibratorIntensityPreference.java b/XperiaSettings/src/com/cyanogenmod/settings/device/VibratorIntensityPreference.java
deleted file mode 100644
index c17b3a8..0000000
--- a/XperiaSettings/src/com/cyanogenmod/settings/device/VibratorIntensityPreference.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Copyright (C) 2011 The CyanogenMod 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.
- */
-
-package com.cyanogenmod.settings.device;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.content.SharedPreferences.Editor;
-import android.preference.DialogPreference;
-import android.preference.PreferenceManager;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.SeekBar;
-import android.widget.TextView;
-import android.widget.Button;
-import android.util.Log;
-
-/**
- * Special preference type that allows configuration of both the ring volume and
- * notification volume.
- */
-public class VibratorIntensityPreference extends DialogPreference {
-
- private static final String TAG = "XperiaSettings_Vibrator";
-
- private static final int[] SEEKBAR_ID = new int[] {
- R.id.vibrator_seekbar
- };
-
- private static final int[] VALUE_DISPLAY_ID = new int[] {
- R.id.vibrator_value
- };
-
- private static final String[] FILE_PATH = new String[] {
- "/sys/devices/i2c-12/12-0049/intensity",
- };
-
- private vibratorSeekBar mSeekBars[] = new vibratorSeekBar[1];
- private static final int MAX_VALUE = 8;
- private static final int OFFSET_VALUE = 0;
-
- // Track instances to know when to restore original color
- // (when the orientation changes, a new dialog is created before the old one
- // is destroyed)
- private static int sInstances = 0;
-
- public VibratorIntensityPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
-
- setDialogLayoutResource(R.layout.preference_dialog_vibrator_intensity);
- }
-
- @Override
- protected void onBindDialogView(View view) {
- super.onBindDialogView(view);
-
- sInstances++;
-
- for (int i = 0; i < SEEKBAR_ID.length; i++) {
- SeekBar seekBar = (SeekBar) view.findViewById(SEEKBAR_ID[i]);
- TextView valueDisplay = (TextView) view.findViewById(VALUE_DISPLAY_ID[i]);
- if (i < 3)
- mSeekBars[i] = new vibratorSeekBar(seekBar, valueDisplay, FILE_PATH[i], OFFSET_VALUE, MAX_VALUE);
- else
- mSeekBars[i] = new vibratorSeekBar(seekBar, valueDisplay, FILE_PATH[i], 0, 6);
- }
- }
-
- @Override
- protected void onDialogClosed(boolean positiveResult) {
- super.onDialogClosed(positiveResult);
-
- sInstances--;
-
- if (positiveResult) {
- for (vibratorSeekBar csb : mSeekBars) {
- csb.save();
- }
- } else if (sInstances == 0) {
- for (vibratorSeekBar csb : mSeekBars) {
- csb.reset();
- }
- }
- }
-
- /**
- * Restore screen color tuning from SharedPreferences. (Write to kernel.)
- *
- * @param context The context to read the SharedPreferences from
- */
- public static void restore(Context context) {
- if (!isSupported()) {
- return;
- }
-
- SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
-
- Boolean bFirstTime = sharedPrefs.getBoolean("FirstTimevibrator", true);
- for (String filePath : FILE_PATH) {
- String sDefaultValue = Utils.readOneLine(filePath);
- int iValue = sharedPrefs.getInt(filePath, Integer.valueOf(sDefaultValue));
- if (bFirstTime)
- Utils.writeValue(filePath, "4");
- else
- Utils.writeValue(filePath, String.valueOf((long) iValue));
- }
- if (bFirstTime)
- {
- SharedPreferences.Editor editor = sharedPrefs.edit();
- editor.putBoolean("FirstTimevibrator", false);
- editor.commit();
- }
- }
-
- /**
- * Check whether the running kernel supports setting vibrator intensity or not.
- *
- * @return Wether vibrator intensity is supported or not
- */
- public static boolean isSupported() {
- boolean supported = true;
- for (String filePath : FILE_PATH) {
- if (!Utils.fileExists(filePath)) {
- supported = false;
- }
- }
-
- return supported;
- }
-
- class vibratorSeekBar implements SeekBar.OnSeekBarChangeListener {
-
- private String mFilePath;
-
- private int mOriginal;
-
- private SeekBar mSeekBar;
-
- private TextView mValueDisplay;
-
- private int iOffset;
-
- private int iMax;
-
- public vibratorSeekBar(SeekBar seekBar, TextView valueDisplay, String filePath, Integer offsetValue, Integer maxValue) {
- int iValue;
-
- mSeekBar = seekBar;
- mValueDisplay = valueDisplay;
- mFilePath = filePath;
- iOffset = offsetValue;
- iMax = maxValue;
-
- SharedPreferences sharedPreferences = getSharedPreferences();
-
- // Read original value
- if (Utils.fileExists(mFilePath)) {
- String sDefaultValue = Utils.readOneLine(mFilePath);
- iValue = Integer.valueOf(sDefaultValue);
- } else {
- iValue = iMax - iOffset;
- }
- mOriginal = iValue;
-
- mSeekBar.setMax(iMax);
-
- reset();
- mSeekBar.setOnSeekBarChangeListener(this);
- }
-
- public void reset() {
- int iValue;
-
- iValue = mOriginal + iOffset;
- mSeekBar.setProgress(iValue);
- updateValue(mOriginal);
- }
-
- public void save() {
- int iValue;
-
- iValue = mSeekBar.getProgress() - iOffset;
- Editor editor = getEditor();
- editor.putInt(mFilePath, iValue);
- editor.commit();
- }
-
- @Override
- public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- int iValue;
-
- iValue = progress - iOffset;
- Utils.writeValue(mFilePath, String.valueOf((long) iValue));
- updateValue(iValue);
- }
-
- @Override
- public void onStartTrackingTouch(SeekBar seekBar) {
- // Do nothing
- }
-
- @Override
- public void onStopTrackingTouch(SeekBar seekBar) {
- // Do nothing
- }
-
- private void updateValue(int progress) {
- mValueDisplay.setText(String.format("%d", (int) progress));
- }
-
- public void setNewValue(int iValue) {
- mOriginal = iValue;
- reset();
- }
- }
-}
diff --git a/blue.mk b/blue.mk
index 2e46f65..c129bf2 100644
--- a/blue.mk
+++ b/blue.mk
@@ -1,5 +1,22 @@
+# Copyright (C) 2013 The CyanogenMod 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.
+
$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)
+# qcom common
+$(call inherit-product, device/sony/qcom-common/qcom-common.mk)
+
COMMON_PATH := device/sony/blue-common
DEVICE_PACKAGE_OVERLAYS += $(COMMON_PATH)/overlay
@@ -26,59 +43,65 @@ PRODUCT_COPY_FILES += \
# Ramdisk
PRODUCT_COPY_FILES += \
- $(COMMON_PATH)/prebuilt/mr:root/sbin/mr \
- $(COMMON_PATH)/prebuilt/logo_X.rle:root/logo.rle \
- $(COMMON_PATH)/config/fstab.sony:root/fstab.sony \
- $(COMMON_PATH)/config/fstab_sd.sony:root/fstab_sd.sony \
- $(COMMON_PATH)/config/init.netconfig.sh:system/etc/init.netconfig.sh \
- $(COMMON_PATH)/config/init.qcom-etc.rc:root/init.qcom-etc.rc \
- $(COMMON_PATH)/config/init.qcom.bt.sh:system/etc/init.qcom.bt.sh \
- $(COMMON_PATH)/config/init.qcom.efs.sync.sh:system/etc/init.qcom.efs.sync.sh \
- $(COMMON_PATH)/config/init.qcom.class_core.sh:root/init.qcom.class_core.sh \
- $(COMMON_PATH)/config/init.qcom.class_main.sh:root/init.qcom.class_main.sh \
- $(COMMON_PATH)/config/init.qcom.coex.sh:system/etc/init.qcom.coex.sh \
- $(COMMON_PATH)/config/init.qcom.fm.sh:system/etc/init.qcom.fm.sh \
- $(COMMON_PATH)/config/init.qcom.modem_links.sh:system/etc/init.qcom.modem_links.sh \
- $(COMMON_PATH)/config/init.qcom.post_boot.sh:system/etc/init.qcom.post_boot.sh \
- $(COMMON_PATH)/config/init.qcom.usb.rc:root/init.qcom.usb.rc \
- $(COMMON_PATH)/config/init.qcom.usb.sh:root/init.qcom.usb.sh \
- $(COMMON_PATH)/config/init.sony.rc:root/init.sony.rc \
- $(COMMON_PATH)/config/ueventd.sony.rc:root/ueventd.sony.rc
-
-# Script for fixing perms on internal sdcard
+ $(COMMON_PATH)/rootdir/init.qcom.rc:root/init.qcom.rc \
+ $(COMMON_PATH)/rootdir/fstab.qcom:root/fstab.qcom \
+ $(COMMON_PATH)/rootdir/fstab.qcom:recovery/root/fstab.qcom \
+ $(COMMON_PATH)/rootdir/init.recovery.qcom.rc:root/init.recovery.qcom.rc \
+ $(COMMON_PATH)/rootdir/system/etc/init.sony.bt.sh:system/etc/init.sony.bt.sh \
+ $(COMMON_PATH)/rootdir/ueventd.qcom.rc:root/ueventd.qcom.rc
+
+# Key and touchscreen files
PRODUCT_COPY_FILES += \
- $(COMMON_PATH)/prebuilt/fix_storage_permissions.sh:system/bin/fix_storage_permissions.sh
+ $(COMMON_PATH)/rootdir/system/usr/idc/sensor00_f11_sensor0.idc:system/usr/idc/sensor00_f11_sensor0.idc \
+ $(COMMON_PATH)/rootdir/system/usr/keylayout/msm8960-snd-card_Button_Jack.kl:system/usr/keylayout/msm8960-snd-card_Button_Jack.kl \
+ $(COMMON_PATH)/rootdir/system/usr/keylayout/gpio-keys.kl:system/usr/keylayout/gpio-keys.kl \
+ $(COMMON_PATH)/rootdir/system/usr/keylayout/pmic8xxx_pwrkey.kl:system/usr/keylayout/pmic8xxx_pwrkey.kl \
+ $(COMMON_PATH)/rootdir/system/usr/keylayout/simple_remote.kl:system/usr/keylayout/simple_remote.kl
-# Post recovery script
+# FM Radio
PRODUCT_COPY_FILES += \
- $(COMMON_PATH)/recovery/postrecoveryboot.sh:recovery/root/sbin/postrecoveryboot.sh
+ $(COMMON_PATH)/rootdir/system/etc/init.qcom.fm.sh:system/etc/init.qcom.fm.sh \
+ frameworks/native/data/etc/com.stericsson.hardware.fm.receiver.xml:system/etc/permissions/com.stericsson.hardware.fm.receiver.xml
-# CNE config
-PRODUCT_COPY_FILES += \
- $(COMMON_PATH)/config/OperatorPolicy.xml:system/etc/OperatorPolicy.xml \
- $(COMMON_PATH)/config/UserPolicy.xml:system/etc/UserPolicy.xml
+PRODUCT_PACKAGES += \
+ FmRadio
# Audio
PRODUCT_COPY_FILES += \
- $(COMMON_PATH)/config/audio_policy.conf:system/etc/audio_policy.conf \
- $(COMMON_PATH)/config/media_codecs.xml:system/etc/media_codecs.xml \
- $(COMMON_PATH)/config/snd_soc_msm_2x:system/etc/snd_soc_msm/snd_soc_msm_2x
+ $(COMMON_PATH)/rootdir/system/etc/audio_policy.conf:system/etc/audio_policy.conf \
+ $(COMMON_PATH)/rootdir/system/etc/snd_soc_msm/snd_soc_msm_2x:system/etc/snd_soc_msm/snd_soc_msm_2x
-# Thermal monitor configuration
+# Media
PRODUCT_COPY_FILES += \
- $(COMMON_PATH)/config/thermald.conf:system/etc/thermald.conf
+ $(COMMON_PATH)/rootdir/system/etc/media_profiles.xml:system/etc/media_profiles.xml
# GPS
PRODUCT_COPY_FILES += \
- $(COMMON_PATH)/config/gps.conf:system/etc/gps.conf
+ $(COMMON_PATH)/rootdir/system/etc/gps.conf:system/etc/gps.conf
+
+# WPA supplicant config
+PRODUCT_COPY_FILES += \
+ $(COMMON_PATH)/rootdir/system/etc/wpa_supplicant.conf:system/etc/wifi/wpa_supplicant.conf
-# EGL config
+# Prima wifi config
PRODUCT_COPY_FILES += \
- $(COMMON_PATH)/config/egl.cfg:system/lib/egl/egl.cfg
+ $(COMMON_PATH)/rootdir/system/etc/firmware/wlan/prima/WCNSS_qcom_cfg.ini:system/etc/firmware/wlan/prima/WCNSS_qcom_cfg.ini
-# WPA supplicant config
+# Vold
+PRODUCT_COPY_FILES += \
+ $(COMMON_PATH)/rootdir/system/etc/vold.fstab:system/etc/vold.fstab
+
+# Script for fixing perms on internal sdcard
+PRODUCT_COPY_FILES += \
+ $(COMMON_PATH)/rootdir/system/bin/fix_storage_permissions.sh:system/bin/fix_storage_permissions.sh
+
+# Post recovery script
+PRODUCT_COPY_FILES += \
+ $(COMMON_PATH)/recovery/postrecoveryboot.sh:recovery/root/sbin/postrecoveryboot.sh
+
+# Thermal monitor configuration
PRODUCT_COPY_FILES += \
- $(COMMON_PATH)/config/wpa_supplicant.conf:system/etc/wifi/wpa_supplicant.conf
+ $(COMMON_PATH)/rootdir/system/etc/thermald.conf:system/etc/thermald.conf
# NFC Support
PRODUCT_PACKAGES += \
@@ -88,195 +111,122 @@ PRODUCT_PACKAGES += \
Tag \
com.android.nfc_extras
+# Recovery
+PRODUCT_PACKAGES += \
+ extract_elf_ramdisk
+
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/com.android.nfc_extras.xml:system/etc/permissions/com.android.nfc_extras.xml
# NFCEE access control
ifeq ($(TARGET_BUILD_VARIANT),user)
- NFCEE_ACCESS_PATH := $(COMMON_PATH)/config/nfcee_access.xml
+ NFCEE_ACCESS_PATH := $(COMMON_PATH)/rootdir/system/etc/nfcee_access.xml
else
- NFCEE_ACCESS_PATH := $(COMMON_PATH)/config/nfcee_access_debug.xml
+ NFCEE_ACCESS_PATH := $(COMMON_PATH)/rootdir/system/etc/nfcee_access_debug.xml
endif
PRODUCT_COPY_FILES += \
$(NFCEE_ACCESS_PATH):system/etc/nfcee_access.xml
-# FM
-PRODUCT_PACKAGES += \
- FmRadio
-
-PRODUCT_COPY_FILES += \
- frameworks/native/data/etc/com.stericsson.hardware.fm.receiver.xml:system/etc/permissions/com.stericsson.hardware.fm.receiver.xml
-
-# Recovery
-PRODUCT_PACKAGES += \
- extract_elf_ramdisk
-
-# Sensors
-PRODUCT_PACKAGES += \
- sensors.default
-
# QCOM Display
PRODUCT_PACKAGES += \
- copybit.msm8960 \
- gralloc.msm8960 \
hwcomposer.msm8960 \
- libgenlock \
- libmemalloc \
- liboverlay \
- libqdutils \
- libtilerenderer
+ gralloc.msm8960 \
+ copybit.msm8960
# Audio
PRODUCT_PACKAGES += \
- audio.a2dp.default \
+ alsa.msm8960 \
audio_policy.msm8960 \
audio.primary.msm8960 \
- libaudioutils \
+ audio.a2dp.default \
+ audio.usb.default \
+ audio.r_submix.default \
+ libaudio-resampler \
tinymix
-# Omx
+# BT
PRODUCT_PACKAGES += \
- libdivxdrmdecrypt \
- libI420colorconvert \
- libmm-omxcore \
- libOmxCore \
- libOmxVdec \
- libOmxVenc \
- libOmxAacEnc \
- libOmxAmrEnc \
- libOmxEvrcEnc \
- libOmxQcelp13Enc \
- libstagefrighthw \
- libstagefright_client
+ hci_qcomm_init
-# GPS
+# Camera
PRODUCT_PACKAGES += \
- gps.msm8960
+ camera.sony \
+ camera.msm8960 \
+ libmmcamera_interface2 \
+ libmmcamera_interface
# Light
PRODUCT_PACKAGES += \
lights.msm8960
-# Power
-PRODUCT_PACKAGES += \
- power.msm8960
-
-# QRNGD
+# Sensors
PRODUCT_PACKAGES += \
- qrngd
+ sensors.default
-# WIFI MAC update
+# WLAN
PRODUCT_PACKAGES += \
+ libwfcu \
mac-update
# Misc
PRODUCT_PACKAGES += \
- com.android.future.usb.accessory \
- XperiaSettings
+ librs_jni \
+ com.android.future.usb.accessory
# Live Wallpapers
PRODUCT_PACKAGES += \
LiveWallpapers \
LiveWallpapersPicker \
VisualizationWallpapers \
- librs_jni
# Filesystem management tools
PRODUCT_PACKAGES += \
- make_ext4fs \
- setup_fs
+ e2fsck
# We have enough storage space to hold precise GC data
PRODUCT_TAGS += dalvik.gc.type-precise
-PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0
-
# Set default USB interface
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
persist.sys.usb.config=mtp
-# QCOM
-PRODUCT_PROPERTY_OVERRIDES += \
- com.qc.hardware=true \
- dev.pm.dyn_samplingrate=1
-
-# QC Perf
-PRODUCT_PROPERTY_OVERRIDES += \
- ro.vendor.extension_library=/system/lib/libqc-opt.so
-
# Radio and Telephony
PRODUCT_PROPERTY_OVERRIDES += \
- ro.telephony.ril_class=SonyQualcommRIL \
- ro.telephony.ril.v3=skipnullaid,skippinpukcount \
- rild.libpath=/system/lib/libril-qc-qmi-1.so \
- rild.libargs=-d /dev/smd0 \
- persist.rild.nitz_plmn= \
- persist.rild.nitz_long_ons_0= \
- persist.rild.nitz_long_ons_1= \
- persist.rild.nitz_long_ons_2= \
- persist.rild.nitz_long_ons_3= \
- persist.rild.nitz_short_ons_0= \
- persist.rild.nitz_short_ons_1= \
- persist.rild.nitz_short_ons_2= \
- persist.rild.nitz_short_ons_3= \
- ril.subscription.types=NV,RUIM \
- DEVICE_PROVISIONED=1 \
- keyguard.no_require_sim=1 \
- ro.use_data_netmgrd=true \
+ telephony.lteOnCdmaDevice=0 \
ro.ril.transmitpower=true \
- ro.telephony.call_ring.multiple=false \
- persist.cne.UseCne=vendor \
- persist.cne.UseSwim=false \
- persist.cne.bat.range.low.med=30 \
- persist.cne.bat.range.med.high=60 \
- persist.cne.loc.policy.op=/system/etc/OperatorPolicy.xml \
- persist.cne.loc.policy.user=/system/etc/UserPolicy.xml \
- persist.cne.bwbased.rat.sel=false \
- persist.cne.snsr.based.rat.mgt=false \
- persist.cne.bat.based.rat.mgt=false \
- persist.cne.rat.acq.time.out=30000 \
- persist.cne.rat.acq.retry.tout=0 \
- persist.cne.nsrm.mode=false \
- persist.gps.qmienabled=true
+ persist.radio.add_power_save=1
-# QCOM Display
-PRODUCT_PROPERTY_OVERRIDES += \
- debug.sf.hw=1 \
- debug.egl.hw=1 \
- debug.enabletr=true \
- debug.composition.type=dyn \
- debug.mdpcomp.maxlayer=3 \
- debug.mdpcomp.logs=0 \
- ro.hwui.text_cache_width=2048
+PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
+ rild.libpath=/system/lib/libril-qc-qmi-1.so
# Audio
PRODUCT_PROPERTY_OVERRIDES += \
persist.audio.fluence.mode=endfire \
- persist.audio.vr.enable=false \
persist.audio.handset.mic=analog \
- persist.audio.hp=true
-
-# Audio LPA
-PRODUCT_PROPERTY_OVERRIDES += \
- lpa.decode=true \
- lpa.use-stagefright=true
+ persist.audio.lowlatency.rec=false \
+ af.resampler.quality=255 \
+ ro.qc.sdk.audio.fluencetype=none \
+ lpa.decode=false \
+ tunnel.decode=true \
+ tunnel.audiovideo.decode=true
# Bluetooth
PRODUCT_PROPERTY_OVERRIDES += \
- ro.qualcomm.bluetooth.sap=true \
- ro.qualcomm.bt.hci_transport=smd \
- ro.bluetooth.request.master=true \
- ro.bluetooth.remote.autoconnect=true
+ ro.qualcomm.bt.hci_transport=smd
-# OpenglES
+# Do not power down SIM card when modem is sent to Low Power Mode.
PRODUCT_PROPERTY_OVERRIDES += \
- ro.opengles.version=131072
+ persist.radio.apm_sim_not_pwdn=1
-# Wifi
+# Ril sends only one RIL_UNSOL_CALL_RING, so set call_ring.multiple to false
PRODUCT_PROPERTY_OVERRIDES += \
- wifi.interface=wlan0 \
- wifi.supplicant_scan_interval=30
+ ro.telephony.call_ring.multiple=0
-$(call inherit-product, vendor/sony/qcom-common/common-vendor.mk)
+# for bugmailer
+PRODUCT_PACKAGES += send_bug
+PRODUCT_COPY_FILES += \
+ system/extras/bugmailer/bugmailer.sh:system/bin/bugmailer.sh \
+ system/extras/bugmailer/send_bug:system/bin/send_bug
-$(call inherit-product, vendor/sony/blue-common/common-vendor.mk)
+# Include non-opensource parts
+$(call inherit-product, vendor/sony/blue-common/blue-common-vendor.mk)
diff --git a/combinedroot/init.sh b/combinedroot/init.sh
index 49109de..0fc3a0f 100644
--- a/combinedroot/init.sh
+++ b/combinedroot/init.sh
@@ -12,7 +12,6 @@ busybox rm /init
source /sbin/bootrec-device
# create directories
-busybox mkdir -m 755 -p /cache
busybox mkdir -m 755 -p /dev/block
busybox mkdir -m 755 -p /dev/input
busybox mkdir -m 555 -p /proc
@@ -20,14 +19,12 @@ busybox mkdir -m 755 -p /sys
# create device nodes
busybox mknod -m 600 /dev/block/mmcblk0 b 179 0
-busybox mknod -m 600 ${BOOTREC_CACHE_NODE}
busybox mknod -m 600 ${BOOTREC_EVENT_NODE}
busybox mknod -m 666 /dev/null c 1 3
# mount filesystems
busybox mount -t proc proc /proc
busybox mount -t sysfs sysfs /sys
-busybox mount -t ext4 ${BOOTREC_CACHE} /cache
# trigger amber LED
busybox echo 255 > ${BOOTREC_LED_RED}
@@ -42,10 +39,8 @@ busybox sleep 3
load_image=/sbin/ramdisk.cpio
# boot decision
-if [ -s /dev/keycheck -o -e /cache/recovery/boot ]
-then
+if [ -s /dev/keycheck ] || busybox grep -q warmboot=0x77665502 /proc/cmdline ; then
busybox echo 'RECOVERY BOOT' >>boot.txt
- busybox rm -fr /cache/recovery/boot
# orange led for recoveryboot
busybox echo 255 > ${BOOTREC_LED_RED}
busybox echo 100 > ${BOOTREC_LED_GREEN}
@@ -71,7 +66,6 @@ busybox pkill -f "busybox cat ${BOOTREC_EVENT}"
# unpack the ramdisk image
busybox cpio -i < ${load_image}
-busybox umount /cache
busybox umount /proc
busybox umount /sys
diff --git a/config/OperatorPolicy.xml b/config/OperatorPolicy.xml
deleted file mode 100644
index 38578e2..0000000
--- a/config/OperatorPolicy.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<operatorPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="OperatorPolicy.xsd">
- <rolesList>
- <role id="9"> <!-- role 9 is for FMC - will revisit after talking with Google -->
- <rolePriority>2</rolePriority>
- <OpMode><!-- By default, use these settings -->
- <RATPreference>
- <RAT Pri="1">WWAN</RAT>
- </RATPreference>
- <!-- Other requirements/preferences/constraints -->
- </OpMode>
- </role>
- <role id="1001"> <!-- role 1001 is for QOS VIDEO TELEPHONY, will revisit after talking with Google -->
- <rolePriority>2</rolePriority>
- <OpMode><!-- By default, use these settings -->
- <RATPreference>
- <RAT Pri="1">WWAN</RAT>
- </RATPreference>
- <!-- Other requirements/preferences/constraints -->
- </OpMode>
- </role>
- <role id="0"><!-- "Legacy" or "Default" setting for any roles not matching above -->
- <rolePriority>20</rolePriority>
- <OpMode><!-- By default, use these settings -->
- <RATPreference>
- <RAT Pri="1">WLAN</RAT>
- <RAT Pri="2">WWAN</RAT>
- </RATPreference>
- <!-- Other requirements/preferences/constraints -->
- </OpMode>
- </role>
- </rolesList>
- <MSS>
- </MSS>
- <constraints><!-- constraints that do not specify conditions for each role -->
- <batteryConstraint>
- <BatteryLevel>Low</BatteryLevel>
- <MaxONRATs>-1</MaxONRATs>
- </batteryConstraint>
- <batteryConstraint>
- <BatteryLevel>Medium</BatteryLevel>
- <MaxONRATs>-1</MaxONRATs>
- </batteryConstraint>
- <batteryConstraint>
- <BatteryLevel>High</BatteryLevel>
- <MaxONRATs>-1</MaxONRATs><!-- -1 means unbounded -->
- </batteryConstraint>
- <!-- other constraints eg:locationConstraint, etc. -->
- </constraints>
- <!-- this pref order will be used to bring down the rats,
- if conditions arise to bring down a rat. If "NONE" and
- "ANY" are used the behaviour will be unexpected -->
- <RATBringDownPref>
- <RAT Pri="1">WLAN</RAT>
- <RAT Pri="2">WWAN</RAT>
- </RATBringDownPref>
-</operatorPolicy>
-
diff --git a/config/UserPolicy.xml b/config/UserPolicy.xml
deleted file mode 100644
index 218612b..0000000
--- a/config/UserPolicy.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<userPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="UserPolicy.xsd">
- <RATPreference>
- <RAT Pri="1">ANY</RAT>
- </RATPreference>
- <constraints><!-- constraints that do not specify conditions for each role -->
- <batteryConstraint>
- <BatteryLevel>Low</BatteryLevel>
- <MaxONRATs>2</MaxONRATs><!-- default value is 1 -->
- </batteryConstraint>
- <batteryConstraint>
- <BatteryLevel>Medium</BatteryLevel>
- <MaxONRATs>4</MaxONRATs><!-- default value is 2 -->
- </batteryConstraint>
- <batteryConstraint>
- <BatteryLevel>High</BatteryLevel>
- <MaxONRATs>-1</MaxONRATs><!--default value is -1 means unbounded -->
- </batteryConstraint>
- <!-- other constraints eg:locationConstraint, etc. -->
- </constraints>
-</userPolicy>
-
diff --git a/config/audio_policy.conf b/config/audio_policy.conf
deleted file mode 100644
index f4ecbc1..0000000
--- a/config/audio_policy.conf
+++ /dev/null
@@ -1,96 +0,0 @@
-#
-# Audio policy configuration for sony blue
-#
-
-# Global configuration section: lists input and output devices always present on the device
-# as well as the output device selected by default.
-# Devices are designated by a string that corresponds to the enum in audio.h
-
-global_configuration {
- attached_output_devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER
- default_output_device AUDIO_DEVICE_OUT_SPEAKER
- attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BACK_MIC
-}
-
-# audio hardware module section: contains descriptors for all audio hw modules present on the
-# device. Each hw module node is named after the corresponding hw module library base name.
-# For instance, "primary" corresponds to audio.primary.<device>.so.
-# The "primary" module is mandatory and must include at least one output with
-# AUDIO_OUTPUT_FLAG_PRIMARY flag.
-# Each module descriptor contains one or more output profile descriptors and zero or more
-# input profile descriptors. Each profile lists all the parameters supported by a given output
-# or input stream category.
-# The "channel_masks", "formats", "devices" and "flags" are specified using strings corresponding
-# to enums in audio.h and audio_policy.h. They are concatenated by use of "|" without space or "\n".
-
-audio_hw_modules {
- primary {
- outputs {
- primary {
- sampling_rates 44100
- channel_masks AUDIO_CHANNEL_OUT_STEREO
- formats AUDIO_FORMAT_PCM_16_BIT
- devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_PROXY|AUDIO_DEVICE_OUT_FM|AUDIO_DEVICE_OUT_FM_TX|AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET|AUDIO_DEVICE_OUT_ALL_A2DP
- flags AUDIO_OUTPUT_FLAG_PRIMARY
- }
- hdmi {
- sampling_rates 44100|48000
- channel_masks dynamic
- formats AUDIO_FORMAT_PCM_16_BIT
- devices AUDIO_DEVICE_OUT_AUX_DIGITAL
- flags AUDIO_OUTPUT_FLAG_DIRECT
- }
- lpa {
- sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
- channel_masks AUDIO_CHANNEL_OUT_STEREO|AUDIO_CHANNEL_OUT_MONO
- formats AUDIO_FORMAT_PCM_16_BIT
- devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL
- flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_LPA
- }
- tunnel {
- sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
- channel_masks AUDIO_CHANNEL_OUT_STEREO|AUDIO_CHANNEL_OUT_MONO
- formats AUDIO_FORMAT_MP3|AUDIO_FORMAT_AAC
- devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL
- flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_TUNNEL
- }
- voip_rx {
- sampling_rates 8000|16000
- channel_masks AUDIO_CHANNEL_OUT_MONO
- formats AUDIO_FORMAT_PCM_16_BIT|AUDIO_FORMAT_AMR_NB|AUDIO_FORMAT_AMR_WB|AUDIO_FORMAT_QCELP|AUDIO_FORMAT_EVRC|AUDIO_FORMAT_EVRCB|AUDIO_FORMAT_EVRCWB
- devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE
- flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_VOIP_RX
- }
- }
- inputs {
- primary {
- sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
- channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO
- formats AUDIO_FORMAT_PCM_16_BIT
- devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET|AUDIO_DEVICE_IN_AUX_DIGITAL|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_PROXY
- }
- voip_tx {
- sampling_rates 8000|16000
- channel_masks AUDIO_CHANNEL_IN_MONO
- formats AUDIO_FORMAT_PCM_16_BIT|AUDIO_FORMAT_AMR_NB|AUDIO_FORMAT_AMR_WB|AUDIO_FORMAT_QCELP|AUDIO_FORMAT_EVRC|AUDIO_FORMAT_EVRCB|AUDIO_FORMAT_EVRCWB
- devices AUDIO_DEVICE_IN_COMMUNICATION
- }
- }
- }
- usb {
- outputs {
- usb_accessory {
- sampling_rates 44100
- channel_masks AUDIO_CHANNEL_OUT_STEREO
- formats AUDIO_FORMAT_PCM_16_BIT
- devices AUDIO_DEVICE_OUT_USB_ACCESSORY
- }
- usb_device {
- sampling_rates 44100
- channel_masks AUDIO_CHANNEL_OUT_STEREO
- formats AUDIO_FORMAT_PCM_16_BIT
- devices AUDIO_DEVICE_OUT_USB_DEVICE
- }
- }
- }
-}
diff --git a/config/cmdline.txt b/config/cmdline.txt
deleted file mode 100644
index caf78c7..0000000
--- a/config/cmdline.txt
+++ /dev/null
@@ -1 +0,0 @@
-androidboot.hardware=sony user_debug=31 androidboot.baseband=msm lpj=67632 zcache
diff --git a/config/egl.cfg b/config/egl.cfg
deleted file mode 100644
index 303d812..0000000
--- a/config/egl.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-0 0 android
-0 1 adreno200
diff --git a/config/fstab.sony b/config/fstab.sony
deleted file mode 100644
index df03001..0000000
--- a/config/fstab.sony
+++ /dev/null
@@ -1,8 +0,0 @@
-# Android fstab file.
-#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
-# The filesystem that contains the filesystem checker binary (typically /system) cannot
-# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
-
-/dev/block/platform/msm_sdcc.1/by-name/System /system ext4 ro,barrier=1 wait
-/dev/block/platform/msm_sdcc.1/by-name/Cache /cache ext4 noatime,nosuid,nodev,barrier=1,data=ordered wait,check
-/dev/block/platform/msm_sdcc.1/by-name/Userdata /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc wait,check,encryptable=footer
diff --git a/config/fstab_sd.sony b/config/fstab_sd.sony
deleted file mode 100644
index 5040540..0000000
--- a/config/fstab_sd.sony
+++ /dev/null
@@ -1,6 +0,0 @@
-# Android fstab file.
-#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
-# The filesystem that contains the filesystem checker binary (typically /system) cannot
-# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
-
-/dev/block/platform/msm_sdcc.1/by-name/SDCard /data/media ext4 noatime,nosuid,nodev,barrier=1,noauto_da_alloc wait,check
diff --git a/config/gps.conf b/config/gps.conf
deleted file mode 100644
index 3fc0ab8..0000000
--- a/config/gps.conf
+++ /dev/null
@@ -1,91 +0,0 @@
-#Test
-NTP_SERVER=time.gpsonextra.net
-#Asia
-# NTP_SERVER=asia.pool.ntp.org
-#Europe
-# NTP_SERVER=europe.pool.ntp.org
-#North America
-# NTP_SERVER=north-america.pool.ntp.org
-
-XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra2.bin
-XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra2.bin
-XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra2.bin
-
-# DEBUG LEVELS: 0 - none, 1 - Error, 2 - Warning, 3 - Info
-# 4 - Debug, 5 - Verbose
-DEBUG_LEVEL = 3
-
-# Intermediate position report, 1=enable, 0=disable
-INTERMEDIATE_POS=0
-
-# supl version 1.0
-SUPL_VER=0x10000
-
-# Error Estimate
-# _SET = 1
-# _CLEAR = 0
-ERR_ESTIMATE=0
-
-# GPS Capabilities bit mask
-# SCHEDULING = 1
-# MSB = 2
-# MSA = 4
-# ULP = 0x20
-# default = MSA | MSB | SCHEDULING | ULP
-CAPABILITIES=0x03
-
-# Accuracy threshold for intermediate positions
-# less accurate positions are ignored, 0 for passing all positions
-# ACCURACY_THRES=5000
-
-################################
-##### AGPS server settings #####
-################################
-
-# FOR SUPL SUPPORT, set the following
-SUPL_HOST=supl.sonyericsson.com
-SUPL_PORT=7275
-
-# FOR C2K PDE SUPPORT, set the following
-# C2K_HOST=c2k.pde.com or IP
-# C2K_PORT=1234
-
-################################
-# Sensor Settings
-################################
-
-# Needs to be set explicitly based on sensor
-# There is no default value.
-#GYRO_BIAS_RANDOM_WALK=
-
-SENSOR_ACCEL_BATCHES_PER_SEC=2
-SENSOR_ACCEL_SAMPLES_PER_BATCH=5
-SENSOR_GYRO_BATCHES_PER_SEC=2
-SENSOR_GYRO_SAMPLES_PER_BATCH=5
-
-# Sensor Control Mode (0=AUTO, 1=FORCE_ON)
-SENSOR_CONTROL_MODE=0
-
-# Enable or Disable Sensors for GPS use (0=Enable, 1=Disable)
-SENSOR_USAGE=1
-
-# Choose GSIFF sensor provider (1=DSPS, 2=Android NDK)
-SENSOR_PROVIDER=1
-
-################################
-# Indoor Positioning Settings
-################################
-# 0: QUIPC disabled, 1: QUIPC enabled, 2: forced QUIPC only
-QUIPC_ENABLED = 0
-
-################################
-# EXTRA SETTINGS
-################################
-# Enable or Disable Wiper (1=Enable, 0=Disable)
-#ENABLE_WIPER=1
-
-####################################
-# LTE Positioning Profile Settings
-####################################
-# 0: Enable RRLP on LTE(Default) 1: Enable LPP_User_Plane on LTE
-LPP_PROFILE = 0
diff --git a/config/init.netconfig.sh b/config/init.netconfig.sh
deleted file mode 100644
index 6a46d2c..0000000
--- a/config/init.netconfig.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/system/bin/sh
-# *********************************************************************
-# * ____ _____ _ *
-# * / ___| ___ _ __ _ _ | ____|_ __(_) ___ ___ ___ ___ _ __ *
-# * \___ \ / _ \| '_ \| | | | | _| | '__| |/ __/ __/ __|/ _ \| '_ \ *
-# * ___) | (_) | | | | |_| | | |___| | | | (__\__ \__ \ (_) | | | | *
-# * |____/ \___/|_| |_|\__, | |_____|_| |_|\___|___/___/\___/|_| |_| *
-# * |___/ *
-# * *
-# *********************************************************************
-# * Copyright 2012 Sony Ericsson Mobile Communications AB. *
-# * All rights, including trade secret rights, reserved. *
-# *********************************************************************
-#
-
-TAG="netconfig"
-COMMENT="#"
-
-MSS_MIN=$(cat /proc/sys/net/ipv4/route/min_adv_mss)
-MSS_MIN=${MSS_MIN:-256}
-
-MSS_RMNET=$(/system/bin/getprop net.tcp.mss.rmnet)
-MSS_RMNET=${MSS_RMNET:-$MSS_MIN}
-
-MSS_WLAN=$(/system/bin/getprop net.tcp.mss.wlan)
-MSS_WLAN=${MSS_WLAN:-$MSS_MIN}
-
-#Update RMNET MSS
-if [ $MSS_RMNET -gt $MSS_MIN ] ; then
- /system/bin/iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o rmnet+ -j TCPMSS --set-mss $MSS_RMNET
- /system/bin/ip6tables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o rmnet+ -j TCPMSS --set-mss $MSS_RMNET
-fi
-
-#Update WLAN MSS
-if [ $MSS_WLAN -gt $MSS_MIN ] ; then
- /system/bin/iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o wlan0 -j TCPMSS --set-mss $MSS_WLAN
- /system/bin/ip6tables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o wlan0 -j TCPMSS --set-mss $MSS_WLAN
-fi
-
-/system/bin/log -t $TAG -p d "ipt"
diff --git a/config/init.qcom-etc.rc b/config/init.qcom-etc.rc
deleted file mode 100644
index 9326e6d..0000000
--- a/config/init.qcom-etc.rc
+++ /dev/null
@@ -1,481 +0,0 @@
-# source: system/core/rootdir/etc/init.qcom.rc
-# Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
-# Copyright (C) 2012 Sony Ericsson Mobile Communications AB.
-# Copyright (C) 2012 Sony Mobile Communications AB.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# * Neither the name of Code Aurora nor
-# the names of its contributors may be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-
-on init
- # Set permissions for persist partition
- mkdir /persist 0771 system system
-
-on early-boot
- # set RLIMIT_MEMLOCK to 64MB
- setrlimit 8 67108864 67108864
-
-on boot
- exec system/bin/btnvtool -O
- chown bluetooth bluetooth /sys/module/bluetooth_power/parameters/power
- chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type
- chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
- chown bluetooth bluetooth /proc/bluetooth/sleep/proto
- chown system system /sys/module/sco/parameters/disable_esco
- chown bluetooth bluetooth /sys/module/hci_smd/parameters/hcismd_set
- chmod 0660 /sys/module/bluetooth_power/parameters/power
- chmod 0660 /sys/module/hci_smd/parameters/hcismd_set
- chmod 0660 /sys/class/rfkill/rfkill0/state
- chmod 0660 /proc/bluetooth/sleep/proto
- chown bluetooth bluetooth /dev/ttyHS0
- chmod 0660 /dev/ttyHS0
- chown bluetooth bluetooth /sys/devices/platform/msm_serial_hs.0/clock
- chmod 0660 /sys/devices/platform/msm_serial_hs.0/clock
-
- #Create QMUX deamon socket area
- mkdir /dev/socket/qmux_radio 0770 radio radio
- chmod 2770 /dev/socket/qmux_radio
- mkdir /dev/socket/qmux_audio 0770 media audio
- chmod 2770 /dev/socket/qmux_audio
- mkdir /dev/socket/qmux_bluetooth 0770 bluetooth bluetooth
- chmod 2770 /dev/socket/qmux_bluetooth
- mkdir /dev/socket/qmux_gps 0770 gps gps
- chmod 2770 /dev/socket/qmux_gps
-
- # Allow QMUX daemon to assign port open wait time
- chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait
-
- setprop ro.telephony.call_ring.multiple false
-
- setprop wifi.interface wlan0
- setprop ro.wifi.eap_sim_enabled true
-
- #Set SUID bit for usbhub
- chmod 4755 /system/bin/usbhub
- chmod 755 /system/bin/usbhub_init
-
- #Remove SUID bit for iproute2 ip tool
- chmod 0755 /system/bin/ip
-
- #port-bridge
- chmod 0660 /dev/smd0
- chown system system /dev/smd0
-
- #BT DUN port-bridge
- chmod 0660 /dev/smd7
- chown bluetooth bluetooth /dev/smd7
-
- chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state
-
- # create symlink for fb1 as HDMI
- symlink /dev/graphics/fb1 /dev/graphics/hdmi
-
- # Remove write permissions to video related nodes
- chmod 0664 /sys/devices/virtual/graphics/fb1/hpd
- chmod 0664 /sys/devices/virtual/graphics/fb1/video_mode
- chmod 0664 /sys/devices/virtual/graphics/fb1/edid_3d_modes
- chmod 0664 /sys/devices/virtual/graphics/fb1/underscan
- chmod 0664 /sys/devices/virtual/graphics/fb1/hdmi_mode
- chmod 0664 /sys/devices/virtual/graphics/fb1/pa
- chmod 0664 /sys/devices/virtual/graphics/fb1/format_3d
- chmod 0664 /sys/devices/virtual/graphics/fb1/product_description
- chmod 0664 /sys/devices/virtual/graphics/fb1/vendor_name
-
- # Change owner and group for media server and surface flinger
- chown system system /sys/devices/virtual/graphics/fb1/format_3d
- chown system graphics /sys/devices/virtual/graphics/fb1/hpd
- chown system graphics /sys/devices/virtual/graphics/fb1/video_mode
- chown system graphics /sys/devices/virtual/graphics/fb1/edid_3d_modes
- chown system graphics /sys/devices/virtual/graphics/fb1/underscan
- chown system graphics /sys/devices/virtual/graphics/fb1/hdmi_mode
- chown system graphics /sys/devices/virtual/graphics/fb1/pa
- chown system graphics /sys/devices/virtual/graphics/fb1/format_3d
- chown system graphics /sys/devices/virtual/graphics/fb1/product_description
- chown system graphics /sys/devices/virtual/graphics/fb1/vendor_name
-
- #For bridgemgr daemon to inform the USB driver of the correct transport
- chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport
-
- #To allow interfaces to get v6 address when tethering is enabled
- write /proc/sys/net/ipv6/conf/rmnet0/accept_ra 2
- write /proc/sys/net/ipv6/conf/rmnet1/accept_ra 2
- write /proc/sys/net/ipv6/conf/rmnet2/accept_ra 2
- write /proc/sys/net/ipv6/conf/rmnet3/accept_ra 2
- write /proc/sys/net/ipv6/conf/rmnet4/accept_ra 2
- write /proc/sys/net/ipv6/conf/rmnet5/accept_ra 2
- write /proc/sys/net/ipv6/conf/rmnet6/accept_ra 2
- write /proc/sys/net/ipv6/conf/rmnet7/accept_ra 2
- write /proc/sys/net/ipv6/conf/rmnet_sdio0/accept_ra 2
- write /proc/sys/net/ipv6/conf/rmnet_sdio1/accept_ra 2
- write /proc/sys/net/ipv6/conf/rmnet_sdio2/accept_ra 2
- write /proc/sys/net/ipv6/conf/rmnet_sdio3/accept_ra 2
- write /proc/sys/net/ipv6/conf/rmnet_sdio4/accept_ra 2
- write /proc/sys/net/ipv6/conf/rmnet_sdio5/accept_ra 2
- write /proc/sys/net/ipv6/conf/rmnet_sdio6/accept_ra 2
- write /proc/sys/net/ipv6/conf/rmnet_sdio7/accept_ra 2
-
- # To prevent out of order acknowledgements from making
- # connection tracking to treat them as not belonging to
- # the connection they belong to.
- # Otherwise, a weird issue happens in which some long
- # connections on high-throughput links get dropped when
- # an ack packet comes out of order
- write /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal 1
-
-# import cne init file
-on post-fs
- export_rc /persist/init.cne.rc
-
-# msm specific files that need to be created on /data
-on post-fs-data
-
- mkdir /data/misc/bluetooth 0770 bluetooth bluetooth
-
- # Create the directories used by the Wireless subsystem
- mkdir /data/misc/wifi 0770 wifi wifi
- mkdir /data/misc/wifi/sockets 0770 wifi wifi
- mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi
- mkdir /data/misc/dhcp 0770 dhcp dhcp
- chown dhcp system /data/misc/dhcp
-
- # Create directory used by audio subsystem
- mkdir /data/misc/audio 0770 audio audio
-
- # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections
- # We chown/chmod /persist again so because mount is run as root + defaults
- chown system system /persist
- chmod 0771 /persist
- chmod 0664 /sys/devices/platform/msm_sdcc.1/polling
- chmod 0664 /sys/devices/platform/msm_sdcc.2/polling
- chmod 0664 /sys/devices/platform/msm_sdcc.3/polling
- chmod 0664 /sys/devices/platform/msm_sdcc.4/polling
-
- # Chown polling nodes as needed from UI running on system server
- chown system system /sys/devices/platform/msm_sdcc.1/polling
- chown system system /sys/devices/platform/msm_sdcc.2/polling
- chown system system /sys/devices/platform/msm_sdcc.3/polling
- chown system system /sys/devices/platform/msm_sdcc.4/polling
- mkdir /data/wiper 0755 gps qcom_oncrpc
-
- #Create directories for gpsone_daemon services
- mkdir /data/misc/gpsone_d 0770 system system
-
- #Create directories for QuIPS
- mkdir /data/misc/quipc 0770 gps system
-
- #Create directories for Location services
- mkdir /data/misc/location 0770 gps gps
- mkdir /data/misc/location/mq 0770 gps gps
-
- #Create directory from IMS services
- mkdir /data/shared 0755
- chown system system /data/shared
-
- #Create directory for FOTA
- mkdir /data/fota 0771
- chown system system /data/fota
-
- #Provide the access to hostapd.conf only to root and group
- chmod 0660 /data/hostapd/hostapd.conf
-
- # Create /data/time folder for time-services
- mkdir /data/time/ 0700 system system
-
- setprop vold.post_fs_data_done 1
-
-on property:init.svc.wpa_supplicant=stopped
- stop dhcpcd
-
-on property:bluetooth.isEnabled=true
- start btwlancoex
- write /sys/class/bluetooth/hci0/idle_timeout 7000
-
-service qcom-c_core-sh /system/bin/sh /init.qcom.class_core.sh
- class core
- user root
- oneshot
-
-service qcom-c_main-sh /system/bin/sh /init.qcom.class_main.sh
- class main
- user root
- oneshot
-
-on property:vold.decrypt=trigger_restart_framework
- start qcom-c_main-sh
-
-service cnd /system/bin/cnd
- class late_start
- socket cnd stream 666 root radio
-
-service rmt_storage /system/bin/rmt_storage
- class core
- user root
- disabled
-
-service hciattach /system/bin/sh /system/etc/init.qcom.bt.sh
- class late_start
- user bluetooth
- group qcom_oncrpc bluetooth net_bt_admin
- disabled
- oneshot
-
-service bridgemgrd /system/bin/bridgemgrd
- class late_start
- user radio
- group radio qcom_diag
- disabled
-
-service qmiproxy /system/bin/qmiproxy
- class main
- user radio
- group radio qcom_diag
- disabled
-
-# QMUX must be in multiple groups to support external process connections
-service qmuxd /system/bin/qmuxd
- class main
- user radio
- group radio audio bluetooth gps qcom_diag
- disabled
-
-service netmgrd /system/bin/netmgrd
- class main
- disabled
-
-service sensors /system/bin/sensors.qcom
- class late_start
- user root
- group root
- disabled
-
-on property:ro.use_data_netmgrd=false
- # netmgr not supported on specific target
- stop netmgrd
-
-# Adjust socket buffer to enlarge TCP receive window for high bandwidth
-# but only if ro.data.large_tcp_window_size property is set.
-on property:ro.data.large_tcp_window_size=true
- write /proc/sys/net/ipv4/tcp_adv_win_scale 1
-
-service btwlancoex /system/bin/sh /system/etc/init.qcom.coex.sh
- class late_start
- user bluetooth
- group bluetooth net_bt_admin inet net_admin net_raw
- disabled
- oneshot
-
-service p2p_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \
- -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf -N \
- -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
- -e/data/misc/wifi/entropy.bin -puse_p2p_group_interface=1
- # we will start as root and wpa_supplicant will switch to user wifi
- # after setting up the capabilities required for WEXT
- # user wifi
- # group wifi inet keystore
- class main
- socket wpa_wlan0 dgram 660 wifi wifi
- disabled
- oneshot
-
-service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \
- -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
- -e/data/misc/wifi/entropy.bin
- # we will start as root and wpa_supplicant will switch to user wifi
- # after setting up the capabilities required for WEXT
- # user wifi
- # group wifi inet keystore
- class main
- socket wpa_wlan0 dgram 660 wifi wifi
- disabled
- oneshot
-
-service dhcpcd_wlan0 /system/bin/logwrapper /system/bin/dhcpcd -B -d -t 30
- class late_start
- disabled
- oneshot
-
-service dhcpcd_p2p /system/bin/logwrapper /system/bin/dhcpcd -BKLG -d
- class late_start
- disabled
- oneshot
-
-service iprenew_wlan0 /system/bin/logwrapper /system/bin/dhcpcd -n
- class late_start
- disabled
- oneshot
-
-service iprenew_p2p /system/bin/logwrapper /system/bin/dhcpcd -n -d
- class late_start
- disabled
- oneshot
-
-service dhcpcd_bnep0 /system/bin/dhcpcd -B -t 30
- disabled
- oneshot
-
-service iprenew_bnep0 /system/bin/dhcpcd -n
- disabled
- oneshot
-
-service wiperiface /system/bin/wiperiface
- class late_start
- user gps
- group gps qcom_oncrpc
- oneshot
-
-service gpsone_daemon /system/bin/gpsone_daemon
- class late_start
- user system
- group system qcom_oncrpc inet
- disabled
-
-service quipc_igsn /system/bin/quipc_igsn
- class late_start
- user gps
- group inet gps
- disabled
-
-service quipc_main /system/bin/quipc_main
- class late_start
- user gps
- group net_admin wifi inet gps
- disabled
-
-service fm_dl /system/bin/sh /system/etc/init.qcom.fm.sh
- class late_start
- user root
- group system qcom_oncrpc
- disabled
- oneshot
-
-on property:crypto.driver.load=1
- insmod /system/lib/modules/qce.ko
- insmod /system/lib/modules/qcedev.ko
-
-on property:crypto.driver.load=0
- exec /system/bin/rmmod qcedev.ko
- exec /system/bin/rmmod qce.ko
-
-service drmdiag /system/bin/drmdiagapp
- class late_start
- user root
- disabled
- oneshot
-
-on property:drmdiag.load=1
- start drmdiag
-
-on property:drmdiag.load=0
- stop drmdiag
-
-service qcom-post-boot /system/bin/sh /system/etc/init.qcom.post_boot.sh
- class late_start
- user root
- disabled
- oneshot
-
-service qcom-wifi /system/bin/sh /system/etc/init.qcom.wifi.sh
- class late_start
- oneshot
-
-on property:sys.boot_completed=1
- start qcom-post-boot
-
-service hdmid /system/bin/hdmid
- class late_start
- socket hdmid stream 0660 root system graphics
- disabled
-
-service ppd /system/bin/mm-pp-daemon
- class late_start
- user system
- socket pps stream 0660 system system graphics
- group system graphics
-
-service hostapd /system/bin/hostapd -dddd /data/hostapd/hostapd.conf
- class late_start
- user root
- group root
- oneshot
- disabled
-
-service ds_fmc_appd /system/bin/ds_fmc_appd -p "rmnet0" -D
- class late_start
- group radio wifi inet
- disabled
- oneshot
-
-on property:persist.data.ds_fmc_app.mode=1
- start ds_fmc_appd
-
-service ims_regmanager /system/bin/exe-ims-regmanagerprocessnative
- class late_start
- user system
- group qcom_oncrpc net_bt_admin inet radio wifi
- disabled
-
-on property:persist.ims.regmanager.mode=1
- start ims_regmanager
-
-on property:ro.data.large_tcp_window_size=true
- # 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 time_daemon /system/bin/time_daemon
- class late_start
- user root
- group root
- oneshot
- disabled
-
-on property:persist.timed.enable=true
- start time_daemon
-
-service ril-daemon1 /system/bin/rild -c 1
- class main
- socket rild1 stream 660 root radio
- socket rild-debug1 stream 660 radio system
- user root
- disabled
- group radio cache inet misc audio sdcard_r sdcard_rw qcom_oncrpc diag qcom_diag log
-
-service profiler_daemon /system/bin/profiler_daemon
- class late_start
- user root
- group root
- disabled
-
-# Regulatory domain handling
-service initial_regdom /system/bin/iw reg set 00
- disabled
- oneshot
-
-# To prevent connection to channel 12, 13 in flight mode/no coverage/no sim case at startup.
-on property:wlan.driver.status=ok
- start initial_regdom
-
-# To prevent connection to channel 12, 13 in flight mode
-on property:init.svc.wpa_supplicant=stopped
- start initial_regdom
diff --git a/config/init.qcom.bt.sh b/config/init.qcom.bt.sh
deleted file mode 100644
index 4e3ebac..0000000
--- a/config/init.qcom.bt.sh
+++ /dev/null
@@ -1,253 +0,0 @@
-#!/system/bin/sh
-# Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# * Neither the name of Code Aurora nor
-# the names of its contributors may be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-#Read the arguments passed to the script
-config="$1"
-
-BLUETOOTH_SLEEP_PATH=/proc/bluetooth/sleep/proto
-LOG_TAG="qcom-bluetooth"
-LOG_NAME="${0}:"
-
-hciattach_pid=""
-
-loge ()
-{
- /system/bin/log -t $LOG_TAG -p e "$LOG_NAME $@"
-}
-
-logi ()
-{
- /system/bin/log -t $LOG_TAG -p i "$LOG_NAME $@"
-}
-
-failed ()
-{
- loge "$1: exit code $2"
- exit $2
-}
-
-program_bdaddr ()
-{
- /system/bin/btnvtool -O
- logi "Bluetooth Address programmed successfully"
-}
-
-#
-# enable bluetooth profiles dynamically
-#
-config_bt ()
-{
- baseband=`getprop ro.baseband`
- target=`getprop ro.board.platform`
- soc_hwid=`cat /sys/devices/system/soc/soc0/id`
- btsoc=`getprop qcom.bluetooth.soc`
-
- case $baseband in
- "apq")
- setprop ro.qualcomm.bluetooth.opp true
- setprop ro.qualcomm.bluetooth.ftp true
- setprop ro.qualcomm.bluetooth.nap false
- setprop ro.qualcomm.bluetooth.sap false
- setprop ro.qualcomm.bluetooth.dun false
- # For MPQ as baseband is same for both
- case $soc_hwid in
- "130")
- setprop ro.qualcomm.bluetooth.hsp true
- setprop ro.qualcomm.bluetooth.hfp true
- setprop ro.qualcomm.bluetooth.pbap false
- setprop ro.qualcomm.bluetooth.map false
- ;;
- *)
- setprop ro.qualcomm.bluetooth.hsp false
- setprop ro.qualcomm.bluetooth.hfp false
- setprop ro.qualcomm.bluetooth.pbap true
- setprop ro.qualcomm.bluetooth.map true
- ;;
- esac
- ;;
- "mdm" | "svlte2a" | "svlte1" | "csfb")
- setprop ro.qualcomm.bluetooth.opp true
- setprop ro.qualcomm.bluetooth.hfp true
- setprop ro.qualcomm.bluetooth.hsp true
- setprop ro.qualcomm.bluetooth.pbap true
- setprop ro.qualcomm.bluetooth.ftp true
- setprop ro.qualcomm.bluetooth.map true
- setprop ro.qualcomm.bluetooth.nap true
- setprop ro.qualcomm.bluetooth.sap true
- setprop ro.qualcomm.bluetooth.dun false
- ;;
- "msm")
- setprop ro.qualcomm.bluetooth.opp true
- setprop ro.qualcomm.bluetooth.hfp true
- setprop ro.qualcomm.bluetooth.hsp true
- setprop ro.qualcomm.bluetooth.pbap true
- setprop ro.qualcomm.bluetooth.ftp true
- setprop ro.qualcomm.bluetooth.nap true
- setprop ro.qualcomm.bluetooth.sap true
- setprop ro.qualcomm.bluetooth.dun true
- case $btsoc in
- "ath3k")
- setprop ro.qualcomm.bluetooth.map false
- ;;
- *)
- setprop ro.qualcomm.bluetooth.map true
- ;;
- esac
- ;;
- *)
- setprop ro.qualcomm.bluetooth.opp true
- setprop ro.qualcomm.bluetooth.hfp true
- setprop ro.qualcomm.bluetooth.hsp true
- setprop ro.qualcomm.bluetooth.pbap true
- setprop ro.qualcomm.bluetooth.ftp true
- setprop ro.qualcomm.bluetooth.map true
- setprop ro.qualcomm.bluetooth.nap true
- setprop ro.qualcomm.bluetooth.sap true
- setprop ro.qualcomm.bluetooth.dun true
- ;;
- esac
-
- #Enable Bluetooth Profiles specific to target Dynamically
- case $target in
- "msm8960")
- if [ "$btsoc" != "ath3k" ] && [ "$socid" != "130" ]
- then
- setprop ro.bluetooth.hfp.ver 1.6
- setprop ro.qualcomm.bt.hci_transport smd
- fi
- ;;
- *)
- ;;
- esac
-
-}
-
-start_hciattach ()
-{
- /system/bin/hciattach -n $BTS_DEVICE $BTS_TYPE $BTS_BAUD &
- hciattach_pid=$!
- logi "start_hciattach: pid = $hciattach_pid"
- echo 1 > $BLUETOOTH_SLEEP_PATH
-}
-
-kill_hciattach ()
-{
- echo 0 > $BLUETOOTH_SLEEP_PATH
- logi "kill_hciattach: pid = $hciattach_pid"
- ## careful not to kill zero or null!
- kill -TERM $hciattach_pid
- # this shell doesn't exit now -- wait returns for normal exit
-}
-
-logi "init.qcom.bt.sh config = $config"
-case "$config" in
- "onboot")
- program_bdaddr
- config_bt
- exit 0
- ;;
- *)
- ;;
-esac
-
-# mimic hciattach options parsing -- maybe a waste of effort
-USAGE="hciattach [-n] [-p] [-b] [-t timeout] [-s initial_speed] <tty> <type | id> [speed] [flow|noflow] [bdaddr]"
-
-while getopts "blnpt:s:" f
-do
- case $f in
- b | l | n | p) opt_flags="$opt_flags -$f" ;;
- t) timeout=$OPTARG;;
- s) initial_speed=$OPTARG;;
- \?) echo $USAGE; exit 1;;
- esac
-done
-shift $(($OPTIND-1))
-
-# Note that "hci_qcomm_init -e" prints expressions to set the shell variables
-# BTS_DEVICE, BTS_TYPE, BTS_BAUD, and BTS_ADDRESS.
-
-#Selectively Disable sleep
-BOARD=`getprop ro.board.platform`
-
-# BR/EDR & LE power class configurations
-POWER_CLASS=`getprop qcom.bt.dev_power_class`
-LE_POWER_CLASS=`getprop qcom.bt.le_dev_pwr_class`
-
-#find the transport type
-TRANSPORT=`getprop ro.qualcomm.bt.hci_transport`
-logi "Transport : $TRANSPORT"
-
-case $POWER_CLASS in
- 1) PWR_CLASS="-p 0" ;
- logi "Power Class: 1";;
- 2) PWR_CLASS="-p 1" ;
- logi "Power Class: 2";;
- 3) PWR_CLASS="-p 2" ;
- logi "Power Class: CUSTOM";;
- *) PWR_CLASS="";
- logi "Power Class: Ignored. Default(1) used (1-CLASS1/2-CLASS2/3-CUSTOM)";
- logi "Power Class: To override, Before turning BT ON; setprop qcom.bt.dev_power_class <1 or 2 or 3>";;
-esac
-
-case $LE_POWER_CLASS in
- 1) LE_PWR_CLASS="-P 0" ;
- logi "LE Power Class: 1";;
- 2) LE_PWR_CLASS="-P 1" ;
- logi "LE Power Class: 2";;
- 3) LE_PWR_CLASS="-P 2" ;
- logi "LE Power Class: CUSTOM";;
- *) LE_PWR_CLASS="-P 1";
- logi "LE Power Class: Ignored. Default(2) used (1-CLASS1/2-CLASS2/3-CUSTOM)";
- logi "LE Power Class: To override, Before turning BT ON; setprop qcom.bt.le_dev_pwr_class <1 or 2 or 3>";;
-esac
-
-eval $(/system/bin/hci_qcomm_init -e $PWR_CLASS $LE_PWR_CLASS && echo "exit_code_hci_qcomm_init=0" || echo "exit_code_hci_qcomm_init=1")
-
-case $exit_code_hci_qcomm_init in
- 0) logi "Bluetooth QSoC firmware download succeeded, $BTS_DEVICE $BTS_TYPE $BTS_BAUD $BTS_ADDRESS";;
- *) failed "Bluetooth QSoC firmware download failed" $exit_code_hci_qcomm_init;;
-esac
-
-# init does SIGTERM on ctl.stop for service
-trap "kill_hciattach" TERM INT
-
-case $TRANSPORT in
- "smd")
- echo 1 > /sys/module/hci_smd/parameters/hcismd_set
- ;;
- *)
- logi "start hciattach"
- start_hciattach
-
- wait $hciattach_pid
- logi "Bluetooth stopped"
- ;;
-esac
-
-exit 0
diff --git a/config/init.qcom.class_core.sh b/config/init.qcom.class_core.sh
deleted file mode 100644
index 580e603..0000000
--- a/config/init.qcom.class_core.sh
+++ /dev/null
@@ -1,199 +0,0 @@
-#!/system/bin/sh
-# Copyright (c) 2012, Code Aurora Forum. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# * Neither the name of Code Aurora nor
-# the names of its contributors may be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-# Set platform variables
-target=`getprop ro.board.platform`
-soc_hwplatform=`cat /sys/devices/system/soc/soc0/hw_platform` 2> /dev/null
-soc_hwid=`cat /sys/devices/system/soc/soc0/id` 2> /dev/null
-soc_hwver=`cat /sys/devices/system/soc/soc0/platform_version` 2> /dev/null
-
-
-# Dynamic Memory Managment (DMM) provides a sys file system to the userspace
-# that can be used to plug in/out memory that has been configured as unstable.
-# This unstable memory can be in Active or In-Active State.
-# Each of which the userspace can request by writing to a sys file.
-#
-# ro.dev.dmm = 1; Indicates that DMM is enabled in the Android User Space. This
-# property is set in the Android system properties file.
-#
-# If ro.dev.dmm.dpd.start_address is set here then the target has a memory
-# configuration that supports DynamicMemoryManagement.
-init_DMM()
-{
- block=-1
-
- case "$target" in
- "msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "msm8960")
- ;;
- *)
- return
- ;;
- esac
-
- mem="/sys/devices/system/memory"
- op=`cat $mem/movable_start_bytes`
- case "$op" in
- "0")
- log -p i -t DMM DMM Disabled. movable_start_bytes not set: $op
- ;;
-
- "$mem/movable_start_bytes: No such file or directory ")
- log -p i -t DMM DMM Disabled. movable_start_bytes does not exist: $op
- ;;
-
- *)
- log -p i -t DMM DMM available. movable_start_bytes at $op
- movable_start_bytes=0x`cat $mem/movable_start_bytes`
- block_size_bytes=0x`cat $mem/block_size_bytes`
- block=$((#${movable_start_bytes}/${block_size_bytes}))
-
- chown system.system $mem/memory$block/state
- chown system.system $mem/probe
- chown system.system $mem/active
- chown system.system $mem/remove
-
- case "$target" in
- "msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
- echo $movable_start_bytes > $mem/probe
- case "$?" in
- "0")
- log -p i -t DMM $movable_start_bytes to physical hotplug succeeded.
- ;;
- *)
- log -p e -t DMM $movable_start_bytes to physical hotplug failed.
- return
- ;;
- esac
-
- echo online > $mem/memory$block/state
- case "$?" in
- "0")
- log -p i -t DMM \'echo online\' to logical hotplug succeeded.
- ;;
- *)
- log -p e -t DMM \'echo online\' to logical hotplug failed.
- return
- ;;
- esac
- ;;
- esac
-
- setprop ro.dev.dmm.dpd.start_address $movable_start_bytes
- setprop ro.dev.dmm.dpd.block $block
- ;;
- esac
-
- case "$target" in
- "msm8960")
- return
- ;;
- esac
-
- # For 7X30 targets:
- # ro.dev.dmm.dpd.start_address is set when the target has a 2x256Mb memory
- # configuration. This is also used to indicate that the target is capable of
- # setting EBI-1 to Deep Power Down or Self Refresh.
- op=`cat $mem/low_power_memory_start_bytes`
- case "$op" in
- "0")
- log -p i -t DMM Self-Refresh-Only Disabled. low_power_memory_start_bytes not set:$op
- ;;
- "$mem/low_power_memory_start_bytes No such file or directory ")
- log -p i -t DMM Self-Refresh-Only Disabled. low_power_memory_start_bytes does not exist:$op
- ;;
- *)
- log -p i -t DMM Self-Refresh-Only available. low_power_memory_start_bytes at $op
- ;;
- esac
-}
-
-#
-# For controlling console and shell on console on 8960 - perist.serial.enable 8960
-# On other target use default ro.debuggable property.
-#
-serial=`getprop persist.serial.enable`
-dserial=`getprop ro.debuggable`
-case "$target" in
- "msm8960")
- case "$serial" in
- "0")
- echo 0 > /sys/devices/platform/msm_serial_hsl.0/console
- ;;
- "1")
- echo 1 > /sys/devices/platform/msm_serial_hsl.0/console
- start console
- ;;
- *)
- case "$dserial" in
- "1")
- start console
- ;;
- esac
- ;;
- esac
- ;;
- *)
- case "$dserial" in
- "1")
- start console
- ;;
- esac
- ;;
-esac
-
-#
-# Allow persistent faking of bms
-# User needs to set fake bms charge in persist.bms.fake_batt_capacity
-#
-fake_batt_capacity=`getprop persist.bms.fake_batt_capacity`
-case "$fake_batt_capacity" in
- "") ;; #Do nothing here
- * )
- case $target in
- "msm8960")
- echo "$fake_batt_capacity" > /sys/module/pm8921_bms/parameters/bms_fake_battery
- ;;
- esac
-esac
-
-case "$target" in
- "msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
- insmod /system/lib/modules/ss_mfcinit.ko
- insmod /system/lib/modules/ss_vencoder.ko
- insmod /system/lib/modules/ss_vdecoder.ko
- chmod 0666 /dev/ss_mfc_reg
- chmod 0666 /dev/ss_vdec
- chmod 0666 /dev/ss_venc
-
- init_DMM
- ;;
-
- "msm8960")
- init_DMM
- ;;
-esac
diff --git a/config/init.qcom.class_main.sh b/config/init.qcom.class_main.sh
deleted file mode 100644
index 05d6051..0000000
--- a/config/init.qcom.class_main.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/system/bin/sh
-# Copyright (c) 2012, Code Aurora Forum. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# * Neither the name of Code Aurora nor
-# the names of its contributors may be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-#
-# start ril-daemon only for targets on which radio is present
-#
-baseband=`getprop ro.baseband`
-multirild=`getprop ro.multi.rild`
-dsds=`getprop persist.dsds.enabled`
-netmgr=`getprop ro.use_data_netmgrd`
-
-case "$baseband" in
- "apq")
- setprop ro.radio.noril yes
- stop ril-daemon
-esac
-
-case "$baseband" in
- "msm" | "csfb" | "svlte2a" | "mdm" | "sglte" | "unknown")
- start qmuxd
- case "$baseband" in
- "svlte2a" | "csfb" | "sglte")
- start qmiproxy
- esac
- case "$multirild" in
- "true")
- case "$dsds" in
- "true")
- start ril-daemon1
- esac
- esac
- case "$netmgr" in
- "true")
- start netmgrd
- esac
-esac
diff --git a/config/init.qcom.coex.sh b/config/init.qcom.coex.sh
deleted file mode 100644
index d1c1f3f..0000000
--- a/config/init.qcom.coex.sh
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/system/bin/sh
-# Copyright (c) 2009-2010, 2012, Code Aurora Forum. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# * Neither the name of Code Aurora nor
-# the names of its contributors may be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-LOG_TAG="qcom-bt-wlan-coex"
-LOG_NAME="${0}:"
-
-coex_pid=""
-ath_wlan_supported=`getprop wlan.driver.ath`
-
-loge ()
-{
- /system/bin/log -t $LOG_TAG -p e "$LOG_NAME $@"
-}
-
-logi ()
-{
- /system/bin/log -t $LOG_TAG -p i "$LOG_NAME $@"
-}
-
-failed ()
-{
- loge "$1: exit code $2"
- exit $2
-}
-
-start_coex ()
-{
- case "$ath_wlan_supported" in
- "2")
- echo "ATH WLAN Chip ID AR6004 is enabled"
- /system/bin/abtfilt -d -z -n -m -a -w wlan0 &
- ;;
- "1")
- echo "ATH WLAN Chip ID is enabled"
- # Must have -d -z -n -v -s -w wlan0 parameters for atheros btfilter.
- /system/bin/abtfilt -d -z -n -v -q -s -w wlan0 &
- ;;
- "0")
- echo "WCN WLAN Chip ID is enabled"
- # Must have -o turned on to avoid daemon (otherwise we cannot get pid)
- /system/bin/btwlancoex -o $opt_flags &
- ;;
- *)
- echo "NO WLAN Chip ID is enabled, so enabling ATH as default"
- # Must have -d -z -n -v -s -w wlan0 parameters for atheros btfilter.
- /system/bin/abtfilt -d -z -n -v -q -s -w wlan0 &
- ;;
- esac
- coex_pid=$!
- logi "start_coex: pid = $coex_pid"
-}
-
-kill_coex ()
-{
- logi "kill_coex: pid = $coex_pid"
- kill -TERM $coex_pid
- # this shell doesn't exit now -- wait returns for normal exit
-}
-
-# mimic coex options parsing -- maybe a waste of effort
-USAGE="${0} [-o] [-c] [-r] [-i] [-h]"
-
-while getopts "ocrih" f
-do
- case $f in
- o | c | r | i | h) opt_flags="$opt_flags -$f" ;;
- \?) echo $USAGE; exit 1;;
- esac
-done
-
-# init does SIGTERM on ctl.stop for service
-trap "kill_coex" TERM INT
-
-#Selectively start coex module
-target=`getprop ro.board.platform`
-
-if [ "$target" == "msm8960" ] && [ "$ath_wlan_supported" != "2" ]; then
- logi "btwlancoex/abtfilt is not needed"
-else
- # Build settings may not produce the coex executable
- if ls /system/bin/btwlancoex || ls /system/bin/abtfilt
- then
- start_coex
- wait $coex_pid
- logi "Coex stopped"
- else
- logi "btwlancoex/abtfilt not available"
- fi
-fi
-exit 0
diff --git a/config/init.qcom.efs.sync.sh b/config/init.qcom.efs.sync.sh
deleted file mode 100644
index 394b57f..0000000
--- a/config/init.qcom.efs.sync.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/system/bin/sh
-# Copyright (c) 2012, Code Aurora Forum. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of Code Aurora Forum, Inc. nor the names of its
-# contributors may be used to endorse or promote products derived
-# from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
-# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-#
-
-PATH=/system/bin:$PATH
-export PATH
-cat /sys/devices/platform/rs300000a7.65536/force_sync
-cat /sys/devices/platform/rs300100a7.65536/force_sync
diff --git a/config/init.qcom.fm.sh b/config/init.qcom.fm.sh
deleted file mode 100644
index adc7004..0000000
--- a/config/init.qcom.fm.sh
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/system/bin/sh
-# Copyright (c) 2009-2011, Code Aurora Forum. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# * Neither the name of Code Aurora nor
-# the names of its contributors may be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-setprop hw.fm.init 0
-
-mode=`getprop hw.fm.mode`
-version=`getprop hw.fm.version`
-isAnalog=`getprop hw.fm.isAnalog`
-
-#find the transport type
-TRANSPORT=`getprop ro.qualcomm.bt.hci_transport`
-
-LOG_TAG="qcom-fm"
-LOG_NAME="${0}:"
-
-loge ()
-{
- /system/bin/log -t $LOG_TAG -p e "$LOG_NAME $@"
-}
-
-logi ()
-{
- /system/bin/log -t $LOG_TAG -p i "$LOG_NAME $@"
-}
-
-failed ()
-{
- loge "$1: exit code $2"
- exit $2
-}
-
-logi "In FM shell Script"
-logi "mode: $mode"
-logi "isAnalog: $isAnalog"
-logi "Transport : $TRANSPORT"
-logi "Version : $version"
-
-#$fm_qsoc_patches <fm_chipVersion> <enable/disable WCM>
-#
-case $mode in
- "normal")
- case $TRANSPORT in
- "smd")
- logi "inserting the radio transport module"
- insmod /system/lib/modules/radio-iris-transport.ko
- ;;
- *)
- logi "default transport case "
- ;;
- esac
- /system/bin/fm_qsoc_patches $version 0
- ;;
- "wa_enable")
- /system/bin/fm_qsoc_patches $version 1
- ;;
- "wa_disable")
- /system/bin/fm_qsoc_patches $version 2
- ;;
- "config_dac")
- /system/bin/fm_qsoc_patches $version 3 $isAnalog
- ;;
- *)
- logi "Shell: Default case"
- /system/bin/fm_qsoc_patches $version 0
- ;;
-esac
-
-exit_code_fm_qsoc_patches=$?
-
-case $exit_code_fm_qsoc_patches in
- 0)
- logi "FM QSoC calibration and firmware download succeeded"
- ;;
- *)
- failed "FM QSoC firmware download and/or calibration failed" $exit_code_fm_qsoc_patches
- ;;
-esac
-
-setprop hw.fm.init 1
-
-exit 0
diff --git a/config/init.qcom.modem_links.sh b/config/init.qcom.modem_links.sh
deleted file mode 100644
index 674b0db..0000000
--- a/config/init.qcom.modem_links.sh
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/system/bin/sh
-# Copyright (c) 2011, Code Aurora Forum. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of Code Aurora Forum, Inc. nor the names of its
-# contributors may be used to endorse or promote products derived
-# from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
-# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-#
-
-# No path is set up at this point so we have to do it here.
-PATH=/sbin:/system/sbin:/system/bin:/system/xbin
-export PATH
-
-cd /system/etc/firmware
-
-case `ls modem_fw.mdt 2>/dev/null` in
- modem_fw.mdt)
- continue;;
- *)
- linksNeeded=1
- break;;
-esac
-
-# if links are needed mount the FS as read write
-case $linksNeeded in
- 1)
- mount -t ext4 -o remount,rw,barrier=0 /dev/block/mmcblk0p12 /system
- case `cat /sys/devices/system/soc/soc0/version 2>/dev/null` in
- "1.1")
- for file in modem_f1.* ; do
- newname=modem_fw.${file##*.}
- rm $newname 2>/dev/null
- ln -s $file $newname
- done
- break;;
- *)
- for file in modem_f2.* ; do
- newname=modem_fw.${file##*.}
- rm $newname 2>/dev/null
- ln -s $file $newname
- done
- break;;
- esac
- mount -t ext4 -o remount,ro,barrier=0 /dev/block/mmcblk0p12 /system
-esac
diff --git a/config/init.qcom.post_boot.sh b/config/init.qcom.post_boot.sh
deleted file mode 100644
index fbe48a1..0000000
--- a/config/init.qcom.post_boot.sh
+++ /dev/null
@@ -1,317 +0,0 @@
-#!/system/bin/sh
-# Copyright (c) 2009-2012, Code Aurora Forum. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# * Neither the name of Code Aurora nor
-# the names of its contributors may be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-target=`getprop ro.board.platform`
-case "$target" in
- "msm7201a_ffa" | "msm7201a_surf" | "msm7627_ffa" | "msm7627_6x" | "msm7627a" | "msm7627_surf" | \
- "qsd8250_surf" | "qsd8250_ffa" | "msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "qsd8650a_st1x")
- echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
- echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
- ;;
-esac
-
-case "$target" in
- "msm7201a_ffa" | "msm7201a_surf")
- echo 500000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
- ;;
-esac
-
-case "$target" in
- "msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
- echo 75000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
- echo 1 > /sys/module/pm2/parameters/idle_sleep_mode
- ;;
-esac
-
-case "$target" in
- "msm7201a_ffa" | "msm7201a_surf" | "msm7627_ffa" | "msm7627_6x" | "msm7627_surf" | "msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "msm7627a" )
- echo 245760 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
- ;;
-esac
-
-case "$target" in
- "msm8660")
- echo 1 > /sys/module/rpm_resources/enable_low_power/L2_cache
- echo 1 > /sys/module/rpm_resources/enable_low_power/pxo
- echo 2 > /sys/module/rpm_resources/enable_low_power/vdd_dig
- echo 2 > /sys/module/rpm_resources/enable_low_power/vdd_mem
- echo 1 > /sys/module/rpm_resources/enable_low_power/rpm_cpu
- echo 1 > /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu1/power_collapse/idle_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/idle_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/idle_enabled
- echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
- echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
- echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
- echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
- echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
- echo 4 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
- echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
- echo 384000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
- chown system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
- chown system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
- chown system /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
- chown system /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
- chown root.system /sys/devices/system/cpu/mfreq
- chmod 220 /sys/devices/system/cpu/mfreq
- chown root.system /sys/devices/system/cpu/cpu1/online
- chmod 664 /sys/devices/system/cpu/cpu1/online
- ;;
-esac
-
-case "$target" in
- "msm8960")
- echo 1 > /sys/module/rpm_resources/enable_low_power/L2_cache
- echo 1 > /sys/module/rpm_resources/enable_low_power/pxo
- echo 1 > /sys/module/rpm_resources/enable_low_power/vdd_dig
- echo 1 > /sys/module/rpm_resources/enable_low_power/vdd_mem
- echo 1 > /sys/module/pm_8x60/modes/cpu0/retention/idle_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu2/power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu3/power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu2/standalone_power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu3/standalone_power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/idle_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/idle_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu2/standalone_power_collapse/idle_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu3/standalone_power_collapse/idle_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled
- echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
- echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
- echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
- echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
- echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
- echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
- echo 4 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
- echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential
- echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
- echo 384000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
- echo 384000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
- echo 384000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
- chown system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
- chown system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
- chown system /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
- chown system /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
- chown system /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
- chown system /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
- chown system /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
- chown system /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
- chown root.system /sys/devices/system/cpu/mfreq
- chmod 220 /sys/devices/system/cpu/mfreq
- chown root.system /sys/devices/system/cpu/cpu1/online
- chown root.system /sys/devices/system/cpu/cpu2/online
- chown root.system /sys/devices/system/cpu/cpu3/online
- chmod 664 /sys/devices/system/cpu/cpu1/online
- chmod 664 /sys/devices/system/cpu/cpu2/online
- chmod 664 /sys/devices/system/cpu/cpu3/online
- start qosmgrd
- soc_id=`cat /sys/devices/system/soc/soc0/id`
- case "$soc_id" in
- "130")
- echo 230 > /sys/class/gpio/export
- echo 228 > /sys/class/gpio/export
- echo 229 > /sys/class/gpio/export
- echo "in" > /sys/class/gpio/gpio230/direction
- echo "rising" > /sys/class/gpio/gpio230/edge
- echo "in" > /sys/class/gpio/gpio228/direction
- echo "rising" > /sys/class/gpio/gpio228/edge
- echo "in" > /sys/class/gpio/gpio229/direction
- echo "rising" > /sys/class/gpio/gpio229/edge
- echo 253 > /sys/class/gpio/export
- echo 254 > /sys/class/gpio/export
- echo 257 > /sys/class/gpio/export
- echo 258 > /sys/class/gpio/export
- echo 259 > /sys/class/gpio/export
- echo "out" > /sys/class/gpio/gpio253/direction
- echo "out" > /sys/class/gpio/gpio254/direction
- echo "out" > /sys/class/gpio/gpio257/direction
- echo "out" > /sys/class/gpio/gpio258/direction
- echo "out" > /sys/class/gpio/gpio259/direction
- chown media /sys/class/gpio/gpio253/value
- chown media /sys/class/gpio/gpio254/value
- chown media /sys/class/gpio/gpio257/value
- chown media /sys/class/gpio/gpio258/value
- chown media /sys/class/gpio/gpio259/value
- chown media /sys/class/gpio/gpio253/direction
- chown media /sys/class/gpio/gpio254/direction
- chown media /sys/class/gpio/gpio257/direction
- chown media /sys/class/gpio/gpio258/direction
- chown media /sys/class/gpio/gpio259/direction
- echo 0 > /sys/module/rpm_resources/enable_low_power/vdd_dig
- echo 0 > /sys/module/rpm_resources/enable_low_power/vdd_mem
- ;;
- esac
- ;;
-esac
-
-case "$target" in
- "msm8974")
- echo 1 > /sys/module/lpm_resources/enable_low_power/l2
- echo 1 > /sys/module/lpm_resources/enable_low_power/pxo
- echo 1 > /sys/module/lpm_resources/enable_low_power/vdd_dig
- echo 1 > /sys/module/lpm_resources/enable_low_power/vdd_mem
- echo 1 > /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu2/power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu3/power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu2/standalone_power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu3/standalone_power_collapse/suspend_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/idle_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/idle_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu2/standalone_power_collapse/idle_enabled
- echo 1 > /sys/module/pm_8x60/modes/cpu3/standalone_power_collapse/idle_enabled
- echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
- echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
- echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
- echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
- echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
- echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
- echo 4 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
- echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential
- echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
- echo 300000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
- echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
- echo 300000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
- chown system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
- chown system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
- chown root.system /sys/devices/system/cpu/mfreq
- chmod 220 /sys/devices/system/cpu/mfreq
- chown root.system /sys/devices/system/cpu/cpu1/online
- chown root.system /sys/devices/system/cpu/cpu2/online
- chown root.system /sys/devices/system/cpu/cpu3/online
- chmod 664 /sys/devices/system/cpu/cpu1/online
- chmod 664 /sys/devices/system/cpu/cpu2/online
- chmod 664 /sys/devices/system/cpu/cpu3/online
- ;;
-esac
-
-case "$target" in
- "msm7627_ffa" | "msm7627_surf" | "msm7627_6x")
- echo 25000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
- ;;
-esac
-
-case "$target" in
- "qsd8250_surf" | "qsd8250_ffa" | "qsd8650a_st1x")
- echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
- ;;
-esac
-
-case "$target" in
- "qsd8650a_st1x")
- mount -t debugfs none /sys/kernel/debug
- ;;
-esac
-
-chown system /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
-chown system /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
-chown system /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
-
-emmc_boot=`getprop ro.boot.emmc`
-case "$emmc_boot"
- in "true")
- chown system /sys/devices/platform/rs300000a7.65536/force_sync
- chown system /sys/devices/platform/rs300000a7.65536/sync_sts
- chown system /sys/devices/platform/rs300100a7.65536/force_sync
- chown system /sys/devices/platform/rs300100a7.65536/sync_sts
- ;;
-esac
-
-case "$target" in
- "msm8960" | "msm8660" | "msm7630_surf")
- echo 10 > /sys/devices/platform/msm_sdcc.3/idle_timeout
- ;;
- "msm7627a")
- echo 10 > /sys/devices/platform/msm_sdcc.1/idle_timeout
- ;;
-esac
-
-# Post-setup services
-case "$target" in
- "msm8660" | "msm8960" | "msm8974")
- start mpdecision
- ;;
- "msm7627a")
- soc_id=`cat /sys/devices/system/soc/soc0/id`
- case "$soc_id" in
- "127" | "128" | "129")
- start mpdecision
- ;;
- esac
- ;;
-esac
-
-# Enable Power modes and set the CPU Freq Sampling rates
-case "$target" in
- "msm7627a")
- start qosmgrd
- echo 1 > /sys/module/pm2/modes/cpu0/standalone_power_collapse/idle_enabled
- echo 1 > /sys/module/pm2/modes/cpu1/standalone_power_collapse/idle_enabled
- echo 1 > /sys/module/pm2/modes/cpu0/standalone_power_collapse/suspend_enabled
- echo 1 > /sys/module/pm2/modes/cpu1/standalone_power_collapse/suspend_enabled
- #SuspendPC:
- echo 1 > /sys/module/pm2/modes/cpu0/power_collapse/suspend_enabled
- #IdlePC:
- echo 1 > /sys/module/pm2/modes/cpu0/power_collapse/idle_enabled
- echo 25000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
- ;;
-esac
-
-# Change adj level and min_free_kbytes setting for lowmemory killer to kick in
-case "$target" in
- "msm7627a")
- echo 0,1,2,4,9,12 > /sys/module/lowmemorykiller/parameters/adj
- echo 5120 > /proc/sys/vm/min_free_kbytes
- ;;
-esac
-
-# Install AdrenoTest.apk if not already installed
-if [ -f /data/prebuilt/AdrenoTest.apk ]; then
- if [ ! -d /data/data/com.qualcomm.adrenotest ]; then
- pm install /data/prebuilt/AdrenoTest.apk
- fi
-fi
-
-# Change adj level and min_free_kbytes setting for lowmemory killer to kick in
-case "$target" in
- "msm8660")
- start qosmgrd
- echo 0,1,2,4,9,12 > /sys/module/lowmemorykiller/parameters/adj
- echo 5120 > /proc/sys/vm/min_free_kbytes
- ;;
-esac
diff --git a/config/init.qcom.usb.rc b/config/init.qcom.usb.rc
deleted file mode 100644
index 63e4402..0000000
--- a/config/init.qcom.usb.rc
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# * Neither the name of Code Aurora nor
-# the names of its contributors may be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-on init
- write /sys/class/android_usb/android0/f_rndis/wceis 1
-
-service qcom-usb-sh /system/bin/sh /init.qcom.usb.sh
- class core
- user root
- oneshot
diff --git a/config/init.qcom.usb.sh b/config/init.qcom.usb.sh
deleted file mode 100644
index c282143..0000000
--- a/config/init.qcom.usb.sh
+++ /dev/null
@@ -1,154 +0,0 @@
-#!/system/bin/sh
-# Copyright (c) 2012, Code Aurora Forum. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of Code Aurora Forum, Inc. nor the names of its
-# contributors may be used to endorse or promote products derived
-# from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
-# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-#
-# Update USB serial number from persist storage if present, if not update
-# with value passed from kernel command line, if none of these values are
-# set then use the default value. This order is needed as for devices which
-# do not have unique serial number.
-# User needs to set unique usb serial number to persist.usb.serialno
-#
-serialno=`getprop persist.usb.serialno`
-case "$serialno" in
- "")
- serialnum=`getprop ro.serialno`
- case "$serialnum" in
- "");; #Do nothing, use default serial number
- *)
- echo "$serialnum" > /sys/class/android_usb/android0/iSerial
- esac
- ;;
- *)
- echo "$serialno" > /sys/class/android_usb/android0/iSerial
-esac
-
-chown root.system /sys/devices/platform/msm_hsusb/gadget/wakeup
-chmod 220 /sys/devices/platform/msm_hsusb/gadget/wakeup
-
-#
-# Allow persistent usb charging disabling
-# User needs to set usb charging disabled in persist.usb.chgdisabled
-#
-target=`getprop ro.board.platform`
-usbchgdisabled=`getprop persist.usb.chgdisabled`
-case "$usbchgdisabled" in
- "") ;; #Do nothing here
- * )
- case $target in
- "msm8660")
- echo "$usbchgdisabled" > /sys/module/pmic8058_charger/parameters/disabled
- echo "$usbchgdisabled" > /sys/module/smb137b/parameters/disabled
- ;;
- "msm8960")
- echo "$usbchgdisabled" > /sys/module/pm8921_charger/parameters/disabled
- ;;
- esac
-esac
-
-usbcurrentlimit=`getprop persist.usb.currentlimit`
-case "$usbcurrentlimit" in
- "") ;; #Do nothing here
- * )
- case $target in
- "msm8960")
- echo "$usbcurrentlimit" > /sys/module/pm8921_charger/parameters/usb_max_current
- ;;
- esac
-esac
-#
-# Allow USB enumeration with default PID/VID
-#
-baseband=`getprop ro.baseband`
-echo 1 > /sys/class/android_usb/f_mass_storage/lun/nofua
-usb_config=`getprop persist.sys.usb.config`
-case "$usb_config" in
- "" | "adb") #USB persist config not set, select default configuration
- case $target in
- "msm8960" | "msm8974")
- case "$baseband" in
- "mdm")
- setprop persist.sys.usb.config diag,diag_mdm,serial_hsic,serial_tty,rmnet_hsic,mtp,adb
- ;;
- "sglte")
- setprop persist.sys.usb.config diag,diag_mdm,serial_smd,serial_tty,serial_hsuart,rmnet_hsuart,mtp,adb
- ;;
- *)
- setprop persist.sys.usb.config diag,serial_smd,serial_tty,rmnet_bam,mtp,adb
- ;;
- esac
- ;;
- "msm7627a")
- setprop persist.sys.usb.config diag,serial_smd,serial_tty,rmnet_smd,mass_storage,adb
- ;;
- * )
- case "$baseband" in
- "svlte2a")
- setprop persist.sys.usb.config diag,diag_mdm,serial_sdio,serial_smd,rmnet_smd_sdio,mass_storage,adb
- ;;
- "csfb")
- setprop persist.sys.usb.config diag,diag_mdm,serial_sdio,serial_tty,rmnet_sdio,mass_storage,adb
- ;;
- *)
- setprop persist.sys.usb.config diag,serial_tty,serial_tty,rmnet_smd,mtp,adb
- ;;
- esac
- ;;
- esac
- ;;
- * ) ;; #USB persist config exists, do nothing
-esac
-
-#
-# Add support for exposing lun0 as cdrom in mass-storage
-#
-target=`getprop ro.product.device`
-cdromname="/system/etc/cdrom_install.iso"
-cdromenable=`getprop persist.service.cdrom.enable`
-case "$target" in
- "msm7627a")
- case "$cdromenable" in
- 0)
- echo "" > /sys/class/android_usb/android0/f_mass_storage/lun0/file
- ;;
- 1)
- echo "mounting usbcdrom lun"
- echo $cdromname > /sys/class/android_usb/android0/f_mass_storage/lun0/file
- ;;
- esac
- ;;
-esac
-
-#
-# Select USB BAM - 2.0 or 3.0
-#
-case "$target" in
- "msm8974")
- echo hsusb > /sys/bus/platform/devices/usb_bam/enable
- ;;
-esac
-
diff --git a/config/init.sony.rc b/config/init.sony.rc
deleted file mode 100644
index f79e0c3..0000000
--- a/config/init.sony.rc
+++ /dev/null
@@ -1,222 +0,0 @@
-import init.device.rc
-import init.qcom-etc.rc
-import init.qcom.usb.rc
-import init.sony.usb.rc
-
-on early-init
- export EXTERNAL_STORAGE /storage/sdcard0
- export SECONDARY_STORAGE /storage/sdcard1
-
- mkdir /storage 0050 system sdcard_r
- mkdir /storage/sdcard0 0000 system system
- mkdir /storage/sdcard1 0000 system system
-
- # for backwards compatibility
- symlink /storage/sdcard0 /mnt/sdcard
- symlink /storage/sdcard0 /sdcard
- symlink /storage/sdcard1 /external_sd
- symlink /storage/sdcard1 /mnt/external_sd
-
- mkdir /mnt/usbdisk 0755 system system
-
-on init
- symlink /dev/socket /tmp
-
-# This section is used when running on S1boot
-on fs
- # Mount partition
- mount_all /fstab.sony
-
- # we will remap this as /storage/sdcard0 with the sdcard fuse tool
- mkdir /data/media 0770 2800 2800
- mount_all /fstab_sd.sony
- chown 2800 2800 /data/media
-
- setprop ro.crypto.fuse_sdcard true
-
- mkdir /tombstones 0771 system system
- mkdir /tombstones/modem 0771 system system
- mkdir /tombstones/lpass 0771 system system
- mkdir /tombstones/wcnss 0771 system system
- mkdir /tombstones/dsps 0771 system system
- exec /system/bin/sh /system/etc/init.qcom.modem_links.sh
-
- # SEMC: Start the TrimArea Daemon and early TA-users
- class_start trimarea
- exec /system/bin/wait4tad
- exec /sbin/mr
- exec /system/bin/taimport
- start ta_qmi_service
-
- # SEMC: Remote storage service should be started after master reset
- # due to that the modem file system is formatted in the master reset
- start rmt_storage
-
-on post-fs
- # Touch firmware update
- write /data/etc/touch_default_module_id 32
- mkdir /data/pc 700 radio radio
-
-on post-fs-data
- chown system system /sys/devices/platform/msm_otg/msm_hsusb/gadget/lun1/file
- chmod 0660 /sys/devices/platform/msm_otg/msm_hsusb/gadget/lun1/file
- write /sys/devices/platform/msm_otg/msm_hsusb/gadget/lun0/nofua 1
- write /sys/devices/platform/msm_otg/msm_hsusb/gadget/lun1/nofua 1
-
- mkdir /data/misc/sensors 0775 root root
- write /data/system/sensors/settings 0
- chmod 0664 /data/system/sensors/settings
-
- mkdir /data/misc/wifi/prima 0775 wifi wifi
-
- # Camera
- mkdir /data/camera 0771 root camera
-
-on early-boot
-# Permissions for AKM897x sensor
- chown system system /data/misc/akm_set.txt
- chown system system /sys/class/compass/akm8972/interval
- chown system system /sys/class/compass/akm8972/single
- chown system system /sys/class/compass/akm8972/registers
- exec /sbin/fota-ua c
-
- #Run pre_hw_config.sh before entering charge only mode.
- exec /system/bin/sh /system/etc/pre_hw_config.sh
-
- # Start the offline charging (This blocks booting further in some cases)
- exec /system/bin/chargemon
-
- # Touch firmware update
- exec /system/bin/sh /system/etc/clearpad_fwloader.sh
-
-on boot
- # Owner for the proximity sensor
- chown system system /sys/devices/i2c-12/12-0054/threshold
- chown system system /sys/devices/i2c-12/12-0054/nburst
-
- # LM35xx/cameralight
- chown system system /sys/devices/i2c-10/10-0053/torch_enable
- chmod 666 /sys/devices/i2c-10/10-0053/torch_enable
- chown system system /sys/devices/i2c-10/10-0053/torch_current
- chmod 666 /sys/devices/i2c-10/10-0053/torch_current
- chown system camera /sys/devices/i2c-10/10-0053/privacy_enable
- chown system camera /sys/devices/i2c-10/10-0053/privacy_current
- chown system camera /sys/devices/i2c-10/10-0053/flash_enable
- chown system camera /sys/devices/i2c-10/10-0053/flash_duration
- chown system camera /sys/devices/i2c-10/10-0053/flash_synchronization
- chown system camera /sys/devices/i2c-10/10-0053/flash_current
- chown system camera /sys/devices/i2c-10/10-0053/status
-
- # AS3676/Ambient Light Sensor
- chown system system /sys/devices/i2c-10/10-0040/als_on
- chmod 666 /sys/devices/i2c-10/10-0040/als_on
-
- # Disable C_A_D
- exec system/bin/ctrlaltdel soft
-
- # USB Host support
- mkdir /dev/bus 0711 system system
- mkdir /dev/bus/usb 0711 system system
-
- # Turn on WCNSS subsystem
- write /dev/wcnss_wlan 1
-
- # insmod the cfg80211 module
- insmod /system/lib/modules/cfg80211.ko
-
- write /proc/sys/kernel/watchdog_thresh 5
-
- # Configurate TCP/IP kernel settings
- exec /system/bin/sh /system/etc/init.netconfig.sh
-
- # Bluetooth mac address
- setprop ro.bt.bdaddr_path "/data/etc/bluetooth_bdaddr"
- chown bluetooth bluetooth ro.bt.bdaddr_path
-
- # Change owner and group to get adopter/device ids from MHL driver
- chown system system /sys/class/mhl/sii8334/adopter_id
- chown system system /sys/class/mhl/sii8334/device_id
-
- # To use non-Google assistance server
- setprop ro.gps.agps_provider customized
- write /sys/devices/i2c-3/3-0024/cyttsp_update_fw 1
-
- # Do not power down SIM in flight mode (required for Wi-Fi EAP-SIM)
- setprop persist.radio.apm_sim_not_pwdn 1
-
- # Enable Power save functionality for modem
- setprop persist.radio.add_power_save 1
- exec /system/bin/cal_data_manager
-
- # Enable DEBUG_SUSPEND, DEBUG_EXIT_SUSPEND, and DEBUG_WAKEUP
- write /sys/module/wakelock/parameters/debug_mask 7
-
- mount debugfs /sys/kernel/debug /sys/kernel/debug
-
-# create virtual SD card at /storage/sdcard0, based on the /data/media directory
-# daemon will drop to user/group system/media_rw after initializing
-# underlying files in /data/media will be created with user and group 2800
-# to maintain compatibility with Sony firmware
-service sdcard /system/bin/sdcard /data/media 2800 2800
- class late_start
-
-# Fast Dormancy
-service fast-dormancy /system/bin/fast-dormancy
- class main
-
-on property:ro.semc.enable.fast_dormancy=false
-stop fast-dormancy
-
-# Update WIFI MAC address
-service mac-update /system/bin/mac-update
- user root
- group root
- oneshot
- class main
-
-# Start ric
-service ric /system/bin/ric
- user root
- group root
- class main
-
-service secchan /system/bin/secchand
- user system
- group system
- class core
-
-service usbeng /system/bin/usbeng
- class late_start
- oneshot
-
-# SEMC: TrimArea Daemon
-# last 2 args: start block(blk size 128k), number of blocks(partitionsize(kb) /128(kb))
-service tad /system/bin/tad /dev/block/mmcblk0 1,16
- user root
- group root
- socket tad stream 0660 system system
- class trimarea
-
-# Trim Area QMI service
-service ta_qmi_service /system/bin/ta_qmi_service
- user system
- disabled
-
-service updatemiscta /system/bin/updatemiscta
- class main
- user root
- oneshot
-
-service hw_config /system/bin/sh /system/etc/hw_config.sh
- class main
- user root
- oneshot
-
-service mpdecision /system/bin/mpdecision --no_sleep --avg_comp
- user root
- disabled
-
-service thermald /system/bin/thermald -c /system/etc/thermald.conf
- class main
- socket thermald stream 0666 root root
- user root
diff --git a/config/media_codecs.xml b/config/media_codecs.xml
deleted file mode 100644
index 9e61a30..0000000
--- a/config/media_codecs.xml
+++ /dev/null
@@ -1,162 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 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.
--->
-<!--
- Copyright (c) 2012, Code Aurora Forum. All rights reserved.
- Not a Contribution, Apache license notifications and license are retained
- for attribution purposes only.
--->
-<CodecList>
- <Encoders>
- <!-- Audio Hardware -->
- <MediaCodec name="OMX.google.aac.encoder" type="audio/mp4a-latm" />
- <MediaCodec name="OMX.qcom.audio.encoder.aac" type="audio/mp4a-latm" />
- <MediaCodec name="OMX.qcom.audio.encoder.evrc" type="audio/evrc" >
- <Quirk name="requires-allocate-on-input-ports" />
- <Quirk name="requires-allocate-on-output-ports" />
- </MediaCodec>
- <MediaCodec name="OMX.qcom.audio.encoder.qcelp13" type="audio/qcelp" >
- <Quirk name="requires-allocate-on-input-ports" />
- <Quirk name="requires-allocate-on-output-ports" />
- </MediaCodec>
- <!-- Audio Software -->
- <MediaCodec name="AACEncoder" type="audio/mp4a-latm" />
- <MediaCodec name="OMX.google.amrnb.encoder" type="audio/3gpp" />
- <MediaCodec name="OMX.google.amrwb.encoder" type="audio/amr-wb" />
- <!-- Video Hardware -->
- <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" />
- </MediaCodec>
- <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"/>
- </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" />
- </MediaCodec>
- <!-- Video Software -->
- <MediaCodec name="OMX.ittiam.video.encoder.avc" type="video/avc" >
- <Quirk name="requires-allocate-on-input-ports" />
- <Quirk name="requies-loaded-to-idle-after-allocation" />
- </MediaCodec>
- <MediaCodec name="OMX.google.h264.encoder" type="video/avc" />
- <MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" />
- <MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" />
- </Encoders>
- <Decoders>
- <!-- Audio Hardware -->
- <MediaCodec name="OMX.qcom.audio.decoder.Qcelp13Hw" type="audio/qcelp" >
- <Quirk name="requires-global-flush" />
- </MediaCodec>
- <MediaCodec name="OMX.qcom.audio.decoder.evrchw" type="audio/evrc" >
- <Quirk name="requires-global-flush" />
- </MediaCodec>
- <MediaCodec name="OMX.qcom.audio.decoder.ac3" type="audio/ac3" >
- <Quirk name="requires-allocate-on-input-ports" />
- <Quirk name="requires-allocate-on-output-ports" />
- </MediaCodec>
- <MediaCodec name="OMX.qcom.audio.decoder.wma" type="audio/x-ms-wma" >
- <Quirk name="requires-global-flush" />
- <Quirk name="requires-wma-pro-component" />
- </MediaCodec>
- <MediaCodec name="OMX.qcom.audio.decoder.wmaLossLess" type="audio/x-ms-wma" >
- <Quirk name="requires-global-flush" />
- </MediaCodec>
- <MediaCodec name="OMX.qcom.audio.decoder.wma10Pro" type="audio/x-ms-wma" >
- <Quirk name="requires-global-flush" />
- </MediaCodec>
- <MediaCodec name="OMX.qcom.audio.decoder.mp3" type="audio/mpeg" >
- <Quirk name="requires-global-flush" />
- </MediaCodec>
- <!-- Audio Software -->
- <MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis" />
- <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.audio.decoder.Qcelp13" type="audio/qcelp" >
- <Quirk name="requires-global-flush" />
- </MediaCodec>
- <MediaCodec name="OMX.qcom.audio.decoder.evrc" type="audio/evrc" >
- <Quirk name="requires-global-flush" />
- </MediaCodec>
- <!-- Video Hardware -->
- <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" />
- </MediaCodec>
- <MediaCodec name="OMX.qcom.video.decoder.mpeg2" type="video/mpeg2" >
- <Quirk name="requires-allocate-on-input-ports" />
- <Quirk name="requires-allocate-on-output-ports" />
- <Quirk name="defers-output-buffer-allocation" />
- </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" />
- </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" />
- </MediaCodec>
- <MediaCodec name="OMX.qcom.video.decoder.vc1" type="video/x-ms-wmv" >
- <Quirk name="requires-allocate-on-input-ports" />
- <Quirk name="requires-allocate-on-output-ports" />
- <Quirk name="defers-output-buffer-allocation" />
- </MediaCodec>
- <MediaCodec name="OMX.qcom.video.decoder.divx" type="video/divx" >
- <Quirk name="requires-allocate-on-input-ports" />
- <Quirk name="requires-allocate-on-output-ports" />
- <Quirk name="defers-output-buffer-allocation" />
- </MediaCodec>
- <MediaCodec name="OMX.qcom.video.decoder.divx311" type="video/divx311" >
- <Quirk name="requires-allocate-on-input-ports" />
- <Quirk name="requires-allocate-on-output-ports" />
- <Quirk name="defers-output-buffer-allocation" />
- </MediaCodec>
- <MediaCodec name="OMX.qcom.video.decoder.divx4" type="video/divx4" >
- <Quirk name="requires-allocate-on-input-ports" />
- <Quirk name="requires-allocate-on-output-ports" />
- <Quirk name="defers-output-buffer-allocation" />
- </MediaCodec>
- <MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" >
- <Quirk name="requires-allocate-on-input-ports" />
- <Quirk name="requires-allocate-on-output-ports" />
- <Quirk name="defers-output-buffer-allocation" />
- </MediaCodec>
- <!-- Video Software -->
- <MediaCodec name="OMX.ittiam.video.decoder.avc" type="video/avc" >
- <Quirk name="requires-allocate-on-output-ports" />
- <Quirk name="defers-output-buffer-allocation" />
- </MediaCodec>
- <MediaCodec name="OMX.ittiam.video.decoder.mpeg4" type="video/mp4v-es" >
- <Quirk name="requires-allocate-on-output-ports" />
- <Quirk name="defers-output-buffer-allocation" />
- </MediaCodec>
- <MediaCodec name="OMX.google.h264.decoder" type="video/avc" />
- <MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" />
- <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" />
- <MediaCodec name="OMX.google.vpx.decoder" type="video/x-vnd.on2.vp8" />
- </Decoders>
-</CodecList>
diff --git a/config/nfcee_access.xml b/config/nfcee_access.xml
deleted file mode 100644
index 02e12fd..0000000
--- a/config/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/config/nfcee_access_debug.xml b/config/nfcee_access_debug.xml
deleted file mode 100644
index a96a2d1..0000000
--- a/config/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/config/snd_soc_msm_2x b/config/snd_soc_msm_2x
deleted file mode 100644
index b9ed1e0..0000000
--- a/config/snd_soc_msm_2x
+++ /dev/null
@@ -1,7574 +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 SPDIF"
-
- EnableSequence
- 'HDMI Mixer MultiMedia1':1:1
- 'SEC_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'HDMI Mixer MultiMedia1':1:0
- 'SEC_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
-
-SectionVerb
- Name "HiFiSPDIF"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-EndSection
-
-SectionVerb
- Name "HiFiSPDIF Speaker"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-EndSection
-
-SectionVerb
- Name "HiFiSPDIF Earpiece"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-EndSection
-
-SectionVerb
- Name "HiFiSPDIF Headphones"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-EndSection
-
-SectionVerb
- Name "HiFiSPDIF ANC Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-EndSection
-
-SectionVerb
- Name "HiFiSPDIF Speaker Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-EndSection
-
-SectionVerb
- Name "HiFiSPDIF Speaker ANC Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-EndSection
-
-SectionVerb
- Name "HiFiPROXY Rx Speaker"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-EndSection
-
-SectionVerb
- Name "HiFiPROXY Rx Earpiece"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-EndSection
-
-SectionVerb
- Name "HiFiPROXY Rx Headphones"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-EndSection
-
-SectionVerb
- Name "HiFiPROXY Rx ANC Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-EndSection
-
-SectionVerb
- Name "HiFiPROXY Rx Speaker Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-EndSection
-
-SectionVerb
- Name "HiFiPROXY Rx Speaker ANC Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-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 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."HiFi3" {
-Comment "Music playback use case for MM3 FE"
-SectionVerb
- Name "HiFi3"
-
- 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
-
-SectionVerb
- Name "HiFi3Speaker FM Tx"
-
- 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
-
-SectionVerb
- Name "HiFi3FM 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
-
-SectionVerb
- Name "HiFi3HDMI"
-
- EnableSequence
- 'HDMI Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'HDMI Mixer MultiMedia5':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3HDMI SPDIF"
-
- EnableSequence
- 'HDMI Mixer MultiMedia5':1:1
- 'SEC_RX Audio Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'HDMI Mixer MultiMedia5':1:0
- 'SEC_RX Audio Mixer MultiMedia5':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3BT 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
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3BT 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
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3PROXY 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
-
-SectionVerb
- Name "HiFi3PROXY Tx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3SPDIF"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3SPDIF Speaker"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3SPDIF Earpiece"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3SPDIF Headphones"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3SPDIF ANC Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3SPDIF Speaker Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3SPDIF Speaker ANC Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3PROXY 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
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3PROXY 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
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3PROXY 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
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3PROXY 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
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3PROXY 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
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionVerb
- Name "HiFi3PROXY 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
- CapturePCM 14
- PlaybackPCM 14
-
-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 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."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 RecPROXY Rx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-EndSection
-
-SectionVerb
- Name "HiFi RecPROXY Tx"
-
- EnableSequence
- 'MultiMedia1 Mixer AFE_PCM_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia1 Mixer AFE_PCM_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."HiFi Rec2" {
-Comment "Recording use case 2"
-SectionVerb
- Name "HiFi Rec2"
-
- EnableSequence
- 'MultiMedia2 Mixer SLIM_0_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia2 Mixer SLIM_0_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 1
- PlaybackPCM 1
-
-EndSection
-
-SectionVerb
- Name "HiFi Rec2BT SCO Tx"
-
- EnableSequence
- 'MultiMedia2 Mixer INTERNAL_BT_SCO_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia2 Mixer INTERNAL_BT_SCO_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 1
- PlaybackPCM 1
-
-EndSection
-
-SectionVerb
- Name "HiFi Rec2BT SCO WB Tx"
-
- EnableSequence
- 'MultiMedia2 Mixer INTERNAL_BT_SCO_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia2 Mixer INTERNAL_BT_SCO_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 1
- PlaybackPCM 1
-
-EndSection
-
-SectionVerb
- Name "HiFi Rec2PROXY Rx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- CapturePCM 1
- PlaybackPCM 1
-
-EndSection
-
-SectionVerb
- Name "HiFi Rec2PROXY Tx"
-
- EnableSequence
- 'MultiMedia2 Mixer AFE_PCM_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia2 Mixer AFE_PCM_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 1
- PlaybackPCM 1
-
-EndSection
-
-SectionVerb
- Name "HiFi Rec2SSR QMIC"
-
- EnableSequence
- 'MultiMedia2 Mixer SLIM_0_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia2 Mixer SLIM_0_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 1
- PlaybackPCM 1
-
-EndSection
-
-SectionVerb
- Name "HiFi Rec2MI2S"
-
- EnableSequence
- 'MultiMedia2 Mixer MI2S_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia2 Mixer MI2S_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 1
- PlaybackPCM 1
-
-EndSection
-}
-SectionUseCase."HiFi Rec Compressed" {
-Comment "HiFi Rec Compressed use case"
-SectionVerb
- Name "HiFi Rec Compressed"
-
- EnableSequence
- 'MultiMedia4 Mixer SLIM_0_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia4 Mixer SLIM_0_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 9
- PlaybackPCM 9
-
-EndSection
-
-SectionVerb
- Name "HiFi Rec CompressedMI2S"
-
- EnableSequence
- 'MultiMedia4 Mixer MI2S_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia4 Mixer MI2S_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 9
- PlaybackPCM 9
-
-EndSection
-}
-SectionUseCase."SGLTE" {
-Comment "SGLTE use case"
-SectionVerb
- Name "SGLTE"
-
- EnableSequence
- 'SLIM_0_RX_Voice Mixer SGLTE':1:1
- 'SGLTE_Tx Mixer SLIM_0_TX_SGLTE':1:1
- EndSequence
-
- DisableSequence
- 'SLIM_0_RX_Voice Mixer SGLTE':1:0
- 'SGLTE_Tx Mixer SLIM_0_TX_SGLTE':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 13
- CapturePCM 13
-
-EndSection
-
-SectionVerb
- Name "SGLTE CallHDMI"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- 'HDMI_RX_Voice Mixer SGLTE':1:0
- 'SGLTE_Tx Mixer SLIM_0_TX_SGLTE':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 13
- CapturePCM 13
-
-EndSection
-
-SectionVerb
- Name "SGLTE CallHDMI Tx"
-
- EnableSequence
- 'HDMI_RX_Voice Mixer SGLTE':1:1
- 'SGLTE_Tx Mixer SLIM_0_TX_SGLTE':1:1
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 13
- CapturePCM 13
-
-EndSection
-
-SectionVerb
- Name "SGLTE CallBT SCO Rx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- 'Internal BTSCO SampleRate':0:8000
- 'INTERNAL_BT_SCO_RX_Voice Mixer SGLTE':1:0
- 'SGLTE_Tx Mixer INTERNAL_BT_SCO_TX_SGLTE':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 13
- CapturePCM 13
-
-EndSection
-
-SectionVerb
- Name "SGLTE CallBT SCO Tx"
-
- EnableSequence
- 'Internal BTSCO SampleRate':0:8000
- 'INTERNAL_BT_SCO_RX_Voice Mixer SGLTE':1:1
- 'SGLTE_Tx Mixer INTERNAL_BT_SCO_TX_SGLTE':1:1
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 13
- CapturePCM 13
-
-EndSection
-
-SectionVerb
- Name "SGLTE CallBT SCO WB Rx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- 'Internal BTSCO SampleRate':0:8000
- 'INTERNAL_BT_SCO_RX_Voice Mixer SGLTE':1:0
- 'SGLTE_Tx Mixer INTERNAL_BT_SCO_TX_SGLTE':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 13
- CapturePCM 13
-
-EndSection
-
-SectionVerb
- Name "SGLTE CallBT SCO WB Tx"
-
- EnableSequence
- 'Internal BTSCO SampleRate':0:16000
- 'INTERNAL_BT_SCO_RX_Voice Mixer SGLTE':1:1
- 'SGLTE_Tx Mixer INTERNAL_BT_SCO_TX_SGLTE':1:1
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 13
- CapturePCM 13
-
-EndSection
-
-SectionVerb
- Name "SGLTE CallPROXY Rx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX_Voice Mixer SGLTE':1:0
- 'SGLTE_Tx Mixer AFE_PCM_TX_SGLTE':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 13
- CapturePCM 13
-
-EndSection
-
-SectionVerb
- Name "SGLTE CallPROXY Tx"
-
- EnableSequence
- 'AFE_PCM_RX_Voice Mixer SGLTE':1:1
- 'SGLTE_Tx Mixer AFE_PCM_TX_SGLTE':1:1
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 13
- CapturePCM 13
-
-EndSection
-}
-SectionUseCase."Voice Call" {
-Comment "Voice Call use case"
-SectionVerb
- Name "Voice Call"
-
- EnableSequence
- 'SLIM_0_RX_Voice Mixer CSVoice':1:1
- 'Voice_Tx Mixer SLIM_0_TX_Voice':1:1
- EndSequence
-
- DisableSequence
- 'SLIM_0_RX_Voice Mixer CSVoice':1:0
- 'Voice_Tx Mixer SLIM_0_TX_Voice':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-EndSection
-
-SectionVerb
- Name "Voice CallHDMI"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- 'HDMI_RX_Voice Mixer CSVoice':1:0
- 'Voice_Tx Mixer SLIM_0_TX_Voice':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-EndSection
-
-SectionVerb
- Name "Voice CallHDMI Tx"
-
- EnableSequence
- 'HDMI_RX_Voice Mixer CSVoice':1:1
- 'Voice_Tx Mixer SLIM_0_TX_Voice':1:1
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-EndSection
-
-SectionVerb
- Name "Voice CallBT SCO Rx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- 'Internal BTSCO SampleRate':0:8000
- 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:0
- 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-EndSection
-
-SectionVerb
- Name "Voice CallBT SCO Tx"
-
- EnableSequence
- 'Internal BTSCO SampleRate':0:8000
- 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:1
- 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:1
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-EndSection
-
-SectionVerb
- Name "Voice CallBT SCO WB Rx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- 'Internal BTSCO SampleRate':0:8000
- 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:0
- 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-EndSection
-
-SectionVerb
- Name "Voice CallBT SCO WB Tx"
-
- EnableSequence
- 'Internal BTSCO SampleRate':0:16000
- 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:1
- 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:1
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-EndSection
-
-SectionVerb
- Name "Voice CallPROXY Rx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX_Voice Mixer CSVoice':1:0
- 'Voice_Tx Mixer AFE_PCM_TX_Voice':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-EndSection
-
-SectionVerb
- Name "Voice CallPROXY Tx"
-
- EnableSequence
- 'AFE_PCM_RX_Voice Mixer CSVoice':1:1
- 'Voice_Tx Mixer AFE_PCM_TX_Voice':1:1
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-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
-
-SectionVerb
- Name "Voice Call IPROXY Rx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX_Voice Mixer Voip':1:0
- 'Voip_Tx Mixer AFE_PCM_TX_Voip':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-EndSection
-
-SectionVerb
- Name "Voice Call IPPROXY Tx"
-
- EnableSequence
- 'AFE_PCM_RX_Voice Mixer Voip':1:1
- 'Voip_Tx Mixer AFE_PCM_TX_Voip':1:1
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-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."DL REC" {
-Comment "Voice Downlink Recording use case"
-SectionVerb
- Name "DL REC"
-
- EnableSequence
- 'MultiMedia1 Mixer VOC_REC_DL':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia1 Mixer VOC_REC_DL':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 0
- CapturePCM 0
-
-EndSection
-}
-SectionUseCase."UL DL REC" {
-Comment "Voice Uplink Downlink Recording use case"
-SectionVerb
- Name "UL DL REC"
-
- EnableSequence
- 'MultiMedia1 Mixer VOC_REC_UL':1:1
- 'MultiMedia1 Mixer VOC_REC_DL':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia1 Mixer VOC_REC_UL':1:0
- 'MultiMedia1 Mixer VOC_REC_DL':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 SPDIF"
-
- EnableSequence
- 'HDMI Mixer MultiMedia4':1:1
- 'SEC_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'HDMI Mixer MultiMedia4':1:0
- 'SEC_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
-
-SectionVerb
- Name "HiFi TunnelPROXY Tx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionVerb
- Name "HiFi TunnelSPDIF"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionVerb
- Name "HiFi TunnelSPDIF Speaker"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionVerb
- Name "HiFi TunnelSPDIF Earpiece"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionVerb
- Name "HiFi TunnelSPDIF Headphones"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionVerb
- Name "HiFi TunnelSPDIF ANC Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionVerb
- Name "HiFi TunnelSPDIF Speaker Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionVerb
- Name "HiFi TunnelSPDIF Speaker ANC Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionVerb
- Name "HiFi TunnelPROXY Rx Speaker"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionVerb
- Name "HiFi TunnelPROXY Rx Earpiece"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionVerb
- Name "HiFi TunnelPROXY Rx Headphones"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionVerb
- Name "HiFi TunnelPROXY Rx ANC Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionVerb
- Name "HiFi TunnelPROXY Rx Speaker Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionVerb
- Name "HiFi TunnelPROXY Rx Speaker ANC Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-}
-SectionUseCase."HiFi Tunnel2" {
-Comment "Tunnel mode playback use case"
-SectionVerb
- Name "HiFi Tunnel2"
-
- EnableSequence
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2Speaker FM Tx"
-
- EnableSequence
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- 'INTERNAL_FM_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- 'INTERNAL_FM_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2FM Tx"
-
- EnableSequence
- 'INTERNAL_FM_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'INTERNAL_FM_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2HDMI"
-
- EnableSequence
- 'HDMI Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'HDMI Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2HDMI SPDIF"
-
- EnableSequence
- 'HDMI Mixer MultiMedia7':1:1
- 'SEC_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'HDMI Mixer MultiMedia7':1:0
- 'SEC_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2BT SCO Rx"
-
- EnableSequence
- 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2BT SCO WB Rx"
-
- EnableSequence
- 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2PROXY Rx"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2PROXY Tx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2SPDIF"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2SPDIF Speaker"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2SPDIF Earpiece"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2SPDIF Headphones"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2SPDIF ANC Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2SPDIF Speaker Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2SPDIF Speaker ANC Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2PROXY Rx Speaker"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2PROXY Rx Earpiece"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2PROXY Rx Headphones"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2PROXY Rx ANC Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2PROXY Rx Speaker Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionVerb
- Name "HiFi Tunnel2PROXY Rx Speaker ANC Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-}
-SectionUseCase."VoLTE" {
-Comment "VoLTE use case"
-SectionVerb
- Name "VoLTE"
-
- EnableSequence
- 'SLIM_0_RX_Voice Mixer VoLTE':1:1
- 'VoLTE_Tx Mixer SLIM_0_TX_VoLTE':1:1
- EndSequence
-
- DisableSequence
- 'SLIM_0_RX_Voice Mixer VoLTE':1:0
- 'VoLTE_Tx Mixer SLIM_0_TX_VoLTE':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 12
- capturePCM 12
-
-EndSection
-
-SectionVerb
- Name "VoLTE CallHDMI"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- 'HDMI_RX_Voice Mixer VoLTE':1:0
- 'VoLTE_Tx Mixer SLIM_0_TX_VoLTE':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 12
- capturePCM 12
-
-EndSection
-
-SectionVerb
- Name "VoLTE CallHDMI Tx"
-
- EnableSequence
- 'HDMI_RX_Voice Mixer VoLTE':1:1
- 'VoLTE_Tx Mixer SLIM_0_TX_VoLTE':1:1
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 12
- capturePCM 12
-
-EndSection
-
-SectionVerb
- Name "VoLTE CallBT SCO Rx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- 'Internal BTSCO SampleRate':0:8000
- 'INTERNAL_BT_SCO_RX_Voice Mixer VoLTE':1:0
- 'VoLTE_Tx Mixer INTERNAL_BT_SCO_TX_VoLTE':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 12
- capturePCM 12
-
-EndSection
-
-SectionVerb
- Name "VoLTE CallBT SCO Tx"
-
- EnableSequence
- 'Internal BTSCO SampleRate':0:8000
- 'INTERNAL_BT_SCO_RX_Voice Mixer VoLTE':1:1
- 'VoLTE_Tx Mixer INTERNAL_BT_SCO_TX_VoLTE':1:1
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 12
- capturePCM 12
-
-EndSection
-
-SectionVerb
- Name "VoLTE CallBT SCO WB Rx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- 'Internal BTSCO SampleRate':0:8000
- 'INTERNAL_BT_SCO_RX_Voice Mixer VoLTE':1:0
- 'VoLTE_Tx Mixer INTERNAL_BT_SCO_TX_VoLTE':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 12
- capturePCM 12
-
-EndSection
-
-SectionVerb
- Name "VoLTE CallBT SCO WB Tx"
-
- EnableSequence
- 'Internal BTSCO SampleRate':0:16000
- 'INTERNAL_BT_SCO_RX_Voice Mixer VoLTE':1:1
- 'VoLTE_Tx Mixer INTERNAL_BT_SCO_TX_VoLTE':1:1
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 12
- capturePCM 12
-
-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
-}
-SectionDevice
- Name "Earpiece"
- Comment "Handset Rx device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:One
- 'RX1 MIX1 INP1':0:RX1
- 'RX1 Digital Volume':1:65
- 'RX2 Digital Volume':1:65
- 'EAR PA Gain':0:POS_6_DB
- 'DAC1 Switch':1:1
- EndSequence
-
- DisableSequence
- 'RX1 MIX1 INP1':0:ZERO
- 'DAC1 Switch':1:0
- EndSequence
-
- ACDBID 7:1
- EffectsMixerCTL "SRS TruMedia"
- EC_REF_RXMixerCTL "SLIM_RX"
-
-EndSection
-
-SectionDevice
- Name "Voice Earpiece"
- Comment "Handset Rx device for voice call"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:One
- 'RX1 MIX1 INP1':0:RX1
- 'RX1 Digital Volume':1:65
- 'RX2 Digital Volume':1:65
- 'EAR PA Gain':0:POS_6_DB
- 'DAC1 Switch':1:1
- EndSequence
-
- DisableSequence
- 'RX1 MIX1 INP1':0:ZERO
- 'DAC1 Switch':1:0
- EndSequence
-
- ACDBID 7:1
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "TTY Handset Rx"
- Comment "TTY HCO Handset Rx device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:One
- 'RX1 MIX1 INP1':0:RX1
- 'EAR PA Gain':0:POS_2_DB
- 'DAC1 Switch':1:1
- EndSequence
-
- DisableSequence
- 'RX1 MIX1 INP1':0:ZERO
- 'DAC1 Switch':1:0
- EndSequence
-
- ACDBID 37:1
- EffectsMixerCTL "SRS TruMedia"
- EC_REF_RXMixerCTL "SLIM_RX"
-
-EndSection
-
-SectionDevice
- Name "ANC Handset"
- Comment "ANC Handset Rx device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:One
- 'RX1 MIX1 INP1':0:RX1
- 'DAC1 Switch':1:1
- 'ANC Slot':1:1
- 'ANC1 MUX':0:DMIC1
- 'MICBIAS1 CAPLESS Switch':1:1
- EndSequence
-
- DisableSequence
- 'RX1 MIX1 INP1':0:ZERO
- 'DAC1 Switch':1:0
- 'ANC Slot':1:0
- 'ANC1 MUX':0:ZERO
- 'MICBIAS1 CAPLESS Switch':1:0
- EndSequence
-
- ACDBID 30:1
- EffectsMixerCTL "SRS TruMedia"
- EC_REF_RXMixerCTL "SLIM_RX"
-
-EndSection
-
-SectionDevice
- Name "Speaker"
- Comment "Speaker Rx device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:Two
- 'RX3 Digital Volume':1:71
- 'RX4 Digital Volume':1:71
- 'RX3 MIX1 INP1':0:RX1
- 'RX5 MIX1 INP1':0:RX2
- 'RX4 DSM MUX':0:DSM_INV
- 'RX6 DSM MUX':0:DSM_INV
- 'LINEOUT1 Volume':1:100
- 'LINEOUT2 Volume':1:100
- 'LINEOUT3 Volume':1:100
- 'LINEOUT4 Volume':1:100
- EndSequence
-
- DisableSequence
- 'RX3 Digital Volume':1:0
- 'RX4 Digital Volume':1:0
- 'RX3 MIX1 INP1':0:ZERO
- 'RX5 MIX1 INP1':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
- EndSequence
-
- ACDBID 15:1
- EffectsMixerCTL "SRS TruMedia"
- EC_REF_RXMixerCTL "SLIM_RX"
-
-EndSection
-
-SectionDevice
- Name "Headphones"
- Comment "Headset Rx device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:Two
- 'RX1 MIX1 INP1':0:RX1
- 'RX2 MIX1 INP1':0:RX2
- 'RX1 Digital Volume':1:68
- 'RX2 Digital Volume':1:68
- 'HPHL DAC Switch':1:1
- 'HPHR DAC Switch':1:1
- 'HPHL Volume':1:80
- 'HPHR Volume':1:80
- EndSequence
-
- DisableSequence
- 'RX1 MIX1 INP1':0:ZERO
- 'RX2 MIX1 INP1':0:ZERO
- 'RX1 Digital Volume':1:0
- 'RX2 Digital Volume':1:0
- 'HPHL DAC Switch':1:0
- 'HPHR DAC Switch':1:0
- 'HPHL Volume':1:0
- 'HPHR Volume':1:0
- EndSequence
-
- ACDBID 10:1
- EffectsMixerCTL "SRS TruMedia"
- EC_REF_RXMixerCTL "SLIM_RX"
-
-EndSection
-
-SectionDevice
- Name "Voice Headphones"
- Comment "Headset Rx device for voice call"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:Two
- 'RX1 MIX1 INP1':0:RX1
- 'RX2 MIX1 INP1':0:RX2
- 'HPHL DAC Switch':1:1
- 'HPHR DAC Switch':1:1
- 'HPHL Volume':1:80
- 'HPHR Volume':1:80
- 'RX1 Digital Volume':1:68
- 'RX2 Digital Volume':1:68
- EndSequence
-
- DisableSequence
- 'RX1 MIX1 INP1':0:ZERO
- 'RX2 MIX1 INP1':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
- EndSequence
-
- ACDBID 10:1
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "Speaker Headset"
- Comment "Speaker Headset Rx combo device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:Two
- 'RX3 MIX1 INP1':0:RX1
- 'RX5 MIX1 INP1':0:RX2
- 'RX4 DSM MUX':0:DSM_INV
- 'RX6 DSM MUX':0:DSM_INV
- 'LINEOUT1 Volume':1:100
- 'LINEOUT2 Volume':1:100
- 'LINEOUT3 Volume':1:100
- 'LINEOUT4 Volume':1:100
- 'RX1 MIX1 INP1':0:RX1
- 'RX2 MIX1 INP1':0:RX2
- 'HPHL DAC Switch':1:1
- 'HPHR DAC Switch':1:1
- 'HPHL Volume':1:80
- 'HPHR Volume':1:80
- EndSequence
-
- DisableSequence
- 'RX3 MIX1 INP1':0:ZERO
- 'RX5 MIX1 INP1':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
- 'RX2 MIX1 INP1':0:ZERO
- 'HPHL DAC Switch':1:0
- 'HPHR DAC Switch':1:0
- 'HPHL Volume':1:0
- 'HPHR Volume':1:0
- EndSequence
-
- ACDBID 10:1
- EffectsMixerCTL "SRS TruMedia"
- EC_REF_RXMixerCTL "SLIM_RX"
-
-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
- 'RX5 MIX1 INP1':0:RX2
- '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
- 'RX2 MIX1 INP1':0:RX2
- '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
- EndSequence
-
- DisableSequence
- 'RX3 MIX1 INP1':0:ZERO
- 'RX5 MIX1 INP1':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
- 'RX2 MIX1 INP1':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
- EndSequence
-
- ACDBID 26:1
- EffectsMixerCTL "SRS TruMedia"
- EC_REF_RXMixerCTL "SLIM_RX"
-
-EndSection
-
-SectionDevice
- Name "ANC Headset"
- Comment "ANC Headset Rx device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:Two
- 'RX1 MIX1 INP1':0:RX1
- 'RX2 MIX1 INP1':0:RX2
- '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
- EndSequence
-
- DisableSequence
- 'RX1 MIX1 INP1':0:ZERO
- 'RX2 MIX1 INP1':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
- EndSequence
-
- ACDBID 26:1
- EffectsMixerCTL "SRS TruMedia"
- EC_REF_RXMixerCTL "SLIM_RX"
-
-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
- 'RX2 MIX1 INP1':0:RX2
- '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
- EndSequence
-
- DisableSequence
- 'RX1 MIX1 INP1':0:ZERO
- 'RX2 MIX1 INP1':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
- EndSequence
-
- ACDBID 26:1
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "Speaker FM Tx"
- Comment "Speaker FM Tx combo device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:Two
- 'RX3 MIX1 INP1':0:RX1
- 'RX5 MIX1 INP1':0:RX2
- '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
- EndSequence
-
- DisableSequence
- 'RX3 MIX1 INP1':0:ZERO
- 'RX5 MIX1 INP1':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
- EndSequence
-
- ACDBID 15:1
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "Speaker Tx"
- Comment "Speakerphone Tx Device"
-
- EnableSequence
- 'SLIM_0_TX Channels':0:One
- 'SLIM TX7 MUX':0:DEC4
- 'DEC4 MUX':0:ADC3
- 'ADC3 Volume':1:100
- EndSequence
-
- DisableSequence
- 'SLIM TX7 MUX':0:ZERO
- 'DEC4 MUX':0:ZERO
- 'ADC3 Volume':1:0
- EndSequence
-
- ACDBID 11:2
-
-EndSection
-
-SectionDevice
- Name "Headset"
- Comment "Headset Tx device"
-
- EnableSequence
- 'SLIM_0_TX Channels':0:One
- 'SLIM TX7 MUX':0:DEC5
- 'DEC5 MUX':0:ADC2
- 'ADC2 Volume':1:100
- EndSequence
-
- DisableSequence
- 'SLIM TX7 MUX':0:ZERO
- 'DEC5 MUX':0:ZERO
- 'ADC2 Volume':1:0
- EndSequence
-
- ACDBID 8:2
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "Handset"
- Comment "Handset Tx device"
-
- EnableSequence
- 'SLIM_0_TX Channels':0:One
- 'SLIM TX7 MUX':0:DEC6
- 'DEC6 MUX':0:ADC1
- 'ADC1 Volume':1:100
- EndSequence
-
- DisableSequence
- 'SLIM TX7 MUX':0:ZERO
- 'DEC6 MUX':0:ZERO
- 'ADC1 Volume':1:0
- EndSequence
-
- ACDBID 4:2
- EffectsMixerCTL "SRS TruMedia"
-
-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
- 'ADC1 Volume':1:100
- 'MICBIAS1 CAPLESS Switch':1:1
- EndSequence
-
- DisableSequence
- 'SLIM TX7 MUX':0:ZERO
- 'DEC7 MUX':0:ZERO
- '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: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 "TTY Handset Tx"
- Comment "TTY VCO Handset 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 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:DEC6
- 'DEC6 MUX':0:ADC1
- 'ADC1 Volume':1:100
- 'SLIM TX8 MUX':0:DEC4
- 'DEC4 MUX':0:ADC3
- 'ADC3 Volume':1:100
- 'SLIM_0_TX Channels':0:Two
- EndSequence
-
- DisableSequence
- 'SLIM TX7 MUX':0:ZERO
- 'DEC1 MUX':0:ZERO
- 'SLIM TX8 MUX':0:ZERO
- 'DEC2 MUX':0:ZERO
- EndSequence
-
- ACDBID 5:2
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "DMIC Endfire"
- Comment "Dual MIC Endfire Tx device"
-
- EnableSequence
- 'SLIM TX7 MUX':0:DEC6
- 'DEC6 MUX':0:ADC1
- 'ADC1 Volume':1:100
- 'SLIM TX8 MUX':0:DEC4
- 'DEC4 MUX':0:ADC3
- 'ADC3 Volume':1:100
- 'SLIM_0_TX Channels':0:Two
- EndSequence
-
- DisableSequence
- 'SLIM TX7 MUX':0:ZERO
- 'DEC1 MUX':0:ZERO
- 'SLIM TX8 MUX':0:ZERO
- 'DEC3 MUX':0:ZERO
- EndSequence
-
- ACDBID 6:2
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "Speaker DMIC Broadside"
- Comment "Dual MIC Broadside Tx device"
-
- EnableSequence
- 'SLIM TX7 MUX':0:DEC6
- 'DEC6 MUX':0:ADC1
- 'ADC1 Volume':1:100
- 'SLIM TX8 MUX':0:DEC4
- 'DEC4 MUX':0:ADC3
- 'ADC3 Volume':1:100
- 'SLIM_0_TX Channels':0:Two
- EndSequence
-
- DisableSequence
- 'SLIM TX7 MUX':0:ZERO
- 'DEC1 MUX':0:ZERO
- 'SLIM TX8 MUX':0:ZERO
- 'DEC2 MUX':0:ZERO
- EndSequence
-
- ACDBID 12:2
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "Speaker DMIC Endfire"
- Comment "Dual MIC Endfire Tx device"
-
- EnableSequence
- 'SLIM TX7 MUX':0:DEC6
- 'DEC6 MUX':0:ADC1
- 'ADC1 Volume':1:100
- 'SLIM TX8 MUX':0:DEC4
- 'DEC4 MUX':0:ADC3
- 'ADC3 Volume':1:100
- 'SLIM_0_TX Channels':0:Two
- EndSequence
-
- DisableSequence
- 'SLIM TX7 MUX':0:ZERO
- 'DEC1 MUX':0:ZERO
- 'SLIM TX8 MUX':0:ZERO
- 'DEC3 MUX':0:ZERO
- EndSequence
-
- ACDBID 13:2
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "Handset DMIC Stereo"
- Comment "Handset Dual MIC Stereo Tx device"
-
- EnableSequence
- 'SLIM TX7 MUX':0:DEC7
- 'DEC7 MUX':0:DMIC1
- 'SLIM TX8 MUX':0:DEC9
- 'DEC9 MUX':0:DMIC4
- '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 34:2
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "Speaker DMIC Stereo"
- Comment "Speaker Dual MIC Stereo Tx device"
-
- EnableSequence
- 'SLIM TX7 MUX':0:DEC4
- 'DEC4 MUX':0:ADC3
- 'ADC3 Volume':1:100
- 'SLIM TX8 MUX':0:DEC6
- 'DEC6 MUX':0:ADC1
- 'ADC1 Volume':1:100
- 'SLIM_0_TX Channels':0:Two
- EndSequence
-
- DisableSequence
- 'SLIM TX7 MUX':0:ZERO
- 'DEC4 MUX':0:ZERO
- 'SLIM TX8 MUX':0:ZERO
- 'DEC6 MUX':0:ZERO
- 'ADC3 Volume':1:0
- 'ADC1 Volume':1:0
- EndSequence
-
- ACDBID 35: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:Two
- 'RX1 MIX1 INP1':0:RX1
- 'RX2 MIX1 INP1':0:RX2
- 'HPHL DAC Switch':1:1
- 'HPHR DAC Switch':1:1
- '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
- '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:DEC5
- 'DEC5 MUX':0:ADC2
- 'ADC2 Volume':1:100
- EndSequence
-
- DisableSequence
- 'TTY Mode':0:ZERO
- 'SLIM TX7 MUX':0:ZERO
- 'DEC5 MUX':0:ZERO
- '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:Two
- 'RX1 MIX1 INP1':0:RX1
- 'RX2 MIX1 INP1':0:RX2
- 'HPHL DAC Switch':1:1
- 'HPHR DAC Switch':1:1
- '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
- '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:DEC5
- 'DEC5 MUX':0:ADC2
- 'ADC2 Volume':1:100
- EndSequence
-
- DisableSequence
- 'SLIM TX7 MUX':0:ZERO
- 'DEC5 MUX':0:ZERO
- '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 SPDIF"
- Comment "HDMI + SPDIF Rx combo device"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- EndSequence
-
- ACDBID 18:1
- EffectsMixerCTL "SRS TruMedia HDMI"
-
-EndSection
-
-SectionDevice
- Name "FM Tx"
- Comment "FM Tx device"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- EndSequence
-
- ACDBID 0:1
- EffectsMixerCTL "SRS TruMedia FM"
-
-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 "SPDIF"
- Comment "SPDIF Rx device"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- EndSequence
-
- ACDBID 0:1
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "MI2S"
- Comment "MI2S Tx device"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- EndSequence
-
- ACDBID 0:1
-
-EndSection
-
-SectionDevice
- Name "SPDIF Earpiece"
- Comment "SPDIF + Handset Rx device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:One
- 'RX1 MIX1 INP1':0:RX1
- 'EAR PA Gain':0:POS_6_DB
- 'DAC1 Switch':1:1
- EndSequence
-
- DisableSequence
- 'RX1 MIX1 INP1':0:ZERO
- 'DAC1 Switch':1:0
- EndSequence
-
- ACDBID 7:1
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "SPDIF Speaker"
- Comment "SPDIF + Speaker Rx device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:Two
- 'RX3 MIX1 INP1':0:RX1
- 'RX5 MIX1 INP1':0:RX2
- '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
- EndSequence
-
- DisableSequence
- 'RX3 MIX1 INP1':0:ZERO
- 'RX5 MIX1 INP1':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
- EndSequence
-
- ACDBID 15:1
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "SPDIF Headphones"
- Comment "SPDIF + Headset Rx device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:Two
- 'RX1 MIX1 INP1':0:RX1
- 'RX2 MIX1 INP1':0:RX2
- 'HPHL DAC Switch':1:1
- 'HPHR DAC Switch':1:1
- 'HPHL Volume':1:80
- 'HPHR Volume':1:80
- 'RX1 Digital Volume':1:68
- 'RX2 Digital Volume':1:68
- EndSequence
-
- DisableSequence
- 'RX1 MIX1 INP1':0:ZERO
- 'RX2 MIX1 INP1':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
- EndSequence
-
- ACDBID 10:1
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "SPDIF ANC Headset"
- Comment "SPDIF + ANC Headset Rx device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:Two
- 'RX1 MIX1 INP1':0:RX1
- 'RX2 MIX1 INP1':0:RX2
- '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
- EndSequence
-
- DisableSequence
- 'RX1 MIX1 INP1':0:ZERO
- 'RX2 MIX1 INP1':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
- EndSequence
-
- ACDBID 26:1
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "SPDIF Speaker Headset"
- Comment "SPDIF + Speaker Headset Rx combo device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:Two
- 'RX3 MIX1 INP1':0:RX1
- 'RX5 MIX1 INP1':0:RX2
- '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
- 'RX2 MIX1 INP1':0:RX2
- 'HPHL DAC Switch':1:1
- 'HPHR DAC Switch':1:1
- 'HPHL Volume':1:80
- 'HPHR Volume':1:80
- EndSequence
-
- DisableSequence
- 'RX3 MIX1 INP1':0:ZERO
- 'RX5 MIX1 INP1':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
- 'RX2 MIX1 INP1':0:ZERO
- 'HPHL DAC Switch':1:0
- 'HPHR DAC Switch':1:0
- 'HPHL Volume':1:0
- 'HPHR Volume':1:0
- EndSequence
-
- ACDBID 10:1
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "SPDIF Speaker ANC Headset"
- Comment "SPDIF + Speaker ANC Headset Rx combo device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:Two
- 'RX3 MIX1 INP1':0:RX1
- 'RX5 MIX1 INP1':0:RX2
- '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
- 'RX2 MIX1 INP1':0:RX2
- '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
- EndSequence
-
- DisableSequence
- 'RX3 MIX1 INP1':0:ZERO
- 'RX5 MIX1 INP1':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
- 'RX2 MIX1 INP1':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
- EndSequence
-
- ACDBID 26:1
- 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
-
-SectionDevice
- Name "PROXY Rx Earpiece"
- Comment "PROXY Rx + Handset Rx device combo device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:One
- 'RX1 MIX1 INP1':0:RX1
- 'EAR PA Gain':0:POS_2_DB
- 'DAC1 Switch':1:1
- EndSequence
-
- DisableSequence
- 'RX1 MIX1 INP1':0:ZERO
- 'DAC1 Switch':1:0
- EndSequence
-
- ACDBID 7:1
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "PROXY Rx Speaker"
- Comment "PROXY Rx + Speaker Rx device combo device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:Two
- 'RX3 MIX1 INP1':0:RX1
- 'RX5 MIX1 INP1':0:RX2
- '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
- EndSequence
-
- DisableSequence
- 'RX3 MIX1 INP1':0:ZERO
- 'RX5 MIX1 INP1':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
- EndSequence
-
- ACDBID 15:1
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "PROXY Rx Headphones"
- Comment "PROXY Rx + Headphone Rx device combo device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:Two
- 'RX1 MIX1 INP1':0:RX1
- 'RX2 MIX1 INP1':0:RX2
- 'HPHL DAC Switch':1:1
- 'HPHR DAC Switch':1:1
- 'HPHL Volume':1:80
- 'HPHR Volume':1:80
- 'RX1 Digital Volume':1:68
- 'RX2 Digital Volume':1:68
- EndSequence
-
- DisableSequence
- 'RX1 MIX1 INP1':0:ZERO
- 'RX2 MIX1 INP1':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
- EndSequence
-
- ACDBID 10:1
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "PROXY Rx Speaker Headset"
- Comment "PROXY Rx + Speaker Headset Rx combo device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:Two
- 'RX3 MIX1 INP1':0:RX1
- 'RX5 MIX1 INP1':0:RX2
- '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
- 'RX2 MIX1 INP1':0:RX2
- 'HPHL DAC Switch':1:1
- 'HPHR DAC Switch':1:1
- 'HPHL Volume':1:80
- 'HPHR Volume':1:80
- EndSequence
-
- DisableSequence
- 'RX3 MIX1 INP1':0:ZERO
- 'RX5 MIX1 INP1':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
- 'RX2 MIX1 INP1':0:ZERO
- 'HPHL DAC Switch':1:0
- 'HPHR DAC Switch':1:0
- 'HPHL Volume':1:0
- 'HPHR Volume':1:0
- EndSequence
-
- ACDBID 10:1
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "PROXY Rx Speaker ANC Headset"
- Comment "PROXY Rx + Speaker ANC Headset Rx combo device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:Two
- 'RX3 MIX1 INP1':0:RX1
- 'RX5 MIX1 INP1':0:RX2
- '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
- 'RX2 MIX1 INP1':0:RX2
- '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
- EndSequence
-
- DisableSequence
- 'RX3 MIX1 INP1':0:ZERO
- 'RX5 MIX1 INP1':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
- 'RX2 MIX1 INP1':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
- EndSequence
-
- ACDBID 26:1
- EffectsMixerCTL "SRS TruMedia"
-
-EndSection
-
-SectionDevice
- Name "PROXY Rx ANC Headset"
- Comment "PROXY Rx ANC Headset Rx device combo device"
-
- EnableSequence
- 'SLIM_0_RX Channels':0:Two
- 'RX1 MIX1 INP1':0:RX1
- 'RX2 MIX1 INP1':0:RX2
- '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
- EndSequence
-
- DisableSequence
- 'RX1 MIX1 INP1':0:ZERO
- 'RX2 MIX1 INP1':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
- EndSequence
-
- ACDBID 26:1
- 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 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 SPDIF"
- Comment "Modifier for music playback on HDMI SPDIF"
-
- EnableSequence
- 'HDMI Mixer MultiMedia1':1:1
- 'SEC_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'HDMI Mixer MultiMedia1':1:0
- 'SEC_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 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 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 "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 FMPROXY 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
-
-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 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
- 'SLIM_0_RX_Voice Mixer CSVoice':1:1
- 'Voice_Tx Mixer SLIM_0_TX_Voice':1:1
- EndSequence
-
- DisableSequence
- 'SLIM_0_RX_Voice Mixer CSVoice':1:0
- 'Voice_Tx Mixer SLIM_0_TX_Voice':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 2
- PlaybackPCM 2
-
-EndSection
-
-SectionModifier
- Name "Play VoiceBT SCO Rx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- 'Internal BTSCO SampleRate':0:8000
- 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:0
- 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-EndSection
-
-SectionModifier
- Name "Play VoiceBT SCO Tx"
-
- EnableSequence
- 'Internal BTSCO SampleRate':0:8000
- 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:1
- 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:1
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-EndSection
-
-SectionModifier
- Name "Play VoiceBT SCO WB Rx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- 'Internal BTSCO SampleRate':0:8000
- 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:0
- 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-EndSection
-
-SectionModifier
- Name "Play VoiceBT SCO WB Tx"
-
- EnableSequence
- 'Internal BTSCO SampleRate':0:16000
- 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:1
- 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:1
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-EndSection
-
-SectionModifier
- Name "Capture Voice"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-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 "Capture Voice Downlink"
-
- EnableSequence
- 'MultiMedia1 Mixer VOC_REC_DL':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia1 Mixer VOC_REC_DL':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 0
- CapturePCM 0
-
-EndSection
-
-SectionModifier
- Name "Capture Voice Uplink Downlink"
-
- EnableSequence
- 'MultiMedia1 Mixer VOC_REC_UL':1:1
- 'MultiMedia1 Mixer VOC_REC_DL':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia1 Mixer VOC_REC_UL':1:0
- 'MultiMedia1 Mixer VOC_REC_DL':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 0
- CapturePCM 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 SPDIF"
-
- EnableSequence
- 'HDMI Mixer MultiMedia4':1:1
- 'SEC_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'HDMI Mixer MultiMedia4':1:0
- 'SEC_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 "Play MusicSPDIF"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-EndSection
-
-SectionModifier
- Name "Play MusicSPDIF Speaker"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'SEC_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 MusicSPDIF Earpiece"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'SEC_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 MusicSPDIF Headphones"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'SEC_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 MusicSPDIF ANC Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'SEC_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 MusicSPDIF Speaker Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'SEC_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 MusicSPDIF Speaker ANC Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'SEC_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 Music2SPDIF"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia2':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia2':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-EndSection
-
-SectionModifier
- Name "Play Music2SPDIF 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 0
- PlaybackPCM 0
-
-EndSection
-
-SectionModifier
- Name "Play Music2SPDIF 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 0
- PlaybackPCM 0
-
-EndSection
-
-SectionModifier
- Name "Play Music2SPDIF 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 0
- PlaybackPCM 0
-
-EndSection
-
-SectionModifier
- Name "Play Music2SPDIF 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 0
- PlaybackPCM 0
-
-EndSection
-
-SectionModifier
- Name "Play Music2SPDIF 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 0
- PlaybackPCM 0
-
-EndSection
-
-SectionModifier
- Name "Play Music2SPDIF 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 0
- PlaybackPCM 0
-
-EndSection
-
-SectionModifier
- Name "Play TunnelSPDIF"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionModifier
- Name "Play TunnelSPDIF Speaker"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionModifier
- Name "Play TunnelSPDIF Earpiece"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionModifier
- Name "Play TunnelSPDIF Headphones"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionModifier
- Name "Play TunnelSPDIF ANC Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionModifier
- Name "Play TunnelSPDIF Speaker Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionModifier
- Name "Play TunnelSPDIF Speaker ANC Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionModifier
- Name "Capture MusicPROXY Tx"
-
- EnableSequence
- 'MultiMedia1 Mixer AFE_PCM_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia1 Mixer AFE_PCM_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 0
- PlaybackPCM 0
-
-EndSection
-
-SectionModifier
- Name "Play SGLTE"
-
- EnableSequence
- 'SLIM_0_RX_Voice Mixer SGLTE':1:1
- 'SGLTE_Tx Mixer SLIM_0_TX_SGLTE':1:1
- EndSequence
-
- DisableSequence
- 'SLIM_0_RX_Voice Mixer SGLTE':1:0
- 'SGLTE_Tx Mixer SLIM_0_TX_SGLTE':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 13
- PlaybackPCM 13
-
-EndSection
-
-SectionModifier
- Name "Play VoicePROXY Rx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX_Voice Mixer CSVoice':1:0
- 'Voice_Tx Mixer AFE_PCM_TX_Voice':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-EndSection
-
-SectionModifier
- Name "Play VoicePROXY Tx"
-
- EnableSequence
- 'AFE_PCM_RX_Voice Mixer CSVoice':1:1
- 'Voice_Tx Mixer AFE_PCM_TX_Voice':1:1
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-EndSection
-
-SectionModifier
- Name "Play VOIPPROXY Rx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX_Voice Mixer Voip':1:0
- 'Voip_Tx Mixer AFE_PCM_TX_Voip':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-EndSection
-
-SectionModifier
- Name "Play VOIPPROXY Tx"
-
- EnableSequence
- 'AFE_PCM_RX_Voice Mixer Voip':1:1
- 'Voip_Tx Mixer AFE_PCM_TX_Voip':1:1
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 2
- CapturePCM 2
-
-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 MI2S"
-
- EnableSequence
- 'SLIMBUS_0_RX Port Mixer MI2S_TX':1:1
- EndSequence
-
- DisableSequence
- 'SLIMBUS_0_RX Port Mixer MI2S_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 12
- PlaybackPCM 5
-
-EndSection
-
-SectionModifier
- Name "Play MI2SSpeaker"
-
- EnableSequence
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_DL_HL Switch':1:1
- 'SLIMBUS_0_RX Port Mixer MI2S_TX':1:1
- EndSequence
-
- DisableSequence
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
- 'SLIMBUS_DL_HL Switch':1:0
- 'SLIMBUS_0_RX Port Mixer MI2S_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 12
- PlaybackPCM 5
-
-EndSection
-
-SectionModifier
- Name "Play MI2SHDMI"
-
- EnableSequence
- 'HDMI_RX Port Mixer MI2S_TX':1:1
- EndSequence
-
- DisableSequence
- 'HDMI_RX Port Mixer MI2S_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 12
- PlaybackPCM 11
-
-EndSection
-
-SectionModifier
- Name "Play MI2SSPDIF"
-
- EnableSequence
- 'SEC_I2S_RX Port Mixer MI2S_TX':1:1
- EndSequence
-
- DisableSequence
- 'SEC_I2S_RX Port Mixer MI2S_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 12
- PlaybackPCM 13
-
-EndSection
-
-SectionModifier
- Name "Play VoLTE"
-
- EnableSequence
- 'SLIM_0_RX_Voice Mixer VoLTE':1:1
- 'VoLTE_Tx Mixer SLIM_0_TX_VoLTE':1:1
- EndSequence
-
- DisableSequence
- 'SLIM_0_RX_Voice Mixer VoLTE':1:0
- 'VoLTE_Tx Mixer SLIM_0_TX_VoLTE':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 12
- capturePCM 12
-
-EndSection
-
-SectionModifier
- Name "Capture Music2"
-
- EnableSequence
- 'MultiMedia2 Mixer SLIM_0_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia2 Mixer SLIM_0_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 1
- PlaybackPCM 1
-
-EndSection
-
-SectionModifier
- Name "Capture Music2BT SCO Tx"
-
- EnableSequence
- 'MultiMedia2 Mixer INTERNAL_BT_SCO_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia2 Mixer INTERNAL_BT_SCO_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 1
- PlaybackPCM 1
-
-EndSection
-
-SectionModifier
- Name "Capture Music2BT SCO WB Tx"
-
- EnableSequence
- 'MultiMedia2 Mixer INTERNAL_BT_SCO_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia2 Mixer INTERNAL_BT_SCO_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 1
- PlaybackPCM 1
-EndSection
-
-SectionModifier
- Name "Capture Music2PROXY Rx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- CapturePCM 1
- PlaybackPCM 1
-
-EndSection
-
-SectionModifier
- Name "Capture Music2PROXY Tx"
-
- EnableSequence
- 'MultiMedia2 Mixer AFE_PCM_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia2 Mixer AFE_PCM_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 1
- PlaybackPCM 1
-
-EndSection
-
-SectionModifier
- Name "Capture Music2SSR QMIC"
-
- EnableSequence
- 'MultiMedia2 Mixer SLIM_0_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia2 Mixer SLIM_0_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 1
- PlaybackPCM 1
-
-EndSection
-
-SectionModifier
- Name "Capture Music2MI2S"
-
- EnableSequence
- 'MultiMedia2 Mixer MI2S_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia2 Mixer MI2S_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 1
- PlaybackPCM 1
-
-EndSection
-
-SectionModifier
- Name "Capture Music Compressed"
-
- EnableSequence
- 'MultiMedia4 Mixer SLIM_0_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia4 Mixer SLIM_0_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 9
- PlaybackPCM 9
-
-EndSection
-
-SectionModifier
- Name "Capture Music CompressedMI2S"
-
- EnableSequence
- 'MultiMedia4 Mixer MI2S_TX':1:1
- EndSequence
-
- DisableSequence
- 'MultiMedia4 Mixer MI2S_TX':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 9
- PlaybackPCM 9
-
-EndSection
-
-SectionModifier
- Name "Play MusicPROXY Rx Speaker"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_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 MusicPROXY Rx Earpiece"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_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 MusicPROXY Rx Headphones"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_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 MusicPROXY Rx ANC Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_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 MusicPROXY Rx Speaker Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_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 MusicPROXY Rx Speaker ANC Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_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 Music2PROXY 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
-
-SectionModifier
- Name "Play Music2PROXY 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
-
-SectionModifier
- Name "Play Music2PROXY 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
-
-SectionModifier
- Name "Play Music2PROXY 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
-
-SectionModifier
- Name "Play Music2PROXY 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
-
-SectionModifier
- Name "Play Music2PROXY 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
-
-SectionModifier
-
- Name "Play TunnelPROXY Rx Speaker"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionModifier
- Name "Play TunnelPROXY Rx Earpiece"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel TunnelPROXY Rx Headphones"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionModifier
- Name "Play TunnelPROXY Rx ANC Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionModifier
- Name "Play TunnelPROXY Rx Speaker Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionModifier
- Name "Play TunnelPROXY Rx Speaker ANC Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 9
-
-EndSection
-
-SectionModifier
- Name "Play Music3"
-
- 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 Music3Speaker FM Tx"
-
- 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 Music3FM 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 Music3HDMI"
-
- EnableSequence
- 'HDMI Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'HDMI Mixer MultiMedia5':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionModifier
- Name "Play Music3HDMI SPDIF"
-
- EnableSequence
- 'HDMI Mixer MultiMedia5':1:1
- 'SEC_RX Audio Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'HDMI Mixer MultiMedia5':1:0
- 'SEC_RX Audio Mixer MultiMedia5':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionModifier
- Name "Play Music3BT 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
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionModifier
- Name "Play Music3BT 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
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionModifier
- Name "Play Music3PROXY 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 Music3PROXY Tx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionModifier
- Name "Play Music3SPDIF"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:0
- EndSequence
-
- # ALSA PCMs
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionModifier
- Name "Play Music3SPDIF Speaker"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'SEC_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 Music3SPDIF Earpiece"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'SEC_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 Music3SPDIF Headphones"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'SEC_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 Music3SPDIF ANC Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'SEC_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 Music3SPDIF Speaker Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'SEC_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 Music3SPDIF Speaker ANC Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia5':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia5':1:1
- EndSequence
-
- DisableSequence
- 'SEC_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 Music3PROXY 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
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionModifier
- Name "Play Music3PROXY 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
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionModifier
- Name "Play Music3PROXY 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
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionModifier
- Name "Play Music3PROXY 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
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionModifier
- Name "Play Music3PROXY 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
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionModifier
- Name "Play Music3PROXY 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
- CapturePCM 14
- PlaybackPCM 14
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2"
-
- EnableSequence
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2Speaker FM Tx"
-
- EnableSequence
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- 'INTERNAL_FM_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- 'INTERNAL_FM_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2FM Tx"
-
- EnableSequence
- 'INTERNAL_FM_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'INTERNAL_FM_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2HDMI"
-
- EnableSequence
- 'HDMI Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'HDMI Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2HDMI SPDIF"
-
- EnableSequence
- 'HDMI Mixer MultiMedia7':1:1
- 'SEC_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'HDMI Mixer MultiMedia7':1:0
- 'SEC_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2BT SCO Rx"
-
- EnableSequence
- 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2BT SCO WB Rx"
-
- EnableSequence
- 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'INTERNAL_BT_SCO_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2PROXY Rx"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2PROXY Tx"
-
- EnableSequence
- EndSequence
-
- DisableSequence
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2SPDIF"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2SPDIF Speaker"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2SPDIF Earpiece"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2SPDIF Headphones"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2SPDIF ANC Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2SPDIF Speaker Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2SPDIF Speaker ANC Headset"
-
- EnableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'SEC_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2PROXY Rx Speaker"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2PROXY Rx Earpiece"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2PROXY Rx Headphones"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2PROXY Rx ANC Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2PROXY Rx Speaker Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-
-SectionModifier
- Name "Play Tunnel2PROXY Rx Speaker ANC Headset"
-
- EnableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:1
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:1
- EndSequence
-
- DisableSequence
- 'AFE_PCM_RX Audio Mixer MultiMedia7':1:0
- 'SLIMBUS_0_RX Audio Mixer MultiMedia7':1:0
- EndSequence
-
- # ALSA PCMs
- PlaybackPCM 16
-
-EndSection
-# End of master file
diff --git a/config/thermald.conf b/config/thermald.conf
deleted file mode 100644
index 7fd19b5..0000000
--- a/config/thermald.conf
+++ /dev/null
@@ -1,44 +0,0 @@
-sampling 5000
-
-[pa_therm0]
-sampling 100000
-thresholds 65 70 75 80 85 90
-thresholds_clr 60 65 70 75 80 85
-actions none none none none none none
-action_info 0 0 0 0 0 0
-
-[tsens_tz_sensor0]
-sampling 1000
-thresholds 65 90 93 96 99 102 105
-thresholds_clr 62 87 90 93 96 99 102
-actions cpu cpu cpu cpu cpu cpu shutdown
-action_info 1512000 1296000 1188000 918000 756000 648000 5000
-
-[tsens_tz_sensor1]
-sampling 1000
-thresholds 75
-thresholds_clr 72
-actions none
-action_info 0
-
-[tsens_tz_sensor2]
-sampling 1000
-thresholds 75
-thresholds_clr 72
-actions none
-action_info 0
-
-[tsens_tz_sensor3]
-sampling 1000
-thresholds 75 78 81 84 87 90
-thresholds_clr 72 75 78 81 84 87
-actions cpu cpu cpu cpu cpu shutdown
-action_info 1296000 1188000 918000 756000 648000 5000
-
-[tsens_tz_sensor4]
-sampling 1000
-thresholds 75
-thresholds_clr 72
-actions none
-action_info 0
-
diff --git a/config/ueventd.sony.rc b/config/ueventd.sony.rc
deleted file mode 100644
index ec69444..0000000
--- a/config/ueventd.sony.rc
+++ /dev/null
@@ -1,115 +0,0 @@
-## TODO: remove from system/core/rootdir/init.rc
-/dev/msm_amrnb_in 0640 system audio
-/dev/msm_aac_in 0660 system audio
-/dev/msm_rtac 0660 system audio
-/dev/tzcom 0660 system drmrpc
-/dev/qseecom 0660 system drmrpc
-/dev/qce 0660 system drmrpc
-/dev/msm_a2dp_in 0640 system audio
-/dev/msm_pcm_lp_dec 0660 system audio
-/dev/msm_preproc_ctl 0660 system audio
-/dev/msm_qcelp_in 0660 system audio
-/dev/msm_evrc_in 0660 system audio
-/dev/msm_wma 0660 system audio
-/dev/msm_wmapro 0660 system audio
-/dev/msm_acdb 0660 system audio
-/dev/msm_fm 0660 system audio
-/dev/msm_qcelp 0660 system audio
-/dev/msm_evrc 0660 system audio
-/dev/msm_voicememo 0660 system audio
-/dev/pmem_audio 0660 system audio
-/dev/msm_amrnb 0660 system audio
-/dev/msm_amrwb 0660 system audio
-/dev/msm_aac 0660 system audio
-/dev/msm_vidc_reg 0660 system audio
-/dev/msm_vidc_dec 0660 system audio
-/dev/msm_vidc_dec_sec 0660 system audio
-/dev/msm_vidc_enc 0660 system audio
-/dev/pmem_smipool* 0660 system camera
-/dev/msm_rotator 0664 system system
-/dev/msm_vpe_standalone 0660 system camera
-/dev/radio0 0644 fm_radio fm_radio
-/dev/sdio_tty_ciq_00 0660 system system
-/dev/video* 0660 system camera
-/dev/block/mmcblk0p17 0660 system system
-/dev/block/mmcblk0p18 0660 system system
-/dev/mdm 0660 system radio
-/dev/ttyHSL1 0660 system system
-/dev/tty_sdio_00 0660 system system
-/dev/graphics/* 0660 system graphics
-/dev/gemini0 0660 system camera
-/dev/i2c-0 0664 root system
-/dev/i2c-1 0664 root system
-/dev/i2c-2 0664 root system
-/dev/i2c-4 0664 root system
-/dev/kgsl-3d0 0666 system system
-/dev/kgsl-2d0 0666 root root
-/dev/kgsl-2d1 0666 root root
-# TODO: Remove from system/core/rootdir/ueventd.rc
-/dev/oncrpc/* 0660 root qcom_oncrpc
-/dev/sdioctl8 0640 radio radio
-/dev/rmnet_ctrl 0640 radio radio
-/dev/hsicctl0 0640 radio radio
-/dev/hsicctl1 0640 radio radio
-/dev/hsicctl2 0640 radio radio
-/dev/hsicctl3 0640 radio radio
-/dev/smd4 0660 system system
-/dev/smd3 0660 bluetooth bluetooth
-/dev/smd2 0660 bluetooth bluetooth
-/dev/smd0 0640 radio radio
-/dev/smd7 0640 radio radio
-/dev/smdcntl0 0640 radio radio
-/dev/smdcntl1 0640 radio radio
-/dev/smdcntl2 0640 radio radio
-/dev/smdcntl3 0640 radio radio
-/dev/smdcntl4 0640 radio radio
-/dev/smdcntl5 0640 radio radio
-/dev/smdcntl6 0640 radio radio
-/dev/smdcntl7 0640 radio radio
-/dev/sdioctl0 0640 radio radio
-/dev/sdioctl1 0640 radio radio
-/dev/sdioctl2 0640 radio radio
-/dev/sdioctl3 0640 radio radio
-/dev/sdioctl4 0640 radio radio
-/dev/sdioctl4 0640 radio radio
-/dev/sdioctl5 0640 radio radio
-/dev/sdioctl6 0640 radio radio
-/dev/sdioctl7 0640 radio radio
-/sys/devices/virtual/smdpkt/smdcntl* open_timeout 0664 radio radio
-
-# NFC device permission
-/dev/pn544 0600 nfc nfc
-
-/dev/rtc0 0600 system system
-/dev/ttyGS0 0660 system system
-/dev/smd4 0660 system system
-/dev/oncrpc/300000ba:00010000 0660 system drmrpc
-
-#regular apps need to be able to open ion
-/dev/ion 0664 system system
-#rfcomm device for Bluetooth DUN
-/dev/rfcomm0 0660 bluetooth bluetooth
-/dev/msm_multi_aac 0660 system audio
-
-# TODO: Remove from system/core/rootdir/ueventd.rc
-/dev/ttyHS0 0600 bluetooth bluetooth
-/dev/msm_camera/* 0660 system camera
-/dev/msm_mvs 0660 system audio
-/dev/qemu_trace 0666 system system
-# the genlock client device node is world writable/readable.
-/dev/genlock 0666 root root
-/dev/pmem_tz 0660 system system
-#permissions for sensors
-/dev/msm_dsps 0660 system system
-/sys/devices/virtual/input/input* bma250_rate 0640 system system
-# Gyroscope device permission
-/dev/mpu 0600 system system
-/dev/mpuirq 0600 system system
-
-/dev/hw_random 0660 system system
-/dev/rfkill 0660 wifi wifi
-/dev/cpu_dma_latency 0660 system system
-/dev/rmnet_mux_ctrl 0640 radio radio
-
-/sys/class/leds/led_* delay_on 0660 system system
-/sys/class/leds/led_* delay_off 0660 system system
diff --git a/config/wpa_supplicant.conf b/config/wpa_supplicant.conf
deleted file mode 100644
index 0137326..0000000
--- a/config/wpa_supplicant.conf
+++ /dev/null
@@ -1,827 +0,0 @@
-##### Example wpa_supplicant configuration file ###############################
-#
-# This file describes configuration file format and lists all available option.
-# Please also take a look at simpler configuration examples in 'examples'
-# subdirectory.
-#
-# Empty lines and lines starting with # are ignored
-
-# NOTE! This file may contain password information and should probably be made
-# readable only by root user on multiuser systems.
-
-# Note: All file paths in this configuration file should use full (absolute,
-# not relative to working directory) path in order to allow working directory
-# to be changed. This can happen if wpa_supplicant is run in the background.
-
-# Whether to allow wpa_supplicant to update (overwrite) configuration
-#
-# This option can be used to allow wpa_supplicant to overwrite configuration
-# file whenever configuration is changed (e.g., new network block is added with
-# wpa_cli or wpa_gui, or a password is changed). This is required for
-# wpa_cli/wpa_gui to be able to store the configuration changes permanently.
-# Please note that overwriting configuration file will remove the comments from
-# it.
-update_config=1
-
-# global configuration (shared by all network blocks)
-#
-# Parameters for the control interface. If this is specified, wpa_supplicant
-# will open a control interface that is available for external programs to
-# manage wpa_supplicant. The meaning of this string depends on which control
-# interface mechanism is used. For all cases, the existance of this parameter
-# in configuration is used to determine whether the control interface is
-# enabled.
-#
-# For UNIX domain sockets (default on Linux and BSD): This is a directory that
-# will be created for UNIX domain sockets for listening to requests from
-# external programs (CLI/GUI, etc.) for status information and configuration.
-# The socket file will be named based on the interface name, so multiple
-# wpa_supplicant processes can be run at the same time if more than one
-# interface is used.
-# /var/run/wpa_supplicant is the recommended directory for sockets and by
-# default, wpa_cli will use it when trying to connect with wpa_supplicant.
-#
-# Access control for the control interface can be configured by setting the
-# directory to allow only members of a group to use sockets. This way, it is
-# possible to run wpa_supplicant as root (since it needs to change network
-# configuration and open raw sockets) and still allow GUI/CLI components to be
-# run as non-root users. However, since the control interface can be used to
-# change the network configuration, this access needs to be protected in many
-# cases. By default, wpa_supplicant is configured to use gid 0 (root). If you
-# want to allow non-root users to use the control interface, add a new group
-# and change this value to match with that group. Add users that should have
-# control interface access to this group. If this variable is commented out or
-# not included in the configuration file, group will not be changed from the
-# value it got by default when the directory or socket was created.
-#
-# When configuring both the directory and group, use following format:
-# DIR=/var/run/wpa_supplicant GROUP=wheel
-# DIR=/var/run/wpa_supplicant GROUP=0
-# (group can be either group name or gid)
-#
-ctrl_interface=wlan0
-
-# IEEE 802.1X/EAPOL version
-# wpa_supplicant is implemented based on IEEE Std 802.1X-2004 which defines
-# EAPOL version 2. However, there are many APs that do not handle the new
-# version number correctly (they seem to drop the frames completely). In order
-# to make wpa_supplicant interoperate with these APs, the version number is set
-# to 1 by default. This configuration value can be used to set it to the new
-# version (2).
-eapol_version=1
-
-# AP scanning/selection
-# By default, wpa_supplicant requests driver to perform AP scanning and then
-# uses the scan results to select a suitable AP. Another alternative is to
-# allow the driver to take care of AP scanning and selection and use
-# wpa_supplicant just to process EAPOL frames based on IEEE 802.11 association
-# information from the driver.
-# 1: wpa_supplicant initiates scanning and AP selection
-# 0: driver takes care of scanning, AP selection, and IEEE 802.11 association
-# parameters (e.g., WPA IE generation); this mode can also be used with
-# non-WPA drivers when using IEEE 802.1X mode; do not try to associate with
-# APs (i.e., external program needs to control association). This mode must
-# also be used when using wired Ethernet drivers.
-# 2: like 0, but associate with APs using security policy and SSID (but not
-# BSSID); this can be used, e.g., with ndiswrapper and NDIS drivers to
-# enable operation with hidden SSIDs and optimized roaming; in this mode,
-# the network blocks in the configuration file are tried one by one until
-# the driver reports successful association; each network block should have
-# explicit security policy (i.e., only one option in the lists) for
-# key_mgmt, pairwise, group, proto variables
-ap_scan=1
-
-# EAP fast re-authentication
-# By default, fast re-authentication is enabled for all EAP methods that
-# support it. This variable can be used to disable fast re-authentication.
-# Normally, there is no need to disable this.
-fast_reauth=1
-
-# OpenSSL Engine support
-# These options can be used to load OpenSSL engines.
-# The two engines that are supported currently are shown below:
-# They are both from the opensc project (http://www.opensc.org/)
-# By default no engines are loaded.
-# make the opensc engine available
-#opensc_engine_path=/usr/lib/opensc/engine_opensc.so
-# make the pkcs11 engine available
-#pkcs11_engine_path=/usr/lib/opensc/engine_pkcs11.so
-# configure the path to the pkcs11 module required by the pkcs11 engine
-#pkcs11_module_path=/usr/lib/pkcs11/opensc-pkcs11.so
-
-# Dynamic EAP methods
-# If EAP methods were built dynamically as shared object files, they need to be
-# loaded here before being used in the network blocks. By default, EAP methods
-# are included statically in the build, so these lines are not needed
-#load_dynamic_eap=/usr/lib/wpa_supplicant/eap_tls.so
-#load_dynamic_eap=/usr/lib/wpa_supplicant/eap_md5.so
-
-# Driver interface parameters
-# This field can be used to configure arbitrary driver interace parameters. The
-# format is specific to the selected driver interface. This field is not used
-# in most cases.
-#driver_param="field=value"
-
-# Country code
-# The ISO/IEC alpha2 country code for the country in which this device is
-# currently operating.
-#country=US
-
-# Maximum lifetime for PMKSA in seconds; default 43200
-#dot11RSNAConfigPMKLifetime=43200
-# Threshold for reauthentication (percentage of PMK lifetime); default 70
-#dot11RSNAConfigPMKReauthThreshold=70
-# Timeout for security association negotiation in seconds; default 60
-#dot11RSNAConfigSATimeout=60
-
-# Wi-Fi Protected Setup (WPS) parameters
-
-# Universally Unique IDentifier (UUID; see RFC 4122) of the device
-# If not configured, UUID will be generated based on the local MAC address.
-#uuid=12345678-9abc-def0-1234-56789abcdef0
-
-# Device Name
-# User-friendly description of device; up to 32 octets encoded in UTF-8
-#device_name=Wireless Client
-
-# Manufacturer
-# The manufacturer of the device (up to 64 ASCII characters)
-#manufacturer=Company
-
-# Model Name
-# Model of the device (up to 32 ASCII characters)
-#model_name=cmodel
-
-# Model Number
-# Additional device description (up to 32 ASCII characters)
-#model_number=123
-
-# Serial Number
-# Serial number of the device (up to 32 characters)
-#serial_number=12345
-
-# Primary Device Type
-# Used format: <categ>-<OUI>-<subcateg>
-# categ = Category as an integer value
-# OUI = OUI and type octet as a 4-octet hex-encoded value; 0050F204 for
-# default WPS OUI
-# subcateg = OUI-specific Sub Category as an integer value
-# Examples:
-# 1-0050F204-1 (Computer / PC)
-# 1-0050F204-2 (Computer / Server)
-# 5-0050F204-1 (Storage / NAS)
-# 6-0050F204-1 (Network Infrastructure / AP)
-#device_type=1-0050F204-1
-
-# OS Version
-# 4-octet operating system version number (hex string)
-#os_version=01020300
-
-# Credential processing
-# 0 = process received credentials internally (default)
-# 1 = do not process received credentials; just pass them over ctrl_iface to
-# external program(s)
-# 2 = process received credentials internally and pass them over ctrl_iface
-# to external program(s)
-#wps_cred_processing=0
-
-# network block
-#
-# Each network (usually AP's sharing the same SSID) is configured as a separate
-# block in this configuration file. The network blocks are in preference order
-# (the first match is used).
-#
-# network block fields:
-#
-# disabled:
-# 0 = this network can be used (default)
-# 1 = this network block is disabled (can be enabled through ctrl_iface,
-# e.g., with wpa_cli or wpa_gui)
-#
-# id_str: Network identifier string for external scripts. This value is passed
-# to external action script through wpa_cli as WPA_ID_STR environment
-# variable to make it easier to do network specific configuration.
-#
-# ssid: SSID (mandatory); either as an ASCII string with double quotation or
-# as hex string; network name
-#
-# scan_ssid:
-# 0 = do not scan this SSID with specific Probe Request frames (default)
-# 1 = scan with SSID-specific Probe Request frames (this can be used to
-# find APs that do not accept broadcast SSID or use multiple SSIDs;
-# this will add latency to scanning, so enable this only when needed)
-#
-# bssid: BSSID (optional); if set, this network block is used only when
-# associating with the AP using the configured BSSID
-#
-# priority: priority group (integer)
-# By default, all networks will get same priority group (0). If some of the
-# networks are more desirable, this field can be used to change the order in
-# which wpa_supplicant goes through the networks when selecting a BSS. The
-# priority groups will be iterated in decreasing priority (i.e., the larger the
-# priority value, the sooner the network is matched against the scan results).
-# Within each priority group, networks will be selected based on security
-# policy, signal strength, etc.
-# Please note that AP scanning with scan_ssid=1 and ap_scan=2 mode are not
-# using this priority to select the order for scanning. Instead, they try the
-# networks in the order that used in the configuration file.
-#
-# mode: IEEE 802.11 operation mode
-# 0 = infrastructure (Managed) mode, i.e., associate with an AP (default)
-# 1 = IBSS (ad-hoc, peer-to-peer)
-# Note: IBSS can only be used with key_mgmt NONE (plaintext and static WEP)
-# and key_mgmt=WPA-NONE (fixed group key TKIP/CCMP). In addition, ap_scan has
-# to be set to 2 for IBSS. WPA-None requires following network block options:
-# proto=WPA, key_mgmt=WPA-NONE, pairwise=NONE, group=TKIP (or CCMP, but not
-# both), and psk must also be set.
-#
-# frequency: Channel frequency in megahertz (MHz) for IBSS, e.g.,
-# 2412 = IEEE 802.11b/g channel 1. This value is used to configure the initial
-# channel for IBSS (adhoc) networks. It is ignored in the infrastructure mode.
-# In addition, this value is only used by the station that creates the IBSS. If
-# an IBSS network with the configured SSID is already present, the frequency of
-# the network will be used instead of this configured value.
-#
-# proto: list of accepted protocols
-# WPA = WPA/IEEE 802.11i/D3.0
-# RSN = WPA2/IEEE 802.11i (also WPA2 can be used as an alias for RSN)
-# If not set, this defaults to: WPA RSN
-#
-# key_mgmt: list of accepted authenticated key management protocols
-# WPA-PSK = WPA pre-shared key (this requires 'psk' field)
-# WPA-EAP = WPA using EAP authentication
-# IEEE8021X = IEEE 802.1X using EAP authentication and (optionally) dynamically
-# generated WEP keys
-# NONE = WPA is not used; plaintext or static WEP could be used
-# WPA-PSK-SHA256 = Like WPA-PSK but using stronger SHA256-based algorithms
-# WPA-EAP-SHA256 = Like WPA-EAP but using stronger SHA256-based algorithms
-# If not set, this defaults to: WPA-PSK WPA-EAP
-#
-# auth_alg: list of allowed IEEE 802.11 authentication algorithms
-# OPEN = Open System authentication (required for WPA/WPA2)
-# SHARED = Shared Key authentication (requires static WEP keys)
-# LEAP = LEAP/Network EAP (only used with LEAP)
-# If not set, automatic selection is used (Open System with LEAP enabled if
-# LEAP is allowed as one of the EAP methods).
-#
-# pairwise: list of accepted pairwise (unicast) ciphers for WPA
-# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
-# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
-# NONE = Use only Group Keys (deprecated, should not be included if APs support
-# pairwise keys)
-# If not set, this defaults to: CCMP TKIP
-#
-# group: list of accepted group (broadcast/multicast) ciphers for WPA
-# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
-# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
-# WEP104 = WEP (Wired Equivalent Privacy) with 104-bit key
-# WEP40 = WEP (Wired Equivalent Privacy) with 40-bit key [IEEE 802.11]
-# If not set, this defaults to: CCMP TKIP WEP104 WEP40
-#
-# psk: WPA preshared key; 256-bit pre-shared key
-# The key used in WPA-PSK mode can be entered either as 64 hex-digits, i.e.,
-# 32 bytes or as an ASCII passphrase (in which case, the real PSK will be
-# generated using the passphrase and SSID). ASCII passphrase must be between
-# 8 and 63 characters (inclusive).
-# This field is not needed, if WPA-EAP is used.
-# Note: Separate tool, wpa_passphrase, can be used to generate 256-bit keys
-# from ASCII passphrase. This process uses lot of CPU and wpa_supplicant
-# startup and reconfiguration time can be optimized by generating the PSK only
-# only when the passphrase or SSID has actually changed.
-#
-# eapol_flags: IEEE 802.1X/EAPOL options (bit field)
-# Dynamic WEP key required for non-WPA mode
-# bit0 (1): require dynamically generated unicast WEP key
-# bit1 (2): require dynamically generated broadcast WEP key
-# (3 = require both keys; default)
-# Note: When using wired authentication, eapol_flags must be set to 0 for the
-# authentication to be completed successfully.
-#
-# mixed_cell: This option can be used to configure whether so called mixed
-# cells, i.e., networks that use both plaintext and encryption in the same
-# SSID, are allowed when selecting a BSS form scan results.
-# 0 = disabled (default)
-# 1 = enabled
-#
-# proactive_key_caching:
-# Enable/disable opportunistic PMKSA caching for WPA2.
-# 0 = disabled (default)
-# 1 = enabled
-#
-# wep_key0..3: Static WEP key (ASCII in double quotation, e.g. "abcde" or
-# hex without quotation, e.g., 0102030405)
-# wep_tx_keyidx: Default WEP key index (TX) (0..3)
-#
-# peerkey: Whether PeerKey negotiation for direct links (IEEE 802.11e DLS) is
-# allowed. This is only used with RSN/WPA2.
-# 0 = disabled (default)
-# 1 = enabled
-#peerkey=1
-#
-# wpa_ptk_rekey: Maximum lifetime for PTK in seconds. This can be used to
-# enforce rekeying of PTK to mitigate some attacks against TKIP deficiencies.
-#
-# Following fields are only used with internal EAP implementation.
-# eap: space-separated list of accepted EAP methods
-# MD5 = EAP-MD5 (unsecure and does not generate keying material ->
-# cannot be used with WPA; to be used as a Phase 2 method
-# with EAP-PEAP or EAP-TTLS)
-# MSCHAPV2 = EAP-MSCHAPv2 (cannot be used separately with WPA; to be used
-# as a Phase 2 method with EAP-PEAP or EAP-TTLS)
-# OTP = EAP-OTP (cannot be used separately with WPA; to be used
-# as a Phase 2 method with EAP-PEAP or EAP-TTLS)
-# GTC = EAP-GTC (cannot be used separately with WPA; to be used
-# as a Phase 2 method with EAP-PEAP or EAP-TTLS)
-# TLS = EAP-TLS (client and server certificate)
-# PEAP = EAP-PEAP (with tunnelled EAP authentication)
-# TTLS = EAP-TTLS (with tunnelled EAP or PAP/CHAP/MSCHAP/MSCHAPV2
-# authentication)
-# If not set, all compiled in methods are allowed.
-#
-# identity: Identity string for EAP
-# This field is also used to configure user NAI for
-# EAP-PSK/PAX/SAKE/GPSK.
-# anonymous_identity: Anonymous identity string for EAP (to be used as the
-# unencrypted identity with EAP types that support different tunnelled
-# identity, e.g., EAP-TTLS)
-# password: Password string for EAP. This field can include either the
-# plaintext password (using ASCII or hex string) or a NtPasswordHash
-# (16-byte MD4 hash of password) in hash:<32 hex digits> format.
-# NtPasswordHash can only be used when the password is for MSCHAPv2 or
-# MSCHAP (EAP-MSCHAPv2, EAP-TTLS/MSCHAPv2, EAP-TTLS/MSCHAP, LEAP).
-# EAP-PSK (128-bit PSK), EAP-PAX (128-bit PSK), and EAP-SAKE (256-bit
-# PSK) is also configured using this field. For EAP-GPSK, this is a
-# variable length PSK.
-# ca_cert: File path to CA certificate file (PEM/DER). This file can have one
-# or more trusted CA certificates. If ca_cert and ca_path are not
-# included, server certificate will not be verified. This is insecure and
-# a trusted CA certificate should always be configured when using
-# EAP-TLS/TTLS/PEAP. Full path should be used since working directory may
-# change when wpa_supplicant is run in the background.
-# On Windows, trusted CA certificates can be loaded from the system
-# certificate store by setting this to cert_store://<name>, e.g.,
-# ca_cert="cert_store://CA" or ca_cert="cert_store://ROOT".
-# Note that when running wpa_supplicant as an application, the user
-# certificate store (My user account) is used, whereas computer store
-# (Computer account) is used when running wpasvc as a service.
-# ca_path: Directory path for CA certificate files (PEM). This path may
-# contain multiple CA certificates in OpenSSL format. Common use for this
-# is to point to system trusted CA list which is often installed into
-# directory like /etc/ssl/certs. If configured, these certificates are
-# added to the list of trusted CAs. ca_cert may also be included in that
-# case, but it is not required.
-# client_cert: File path to client certificate file (PEM/DER)
-# Full path should be used since working directory may change when
-# wpa_supplicant is run in the background.
-# Alternatively, a named configuration blob can be used by setting this
-# to blob://<blob name>.
-# private_key: File path to client private key file (PEM/DER/PFX)
-# When PKCS#12/PFX file (.p12/.pfx) is used, client_cert should be
-# commented out. Both the private key and certificate will be read from
-# the PKCS#12 file in this case. Full path should be used since working
-# directory may change when wpa_supplicant is run in the background.
-# Windows certificate store can be used by leaving client_cert out and
-# configuring private_key in one of the following formats:
-# cert://substring_to_match
-# hash://certificate_thumbprint_in_hex
-# for example: private_key="hash://63093aa9c47f56ae88334c7b65a4"
-# Note that when running wpa_supplicant as an application, the user
-# certificate store (My user account) is used, whereas computer store
-# (Computer account) is used when running wpasvc as a service.
-# Alternatively, a named configuration blob can be used by setting this
-# to blob://<blob name>.
-# private_key_passwd: Password for private key file (if left out, this will be
-# asked through control interface)
-# dh_file: File path to DH/DSA parameters file (in PEM format)
-# This is an optional configuration file for setting parameters for an
-# ephemeral DH key exchange. In most cases, the default RSA
-# authentication does not use this configuration. However, it is possible
-# setup RSA to use ephemeral DH key exchange. In addition, ciphers with
-# DSA keys always use ephemeral DH keys. This can be used to achieve
-# forward secrecy. If the file is in DSA parameters format, it will be
-# automatically converted into DH params.
-# subject_match: Substring to be matched against the subject of the
-# authentication server certificate. If this string is set, the server
-# sertificate is only accepted if it contains this string in the subject.
-# The subject string is in following format:
-# /C=US/ST=CA/L=San Francisco/CN=Test AS/emailAddress=as@example.com
-# altsubject_match: Semicolon separated string of entries to be matched against
-# the alternative subject name of the authentication server certificate.
-# If this string is set, the server sertificate is only accepted if it
-# contains one of the entries in an alternative subject name extension.
-# altSubjectName string is in following format: TYPE:VALUE
-# Example: EMAIL:server@example.com
-# Example: DNS:server.example.com;DNS:server2.example.com
-# Following types are supported: EMAIL, DNS, URI
-# phase1: Phase1 (outer authentication, i.e., TLS tunnel) parameters
-# (string with field-value pairs, e.g., "peapver=0" or
-# "peapver=1 peaplabel=1")
-# 'peapver' can be used to force which PEAP version (0 or 1) is used.
-# 'peaplabel=1' can be used to force new label, "client PEAP encryption",
-# to be used during key derivation when PEAPv1 or newer. Most existing
-# PEAPv1 implementation seem to be using the old label, "client EAP
-# encryption", and wpa_supplicant is now using that as the default value.
-# Some servers, e.g., Radiator, may require peaplabel=1 configuration to
-# interoperate with PEAPv1; see eap_testing.txt for more details.
-# 'peap_outer_success=0' can be used to terminate PEAP authentication on
-# tunneled EAP-Success. This is required with some RADIUS servers that
-# implement draft-josefsson-pppext-eap-tls-eap-05.txt (e.g.,
-# Lucent NavisRadius v4.4.0 with PEAP in "IETF Draft 5" mode)
-# include_tls_length=1 can be used to force wpa_supplicant to include
-# TLS Message Length field in all TLS messages even if they are not
-# fragmented.
-# sim_min_num_chal=3 can be used to configure EAP-SIM to require three
-# challenges (by default, it accepts 2 or 3)
-# result_ind=1 can be used to enable EAP-SIM and EAP-AKA to use
-# protected result indication.
-# 'crypto_binding' option can be used to control PEAPv0 cryptobinding
-# behavior:
-# * 0 = do not use cryptobinding (default)
-# * 1 = use cryptobinding if server supports it
-# * 2 = require cryptobinding
-# EAP-WSC (WPS) uses following options: pin=<Device Password> or
-# pbc=1.
-# phase2: Phase2 (inner authentication with TLS tunnel) parameters
-# (string with field-value pairs, e.g., "auth=MSCHAPV2" for EAP-PEAP or
-# "autheap=MSCHAPV2 autheap=MD5" for EAP-TTLS)
-# Following certificate/private key fields are used in inner Phase2
-# authentication when using EAP-TTLS or EAP-PEAP.
-# ca_cert2: File path to CA certificate file. This file can have one or more
-# trusted CA certificates. If ca_cert2 and ca_path2 are not included,
-# server certificate will not be verified. This is insecure and a trusted
-# CA certificate should always be configured.
-# ca_path2: Directory path for CA certificate files (PEM)
-# client_cert2: File path to client certificate file
-# private_key2: File path to client private key file
-# private_key2_passwd: Password for private key file
-# dh_file2: File path to DH/DSA parameters file (in PEM format)
-# subject_match2: Substring to be matched against the subject of the
-# authentication server certificate.
-# altsubject_match2: Substring to be matched against the alternative subject
-# name of the authentication server certificate.
-#
-# fragment_size: Maximum EAP fragment size in bytes (default 1398).
-# This value limits the fragment size for EAP methods that support
-# fragmentation (e.g., EAP-TLS and EAP-PEAP). This value should be set
-# small enough to make the EAP messages fit in MTU of the network
-# interface used for EAPOL. The default value is suitable for most
-# cases.
-#
-# EAP-FAST variables:
-# pac_file: File path for the PAC entries. wpa_supplicant will need to be able
-# to create this file and write updates to it when PAC is being
-# provisioned or refreshed. Full path to the file should be used since
-# working directory may change when wpa_supplicant is run in the
-# background. Alternatively, a named configuration blob can be used by
-# setting this to blob://<blob name>
-# phase1: fast_provisioning option can be used to enable in-line provisioning
-# of EAP-FAST credentials (PAC):
-# 0 = disabled,
-# 1 = allow unauthenticated provisioning,
-# 2 = allow authenticated provisioning,
-# 3 = allow both unauthenticated and authenticated provisioning
-# fast_max_pac_list_len=<num> option can be used to set the maximum
-# number of PAC entries to store in a PAC list (default: 10)
-# fast_pac_format=binary option can be used to select binary format for
-# storing PAC entries in order to save some space (the default
-# text format uses about 2.5 times the size of minimal binary
-# format)
-#
-# wpa_supplicant supports number of "EAP workarounds" to work around
-# interoperability issues with incorrectly behaving authentication servers.
-# These are enabled by default because some of the issues are present in large
-# number of authentication servers. Strict EAP conformance mode can be
-# configured by disabling workarounds with eap_workaround=0.
-
-# Example blocks:
-
-# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers
-#network={
-# ssid="simple"
-# psk="very secret passphrase"
-# priority=5
-#}
-#
-## Same as previous, but request SSID-specific scanning (for APs that reject
-## broadcast SSID)
-#network={
-# ssid="second ssid"
-# scan_ssid=1
-# psk="very secret passphrase"
-# priority=2
-#}
-#
-## Only WPA-PSK is used. Any valid cipher combination is accepted.
-#network={
-# ssid="example"
-# proto=WPA
-# key_mgmt=WPA-PSK
-# pairwise=CCMP TKIP
-# group=CCMP TKIP WEP104 WEP40
-# psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
-# priority=2
-#}
-#
-## WPA-Personal(PSK) with TKIP and enforcement for frequent PTK rekeying
-#network={
-# ssid="example"
-# proto=WPA
-# key_mgmt=WPA-PSK
-# pairwise=TKIP
-# group=TKIP
-# psk="not so secure passphrase"
-# wpa_ptk_rekey=600
-#}
-#
-## Only WPA-EAP is used. Both CCMP and TKIP is accepted. An AP that used WEP104
-## or WEP40 as the group cipher will not be accepted.
-#network={
-# ssid="example"
-# proto=RSN
-# key_mgmt=WPA-EAP
-# pairwise=CCMP TKIP
-# group=CCMP TKIP
-# eap=TLS
-# identity="user@example.com"
-# ca_cert="/etc/cert/ca.pem"
-# client_cert="/etc/cert/user.pem"
-# private_key="/etc/cert/user.prv"
-# private_key_passwd="password"
-# priority=1
-#}
-#
-## EAP-PEAP/MSCHAPv2 configuration for RADIUS servers that use the new peaplabel
-## (e.g., Radiator)
-#network={
-# ssid="example"
-# key_mgmt=WPA-EAP
-# eap=PEAP
-# identity="user@example.com"
-# password="foobar"
-# ca_cert="/etc/cert/ca.pem"
-# phase1="peaplabel=1"
-# phase2="auth=MSCHAPV2"
-# priority=10
-#}
-#
-## EAP-TTLS/EAP-MD5-Challenge configuration with anonymous identity for the
-## unencrypted use. Real identity is sent only within an encrypted TLS tunnel.
-#network={
-# ssid="example"
-# key_mgmt=WPA-EAP
-# eap=TTLS
-# identity="user@example.com"
-# anonymous_identity="anonymous@example.com"
-# password="foobar"
-# ca_cert="/etc/cert/ca.pem"
-# priority=2
-#}
-#
-## EAP-TTLS/MSCHAPv2 configuration with anonymous identity for the unencrypted
-## use. Real identity is sent only within an encrypted TLS tunnel.
-#network={
-# ssid="example"
-# key_mgmt=WPA-EAP
-# eap=TTLS
-# identity="user@example.com"
-# anonymous_identity="anonymous@example.com"
-# password="foobar"
-# ca_cert="/etc/cert/ca.pem"
-# phase2="auth=MSCHAPV2"
-#}
-#
-## WPA-EAP, EAP-TTLS with different CA certificate used for outer and inner
-## authentication.
-#network={
-# ssid="example"
-# key_mgmt=WPA-EAP
-# eap=TTLS
-# # Phase1 / outer authentication
-# anonymous_identity="anonymous@example.com"
-# ca_cert="/etc/cert/ca.pem"
-# # Phase 2 / inner authentication
-# phase2="autheap=TLS"
-# ca_cert2="/etc/cert/ca2.pem"
-# client_cert2="/etc/cer/user.pem"
-# private_key2="/etc/cer/user.prv"
-# private_key2_passwd="password"
-# priority=2
-#}
-#
-## Both WPA-PSK and WPA-EAP is accepted. Only CCMP is accepted as pairwise and
-## group cipher.
-#network={
-# ssid="example"
-# bssid=00:11:22:33:44:55
-# proto=WPA RSN
-# key_mgmt=WPA-PSK WPA-EAP
-# pairwise=CCMP
-# group=CCMP
-# psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
-#}
-#
-## Special characters in SSID, so use hex string. Default to WPA-PSK, WPA-EAP
-## and all valid ciphers.
-#network={
-# ssid=00010203
-# psk=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
-#}
-#
-#
-## EAP-SIM with a GSM SIM or USIM
-#network={
-# ssid="eap-sim-test"
-# key_mgmt=WPA-EAP
-# eap=SIM
-# pin="1234"
-# pcsc=""
-#}
-#
-#
-## EAP-PSK
-#network={
-# ssid="eap-psk-test"
-# key_mgmt=WPA-EAP
-# eap=PSK
-# anonymous_identity="eap_psk_user"
-# password=06b4be19da289f475aa46a33cb793029
-# identity="eap_psk_user@example.com"
-#}
-#
-#
-## IEEE 802.1X/EAPOL with dynamically generated WEP keys (i.e., no WPA) using
-## EAP-TLS for authentication and key generation; require both unicast and
-## broadcast WEP keys.
-#network={
-# ssid="1x-test"
-# key_mgmt=IEEE8021X
-# eap=TLS
-# identity="user@example.com"
-# ca_cert="/etc/cert/ca.pem"
-# client_cert="/etc/cert/user.pem"
-# private_key="/etc/cert/user.prv"
-# private_key_passwd="password"
-# eapol_flags=3
-#}
-#
-#
-## LEAP with dynamic WEP keys
-#network={
-# ssid="leap-example"
-# key_mgmt=IEEE8021X
-# eap=LEAP
-# identity="user"
-# password="foobar"
-#}
-#
-## EAP-IKEv2 using shared secrets for both server and peer authentication
-#network={
-# ssid="ikev2-example"
-# key_mgmt=WPA-EAP
-# eap=IKEV2
-# identity="user"
-# password="foobar"
-#}
-#
-## EAP-FAST with WPA (WPA or WPA2)
-#network={
-# ssid="eap-fast-test"
-# key_mgmt=WPA-EAP
-# eap=FAST
-# anonymous_identity="FAST-000102030405"
-# identity="username"
-# password="password"
-# phase1="fast_provisioning=1"
-# pac_file="/etc/wpa_supplicant.eap-fast-pac"
-#}
-#
-#network={
-# ssid="eap-fast-test"
-# key_mgmt=WPA-EAP
-# eap=FAST
-# anonymous_identity="FAST-000102030405"
-# identity="username"
-# password="password"
-# phase1="fast_provisioning=1"
-# pac_file="blob://eap-fast-pac"
-#}
-#
-## Plaintext connection (no WPA, no IEEE 802.1X)
-#network={
-# ssid="plaintext-test"
-# key_mgmt=NONE
-#}
-#
-#
-## Shared WEP key connection (no WPA, no IEEE 802.1X)
-#network={
-# ssid="static-wep-test"
-# key_mgmt=NONE
-# wep_key0="abcde"
-# wep_key1=0102030405
-# wep_key2="1234567890123"
-# wep_tx_keyidx=0
-# priority=5
-#}
-#
-#
-## Shared WEP key connection (no WPA, no IEEE 802.1X) using Shared Key
-## IEEE 802.11 authentication
-#network={
-# ssid="static-wep-test2"
-# key_mgmt=NONE
-# wep_key0="abcde"
-# wep_key1=0102030405
-# wep_key2="1234567890123"
-# wep_tx_keyidx=0
-# priority=5
-# auth_alg=SHARED
-#}
-#
-#
-## IBSS/ad-hoc network with WPA-None/TKIP.
-#network={
-# ssid="test adhoc"
-# mode=1
-# frequency=2412
-# proto=WPA
-# key_mgmt=WPA-NONE
-# pairwise=NONE
-# group=TKIP
-# psk="secret passphrase"
-#}
-#
-#
-## Catch all example that allows more or less all configuration modes
-#network={
-# ssid="example"
-# scan_ssid=1
-# key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
-# pairwise=CCMP TKIP
-# group=CCMP TKIP WEP104 WEP40
-# psk="very secret passphrase"
-# eap=TTLS PEAP TLS
-# identity="user@example.com"
-# password="foobar"
-# ca_cert="/etc/cert/ca.pem"
-# client_cert="/etc/cert/user.pem"
-# private_key="/etc/cert/user.prv"
-# private_key_passwd="password"
-# phase1="peaplabel=0"
-#}
-#
-## Example of EAP-TLS with smartcard (openssl engine)
-#network={
-# ssid="example"
-# key_mgmt=WPA-EAP
-# eap=TLS
-# proto=RSN
-# pairwise=CCMP TKIP
-# group=CCMP TKIP
-# identity="user@example.com"
-# ca_cert="/etc/cert/ca.pem"
-# client_cert="/etc/cert/user.pem"
-#
-# engine=1
-#
-# # The engine configured here must be available. Look at
-# # OpenSSL engine support in the global section.
-# # The key available through the engine must be the private key
-# # matching the client certificate configured above.
-#
-# # use the opensc engine
-# #engine_id="opensc"
-# #key_id="45"
-#
-# # use the pkcs11 engine
-# engine_id="pkcs11"
-# key_id="id_45"
-#
-# # Optional PIN configuration; this can be left out and PIN will be
-# # asked through the control interface
-# pin="1234"
-#}
-#
-## Example configuration showing how to use an inlined blob as a CA certificate
-## data instead of using external file
-#network={
-# ssid="example"
-# key_mgmt=WPA-EAP
-# eap=TTLS
-# identity="user@example.com"
-# anonymous_identity="anonymous@example.com"
-# password="foobar"
-# ca_cert="blob://exampleblob"
-# priority=20
-#}
-#
-#blob-base64-exampleblob={
-#SGVsbG8gV29ybGQhCg==
-#}
-
-
-# Wildcard match for SSID (plaintext APs only). This example select any
-# open AP regardless of its SSID.
-#network={
-# key_mgmt=NONE
-#}
diff --git a/custombootimg.mk b/custombootimg.mk
index 34a0e03..d0486cc 100644
--- a/custombootimg.mk
+++ b/custombootimg.mk
@@ -28,13 +28,15 @@ $(INSTALLED_BOOTIMAGE_TARGET): $(PRODUCT_OUT)/kernel $(uncompressed_ramdisk) $(r
$(hide) $(MKBOOTFS) $(PRODUCT_OUT)/combinedroot/ > $(PRODUCT_OUT)/combinedroot.cpio
$(hide) cat $(PRODUCT_OUT)/combinedroot.cpio | gzip > $(PRODUCT_OUT)/combinedroot.fs
- $(hide) python $(MKELF) -o $@ $(PRODUCT_OUT)/kernel@0x80208000 $(PRODUCT_OUT)/combinedroot.fs@$(BOARD_FORCE_RAMDISK_ADDRESS),ramdisk vendor/sony/blue-common/proprietary/boot/RPM.bin@0x20000,rpm device/sony/blue-common/config/cmdline.txt@cmdline
+ $(hide) python $(MKELF) -o $@ $(PRODUCT_OUT)/kernel@0x80208000 $(PRODUCT_OUT)/combinedroot.fs@$(SONY_FORCE_RAMDISK_ADDRESS),ramdisk vendor/sony/blue-common/proprietary/boot/RPM.bin@0x20000,rpm device/sony/blue-common/rootdir/cmdline.txt@cmdline
+
+ $(hide) ln -f $(INSTALLED_BOOTIMAGE_TARGET) $(PRODUCT_OUT)/boot.elf
INSTALLED_RECOVERYIMAGE_TARGET := $(PRODUCT_OUT)/recovery.img
$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) \
$(recovery_ramdisk) \
$(recovery_kernel)
@echo ----- Making recovery image ------
- $(hide) python $(MKELF) -o $@ $(PRODUCT_OUT)/kernel@0x80208000 $(PRODUCT_OUT)/ramdisk-recovery.img@$(BOARD_FORCE_RAMDISK_ADDRESS),ramdisk vendor/sony/blue-common/proprietary/boot/RPM.bin@0x20000,rpm device/sony/blue-common/config/cmdline.txt@cmdline
+ $(hide) python $(MKELF) -o $@ $(PRODUCT_OUT)/kernel@0x80208000 $(PRODUCT_OUT)/ramdisk-recovery.img@$(SONY_FORCE_RAMDISK_ADDRESS),ramdisk vendor/sony/blue-common/proprietary/boot/RPM.bin@0x20000,rpm device/sony/blue-common/rootdir/cmdline.txt@cmdline
@echo ----- Made recovery image -------- $@
# $(hide) $(call assert-max-image-size,$@,$(BOARD_RECOVERYIMAGE_PARTITION_SIZE),raw)
diff --git a/extract-files.sh b/extract-files.sh
new file mode 100755
index 0000000..dfd4d18
--- /dev/null
+++ b/extract-files.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+export DEVICE=${PWD##*/}
+export BOARDCONFIGVENDOR=false
+
+../common/extract-files.sh $@
+
+../common/setup-makefiles.sh
diff --git a/extract_elf_ramdisk/Android.mk b/extract_elf_ramdisk/Android.mk
deleted file mode 100644
index 67b9f53..0000000
--- a/extract_elf_ramdisk/Android.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := \
- extract_elf_ramdisk.c \
- system.c
-LOCAL_FORCE_STATIC_EXECUTABLE := true
-LOCAL_STATIC_LIBRARIES := libelf libc libm
-LOCAL_C_INCLUDES := external/elfutils/libelf
-LOCAL_CFLAGS := -g -c -W
-LOCAL_MODULE := extract_elf_ramdisk
-LOCAL_MODULE_TAGS := eng
-LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES
-LOCAL_MODULE_PATH := $(PRODUCT_OUT)/utilities
-include $(BUILD_EXECUTABLE)
-
diff --git a/extract_elf_ramdisk/defines.h b/extract_elf_ramdisk/defines.h
deleted file mode 100644
index d94ad2d..0000000
--- a/extract_elf_ramdisk/defines.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#undef _PATH_BSHELL
-#define _PATH_BSHELL "/sbin/sh"
diff --git a/extract_elf_ramdisk/extract_elf_ramdisk.c b/extract_elf_ramdisk/extract_elf_ramdisk.c
deleted file mode 100644
index bc10c29..0000000
--- a/extract_elf_ramdisk/extract_elf_ramdisk.c
+++ /dev/null
@@ -1,403 +0,0 @@
-/*
- * This binary extracts the ramdisk from a Sony elf style boot or
- * recovery image, gunzips it, checks to make sure that it is not a
- * stock recovery ramdisk, and then places it in the destination.
- * The goal is to use the FOTA partition to store a recovery image
- * and extract the ramdisk to be used during boot on Sony devices that
- * typically have a recovery-in-boot setup due to Sony disabling the
- * ability to boot the FOTA partition on unlocked devices. This binary
- * allows the recovery ramdisk to be separate from the boot partition
- * so that users can decide what recovery they want to have instead of
- * being stuck with whatever recovery their kernel or ROM maker decided
- * to include in the boot image.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- *
- * The code was written from scratch by Dees_Troy dees_troy at
- * yahoo
- *
- * Copyright (c) 2013
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include "gelf.h"
-#include "libcrecovery_common.h"
-
-#define ELF_RAMDISK_LOCATION 2 // Ramdisk is the second file in the image
-#define EER_DEFAULT_TMP "/tmp" // Scatch folder default location
-#define EER_TMP_RAMDISK_GZ "ramdisk.gz" // temporary ramdisk gzip file name
-#define EER_TMP_RAMDISK_CPIO "ramdisk.cpio" // temporary ramdisk cpio file name
-#define EER_SEARCH_STRING "fota-ua" // String to search to determine if the
- // ramdisk is a stock Sony FOTA ramdisk
-#ifndef PATH_MAX
-#define PATH_MAX 255
-#endif
-
-char input_filename[PATH_MAX], output_filename[PATH_MAX], tmp_dir[PATH_MAX];
-int has_input = 0, has_output = 0, dont_unzip = 0, check_ramdisk = 0;
-int use_dump_image = 0, arg_error = 0;
-
-int path_exists(char* path) {
- // Check to see if the path exists
- struct stat st;
- if (stat(path, &st) != 0)
- return 0;
- else
- return -1;
-}
-
-int scan_file_for_data(char *filename, unsigned char *data, int data_size,
- unsigned long start_location, unsigned long *data_address) {
- FILE *pFile;
- unsigned long lSize;
- unsigned char *buffer, *last_needle = NULL;
- unsigned char needle[data_size];
- size_t result;
- int i, return_val = 0;
-
- pFile = fopen(filename, "rb");
- if(pFile==NULL){
- printf("Unabled to open file '%s'.\nFailed\n", filename);
- exit(-1);
- }
-
- fseek (pFile , 0 , SEEK_END);
- lSize = ftell(pFile);
- rewind(pFile);
-
- buffer = (unsigned char*)malloc(sizeof(unsigned char) * lSize);
- if(buffer == NULL){
- printf("Memory allocation error on '%s'!\nFailed\n", filename);
- exit(-1);
- }
-
- result = fread(buffer, 1, lSize, pFile);
- if (result != lSize) {
- printf("Error reading file '%s'\nFailed\n", filename);
- exit(-1);
- }
-
- for (i=0; i<data_size; i++) {
- needle[i] = *data;
- data++;
- }
-
- unsigned char *p = memmem(buffer + start_location, lSize - start_location,
- needle, data_size);
-
- if (!p) {
- return_val = -1;
- } else {
- *data_address = p - buffer + data_size;
- }
-
- fclose(pFile);
- free(buffer);
- return return_val;
-}
-
-void copy_file_part(char* infile, char* outfile, unsigned long offset,
- unsigned long file_size) {
- // Copies a file starting at location offset of size file_size
- // If file_size is 0 then this function will copy until the end of the file
- FILE *oFile; // output file
- FILE *iFile; // input file
- unsigned char *buffer;
- size_t result;
-
- if (path_exists(outfile) && unlink(outfile)) {
- printf("Unable to unlink '%s'\n", outfile);
- exit(-1);
- }
-
- // Open input file
- iFile = fopen(infile, "rb");
- if (iFile == NULL) {
- printf("Unable to open input file '%s'.\n", infile);
- exit(-1);
- }
-
- // Determine file size to copy
- if (file_size == 0) {
- fseek(iFile, 0, SEEK_END);
- file_size = ftell(iFile) - offset;
- rewind(iFile);
- }
-
- // Allocate memory for reading the ramdisk
- buffer = (unsigned char*)malloc(sizeof(unsigned char) * file_size);
- if (buffer == NULL) {
- printf("Unable to malloc memory for file copy.\n");
- fclose(iFile);
- exit(-1);
- }
-
- // Read the input
- if (offset != 0)
- fseek(iFile, offset, SEEK_SET);
- result = fread(buffer, 1, file_size, iFile);
- fclose(iFile);
- if (result != file_size) {
- printf("Error reading source file from '%s'\nFailed\n", infile);
- free(buffer);
- exit(-1);
- }
-
- // Open the output file
- oFile = fopen(outfile, "wb");
- if(oFile == NULL) {
- printf("Unabled to open output file '%s'.\nFailed\n", outfile);
- free(buffer);
- exit(-1);
- }
-
- // Copy the file
- printf("Copying '%s' to '%s'\n", infile, outfile);
- result = fwrite(buffer, 1, file_size, oFile);
- free(buffer);
- fclose(oFile);
- if (result != file_size) {
- printf("Write count does not match during copy file!\n");
- exit(-1);
- } else {
- printf("Finished writing file: '%s'\n", outfile);
- }
-}
-
-void extract_ramdisk() {
- int elf_fd, return_val = 0;
- Elf *e;
- GElf_Phdr phdr;
- char elf_filename[PATH_MAX], output[PATH_MAX], output2[PATH_MAX];
- char command[4096];
- size_t result;
- unsigned long fota_location;
-
- // Make sure that tmp_dir ends with a /
- if (tmp_dir[strlen(tmp_dir) - 1] != '/')
- strcat(tmp_dir, "/");
-
- if (elf_version(EV_CURRENT) == EV_NONE) {
- printf("ELF library initialization failed.\n");
- exit(-1);
- }
-
- if (use_dump_image) {
- strcpy(elf_filename, tmp_dir);
- strcat(elf_filename, "dumped.elf");
- printf("Dumping image to '%s'\n", elf_filename);
- sprintf(command, "dump_image '%s' '%s'\n", input_filename,
- elf_filename);
- __system(command);
- } else {
- strcpy(elf_filename, input_filename);
- }
-
- if ((elf_fd = open(elf_filename, O_RDONLY, 0)) < 0) {
- printf("Unable to open '%s' for read.\n", elf_filename);
- exit(-1);
- }
-
- if ((e = elf_begin(elf_fd, ELF_C_READ, NULL)) == NULL) {
- printf("elf_begin failed.\n");
- close(elf_fd);
- exit(-1);
- }
-
- if (elf_kind(e) != ELF_K_ELF) {
- printf("'%s' is not an ELF file.\n", elf_filename);
- elf_end(e);
- close(elf_fd);
- exit(-1);
- }
-
- if (gelf_getphdr(e, ELF_RAMDISK_LOCATION - 1, &phdr) != &phdr) {
- printf("Failed to get header %i\n", ELF_RAMDISK_LOCATION - 1);
- elf_end(e);
- close(elf_fd);
- exit(-1);
- }
- printf("Offset: %llu\n", phdr.p_offset);
- printf("Size: %llu\n", phdr.p_filesz);
- // printf("Flags: %ll\n", phdr.e_flags); Does not exist in Android's
- // libelf
- elf_end(e);
- close(elf_fd);
-
- if (dont_unzip) {
- strcpy(output, output_filename);
- } else {
- strcpy(output, tmp_dir);
- strcat(output, EER_TMP_RAMDISK_GZ);
- if (path_exists(output) && unlink(output)) {
- printf("Unable to unlink '%s'\n", output);
- exit(-1);
- }
- }
-
- copy_file_part(elf_filename, output, (unsigned long) phdr.p_offset,
- (unsigned long) phdr.p_filesz);
-
- if (!dont_unzip) {
- if (check_ramdisk) {
- strcpy(output2, tmp_dir);
- strcat(output2, EER_TMP_RAMDISK_CPIO);
- } else {
- unlink(output_filename);
- strcpy(output2, output_filename);
- }
- sprintf(command, "busybox gunzip -c '%s' > '%s'", output,
- output2);
- __system(command);
- unlink(output);
- printf("Uncompressed ramdisk written to '%s'\n", output2);
- if (check_ramdisk) {
- printf("Checking ramdisk to ensure it is not a stock Sony ");
- printf("recovery.\n");
- printf(" (Checking for %s)\n", EER_SEARCH_STRING);
- // Find the ramdisk offset table
- unsigned char needle[7] = EER_SEARCH_STRING;
- return_val = scan_file_for_data(output2, needle, sizeof(needle), 0,
- &fota_location);
- if (return_val < 0) {
- printf("This is not a stock Sony recovery ramdisk.\n");
- copy_file_part(output2, output_filename, 0, 0);
- printf("Ramdisk copied to '%s'\nDONE!\n", output_filename);
- } else {
- printf("This is a stock Sony recovery ramdisk.\n");
- printf("Ramdisk NOT copied to '%s'\n", output_filename);
- }
- unlink(output2);
- } else {
- printf("DONE!\n");
- }
- } else {
- printf("Ramdisk copied to '%s'\nDONE!\n", output_filename);
- }
-}
-
-void print_usage() {
- printf("ELF Image Ramdisk Extractor by Dees_Troy\n");
- printf("Usage:\n\nRequired:\n");
- printf(" -i <input filename> Specifies the .elf file to read the ");
- printf("ramdisk from (required)\n");
- printf(" -o <output filename> Specifies the final target of the .cpio ");
- printf("file (required)\n\n");
- printf("Optional:\n");
- printf(" -t <target dir> Specifies directory to use for scratch\n");
- printf(" space (uses %s if not specified)\n",
- EER_DEFAULT_TMP);
- printf(" -u Use dump_image to extract image (may be\n");
- printf(" needed on MTD devices)\n");
- printf(" -d Do not gunzip\n");
- printf(" -c Check ramdisk for stock recovery (cannot\n");
- printf(" be used with -d)\n\n");
- printf("If a stock recovery ramdisk is found, the ramdisk will not be\n");
- printf("copied to the output filename.\n");
-}
-
-int main(int argc, char** argv) {
- int index;
-
- umask(0);
-
- if (argc < 5) {
- print_usage();
- exit(-1);
- }
-
- strcpy(tmp_dir, EER_DEFAULT_TMP);
-
- for (index = 1; index < argc; index++) {
- if (strlen(argv[index]) != 2) {
- arg_error = 1;
- index = argc;
- } else if (strncmp(argv[index], "-i", 2) == 0) {
- // Input filename
- if (index == argc - 1) {
- arg_error = 1;
- printf("Missing input filename.\n\n");
- index = argc;
- } else if (strlen(argv[index + 1]) > PATH_MAX - 1) {
- arg_error = 2;
- index = argc;
- } else {
- index++;
- strcpy(input_filename, argv[index]);
- if (!path_exists(input_filename)) {
- arg_error = 4;
- printf("Input filename '%s' does not exist.\n\n",
- input_filename);
- index = argc;
- }
- }
- } else if (strncmp(argv[index], "-o", 2) == 0) {
- // Output filename
- if (index == argc - 1) {
- arg_error = 1;
- printf("Missing output filename.\n\n");
- index = argc;
- } else if (strlen(argv[index + 1]) > PATH_MAX - 1) {
- arg_error = 2;
- index = argc;
- } else {
- index++;
- strcpy(output_filename, argv[index]);
- }
- } else if (strncmp(argv[index], "-t", 2) == 0) {
- // Temp folder specified
- if (index == argc - 1) {
- arg_error = 1;
- printf("Missing temp directory parameter.\n\n");
- index = argc;
- } else if (strlen(argv[index + 1]) > PATH_MAX - 1) {
- arg_error = 2;
- index = argc;
- } else {
- index++;
- strcpy(tmp_dir, argv[index]);
- if (!path_exists(tmp_dir)) {
- arg_error = 5;
- printf("Temp directory '%s' does not exist.\n\n",
- tmp_dir);
- index = argc;
- }
- }
- } else if (strncmp(argv[index], "-d", 2) == 0) {
- dont_unzip = 1;
- } else if (strncmp(argv[index], "-c", 2) == 0) {
- check_ramdisk = 1;
- } else if (strncmp(argv[index], "-u", 2) == 0) {
- use_dump_image = 1;
- } else {
- arg_error = 3;
- printf("Invalid argument '%s'.\n\n", argv[index]);
- index = argc;
- }
- }
-
- if (arg_error != 0) {
- print_usage();
- exit(-1);
- } else {
- extract_ramdisk();
- exit(0);
- }
-}
diff --git a/extract_elf_ramdisk/libcrecovery_common.h b/extract_elf_ramdisk/libcrecovery_common.h
deleted file mode 100644
index 59af22e..0000000
--- a/extract_elf_ramdisk/libcrecovery_common.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef LIBCRECOVERY_COMMON_H
-#define LIBCRECOVERY_COMMON_H
-
-#include <stdio.h>
-
-int __system(const char *command);
-FILE * __popen(const char *program, const char *type);
-int __pclose(FILE *iop);
-
-#endif
\ No newline at end of file
diff --git a/extract_elf_ramdisk/system.c b/extract_elf_ramdisk/system.c
deleted file mode 100644
index 6d78ae9..0000000
--- a/extract_elf_ramdisk/system.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* $OpenBSD: system.c,v 1.8 2005/08/08 08:05:37 espie Exp $ */
-/*
- * Copyright (c) 1988 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/types.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <paths.h>
-#include <sys/wait.h>
-
-#include "defines.h"
-
-extern char **environ;
-
-int
-__system(const char *command)
-{
- pid_t pid;
- sig_t intsave, quitsave;
- sigset_t mask, omask;
- int pstat;
- char *argp[] = {"sh", "-c", NULL, NULL};
-
- if (!command) /* just checking... */
- return(1);
-
- argp[2] = (char *)command;
-
- sigemptyset(&mask);
- sigaddset(&mask, SIGCHLD);
- sigprocmask(SIG_BLOCK, &mask, &omask);
- switch (pid = vfork()) {
- case -1: /* error */
- sigprocmask(SIG_SETMASK, &omask, NULL);
- return(-1);
- case 0: /* child */
- sigprocmask(SIG_SETMASK, &omask, NULL);
- execve(_PATH_BSHELL, argp, environ);
- _exit(127);
- }
-
- intsave = (sig_t) bsd_signal(SIGINT, SIG_IGN);
- quitsave = (sig_t) bsd_signal(SIGQUIT, SIG_IGN);
- pid = waitpid(pid, (int *)&pstat, 0);
- sigprocmask(SIG_SETMASK, &omask, NULL);
- (void)bsd_signal(SIGINT, intsave);
- (void)bsd_signal(SIGQUIT, quitsave);
- return (pid == -1 ? -1 : pstat);
-}
diff --git a/include/linux/android_pmem.h b/include/linux/android_pmem.h
deleted file mode 100644
index f7e8679..0000000
--- a/include/linux/android_pmem.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _ANDROID_PMEM_H_
-#define _ANDROID_PMEM_H_
-#include <linux/fs.h>
-#define PMEM_KERNEL_TEST_MAGIC 0xc0
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define PMEM_KERNEL_TEST_NOMINAL_TEST_IOCTL _IO(PMEM_KERNEL_TEST_MAGIC, 1)
-#define PMEM_KERNEL_TEST_ADVERSARIAL_TEST_IOCTL _IO(PMEM_KERNEL_TEST_MAGIC, 2)
-#define PMEM_KERNEL_TEST_HUGE_ALLOCATION_TEST_IOCTL _IO(PMEM_KERNEL_TEST_MAGIC, 3)
-#define PMEM_KERNEL_TEST_FREE_UNALLOCATED_TEST_IOCTL _IO(PMEM_KERNEL_TEST_MAGIC, 4)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define PMEM_KERNEL_TEST_LARGE_REGION_NUMBER_TEST_IOCTL _IO(PMEM_KERNEL_TEST_MAGIC, 5)
-#define PMEM_IOCTL_MAGIC 'p'
-#define PMEM_GET_PHYS _IOW(PMEM_IOCTL_MAGIC, 1, unsigned int)
-#define PMEM_MAP _IOW(PMEM_IOCTL_MAGIC, 2, unsigned int)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define PMEM_GET_SIZE _IOW(PMEM_IOCTL_MAGIC, 3, unsigned int)
-#define PMEM_UNMAP _IOW(PMEM_IOCTL_MAGIC, 4, unsigned int)
-#define PMEM_ALLOCATE _IOW(PMEM_IOCTL_MAGIC, 5, unsigned int)
-#define PMEM_CONNECT _IOW(PMEM_IOCTL_MAGIC, 6, unsigned int)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define PMEM_GET_TOTAL_SIZE _IOW(PMEM_IOCTL_MAGIC, 7, unsigned int)
-#define HW3D_REVOKE_GPU _IOW(PMEM_IOCTL_MAGIC, 8, unsigned int)
-#define HW3D_GRANT_GPU _IOW(PMEM_IOCTL_MAGIC, 9, unsigned int)
-#define HW3D_WAIT_FOR_INTERRUPT _IOW(PMEM_IOCTL_MAGIC, 10, unsigned int)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define PMEM_CLEAN_INV_CACHES _IOW(PMEM_IOCTL_MAGIC, 11, unsigned int)
-#define PMEM_CLEAN_CACHES _IOW(PMEM_IOCTL_MAGIC, 12, unsigned int)
-#define PMEM_INV_CACHES _IOW(PMEM_IOCTL_MAGIC, 13, unsigned int)
-#define PMEM_GET_FREE_SPACE _IOW(PMEM_IOCTL_MAGIC, 14, unsigned int)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define PMEM_ALLOCATE_ALIGNED _IOW(PMEM_IOCTL_MAGIC, 15, unsigned int)
-struct pmem_region {
- unsigned long offset;
- unsigned long len;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct pmem_addr {
- unsigned long vaddr;
- unsigned long offset;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long length;
-};
-struct pmem_freespace {
- unsigned long total;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long largest;
-};
-struct pmem_allocation {
- unsigned long size;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int align;
-};
-#endif
diff --git a/include/linux/ashmem.h b/include/linux/ashmem.h
deleted file mode 100644
index f48995b..0000000
--- a/include/linux/ashmem.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _LINUX_ASHMEM_H
-#define _LINUX_ASHMEM_H
-#include <linux/limits.h>
-#include <linux/ioctl.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ASHMEM_NAME_LEN 256
-#define ASHMEM_NAME_DEF "dev/ashmem"
-#define ASHMEM_NOT_PURGED 0
-#define ASHMEM_WAS_PURGED 1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ASHMEM_IS_UNPINNED 0
-#define ASHMEM_IS_PINNED 1
-struct ashmem_pin {
- __u32 offset;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 len;
-};
-#define __ASHMEMIOC 0x77
-#define ASHMEM_SET_NAME _IOW(__ASHMEMIOC, 1, char[ASHMEM_NAME_LEN])
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ASHMEM_GET_NAME _IOR(__ASHMEMIOC, 2, char[ASHMEM_NAME_LEN])
-#define ASHMEM_SET_SIZE _IOW(__ASHMEMIOC, 3, size_t)
-#define ASHMEM_GET_SIZE _IO(__ASHMEMIOC, 4)
-#define ASHMEM_SET_PROT_MASK _IOW(__ASHMEMIOC, 5, unsigned long)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ASHMEM_GET_PROT_MASK _IO(__ASHMEMIOC, 6)
-#define ASHMEM_PIN _IOW(__ASHMEMIOC, 7, struct ashmem_pin)
-#define ASHMEM_UNPIN _IOW(__ASHMEMIOC, 8, struct ashmem_pin)
-#define ASHMEM_GET_PIN_STATUS _IO(__ASHMEMIOC, 9)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ASHMEM_PURGE_ALL_CACHES _IO(__ASHMEMIOC, 10)
-#define ASHMEM_CACHE_FLUSH_RANGE _IO(__ASHMEMIOC, 11)
-#define ASHMEM_CACHE_CLEAN_RANGE _IO(__ASHMEMIOC, 12)
-#define ASHMEM_CACHE_INV_RANGE _IO(__ASHMEMIOC, 13)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#endif
diff --git a/include/linux/genlock.h b/include/linux/genlock.h
deleted file mode 100644
index 77f65dc..0000000
--- a/include/linux/genlock.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _GENLOCK_H_
-#define _GENLOCK_H_
-#define GENLOCK_UNLOCK 0
-#define GENLOCK_WRLOCK 1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define GENLOCK_RDLOCK 2
-#define GENLOCK_NOBLOCK (1 << 0)
-#define GENLOCK_WRITE_TO_READ (1 << 1)
-struct genlock_lock {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int fd;
- int op;
- int flags;
- int timeout;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-#define GENLOCK_IOC_MAGIC 'G'
-#define GENLOCK_IOC_NEW _IO(GENLOCK_IOC_MAGIC, 0)
-#define GENLOCK_IOC_EXPORT _IOR(GENLOCK_IOC_MAGIC, 1, struct genlock_lock)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define GENLOCK_IOC_ATTACH _IOW(GENLOCK_IOC_MAGIC, 2, struct genlock_lock)
-#define GENLOCK_IOC_LOCK _IOW(GENLOCK_IOC_MAGIC, 3, struct genlock_lock)
-#define GENLOCK_IOC_RELEASE _IO(GENLOCK_IOC_MAGIC, 4)
-#define GENLOCK_IOC_WAIT _IOW(GENLOCK_IOC_MAGIC, 5, struct genlock_lock)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define GENLOCK_IOC_DREADLOCK _IOW(GENLOCK_IOC_MAGIC, 6, struct genlock_lock)
-#endif
diff --git a/include/linux/input.h b/include/linux/input.h
deleted file mode 100644
index dd4a13c..0000000
--- a/include/linux/input.h
+++ /dev/null
@@ -1,1020 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _INPUT_H
-#define _INPUT_H
-#include <sys/time.h>
-#include <sys/ioctl.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#include <sys/types.h>
-#include <linux/types.h>
-struct input_event {
- struct timeval time;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 type;
- __u16 code;
- __s32 value;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define EV_VERSION 0x010001
-struct input_id {
- __u16 bustype;
- __u16 vendor;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 product;
- __u16 version;
-};
-struct input_absinfo {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __s32 value;
- __s32 minimum;
- __s32 maximum;
- __s32 fuzz;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __s32 flat;
- __s32 resolution;
-};
-struct input_keymap_entry {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define INPUT_KEYMAP_BY_INDEX (1 << 0)
- __u8 flags;
- __u8 len;
- __u16 index;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 keycode;
- __u8 scancode[32];
-};
-#define EVIOCGVERSION _IOR('E', 0x01, int)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define EVIOCGID _IOR('E', 0x02, struct input_id)
-#define EVIOCGREP _IOR('E', 0x03, unsigned int[2])
-#define EVIOCSREP _IOW('E', 0x03, unsigned int[2])
-#define EVIOCGKEYCODE _IOR('E', 0x04, unsigned int[2])
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define EVIOCGKEYCODE_V2 _IOR('E', 0x04, struct input_keymap_entry)
-#define EVIOCSKEYCODE _IOW('E', 0x04, unsigned int[2])
-#define EVIOCSKEYCODE_V2 _IOW('E', 0x04, struct input_keymap_entry)
-#define EVIOCGNAME(len) _IOC(_IOC_READ, 'E', 0x06, len)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define EVIOCGPHYS(len) _IOC(_IOC_READ, 'E', 0x07, len)
-#define EVIOCGUNIQ(len) _IOC(_IOC_READ, 'E', 0x08, len)
-#define EVIOCGPROP(len) _IOC(_IOC_READ, 'E', 0x09, len)
-#define EVIOCGKEY(len) _IOC(_IOC_READ, 'E', 0x18, len)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define EVIOCGLED(len) _IOC(_IOC_READ, 'E', 0x19, len)
-#define EVIOCGSND(len) _IOC(_IOC_READ, 'E', 0x1a, len)
-#define EVIOCGSW(len) _IOC(_IOC_READ, 'E', 0x1b, len)
-#define EVIOCGBIT(ev,len) _IOC(_IOC_READ, 'E', 0x20 + ev, len)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define EVIOCGABS(abs) _IOR('E', 0x40 + abs, struct input_absinfo)
-#define EVIOCSABS(abs) _IOW('E', 0xc0 + abs, struct input_absinfo)
-#define EVIOCSFF _IOC(_IOC_WRITE, 'E', 0x80, sizeof(struct ff_effect))
-#define EVIOCRMFF _IOW('E', 0x81, int)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define EVIOCGEFFECTS _IOR('E', 0x84, int)
-#define EVIOCGRAB _IOW('E', 0x90, int)
-#define EVIOCGSUSPENDBLOCK _IOR('E', 0x91, int)
-#define EVIOCSSUSPENDBLOCK _IOW('E', 0x91, int)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define EVIOCSCLOCKID _IOW('E', 0xa0, int)
-#define INPUT_PROP_POINTER 0x00
-#define INPUT_PROP_DIRECT 0x01
-#define INPUT_PROP_BUTTONPAD 0x02
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define INPUT_PROP_SEMI_MT 0x03
-#define INPUT_PROP_MAX 0x1f
-#define INPUT_PROP_CNT (INPUT_PROP_MAX + 1)
-#define EV_SYN 0x00
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define EV_KEY 0x01
-#define EV_REL 0x02
-#define EV_ABS 0x03
-#define EV_MSC 0x04
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define EV_SW 0x05
-#define EV_LED 0x11
-#define EV_SND 0x12
-#define EV_REP 0x14
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define EV_FF 0x15
-#define EV_PWR 0x16
-#define EV_FF_STATUS 0x17
-#define EV_MAX 0x1f
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define EV_CNT (EV_MAX+1)
-#define SYN_REPORT 0
-#define SYN_CONFIG 1
-#define SYN_MT_REPORT 2
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SYN_DROPPED 3
-#define KEY_RESERVED 0
-#define KEY_ESC 1
-#define KEY_1 2
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_2 3
-#define KEY_3 4
-#define KEY_4 5
-#define KEY_5 6
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_6 7
-#define KEY_7 8
-#define KEY_8 9
-#define KEY_9 10
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_0 11
-#define KEY_MINUS 12
-#define KEY_EQUAL 13
-#define KEY_BACKSPACE 14
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_TAB 15
-#define KEY_Q 16
-#define KEY_W 17
-#define KEY_E 18
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_R 19
-#define KEY_T 20
-#define KEY_Y 21
-#define KEY_U 22
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_I 23
-#define KEY_O 24
-#define KEY_P 25
-#define KEY_LEFTBRACE 26
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_RIGHTBRACE 27
-#define KEY_ENTER 28
-#define KEY_LEFTCTRL 29
-#define KEY_A 30
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_S 31
-#define KEY_D 32
-#define KEY_F 33
-#define KEY_G 34
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_H 35
-#define KEY_J 36
-#define KEY_K 37
-#define KEY_L 38
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_SEMICOLON 39
-#define KEY_APOSTROPHE 40
-#define KEY_GRAVE 41
-#define KEY_LEFTSHIFT 42
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_BACKSLASH 43
-#define KEY_Z 44
-#define KEY_X 45
-#define KEY_C 46
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_V 47
-#define KEY_B 48
-#define KEY_N 49
-#define KEY_M 50
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_COMMA 51
-#define KEY_DOT 52
-#define KEY_SLASH 53
-#define KEY_RIGHTSHIFT 54
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_KPASTERISK 55
-#define KEY_LEFTALT 56
-#define KEY_SPACE 57
-#define KEY_CAPSLOCK 58
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_F1 59
-#define KEY_F2 60
-#define KEY_F3 61
-#define KEY_F4 62
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_F5 63
-#define KEY_F6 64
-#define KEY_F7 65
-#define KEY_F8 66
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_F9 67
-#define KEY_F10 68
-#define KEY_NUMLOCK 69
-#define KEY_SCROLLLOCK 70
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_KP7 71
-#define KEY_KP8 72
-#define KEY_KP9 73
-#define KEY_KPMINUS 74
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_KP4 75
-#define KEY_KP5 76
-#define KEY_KP6 77
-#define KEY_KPPLUS 78
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_KP1 79
-#define KEY_KP2 80
-#define KEY_KP3 81
-#define KEY_KP0 82
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_KPDOT 83
-#define KEY_ZENKAKUHANKAKU 85
-#define KEY_102ND 86
-#define KEY_F11 87
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_F12 88
-#define KEY_RO 89
-#define KEY_KATAKANA 90
-#define KEY_HIRAGANA 91
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_HENKAN 92
-#define KEY_KATAKANAHIRAGANA 93
-#define KEY_MUHENKAN 94
-#define KEY_KPJPCOMMA 95
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_KPENTER 96
-#define KEY_RIGHTCTRL 97
-#define KEY_KPSLASH 98
-#define KEY_SYSRQ 99
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_RIGHTALT 100
-#define KEY_LINEFEED 101
-#define KEY_HOME 102
-#define KEY_UP 103
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_PAGEUP 104
-#define KEY_LEFT 105
-#define KEY_RIGHT 106
-#define KEY_END 107
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_DOWN 108
-#define KEY_PAGEDOWN 109
-#define KEY_INSERT 110
-#define KEY_DELETE 111
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_MACRO 112
-#define KEY_MUTE 113
-#define KEY_VOLUMEDOWN 114
-#define KEY_VOLUMEUP 115
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_POWER 116
-#define KEY_KPEQUAL 117
-#define KEY_KPPLUSMINUS 118
-#define KEY_PAUSE 119
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_SCALE 120
-#define KEY_KPCOMMA 121
-#define KEY_HANGEUL 122
-#define KEY_HANGUEL KEY_HANGEUL
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_HANJA 123
-#define KEY_YEN 124
-#define KEY_LEFTMETA 125
-#define KEY_RIGHTMETA 126
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_COMPOSE 127
-#define KEY_STOP 128
-#define KEY_AGAIN 129
-#define KEY_PROPS 130
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_UNDO 131
-#define KEY_FRONT 132
-#define KEY_COPY 133
-#define KEY_OPEN 134
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_PASTE 135
-#define KEY_FIND 136
-#define KEY_CUT 137
-#define KEY_HELP 138
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_MENU 139
-#define KEY_CALC 140
-#define KEY_SETUP 141
-#define KEY_SLEEP 142
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_WAKEUP 143
-#define KEY_FILE 144
-#define KEY_SENDFILE 145
-#define KEY_DELETEFILE 146
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_XFER 147
-#define KEY_PROG1 148
-#define KEY_PROG2 149
-#define KEY_WWW 150
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_MSDOS 151
-#define KEY_COFFEE 152
-#define KEY_SCREENLOCK KEY_COFFEE
-#define KEY_DIRECTION 153
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_CYCLEWINDOWS 154
-#define KEY_MAIL 155
-#define KEY_BOOKMARKS 156
-#define KEY_COMPUTER 157
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_BACK 158
-#define KEY_FORWARD 159
-#define KEY_CLOSECD 160
-#define KEY_EJECTCD 161
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_EJECTCLOSECD 162
-#define KEY_NEXTSONG 163
-#define KEY_PLAYPAUSE 164
-#define KEY_PREVIOUSSONG 165
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_STOPCD 166
-#define KEY_RECORD 167
-#define KEY_REWIND 168
-#define KEY_PHONE 169
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_ISO 170
-#define KEY_CONFIG 171
-#define KEY_HOMEPAGE 172
-#define KEY_REFRESH 173
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_EXIT 174
-#define KEY_MOVE 175
-#define KEY_EDIT 176
-#define KEY_SCROLLUP 177
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_SCROLLDOWN 178
-#define KEY_KPLEFTPAREN 179
-#define KEY_KPRIGHTPAREN 180
-#define KEY_NEW 181
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_REDO 182
-#define KEY_F13 183
-#define KEY_F14 184
-#define KEY_F15 185
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_F16 186
-#define KEY_F17 187
-#define KEY_F18 188
-#define KEY_F19 189
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_F20 190
-#define KEY_F21 191
-#define KEY_F22 192
-#define KEY_F23 193
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_F24 194
-#define KEY_PLAYCD 200
-#define KEY_PAUSECD 201
-#define KEY_PROG3 202
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_PROG4 203
-#define KEY_DASHBOARD 204
-#define KEY_SUSPEND 205
-#define KEY_CLOSE 206
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_PLAY 207
-#define KEY_FASTFORWARD 208
-#define KEY_BASSBOOST 209
-#define KEY_PRINT 210
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_HP 211
-#define KEY_CAMERA 212
-#define KEY_SOUND 213
-#define KEY_QUESTION 214
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_EMAIL 215
-#define KEY_CHAT 216
-#define KEY_SEARCH 217
-#define KEY_CONNECT 218
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_FINANCE 219
-#define KEY_SPORT 220
-#define KEY_SHOP 221
-#define KEY_ALTERASE 222
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_CANCEL 223
-#define KEY_BRIGHTNESSDOWN 224
-#define KEY_BRIGHTNESSUP 225
-#define KEY_MEDIA 226
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_SWITCHVIDEOMODE 227
-#define KEY_KBDILLUMTOGGLE 228
-#define KEY_KBDILLUMDOWN 229
-#define KEY_KBDILLUMUP 230
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_SEND 231
-#define KEY_REPLY 232
-#define KEY_FORWARDMAIL 233
-#define KEY_SAVE 234
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_DOCUMENTS 235
-#define KEY_BATTERY 236
-#define KEY_BLUETOOTH 237
-#define KEY_WLAN 238
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_UWB 239
-#define KEY_UNKNOWN 240
-#define KEY_VIDEO_NEXT 241
-#define KEY_VIDEO_PREV 242
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_BRIGHTNESS_CYCLE 243
-#define KEY_BRIGHTNESS_ZERO 244
-#define KEY_DISPLAY_OFF 245
-#define KEY_WIMAX 246
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_RFKILL 247
-#define BTN_MISC 0x100
-#define BTN_0 0x100
-#define BTN_1 0x101
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_2 0x102
-#define BTN_3 0x103
-#define BTN_4 0x104
-#define BTN_5 0x105
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_6 0x106
-#define BTN_7 0x107
-#define BTN_8 0x108
-#define BTN_9 0x109
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_MOUSE 0x110
-#define BTN_LEFT 0x110
-#define BTN_RIGHT 0x111
-#define BTN_MIDDLE 0x112
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_SIDE 0x113
-#define BTN_EXTRA 0x114
-#define BTN_FORWARD 0x115
-#define BTN_BACK 0x116
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_TASK 0x117
-#define BTN_JOYSTICK 0x120
-#define BTN_TRIGGER 0x120
-#define BTN_THUMB 0x121
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_THUMB2 0x122
-#define BTN_TOP 0x123
-#define BTN_TOP2 0x124
-#define BTN_PINKIE 0x125
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_BASE 0x126
-#define BTN_BASE2 0x127
-#define BTN_BASE3 0x128
-#define BTN_BASE4 0x129
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_BASE5 0x12a
-#define BTN_BASE6 0x12b
-#define BTN_DEAD 0x12f
-#define BTN_GAMEPAD 0x130
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_A 0x130
-#define BTN_B 0x131
-#define BTN_C 0x132
-#define BTN_X 0x133
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_Y 0x134
-#define BTN_Z 0x135
-#define BTN_TL 0x136
-#define BTN_TR 0x137
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_TL2 0x138
-#define BTN_TR2 0x139
-#define BTN_SELECT 0x13a
-#define BTN_START 0x13b
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_MODE 0x13c
-#define BTN_THUMBL 0x13d
-#define BTN_THUMBR 0x13e
-#define BTN_DIGI 0x140
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_TOOL_PEN 0x140
-#define BTN_TOOL_RUBBER 0x141
-#define BTN_TOOL_BRUSH 0x142
-#define BTN_TOOL_PENCIL 0x143
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_TOOL_AIRBRUSH 0x144
-#define BTN_TOOL_FINGER 0x145
-#define BTN_TOOL_MOUSE 0x146
-#define BTN_TOOL_LENS 0x147
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_TOUCH 0x14a
-#define BTN_STYLUS 0x14b
-#define BTN_STYLUS2 0x14c
-#define BTN_TOOL_DOUBLETAP 0x14d
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_TOOL_TRIPLETAP 0x14e
-#define BTN_TOOL_QUADTAP 0x14f
-#define BTN_WHEEL 0x150
-#define BTN_GEAR_DOWN 0x150
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_GEAR_UP 0x151
-#define KEY_OK 0x160
-#define KEY_SELECT 0x161
-#define KEY_GOTO 0x162
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_CLEAR 0x163
-#define KEY_POWER2 0x164
-#define KEY_OPTION 0x165
-#define KEY_INFO 0x166
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_TIME 0x167
-#define KEY_VENDOR 0x168
-#define KEY_ARCHIVE 0x169
-#define KEY_PROGRAM 0x16a
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_CHANNEL 0x16b
-#define KEY_FAVORITES 0x16c
-#define KEY_EPG 0x16d
-#define KEY_PVR 0x16e
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_MHP 0x16f
-#define KEY_LANGUAGE 0x170
-#define KEY_TITLE 0x171
-#define KEY_SUBTITLE 0x172
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_ANGLE 0x173
-#define KEY_ZOOM 0x174
-#define KEY_MODE 0x175
-#define KEY_KEYBOARD 0x176
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_SCREEN 0x177
-#define KEY_PC 0x178
-#define KEY_TV 0x179
-#define KEY_TV2 0x17a
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_VCR 0x17b
-#define KEY_VCR2 0x17c
-#define KEY_SAT 0x17d
-#define KEY_SAT2 0x17e
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_CD 0x17f
-#define KEY_TAPE 0x180
-#define KEY_RADIO 0x181
-#define KEY_TUNER 0x182
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_PLAYER 0x183
-#define KEY_TEXT 0x184
-#define KEY_DVD 0x185
-#define KEY_AUX 0x186
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_MP3 0x187
-#define KEY_AUDIO 0x188
-#define KEY_VIDEO 0x189
-#define KEY_DIRECTORY 0x18a
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_LIST 0x18b
-#define KEY_MEMO 0x18c
-#define KEY_CALENDAR 0x18d
-#define KEY_RED 0x18e
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_GREEN 0x18f
-#define KEY_YELLOW 0x190
-#define KEY_BLUE 0x191
-#define KEY_CHANNELUP 0x192
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_CHANNELDOWN 0x193
-#define KEY_FIRST 0x194
-#define KEY_LAST 0x195
-#define KEY_AB 0x196
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_NEXT 0x197
-#define KEY_RESTART 0x198
-#define KEY_SLOW 0x199
-#define KEY_SHUFFLE 0x19a
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_BREAK 0x19b
-#define KEY_PREVIOUS 0x19c
-#define KEY_DIGITS 0x19d
-#define KEY_TEEN 0x19e
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_TWEN 0x19f
-#define KEY_VIDEOPHONE 0x1a0
-#define KEY_GAMES 0x1a1
-#define KEY_ZOOMIN 0x1a2
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_ZOOMOUT 0x1a3
-#define KEY_ZOOMRESET 0x1a4
-#define KEY_WORDPROCESSOR 0x1a5
-#define KEY_EDITOR 0x1a6
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_SPREADSHEET 0x1a7
-#define KEY_GRAPHICSEDITOR 0x1a8
-#define KEY_PRESENTATION 0x1a9
-#define KEY_DATABASE 0x1aa
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_NEWS 0x1ab
-#define KEY_VOICEMAIL 0x1ac
-#define KEY_ADDRESSBOOK 0x1ad
-#define KEY_MESSENGER 0x1ae
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_DISPLAYTOGGLE 0x1af
-#define KEY_SPELLCHECK 0x1b0
-#define KEY_LOGOFF 0x1b1
-#define KEY_DOLLAR 0x1b2
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_EURO 0x1b3
-#define KEY_FRAMEBACK 0x1b4
-#define KEY_FRAMEFORWARD 0x1b5
-#define KEY_CONTEXT_MENU 0x1b6
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_MEDIA_REPEAT 0x1b7
-#define KEY_10CHANNELSUP 0x1b8
-#define KEY_10CHANNELSDOWN 0x1b9
-#define KEY_IMAGES 0x1ba
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_DEL_EOL 0x1c0
-#define KEY_DEL_EOS 0x1c1
-#define KEY_INS_LINE 0x1c2
-#define KEY_DEL_LINE 0x1c3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_FN 0x1d0
-#define KEY_FN_ESC 0x1d1
-#define KEY_FN_F1 0x1d2
-#define KEY_FN_F2 0x1d3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_FN_F3 0x1d4
-#define KEY_FN_F4 0x1d5
-#define KEY_FN_F5 0x1d6
-#define KEY_FN_F6 0x1d7
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_FN_F7 0x1d8
-#define KEY_FN_F8 0x1d9
-#define KEY_FN_F9 0x1da
-#define KEY_FN_F10 0x1db
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_FN_F11 0x1dc
-#define KEY_FN_F12 0x1dd
-#define KEY_FN_1 0x1de
-#define KEY_FN_2 0x1df
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_FN_D 0x1e0
-#define KEY_FN_E 0x1e1
-#define KEY_FN_F 0x1e2
-#define KEY_FN_S 0x1e3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_FN_B 0x1e4
-#define KEY_BRL_DOT1 0x1f1
-#define KEY_BRL_DOT2 0x1f2
-#define KEY_BRL_DOT3 0x1f3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_BRL_DOT4 0x1f4
-#define KEY_BRL_DOT5 0x1f5
-#define KEY_BRL_DOT6 0x1f6
-#define KEY_BRL_DOT7 0x1f7
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_BRL_DOT8 0x1f8
-#define KEY_BRL_DOT9 0x1f9
-#define KEY_BRL_DOT10 0x1fa
-#define KEY_NUMERIC_0 0x200
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_NUMERIC_1 0x201
-#define KEY_NUMERIC_2 0x202
-#define KEY_NUMERIC_3 0x203
-#define KEY_NUMERIC_4 0x204
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_NUMERIC_5 0x205
-#define KEY_NUMERIC_6 0x206
-#define KEY_NUMERIC_7 0x207
-#define KEY_NUMERIC_8 0x208
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_NUMERIC_9 0x209
-#define KEY_NUMERIC_STAR 0x20a
-#define KEY_NUMERIC_POUND 0x20b
-#define KEY_CAMERA_SNAPSHOT 0x2fe
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_CAMERA_FOCUS 0x210
-#define KEY_WPS_BUTTON 0x211
-#define KEY_TOUCHPAD_TOGGLE 0x212
-#define KEY_TOUCHPAD_ON 0x213
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_TOUCHPAD_OFF 0x214
-#define KEY_CAMERA_ZOOMIN 0x215
-#define KEY_CAMERA_ZOOMOUT 0x216
-#define KEY_CAMERA_UP 0x217
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_CAMERA_DOWN 0x218
-#define KEY_CAMERA_LEFT 0x219
-#define KEY_CAMERA_RIGHT 0x21a
-#define BTN_TRIGGER_HAPPY 0x2c0
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_TRIGGER_HAPPY1 0x2c0
-#define BTN_TRIGGER_HAPPY2 0x2c1
-#define BTN_TRIGGER_HAPPY3 0x2c2
-#define BTN_TRIGGER_HAPPY4 0x2c3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_TRIGGER_HAPPY5 0x2c4
-#define BTN_TRIGGER_HAPPY6 0x2c5
-#define BTN_TRIGGER_HAPPY7 0x2c6
-#define BTN_TRIGGER_HAPPY8 0x2c7
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_TRIGGER_HAPPY9 0x2c8
-#define BTN_TRIGGER_HAPPY10 0x2c9
-#define BTN_TRIGGER_HAPPY11 0x2ca
-#define BTN_TRIGGER_HAPPY12 0x2cb
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_TRIGGER_HAPPY13 0x2cc
-#define BTN_TRIGGER_HAPPY14 0x2cd
-#define BTN_TRIGGER_HAPPY15 0x2ce
-#define BTN_TRIGGER_HAPPY16 0x2cf
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_TRIGGER_HAPPY17 0x2d0
-#define BTN_TRIGGER_HAPPY18 0x2d1
-#define BTN_TRIGGER_HAPPY19 0x2d2
-#define BTN_TRIGGER_HAPPY20 0x2d3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_TRIGGER_HAPPY21 0x2d4
-#define BTN_TRIGGER_HAPPY22 0x2d5
-#define BTN_TRIGGER_HAPPY23 0x2d6
-#define BTN_TRIGGER_HAPPY24 0x2d7
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_TRIGGER_HAPPY25 0x2d8
-#define BTN_TRIGGER_HAPPY26 0x2d9
-#define BTN_TRIGGER_HAPPY27 0x2da
-#define BTN_TRIGGER_HAPPY28 0x2db
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_TRIGGER_HAPPY29 0x2dc
-#define BTN_TRIGGER_HAPPY30 0x2dd
-#define BTN_TRIGGER_HAPPY31 0x2de
-#define BTN_TRIGGER_HAPPY32 0x2df
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_TRIGGER_HAPPY33 0x2e0
-#define BTN_TRIGGER_HAPPY34 0x2e1
-#define BTN_TRIGGER_HAPPY35 0x2e2
-#define BTN_TRIGGER_HAPPY36 0x2e3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BTN_TRIGGER_HAPPY37 0x2e4
-#define BTN_TRIGGER_HAPPY38 0x2e5
-#define BTN_TRIGGER_HAPPY39 0x2e6
-#define BTN_TRIGGER_HAPPY40 0x2e7
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KEY_MIN_INTERESTING KEY_MUTE
-#define KEY_MAX 0x2ff
-#define KEY_CNT (KEY_MAX+1)
-#define REL_X 0x00
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define REL_Y 0x01
-#define REL_Z 0x02
-#define REL_RX 0x03
-#define REL_RY 0x04
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define REL_RZ 0x05
-#define REL_HWHEEL 0x06
-#define REL_DIAL 0x07
-#define REL_WHEEL 0x08
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define REL_MISC 0x09
-#define REL_MAX 0x0f
-#define REL_CNT (REL_MAX+1)
-#define ABS_X 0x00
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ABS_Y 0x01
-#define ABS_Z 0x02
-#define ABS_RX 0x03
-#define ABS_RY 0x04
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ABS_RZ 0x05
-#define ABS_THROTTLE 0x06
-#define ABS_RUDDER 0x07
-#define ABS_WHEEL 0x08
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ABS_GAS 0x09
-#define ABS_BRAKE 0x0a
-#define ABS_HAT0X 0x10
-#define ABS_HAT0Y 0x11
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ABS_HAT1X 0x12
-#define ABS_HAT1Y 0x13
-#define ABS_HAT2X 0x14
-#define ABS_HAT2Y 0x15
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ABS_HAT3X 0x16
-#define ABS_HAT3Y 0x17
-#define ABS_PRESSURE 0x18
-#define ABS_DISTANCE 0x19
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ABS_TILT_X 0x1a
-#define ABS_TILT_Y 0x1b
-#define ABS_TOOL_WIDTH 0x1c
-#define ABS_VOLUME 0x20
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ABS_MISC 0x28
-#define ABS_MT_SLOT 0x2f
-#define ABS_MT_TOUCH_MAJOR 0x30
-#define ABS_MT_TOUCH_MINOR 0x31
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ABS_MT_WIDTH_MAJOR 0x32
-#define ABS_MT_WIDTH_MINOR 0x33
-#define ABS_MT_ORIENTATION 0x34
-#define ABS_MT_POSITION_X 0x35
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ABS_MT_POSITION_Y 0x36
-#define ABS_MT_TOOL_TYPE 0x37
-#define ABS_MT_BLOB_ID 0x38
-#define ABS_MT_TRACKING_ID 0x39
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ABS_MT_PRESSURE 0x3a
-#define ABS_MT_DISTANCE 0x3b
-#define ABS_MAX 0x3f
-#define ABS_CNT (ABS_MAX+1)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SW_LID 0x00
-#define SW_TABLET_MODE 0x01
-#define SW_HEADPHONE_INSERT 0x02
-#define SW_RFKILL_ALL 0x03
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SW_RADIO SW_RFKILL_ALL
-#define SW_MICROPHONE_INSERT 0x04
-#define SW_DOCK 0x05
-#define SW_LINEOUT_INSERT 0x06
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SW_JACK_PHYSICAL_INSERT 0x07
-#define SW_VIDEOOUT_INSERT 0x08
-#define SW_CAMERA_LENS_COVER 0x09
-#define SW_KEYPAD_SLIDE 0x0a
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SW_FRONT_PROXIMITY 0x0b
-#define SW_ROTATE_LOCK 0x0c
-#define SW_HPHL_OVERCURRENT 0x0d
-#define SW_HPHR_OVERCURRENT 0x0e
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SW_MAX 0x0f
-#define SW_CNT (SW_MAX+1)
-#define MSC_SERIAL 0x00
-#define MSC_PULSELED 0x01
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MSC_GESTURE 0x02
-#define MSC_RAW 0x03
-#define MSC_SCAN 0x04
-#define MSC_MAX 0x07
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MSC_CNT (MSC_MAX+1)
-#define LED_NUML 0x00
-#define LED_CAPSL 0x01
-#define LED_SCROLLL 0x02
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define LED_COMPOSE 0x03
-#define LED_KANA 0x04
-#define LED_SLEEP 0x05
-#define LED_SUSPEND 0x06
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define LED_MUTE 0x07
-#define LED_MISC 0x08
-#define LED_MAIL 0x09
-#define LED_CHARGING 0x0a
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define LED_MAX 0x0f
-#define LED_CNT (LED_MAX+1)
-#define REP_DELAY 0x00
-#define REP_PERIOD 0x01
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define REP_MAX 0x01
-#define REP_CNT (REP_MAX+1)
-#define SND_CLICK 0x00
-#define SND_BELL 0x01
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_TONE 0x02
-#define SND_MAX 0x07
-#define SND_CNT (SND_MAX+1)
-#define ID_BUS 0
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ID_VENDOR 1
-#define ID_PRODUCT 2
-#define ID_VERSION 3
-#define BUS_PCI 0x01
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BUS_ISAPNP 0x02
-#define BUS_USB 0x03
-#define BUS_HIL 0x04
-#define BUS_BLUETOOTH 0x05
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BUS_VIRTUAL 0x06
-#define BUS_ISA 0x10
-#define BUS_I8042 0x11
-#define BUS_XTKBD 0x12
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BUS_RS232 0x13
-#define BUS_GAMEPORT 0x14
-#define BUS_PARPORT 0x15
-#define BUS_AMIGA 0x16
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BUS_ADB 0x17
-#define BUS_I2C 0x18
-#define BUS_HOST 0x19
-#define BUS_GSC 0x1A
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BUS_ATARI 0x1B
-#define BUS_SPI 0x1C
-#define MT_TOOL_FINGER 0
-#define MT_TOOL_PEN 1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MT_TOOL_MAX 1
-#define FF_STATUS_STOPPED 0x00
-#define FF_STATUS_PLAYING 0x01
-#define FF_STATUS_MAX 0x01
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct ff_replay {
- __u16 length;
- __u16 delay;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct ff_trigger {
- __u16 button;
- __u16 interval;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct ff_envelope {
- __u16 attack_length;
- __u16 attack_level;
- __u16 fade_length;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 fade_level;
-};
-struct ff_constant_effect {
- __s16 level;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ff_envelope envelope;
-};
-struct ff_ramp_effect {
- __s16 start_level;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __s16 end_level;
- struct ff_envelope envelope;
-};
-struct ff_condition_effect {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 right_saturation;
- __u16 left_saturation;
- __s16 right_coeff;
- __s16 left_coeff;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 deadband;
- __s16 center;
-};
-struct ff_periodic_effect {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 waveform;
- __u16 period;
- __s16 magnitude;
- __s16 offset;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 phase;
- struct ff_envelope envelope;
- __u32 custom_len;
- __s16 __user *custom_data;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct ff_rumble_effect {
- __u16 strong_magnitude;
- __u16 weak_magnitude;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct ff_effect {
- __u16 type;
- __s16 id;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 direction;
- struct ff_trigger trigger;
- struct ff_replay replay;
- union {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ff_constant_effect constant;
- struct ff_ramp_effect ramp;
- struct ff_periodic_effect periodic;
- struct ff_condition_effect condition[2];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ff_rumble_effect rumble;
- } u;
-};
-#define FF_RUMBLE 0x50
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define FF_PERIODIC 0x51
-#define FF_CONSTANT 0x52
-#define FF_SPRING 0x53
-#define FF_FRICTION 0x54
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define FF_DAMPER 0x55
-#define FF_INERTIA 0x56
-#define FF_RAMP 0x57
-#define FF_EFFECT_MIN FF_RUMBLE
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define FF_EFFECT_MAX FF_RAMP
-#define FF_SQUARE 0x58
-#define FF_TRIANGLE 0x59
-#define FF_SINE 0x5a
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define FF_SAW_UP 0x5b
-#define FF_SAW_DOWN 0x5c
-#define FF_CUSTOM 0x5d
-#define FF_WAVEFORM_MIN FF_SQUARE
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define FF_WAVEFORM_MAX FF_CUSTOM
-#define FF_GAIN 0x60
-#define FF_AUTOCENTER 0x61
-#define FF_MAX 0x7f
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define FF_CNT (FF_MAX+1)
-#endif
diff --git a/include/linux/ion.h b/include/linux/ion.h
deleted file mode 100644
index 61ec2f7..0000000
--- a/include/linux/ion.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _LINUX_ION_H
-#define _LINUX_ION_H
-#include <linux/ioctl.h>
-#include <linux/types.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct ion_handle;
-enum ion_heap_type {
- ION_HEAP_TYPE_SYSTEM,
- ION_HEAP_TYPE_SYSTEM_CONTIG,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ION_HEAP_TYPE_CARVEOUT,
- ION_HEAP_TYPE_IOMMU,
- ION_HEAP_TYPE_CP,
- ION_HEAP_TYPE_CUSTOM,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ION_NUM_HEAPS,
-};
-#define ION_HEAP_SYSTEM_MASK (1 << ION_HEAP_TYPE_SYSTEM)
-#define ION_HEAP_SYSTEM_CONTIG_MASK (1 << ION_HEAP_TYPE_SYSTEM_CONTIG)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ION_HEAP_CARVEOUT_MASK (1 << ION_HEAP_TYPE_CARVEOUT)
-#define ION_HEAP_CP_MASK (1 << ION_HEAP_TYPE_CP)
-enum ion_heap_ids {
- INVALID_HEAP_ID = -1,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ION_CP_MM_HEAP_ID = 8,
- ION_CP_MFC_HEAP_ID = 12,
- ION_CP_WB_HEAP_ID = 16,
- ION_CAMERA_HEAP_ID = 20,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ION_SF_HEAP_ID = 24,
- ION_IOMMU_HEAP_ID = 25,
- ION_QSECOM_HEAP_ID = 27,
- ION_AUDIO_HEAP_ID = 28,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ION_MM_FIRMWARE_HEAP_ID = 29,
- ION_SYSTEM_HEAP_ID = 30,
- ION_HEAP_ID_RESERVED = 31
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum ion_fixed_position {
- NOT_FIXED,
- FIXED_LOW,
- FIXED_MIDDLE,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FIXED_HIGH,
-};
-#define ION_SECURE (1 << ION_HEAP_ID_RESERVED)
-#define ION_HEAP(bit) (1 << (bit))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ION_VMALLOC_HEAP_NAME "vmalloc"
-#define ION_AUDIO_HEAP_NAME "audio"
-#define ION_SF_HEAP_NAME "sf"
-#define ION_MM_HEAP_NAME "mm"
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ION_CAMERA_HEAP_NAME "camera_preview"
-#define ION_IOMMU_HEAP_NAME "iommu"
-#define ION_MFC_HEAP_NAME "mfc"
-#define ION_WB_HEAP_NAME "wb"
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ION_MM_FIRMWARE_HEAP_NAME "mm_fw"
-#define ION_QSECOM_HEAP_NAME "qsecom"
-#define ION_FMEM_HEAP_NAME "fmem"
-#define CACHED 1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define UNCACHED 0
-#define ION_CACHE_SHIFT 0
-#define ION_SET_CACHE(__cache) ((__cache) << ION_CACHE_SHIFT)
-#define ION_IS_CACHED(__flags) ((__flags) & (1 << ION_CACHE_SHIFT))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ION_IOMMU_UNMAP_DELAYED 1
-struct ion_allocation_data {
- size_t len;
- size_t align;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int flags;
- struct ion_handle *handle;
-};
-struct ion_fd_data {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ion_handle *handle;
- int fd;
-};
-struct ion_handle_data {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct ion_handle *handle;
-};
-struct ion_custom_data {
- unsigned int cmd;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long arg;
-};
-struct ion_flush_data {
- struct ion_handle *handle;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int fd;
- void *vaddr;
- unsigned int offset;
- unsigned int length;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct ion_flag_data {
- struct ion_handle *handle;
- unsigned long flags;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-#define ION_IOC_MAGIC 'I'
-#define ION_IOC_ALLOC _IOWR(ION_IOC_MAGIC, 0, struct ion_allocation_data)
-#define ION_IOC_FREE _IOWR(ION_IOC_MAGIC, 1, struct ion_handle_data)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ION_IOC_MAP _IOWR(ION_IOC_MAGIC, 2, struct ion_fd_data)
-#define ION_IOC_SHARE _IOWR(ION_IOC_MAGIC, 4, struct ion_fd_data)
-#define ION_IOC_IMPORT _IOWR(ION_IOC_MAGIC, 5, int)
-#define ION_IOC_CUSTOM _IOWR(ION_IOC_MAGIC, 6, struct ion_custom_data)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ION_IOC_CLEAN_CACHES _IOWR(ION_IOC_MAGIC, 7, struct ion_flush_data)
-#define ION_IOC_INV_CACHES _IOWR(ION_IOC_MAGIC, 8, struct ion_flush_data)
-#define ION_IOC_CLEAN_INV_CACHES _IOWR(ION_IOC_MAGIC, 9, struct ion_flush_data)
-#define ION_IOC_GET_FLAGS _IOWR(ION_IOC_MAGIC, 10, struct ion_flag_data)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#endif
diff --git a/include/linux/msm_audio.h b/include/linux/msm_audio.h
deleted file mode 100644
index 9140104..0000000
--- a/include/linux/msm_audio.h
+++ /dev/null
@@ -1,341 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __LINUX_MSM_AUDIO_H
-#define __LINUX_MSM_AUDIO_H
-#include <linux/types.h>
-#include <linux/ioctl.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_IOCTL_MAGIC 'a'
-#define AUDIO_START _IOW(AUDIO_IOCTL_MAGIC, 0, unsigned)
-#define AUDIO_STOP _IOW(AUDIO_IOCTL_MAGIC, 1, unsigned)
-#define AUDIO_FLUSH _IOW(AUDIO_IOCTL_MAGIC, 2, unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_GET_CONFIG _IOR(AUDIO_IOCTL_MAGIC, 3, unsigned)
-#define AUDIO_SET_CONFIG _IOW(AUDIO_IOCTL_MAGIC, 4, unsigned)
-#define AUDIO_GET_STATS _IOR(AUDIO_IOCTL_MAGIC, 5, unsigned)
-#define AUDIO_ENABLE_AUDPP _IOW(AUDIO_IOCTL_MAGIC, 6, unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_SET_ADRC _IOW(AUDIO_IOCTL_MAGIC, 7, unsigned)
-#define AUDIO_SET_EQ _IOW(AUDIO_IOCTL_MAGIC, 8, unsigned)
-#define AUDIO_SET_RX_IIR _IOW(AUDIO_IOCTL_MAGIC, 9, unsigned)
-#define AUDIO_SET_VOLUME _IOW(AUDIO_IOCTL_MAGIC, 10, unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_PAUSE _IOW(AUDIO_IOCTL_MAGIC, 11, unsigned)
-#define AUDIO_PLAY_DTMF _IOW(AUDIO_IOCTL_MAGIC, 12, unsigned)
-#define AUDIO_GET_EVENT _IOR(AUDIO_IOCTL_MAGIC, 13, unsigned)
-#define AUDIO_ABORT_GET_EVENT _IOW(AUDIO_IOCTL_MAGIC, 14, unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_REGISTER_PMEM _IOW(AUDIO_IOCTL_MAGIC, 15, unsigned)
-#define AUDIO_DEREGISTER_PMEM _IOW(AUDIO_IOCTL_MAGIC, 16, unsigned)
-#define AUDIO_ASYNC_WRITE _IOW(AUDIO_IOCTL_MAGIC, 17, unsigned)
-#define AUDIO_ASYNC_READ _IOW(AUDIO_IOCTL_MAGIC, 18, unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_SET_INCALL _IOW(AUDIO_IOCTL_MAGIC, 19, struct msm_voicerec_mode)
-#define AUDIO_GET_NUM_SND_DEVICE _IOR(AUDIO_IOCTL_MAGIC, 20, unsigned)
-#define AUDIO_GET_SND_DEVICES _IOWR(AUDIO_IOCTL_MAGIC, 21, struct msm_snd_device_list)
-#define AUDIO_ENABLE_SND_DEVICE _IOW(AUDIO_IOCTL_MAGIC, 22, unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_DISABLE_SND_DEVICE _IOW(AUDIO_IOCTL_MAGIC, 23, unsigned)
-#define AUDIO_ROUTE_STREAM _IOW(AUDIO_IOCTL_MAGIC, 24, struct msm_audio_route_config)
-#define AUDIO_GET_PCM_CONFIG _IOR(AUDIO_IOCTL_MAGIC, 30, unsigned)
-#define AUDIO_SET_PCM_CONFIG _IOW(AUDIO_IOCTL_MAGIC, 31, unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_SWITCH_DEVICE _IOW(AUDIO_IOCTL_MAGIC, 32, unsigned)
-#define AUDIO_SET_MUTE _IOW(AUDIO_IOCTL_MAGIC, 33, unsigned)
-#define AUDIO_UPDATE_ACDB _IOW(AUDIO_IOCTL_MAGIC, 34, unsigned)
-#define AUDIO_START_VOICE _IOW(AUDIO_IOCTL_MAGIC, 35, unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_STOP_VOICE _IOW(AUDIO_IOCTL_MAGIC, 36, unsigned)
-#define AUDIO_REINIT_ACDB _IOW(AUDIO_IOCTL_MAGIC, 39, unsigned)
-#define AUDIO_OUTPORT_FLUSH _IOW(AUDIO_IOCTL_MAGIC, 40, unsigned short)
-#define AUDIO_SET_ERR_THRESHOLD_VALUE _IOW(AUDIO_IOCTL_MAGIC, 41, unsigned short)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_GET_BITSTREAM_ERROR_INFO _IOR(AUDIO_IOCTL_MAGIC, 42, struct msm_audio_bitstream_error_info)
-#define AUDIO_SET_STREAM_CONFIG _IOW(AUDIO_IOCTL_MAGIC, 80, struct msm_audio_stream_config)
-#define AUDIO_GET_STREAM_CONFIG _IOR(AUDIO_IOCTL_MAGIC, 81, struct msm_audio_stream_config)
-#define AUDIO_GET_SESSION_ID _IOR(AUDIO_IOCTL_MAGIC, 82, unsigned short)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_GET_STREAM_INFO _IOR(AUDIO_IOCTL_MAGIC, 83, struct msm_audio_bitstream_info)
-#define AUDIO_SET_PAN _IOW(AUDIO_IOCTL_MAGIC, 84, unsigned)
-#define AUDIO_SET_QCONCERT_PLUS _IOW(AUDIO_IOCTL_MAGIC, 85, unsigned)
-#define AUDIO_SET_MBADRC _IOW(AUDIO_IOCTL_MAGIC, 86, unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_SET_VOLUME_PATH _IOW(AUDIO_IOCTL_MAGIC, 87, struct msm_vol_info)
-#define AUDIO_SET_MAX_VOL_ALL _IOW(AUDIO_IOCTL_MAGIC, 88, unsigned)
-#define AUDIO_ENABLE_AUDPRE _IOW(AUDIO_IOCTL_MAGIC, 89, unsigned)
-#define AUDIO_SET_AGC _IOW(AUDIO_IOCTL_MAGIC, 90, unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_SET_NS _IOW(AUDIO_IOCTL_MAGIC, 91, unsigned)
-#define AUDIO_SET_TX_IIR _IOW(AUDIO_IOCTL_MAGIC, 92, unsigned)
-#define AUDIO_GET_BUF_CFG _IOW(AUDIO_IOCTL_MAGIC, 93, struct msm_audio_buf_cfg)
-#define AUDIO_SET_BUF_CFG _IOW(AUDIO_IOCTL_MAGIC, 94, struct msm_audio_buf_cfg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_SET_ACDB_BLK _IOW(AUDIO_IOCTL_MAGIC, 95, struct msm_acdb_cmd_device)
-#define AUDIO_GET_ACDB_BLK _IOW(AUDIO_IOCTL_MAGIC, 96, struct msm_acdb_cmd_device)
-#define AUDIO_REGISTER_ION _IOW(AUDIO_IOCTL_MAGIC, 97, unsigned)
-#define AUDIO_DEREGISTER_ION _IOW(AUDIO_IOCTL_MAGIC, 98, unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_MAX_COMMON_IOCTL_NUM 100
-#define HANDSET_MIC 0x01
-#define HANDSET_SPKR 0x02
-#define HEADSET_MIC 0x03
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define HEADSET_SPKR_MONO 0x04
-#define HEADSET_SPKR_STEREO 0x05
-#define SPKR_PHONE_MIC 0x06
-#define SPKR_PHONE_MONO 0x07
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SPKR_PHONE_STEREO 0x08
-#define BT_SCO_MIC 0x09
-#define BT_SCO_SPKR 0x0A
-#define BT_A2DP_SPKR 0x0B
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define TTY_HEADSET_MIC 0x0C
-#define TTY_HEADSET_SPKR 0x0D
-#define DEFAULT_TX 0x0E
-#define DEFAULT_RX 0x0F
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BT_A2DP_TX 0x10
-#define HEADSET_MONO_PLUS_SPKR_MONO_RX 0x11
-#define HEADSET_MONO_PLUS_SPKR_STEREO_RX 0x12
-#define HEADSET_STEREO_PLUS_SPKR_MONO_RX 0x13
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define HEADSET_STEREO_PLUS_SPKR_STEREO_RX 0x14
-#define I2S_RX 0x20
-#define I2S_TX 0x21
-#define ADRC_ENABLE 0x0001
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define EQ_ENABLE 0x0002
-#define IIR_ENABLE 0x0004
-#define QCONCERT_PLUS_ENABLE 0x0008
-#define MBADRC_ENABLE 0x0010
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AGC_ENABLE 0x0001
-#define NS_ENABLE 0x0002
-#define TX_IIR_ENABLE 0x0004
-#define FLUENCE_ENABLE 0x0008
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VOC_REC_UPLINK 0x00
-#define VOC_REC_DOWNLINK 0x01
-#define VOC_REC_BOTH 0x02
-struct msm_audio_config {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t buffer_size;
- uint32_t buffer_count;
- uint32_t channel_count;
- uint32_t sample_rate;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t type;
- uint32_t meta_field;
- uint32_t bits;
- uint32_t unused[3];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct msm_audio_stream_config {
- uint32_t buffer_size;
- uint32_t buffer_count;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct msm_audio_buf_cfg{
- uint32_t meta_info_enable;
- uint32_t frames_per_buf;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct msm_audio_stats {
- uint32_t byte_count;
- uint32_t sample_count;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t unused[2];
-};
-struct msm_audio_ion_info {
- int fd;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- void *vaddr;
-};
-struct msm_audio_pmem_info {
- int fd;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- void *vaddr;
-};
-struct msm_audio_aio_buf {
- void *buf_addr;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t buf_len;
- uint32_t data_len;
- void *private_data;
- unsigned short mfield_sz;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-#define SND_IOCTL_MAGIC 's'
-#define SND_MUTE_UNMUTED 0
-#define SND_MUTE_MUTED 1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct msm_mute_info {
- uint32_t mute;
- uint32_t path;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct msm_vol_info {
- uint32_t vol;
- uint32_t path;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct msm_voicerec_mode {
- uint32_t rec_mode;
-};
-struct msm_snd_device_config {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t device;
- uint32_t ear_mute;
- uint32_t mic_mute;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_SET_DEVICE _IOW(SND_IOCTL_MAGIC, 2, struct msm_device_config *)
-#define SND_METHOD_VOICE 0
-struct msm_snd_volume_config {
- uint32_t device;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t method;
- uint32_t volume;
-};
-#define SND_SET_VOLUME _IOW(SND_IOCTL_MAGIC, 3, struct msm_snd_volume_config *)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_GET_NUM_ENDPOINTS _IOR(SND_IOCTL_MAGIC, 4, unsigned *)
-struct msm_snd_endpoint {
- int id;
- char name[64];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-#define SND_GET_ENDPOINT _IOWR(SND_IOCTL_MAGIC, 5, struct msm_snd_endpoint *)
-#define SND_AVC_CTL _IOW(SND_IOCTL_MAGIC, 6, unsigned *)
-#define SND_AGC_CTL _IOW(SND_IOCTL_MAGIC, 7, unsigned *)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct msm_audio_pcm_config {
- uint32_t pcm_feedback;
- uint32_t buffer_count;
- uint32_t buffer_size;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-#define AUDIO_EVENT_SUSPEND 0
-#define AUDIO_EVENT_RESUME 1
-#define AUDIO_EVENT_WRITE_DONE 2
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_EVENT_READ_DONE 3
-#define AUDIO_EVENT_STREAM_INFO 4
-#define AUDIO_EVENT_BITSTREAM_ERROR_INFO 5
-#define AUDIO_CODEC_TYPE_MP3 0
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_CODEC_TYPE_AAC 1
-struct msm_audio_bitstream_info {
- uint32_t codec_type;
- uint32_t chan_info;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t sample_rate;
- uint32_t bit_stream_info;
- uint32_t bit_rate;
- uint32_t unused[3];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct msm_audio_bitstream_error_info {
- uint32_t dec_id;
- uint32_t err_msg_indicator;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t err_type;
-};
-union msm_audio_event_payload {
- struct msm_audio_aio_buf aio_buf;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct msm_audio_bitstream_info stream_info;
- struct msm_audio_bitstream_error_info error_info;
- int reserved;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct msm_audio_event {
- int event_type;
- int timeout_ms;
- union msm_audio_event_payload event_payload;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-#define MSM_SNDDEV_CAP_RX 0x1
-#define MSM_SNDDEV_CAP_TX 0x2
-#define MSM_SNDDEV_CAP_VOICE 0x4
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct msm_snd_device_info {
- uint32_t dev_id;
- uint32_t dev_cap;
- char dev_name[64];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct msm_snd_device_list {
- uint32_t num_dev;
- struct msm_snd_device_info *list;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct msm_dtmf_config {
- uint16_t path;
- uint16_t dtmf_hi;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint16_t dtmf_low;
- uint16_t duration;
- uint16_t tx_gain;
- uint16_t rx_gain;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint16_t mixing;
-};
-#define AUDIO_ROUTE_STREAM_VOICE_RX 0
-#define AUDIO_ROUTE_STREAM_VOICE_TX 1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_ROUTE_STREAM_PLAYBACK 2
-#define AUDIO_ROUTE_STREAM_REC 3
-struct msm_audio_route_config {
- uint32_t stream_type;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t stream_id;
- uint32_t dev_id;
-};
-#define AUDIO_MAX_EQ_BANDS 12
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct msm_audio_eq_band {
- uint16_t band_idx;
- uint32_t filter_type;
- uint32_t center_freq_hz;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t filter_gain;
- uint32_t q_factor;
-} __attribute__ ((packed));
-struct msm_audio_eq_stream_config {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t enable;
- uint32_t num_bands;
- struct msm_audio_eq_band eq_bands[AUDIO_MAX_EQ_BANDS];
-} __attribute__ ((packed));
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct msm_acdb_cmd_device {
- uint32_t command_id;
- uint32_t device_id;
- uint32_t network_id;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t sample_rate_id;
- uint32_t interface_id;
- uint32_t algorithm_block_id;
- uint32_t total_bytes;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t *phys_buf;
-};
-#endif
diff --git a/include/linux/msm_audio_aac.h b/include/linux/msm_audio_aac.h
deleted file mode 100644
index 218ac45..0000000
--- a/include/linux/msm_audio_aac.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __MSM_AUDIO_AAC_H
-#define __MSM_AUDIO_AAC_H
-#include <linux/msm_audio.h>
-#define AUDIO_SET_AAC_CONFIG _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+0), unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_GET_AAC_CONFIG _IOR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+1), unsigned)
-#define AUDIO_SET_AAC_ENC_CONFIG _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+3), struct msm_audio_aac_enc_config)
-#define AUDIO_GET_AAC_ENC_CONFIG _IOR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+4), struct msm_audio_aac_enc_config)
-#define AUDIO_AAC_FORMAT_ADTS -1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_AAC_FORMAT_RAW 0x0000
-#define AUDIO_AAC_FORMAT_PSUEDO_RAW 0x0001
-#define AUDIO_AAC_FORMAT_LOAS 0x0002
-#define AUDIO_AAC_FORMAT_ADIF 0x0003
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_AAC_OBJECT_LC 0x0002
-#define AUDIO_AAC_OBJECT_LTP 0x0004
-#define AUDIO_AAC_OBJECT_ERLC 0x0011
-#define AUDIO_AAC_OBJECT_BSAC 0x0016
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_AAC_SEC_DATA_RES_ON 0x0001
-#define AUDIO_AAC_SEC_DATA_RES_OFF 0x0000
-#define AUDIO_AAC_SCA_DATA_RES_ON 0x0001
-#define AUDIO_AAC_SCA_DATA_RES_OFF 0x0000
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_AAC_SPEC_DATA_RES_ON 0x0001
-#define AUDIO_AAC_SPEC_DATA_RES_OFF 0x0000
-#define AUDIO_AAC_SBR_ON_FLAG_ON 0x0001
-#define AUDIO_AAC_SBR_ON_FLAG_OFF 0x0000
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_AAC_SBR_PS_ON_FLAG_ON 0x0001
-#define AUDIO_AAC_SBR_PS_ON_FLAG_OFF 0x0000
-#define AUDIO_AAC_DUAL_MONO_PL_PR 0
-#define AUDIO_AAC_DUAL_MONO_SL_SR 1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_AAC_DUAL_MONO_SL_PR 2
-#define AUDIO_AAC_DUAL_MONO_PL_SR 3
-struct msm_audio_aac_config {
- signed short format;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned short audio_object;
- unsigned short ep_config;
- unsigned short aac_section_data_resilience_flag;
- unsigned short aac_scalefactor_data_resilience_flag;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned short aac_spectral_data_resilience_flag;
- unsigned short sbr_on_flag;
- unsigned short sbr_ps_on_flag;
- unsigned short dual_mono_mode;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned short channel_configuration;
-};
-struct msm_audio_aac_enc_config {
- uint32_t channels;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t sample_rate;
- uint32_t bit_rate;
- uint32_t stream_format;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#endif
diff --git a/include/linux/msm_audio_acdb.h b/include/linux/msm_audio_acdb.h
deleted file mode 100644
index a2d42bf..0000000
--- a/include/linux/msm_audio_acdb.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __MSM_AUDIO_ACDB_H
-#define __MSM_AUDIO_ACDB_H
-#include <linux/msm_audio.h>
-#define AUDIO_SET_VOCPROC_CAL _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+0), unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_SET_VOCPROC_STREAM_CAL _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+1), unsigned)
-#define AUDIO_SET_VOCPROC_VOL_CAL _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+2), unsigned)
-#define AUDIO_SET_AUDPROC_RX_CAL _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+3), unsigned)
-#define AUDIO_SET_AUDPROC_RX_STREAM_CAL _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+4), unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_SET_AUDPROC_RX_VOL_CAL _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+5), unsigned)
-#define AUDIO_SET_AUDPROC_TX_CAL _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+6), unsigned)
-#define AUDIO_SET_AUDPROC_TX_STREAM_CAL _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+7), unsigned)
-#define AUDIO_SET_AUDPROC_TX_VOL_CAL _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+8), unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_SET_SIDETONE_CAL _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+9), unsigned)
-#define AUDIO_SET_ANC_CAL _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+10), unsigned)
-#define AUDIO_SET_VOICE_RX_TOPOLOGY _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+11), unsigned)
-#define AUDIO_SET_VOICE_TX_TOPOLOGY _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+12), unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_SET_ADM_RX_TOPOLOGY _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+13), unsigned)
-#define AUDIO_SET_ADM_TX_TOPOLOGY _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+14), unsigned)
-#define AUDIO_SET_ASM_TOPOLOGY _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+15), unsigned)
-#define AUDIO_SET_AFE_TX_CAL _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+16), unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_SET_AFE_RX_CAL _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+17), unsigned)
-#define AUDIO_MAX_ACDB_IOCTL (AUDIO_MAX_COMMON_IOCTL_NUM+30)
-struct cal_block {
- uint32_t cal_size;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t cal_offset;
-};
-struct sidetone_cal {
- uint16_t enable;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint16_t gain;
-};
-#define AUDIO_GET_RTAC_ADM_INFO _IOR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_ACDB_IOCTL+1), unsigned)
-#define AUDIO_GET_RTAC_VOICE_INFO _IOR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_ACDB_IOCTL+2), unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_GET_RTAC_ADM_CAL _IOWR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_ACDB_IOCTL+3), unsigned)
-#define AUDIO_SET_RTAC_ADM_CAL _IOWR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_ACDB_IOCTL+4), unsigned)
-#define AUDIO_GET_RTAC_ASM_CAL _IOWR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_ACDB_IOCTL+5), unsigned)
-#define AUDIO_SET_RTAC_ASM_CAL _IOWR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_ACDB_IOCTL+6), unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_GET_RTAC_CVS_CAL _IOWR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_ACDB_IOCTL+7), unsigned)
-#define AUDIO_SET_RTAC_CVS_CAL _IOWR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_ACDB_IOCTL+8), unsigned)
-#define AUDIO_GET_RTAC_CVP_CAL _IOWR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_ACDB_IOCTL+9), unsigned)
-#define AUDIO_SET_RTAC_CVP_CAL _IOWR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_ACDB_IOCTL+10), unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_MAX_RTAC_IOCTL (AUDIO_MAX_ACDB_IOCTL+20)
-#endif
diff --git a/include/linux/msm_audio_amrnb.h b/include/linux/msm_audio_amrnb.h
deleted file mode 100644
index 18a6f85..0000000
--- a/include/linux/msm_audio_amrnb.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __MSM_AUDIO_AMRNB_H
-#define __MSM_AUDIO_AMRNB_H
-#include <linux/msm_audio.h>
-#define AUDIO_GET_AMRNB_ENC_CONFIG _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+0), unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_SET_AMRNB_ENC_CONFIG _IOR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+1), unsigned)
-#define AUDIO_GET_AMRNB_ENC_CONFIG_V2 _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+2), struct msm_audio_amrnb_enc_config_v2)
-#define AUDIO_SET_AMRNB_ENC_CONFIG_V2 _IOR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM+3), struct msm_audio_amrnb_enc_config_v2)
-struct msm_audio_amrnb_enc_config {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned short voicememoencweight1;
- unsigned short voicememoencweight2;
- unsigned short voicememoencweight3;
- unsigned short voicememoencweight4;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned short dtx_mode_enable;
- unsigned short test_mode_enable;
- unsigned short enc_mode;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct msm_audio_amrnb_enc_config_v2 {
- uint32_t band_mode;
- uint32_t dtx_enable;
- uint32_t frame_format;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-#endif
diff --git a/include/linux/msm_audio_mvs.h b/include/linux/msm_audio_mvs.h
deleted file mode 100644
index 08f9f64..0000000
--- a/include/linux/msm_audio_mvs.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __MSM_AUDIO_MVS_H
-#define __MSM_AUDIO_MVS_H
-#include <linux/msm_audio.h>
-#define AUDIO_GET_MVS_CONFIG _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM + 0), unsigned)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_SET_MVS_CONFIG _IOR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM + 1), unsigned)
-#define MVS_MODE_IS733 0x1
-#define MVS_MODE_IS127 0x2
-#define MVS_MODE_4GV_NB 0x3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MVS_MODE_4GV_WB 0x4
-#define MVS_MODE_AMR 0x5
-#define MVS_MODE_EFR 0x6
-#define MVS_MODE_FR 0x7
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MVS_MODE_HR 0x8
-#define MVS_MODE_LINEAR_PCM 0x9
-#define MVS_MODE_G711 0xA
-#define MVS_MODE_PCM 0xC
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MVS_MODE_AMR_WB 0xD
-#define MVS_MODE_G729A 0xE
-#define MVS_MODE_G711A 0xF
-#define MVS_MODE_G722 0x10
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MVS_MODE_PCM_WB 0x80000000
-enum msm_audio_amr_mode {
- MVS_AMR_MODE_0475,
- MVS_AMR_MODE_0515,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MVS_AMR_MODE_0590,
- MVS_AMR_MODE_0670,
- MVS_AMR_MODE_0740,
- MVS_AMR_MODE_0795,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MVS_AMR_MODE_1020,
- MVS_AMR_MODE_1220,
- MVS_AMR_MODE_0660,
- MVS_AMR_MODE_0885,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MVS_AMR_MODE_1265,
- MVS_AMR_MODE_1425,
- MVS_AMR_MODE_1585,
- MVS_AMR_MODE_1825,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MVS_AMR_MODE_1985,
- MVS_AMR_MODE_2305,
- MVS_AMR_MODE_2385,
- MVS_AMR_MODE_UNDEF
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-enum msm_audio_voc_rate {
- MVS_VOC_0_RATE,
- MVS_VOC_8_RATE,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MVS_VOC_4_RATE,
- MVS_VOC_2_RATE,
- MVS_VOC_1_RATE
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum msm_audio_amr_frame_type {
- MVS_AMR_SPEECH_GOOD,
- MVS_AMR_SPEECH_DEGRADED,
- MVS_AMR_ONSET,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MVS_AMR_SPEECH_BAD,
- MVS_AMR_SID_FIRST,
- MVS_AMR_SID_UPDATE,
- MVS_AMR_SID_BAD,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MVS_AMR_NO_DATA,
- MVS_AMR_SPEECH_LOST
-};
-enum msm_audio_g711a_mode {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MVS_G711A_MODE_MULAW,
- MVS_G711A_MODE_ALAW
-};
-enum mvs_g722_mode_type {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MVS_G722_MODE_01,
- MVS_G722_MODE_02,
- MVS_G722_MODE_03,
- MVS_G722_MODE_MAX,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MVS_G722_MODE_UNDEF
-};
-enum msm_audio_g711a_frame_type {
- MVS_G711A_SPEECH_GOOD,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MVS_G711A_SID,
- MVS_G711A_NO_DATA,
- MVS_G711A_ERASURE
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum msm_audio_g729a_frame_type {
- MVS_G729A_NO_DATA,
- MVS_G729A_SPEECH_GOOD,
- MVS_G729A_SID,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MVS_G729A_ERASURE
-};
-struct min_max_rate {
- uint32_t min_rate;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t max_rate;
-};
-struct msm_audio_mvs_config {
- uint32_t mvs_mode;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t rate_type;
- struct min_max_rate min_max_rate;
- uint32_t dtx_mode;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MVS_MAX_VOC_PKT_SIZE 640
-struct gsm_header {
- uint8_t bfi;
- uint8_t sid;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint8_t taf;
- uint8_t ufi;
-};
-struct q6_msm_audio_mvs_frame {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- union {
- uint32_t frame_type;
- uint32_t packet_rate;
- struct gsm_header gsm_frame_type;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- } header;
- uint32_t len;
- uint8_t voc_pkt[MVS_MAX_VOC_PKT_SIZE];
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct msm_audio_mvs_frame {
- uint32_t frame_type;
- uint32_t len;
- uint8_t voc_pkt[MVS_MAX_VOC_PKT_SIZE];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-#endif
diff --git a/include/linux/msm_audio_qcp.h b/include/linux/msm_audio_qcp.h
deleted file mode 100644
index 1c50519..0000000
--- a/include/linux/msm_audio_qcp.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __MSM_AUDIO_QCP_H
-#define __MSM_AUDIO_QCP_H
-#include <linux/msm_audio.h>
-#define AUDIO_SET_QCELP_ENC_CONFIG _IOW(AUDIO_IOCTL_MAGIC, 0, struct msm_audio_qcelp_enc_config)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIO_GET_QCELP_ENC_CONFIG _IOR(AUDIO_IOCTL_MAGIC, 1, struct msm_audio_qcelp_enc_config)
-#define AUDIO_SET_EVRC_ENC_CONFIG _IOW(AUDIO_IOCTL_MAGIC, 2, struct msm_audio_evrc_enc_config)
-#define AUDIO_GET_EVRC_ENC_CONFIG _IOR(AUDIO_IOCTL_MAGIC, 3, struct msm_audio_evrc_enc_config)
-#define CDMA_RATE_BLANK 0x00
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define CDMA_RATE_EIGHTH 0x01
-#define CDMA_RATE_QUARTER 0x02
-#define CDMA_RATE_HALF 0x03
-#define CDMA_RATE_FULL 0x04
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define CDMA_RATE_ERASURE 0x05
-struct msm_audio_qcelp_enc_config {
- uint32_t cdma_rate;
- uint32_t min_bit_rate;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t max_bit_rate;
-};
-struct msm_audio_evrc_enc_config {
- uint32_t cdma_rate;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t min_bit_rate;
- uint32_t max_bit_rate;
-};
-#endif
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/include/linux/msm_kgsl.h b/include/linux/msm_kgsl.h
deleted file mode 100644
index 9721549..0000000
--- a/include/linux/msm_kgsl.h
+++ /dev/null
@@ -1,366 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _MSM_KGSL_H
-#define _MSM_KGSL_H
-#define KGSL_VERSION_MAJOR 3
-#define KGSL_VERSION_MINOR 11
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KGSL_CONTEXT_SAVE_GMEM 0x00000001
-#define KGSL_CONTEXT_NO_GMEM_ALLOC 0x00000002
-#define KGSL_CONTEXT_SUBMIT_IB_LIST 0x00000004
-#define KGSL_CONTEXT_CTX_SWITCH 0x00000008
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KGSL_CONTEXT_PREAMBLE 0x00000010
-#define KGSL_CONTEXT_TRASH_STATE 0x00000020
-#define KGSL_CONTEXT_PER_CONTEXT_TS 0x00000040
-#define KGSL_CONTEXT_INVALID 0xffffffff
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KGSL_MEMFLAGS_GPUREADONLY 0x01000000
-#define KGSL_FLAGS_NORMALMODE 0x00000000
-#define KGSL_FLAGS_SAFEMODE 0x00000001
-#define KGSL_FLAGS_INITIALIZED0 0x00000002
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KGSL_FLAGS_INITIALIZED 0x00000004
-#define KGSL_FLAGS_STARTED 0x00000008
-#define KGSL_FLAGS_ACTIVE 0x00000010
-#define KGSL_FLAGS_RESERVED0 0x00000020
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KGSL_FLAGS_RESERVED1 0x00000040
-#define KGSL_FLAGS_RESERVED2 0x00000080
-#define KGSL_FLAGS_SOFT_RESET 0x00000100
-#define KGSL_FLAGS_PER_CONTEXT_TIMESTAMPS 0x00000200
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KGSL_CLK_SRC 0x00000001
-#define KGSL_CLK_CORE 0x00000002
-#define KGSL_CLK_IFACE 0x00000004
-#define KGSL_CLK_MEM 0x00000008
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KGSL_CLK_MEM_IFACE 0x00000010
-#define KGSL_CLK_AXI 0x00000020
-enum kgsl_ctx_reset_stat {
- KGSL_CTX_STAT_NO_ERROR = 0x00000000,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- KGSL_CTX_STAT_GUILTY_CONTEXT_RESET_EXT = 0x00000001,
- KGSL_CTX_STAT_INNOCENT_CONTEXT_RESET_EXT = 0x00000002,
- KGSL_CTX_STAT_UNKNOWN_CONTEXT_RESET_EXT = 0x00000003
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define KGSL_MAX_PWRLEVELS 5
-#define KGSL_CONVERT_TO_MBPS(val) (val*1000*1000U)
-enum kgsl_deviceid {
- KGSL_DEVICE_3D0 = 0x00000000,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- KGSL_DEVICE_2D0 = 0x00000001,
- KGSL_DEVICE_2D1 = 0x00000002,
- KGSL_DEVICE_MAX = 0x00000003
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum kgsl_user_mem_type {
- KGSL_USER_MEM_TYPE_PMEM = 0x00000000,
- KGSL_USER_MEM_TYPE_ASHMEM = 0x00000001,
- KGSL_USER_MEM_TYPE_ADDR = 0x00000002,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- KGSL_USER_MEM_TYPE_ION = 0x00000003,
- KGSL_USER_MEM_TYPE_MAX = 0x00000004,
-};
-struct kgsl_devinfo {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int device_id;
- unsigned int chip_id;
- unsigned int mmu_enabled;
- unsigned int gmem_gpubaseaddr;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int gpu_id;
- unsigned int gmem_sizebytes;
-};
-struct kgsl_devmemstore {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- volatile unsigned int soptimestamp;
- unsigned int sbz;
- volatile unsigned int eoptimestamp;
- unsigned int sbz2;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- volatile unsigned int ts_cmp_enable;
- unsigned int sbz3;
- volatile unsigned int ref_wait_ts;
- unsigned int sbz4;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int current_context;
- unsigned int sbz5;
-};
-#define KGSL_MEMSTORE_OFFSET(ctxt_id, field) ((ctxt_id)*sizeof(struct kgsl_devmemstore) + offsetof(struct kgsl_devmemstore, field))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum kgsl_timestamp_type {
- KGSL_TIMESTAMP_CONSUMED = 0x00000001,
- KGSL_TIMESTAMP_RETIRED = 0x00000002,
- KGSL_TIMESTAMP_QUEUED = 0x00000003,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-enum kgsl_property_type {
- KGSL_PROP_DEVICE_INFO = 0x00000001,
- KGSL_PROP_DEVICE_SHADOW = 0x00000002,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- KGSL_PROP_DEVICE_POWER = 0x00000003,
- KGSL_PROP_SHMEM = 0x00000004,
- KGSL_PROP_SHMEM_APERTURES = 0x00000005,
- KGSL_PROP_MMU_ENABLE = 0x00000006,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- KGSL_PROP_INTERRUPT_WAITS = 0x00000007,
- KGSL_PROP_VERSION = 0x00000008,
- KGSL_PROP_GPU_RESET_STAT = 0x00000009,
- KGSL_PROP_PWRCTRL = 0x0000000E,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct kgsl_shadowprop {
- unsigned int gpuaddr;
- unsigned int size;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int flags;
-};
-struct kgsl_pwrlevel {
- unsigned int gpu_freq;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int bus_freq;
- unsigned int io_fraction;
-};
-struct kgsl_version {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int drv_major;
- unsigned int drv_minor;
- unsigned int dev_major;
- unsigned int dev_minor;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct kgsl_ibdesc {
- unsigned int gpuaddr;
- void *hostptr;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int sizedwords;
- unsigned int ctrl;
-};
-#define KGSL_IOC_TYPE 0x09
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct kgsl_device_getproperty {
- unsigned int type;
- void *value;
- unsigned int sizebytes;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-#define IOCTL_KGSL_DEVICE_GETPROPERTY _IOWR(KGSL_IOC_TYPE, 0x2, struct kgsl_device_getproperty)
-struct kgsl_device_waittimestamp {
- unsigned int timestamp;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int timeout;
-};
-#define IOCTL_KGSL_DEVICE_WAITTIMESTAMP _IOW(KGSL_IOC_TYPE, 0x6, struct kgsl_device_waittimestamp)
-struct kgsl_device_waittimestamp_ctxtid {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int context_id;
- unsigned int timestamp;
- unsigned int timeout;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define IOCTL_KGSL_DEVICE_WAITTIMESTAMP_CTXTID _IOW(KGSL_IOC_TYPE, 0x7, struct kgsl_device_waittimestamp_ctxtid)
-struct kgsl_ringbuffer_issueibcmds {
- unsigned int drawctxt_id;
- unsigned int ibdesc_addr;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int numibs;
- unsigned int timestamp;
- unsigned int flags;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define IOCTL_KGSL_RINGBUFFER_ISSUEIBCMDS _IOWR(KGSL_IOC_TYPE, 0x10, struct kgsl_ringbuffer_issueibcmds)
-struct kgsl_cmdstream_readtimestamp {
- unsigned int type;
- unsigned int timestamp;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP_OLD _IOR(KGSL_IOC_TYPE, 0x11, struct kgsl_cmdstream_readtimestamp)
-#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP _IOWR(KGSL_IOC_TYPE, 0x11, struct kgsl_cmdstream_readtimestamp)
-struct kgsl_cmdstream_freememontimestamp {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int gpuaddr;
- unsigned int type;
- unsigned int timestamp;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP _IOW(KGSL_IOC_TYPE, 0x12, struct kgsl_cmdstream_freememontimestamp)
-#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP_OLD _IOR(KGSL_IOC_TYPE, 0x12, struct kgsl_cmdstream_freememontimestamp)
-struct kgsl_drawctxt_create {
- unsigned int flags;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int drawctxt_id;
-};
-#define IOCTL_KGSL_DRAWCTXT_CREATE _IOWR(KGSL_IOC_TYPE, 0x13, struct kgsl_drawctxt_create)
-struct kgsl_drawctxt_destroy {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int drawctxt_id;
-};
-#define IOCTL_KGSL_DRAWCTXT_DESTROY _IOW(KGSL_IOC_TYPE, 0x14, struct kgsl_drawctxt_destroy)
-struct kgsl_map_user_mem {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int fd;
- unsigned int gpuaddr;
- unsigned int len;
- unsigned int offset;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int hostptr;
- enum kgsl_user_mem_type memtype;
- unsigned int reserved;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define IOCTL_KGSL_MAP_USER_MEM _IOWR(KGSL_IOC_TYPE, 0x15, struct kgsl_map_user_mem)
-struct kgsl_cmdstream_readtimestamp_ctxtid {
- unsigned int context_id;
- unsigned int type;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int timestamp;
-};
-#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP_CTXTID _IOWR(KGSL_IOC_TYPE, 0x16, struct kgsl_cmdstream_readtimestamp_ctxtid)
-struct kgsl_cmdstream_freememontimestamp_ctxtid {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int context_id;
- unsigned int gpuaddr;
- unsigned int type;
- unsigned int timestamp;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP_CTXTID _IOW(KGSL_IOC_TYPE, 0x17, struct kgsl_cmdstream_freememontimestamp_ctxtid)
-struct kgsl_sharedmem_from_pmem {
- int pmem_fd;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int gpuaddr;
- unsigned int len;
- unsigned int offset;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define IOCTL_KGSL_SHAREDMEM_FROM_PMEM _IOWR(KGSL_IOC_TYPE, 0x20, struct kgsl_sharedmem_from_pmem)
-struct kgsl_sharedmem_free {
- unsigned int gpuaddr;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define IOCTL_KGSL_SHAREDMEM_FREE _IOW(KGSL_IOC_TYPE, 0x21, struct kgsl_sharedmem_free)
-struct kgsl_cff_user_event {
- unsigned char cff_opcode;
- unsigned int op1;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int op2;
- unsigned int op3;
- unsigned int op4;
- unsigned int op5;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int __pad[2];
-};
-#define IOCTL_KGSL_CFF_USER_EVENT _IOW(KGSL_IOC_TYPE, 0x31, struct kgsl_cff_user_event)
-struct kgsl_gmem_desc {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int x;
- unsigned int y;
- unsigned int width;
- unsigned int height;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int pitch;
-};
-struct kgsl_buffer_desc {
- void *hostptr;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int gpuaddr;
- int size;
- unsigned int format;
- unsigned int pitch;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int enabled;
-};
-struct kgsl_bind_gmem_shadow {
- unsigned int drawctxt_id;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct kgsl_gmem_desc gmem_desc;
- unsigned int shadow_x;
- unsigned int shadow_y;
- struct kgsl_buffer_desc shadow_buffer;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int buffer_id;
-};
-#define IOCTL_KGSL_DRAWCTXT_BIND_GMEM_SHADOW _IOW(KGSL_IOC_TYPE, 0x22, struct kgsl_bind_gmem_shadow)
-struct kgsl_sharedmem_from_vmalloc {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int gpuaddr;
- unsigned int hostptr;
- unsigned int flags;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define IOCTL_KGSL_SHAREDMEM_FROM_VMALLOC _IOWR(KGSL_IOC_TYPE, 0x23, struct kgsl_sharedmem_from_vmalloc)
-#define IOCTL_KGSL_SHAREDMEM_FLUSH_CACHE _IOW(KGSL_IOC_TYPE, 0x24, struct kgsl_sharedmem_free)
-struct kgsl_drawctxt_set_bin_base_offset {
- unsigned int drawctxt_id;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int offset;
-};
-#define IOCTL_KGSL_DRAWCTXT_SET_BIN_BASE_OFFSET _IOW(KGSL_IOC_TYPE, 0x25, struct kgsl_drawctxt_set_bin_base_offset)
-enum kgsl_cmdwindow_type {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- KGSL_CMDWINDOW_MIN = 0x00000000,
- KGSL_CMDWINDOW_2D = 0x00000000,
- KGSL_CMDWINDOW_3D = 0x00000001,
- KGSL_CMDWINDOW_MMU = 0x00000002,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- KGSL_CMDWINDOW_ARBITER = 0x000000FF,
- KGSL_CMDWINDOW_MAX = 0x000000FF,
-};
-struct kgsl_cmdwindow_write {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- enum kgsl_cmdwindow_type target;
- unsigned int addr;
- unsigned int data;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define IOCTL_KGSL_CMDWINDOW_WRITE _IOW(KGSL_IOC_TYPE, 0x2e, struct kgsl_cmdwindow_write)
-struct kgsl_gpumem_alloc {
- unsigned long gpuaddr;
- size_t size;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int flags;
-};
-#define IOCTL_KGSL_GPUMEM_ALLOC _IOWR(KGSL_IOC_TYPE, 0x2f, struct kgsl_gpumem_alloc)
-struct kgsl_cff_syncmem {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int gpuaddr;
- unsigned int len;
- unsigned int __pad[2];
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define IOCTL_KGSL_CFF_SYNCMEM _IOW(KGSL_IOC_TYPE, 0x30, struct kgsl_cff_syncmem)
-struct kgsl_timestamp_event {
- int type;
- unsigned int timestamp;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int context_id;
- void *priv;
- size_t len;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define IOCTL_KGSL_TIMESTAMP_EVENT _IOW(KGSL_IOC_TYPE, 0x31, struct kgsl_timestamp_event)
-#define KGSL_TIMESTAMP_EVENT_GENLOCK 1
-struct kgsl_timestamp_event_genlock {
- int handle;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-#define IOCTL_KGSL_SETPROPERTY _IOW(KGSL_IOC_TYPE, 0x32, struct kgsl_device_getproperty)
-#endif
diff --git a/include/linux/msm_mdp.h b/include/linux/msm_mdp.h
deleted file mode 100644
index 6b6067d..0000000
--- a/include/linux/msm_mdp.h
+++ /dev/null
@@ -1,504 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _MSM_MDP_H_
-#define _MSM_MDP_H_
-#include <linux/types.h>
-#include <linux/fb.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MSMFB_IOCTL_MAGIC 'm'
-#define MSMFB_GRP_DISP _IOW(MSMFB_IOCTL_MAGIC, 1, unsigned int)
-#define MSMFB_BLIT _IOW(MSMFB_IOCTL_MAGIC, 2, unsigned int)
-#define MSMFB_SUSPEND_SW_REFRESHER _IOW(MSMFB_IOCTL_MAGIC, 128, unsigned int)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MSMFB_RESUME_SW_REFRESHER _IOW(MSMFB_IOCTL_MAGIC, 129, unsigned int)
-#define MSMFB_CURSOR _IOW(MSMFB_IOCTL_MAGIC, 130, struct fb_cursor)
-#define MSMFB_SET_LUT _IOW(MSMFB_IOCTL_MAGIC, 131, struct fb_cmap)
-#define MSMFB_HISTOGRAM _IOWR(MSMFB_IOCTL_MAGIC, 132, struct mdp_histogram_data)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MSMFB_GET_CCS_MATRIX _IOWR(MSMFB_IOCTL_MAGIC, 133, struct mdp_ccs)
-#define MSMFB_SET_CCS_MATRIX _IOW(MSMFB_IOCTL_MAGIC, 134, struct mdp_ccs)
-#define MSMFB_OVERLAY_SET _IOWR(MSMFB_IOCTL_MAGIC, 135, struct mdp_overlay)
-#define MSMFB_OVERLAY_UNSET _IOW(MSMFB_IOCTL_MAGIC, 136, unsigned int)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MSMFB_OVERLAY_PLAY _IOW(MSMFB_IOCTL_MAGIC, 137, struct msmfb_overlay_data)
-#define MSMFB_OVERLAY_QUEUE MSMFB_OVERLAY_PLAY
-#define MSMFB_GET_PAGE_PROTECTION _IOR(MSMFB_IOCTL_MAGIC, 138, struct mdp_page_protection)
-#define MSMFB_SET_PAGE_PROTECTION _IOW(MSMFB_IOCTL_MAGIC, 139, struct mdp_page_protection)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MSMFB_OVERLAY_GET _IOR(MSMFB_IOCTL_MAGIC, 140, struct mdp_overlay)
-#define MSMFB_OVERLAY_PLAY_ENABLE _IOW(MSMFB_IOCTL_MAGIC, 141, unsigned int)
-#define MSMFB_OVERLAY_BLT _IOWR(MSMFB_IOCTL_MAGIC, 142, struct msmfb_overlay_blt)
-#define MSMFB_OVERLAY_BLT_OFFSET _IOW(MSMFB_IOCTL_MAGIC, 143, unsigned int)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MSMFB_HISTOGRAM_START _IOR(MSMFB_IOCTL_MAGIC, 144, struct mdp_histogram_start_req)
-#define MSMFB_HISTOGRAM_STOP _IOR(MSMFB_IOCTL_MAGIC, 145, unsigned int)
-#define MSMFB_NOTIFY_UPDATE _IOW(MSMFB_IOCTL_MAGIC, 146, unsigned int)
-#define MSMFB_OVERLAY_3D _IOWR(MSMFB_IOCTL_MAGIC, 147, struct msmfb_overlay_3d)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MSMFB_MIXER_INFO _IOWR(MSMFB_IOCTL_MAGIC, 148, struct msmfb_mixer_info_req)
-#define MSMFB_OVERLAY_PLAY_WAIT _IOWR(MSMFB_IOCTL_MAGIC, 149, struct msmfb_overlay_data)
-#define MSMFB_WRITEBACK_INIT _IO(MSMFB_IOCTL_MAGIC, 150)
-#define MSMFB_WRITEBACK_START _IO(MSMFB_IOCTL_MAGIC, 151)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MSMFB_WRITEBACK_STOP _IO(MSMFB_IOCTL_MAGIC, 152)
-#define MSMFB_WRITEBACK_QUEUE_BUFFER _IOW(MSMFB_IOCTL_MAGIC, 153, struct msmfb_data)
-#define MSMFB_WRITEBACK_DEQUEUE_BUFFER _IOW(MSMFB_IOCTL_MAGIC, 154, struct msmfb_data)
-#define MSMFB_WRITEBACK_TERMINATE _IO(MSMFB_IOCTL_MAGIC, 155)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MSMFB_MDP_PP _IOWR(MSMFB_IOCTL_MAGIC, 156, struct msmfb_mdp_pp)
-#define MSMFB_OVERLAY_VSYNC_CTRL _IOW(MSMFB_IOCTL_MAGIC, 160, unsigned int)
-#define MSMFB_VSYNC_CTRL _IOW(MSMFB_IOCTL_MAGIC, 161, unsigned int)
-#define MSMFB_METADATA_SET _IOW(MSMFB_IOCTL_MAGIC, 162, struct msmfb_metadata)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MSMFB_OVERLAY_COMMIT _IOW(MSMFB_IOCTL_MAGIC, 163, unsigned int)
-#define FB_TYPE_3D_PANEL 0x10101010
-#define MDP_IMGTYPE2_START 0x10000
-#define MSMFB_DRIVER_VERSION 0xF9E8D701
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum {
- NOTIFY_UPDATE_START,
- NOTIFY_UPDATE_STOP,
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum {
- MDP_RGB_565,
- MDP_XRGB_8888,
- MDP_Y_CBCR_H2V2,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MDP_Y_CBCR_H2V2_ADRENO,
- MDP_ARGB_8888,
- MDP_RGB_888,
- MDP_Y_CRCB_H2V2,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MDP_YCRYCB_H2V1,
- MDP_Y_CRCB_H2V1,
- MDP_Y_CBCR_H2V1,
- MDP_Y_CRCB_H1V2,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MDP_Y_CBCR_H1V2,
- MDP_RGBA_8888,
- MDP_BGRA_8888,
- MDP_RGBX_8888,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MDP_Y_CRCB_H2V2_TILE,
- MDP_Y_CBCR_H2V2_TILE,
- MDP_Y_CR_CB_H2V2,
- MDP_Y_CR_CB_GH2V2,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MDP_Y_CB_CR_H2V2,
- MDP_Y_CRCB_H1V1,
- MDP_Y_CBCR_H1V1,
- MDP_YCRCB_H1V1,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MDP_YCBCR_H1V1,
- MDP_IMGTYPE_LIMIT,
- MDP_RGB_BORDERFILL,
- MDP_BGR_565 = MDP_IMGTYPE2_START,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MDP_FB_FORMAT,
- MDP_IMGTYPE_LIMIT2
-};
-enum {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- PMEM_IMG,
- FB_IMG,
-};
-enum {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- HSIC_HUE = 0,
- HSIC_SAT,
- HSIC_INT,
- HSIC_CON,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- NUM_HSIC_PARAM,
-};
-#define MDP_ROT_NOP 0
-#define MDP_FLIP_LR 0x1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MDP_FLIP_UD 0x2
-#define MDP_ROT_90 0x4
-#define MDP_ROT_180 (MDP_FLIP_UD|MDP_FLIP_LR)
-#define MDP_ROT_270 (MDP_ROT_90|MDP_FLIP_UD|MDP_FLIP_LR)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MDP_DITHER 0x8
-#define MDP_BLUR 0x10
-#define MDP_BLEND_FG_PREMULT 0x20000
-#define MDP_DEINTERLACE 0x80000000
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MDP_SHARPENING 0x40000000
-#define MDP_NO_DMA_BARRIER_START 0x20000000
-#define MDP_NO_DMA_BARRIER_END 0x10000000
-#define MDP_NO_BLIT 0x08000000
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MDP_BLIT_WITH_DMA_BARRIERS 0x000
-#define MDP_BLIT_WITH_NO_DMA_BARRIERS (MDP_NO_DMA_BARRIER_START | MDP_NO_DMA_BARRIER_END)
-#define MDP_BLIT_SRC_GEM 0x04000000
-#define MDP_BLIT_DST_GEM 0x02000000
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MDP_BLIT_NON_CACHED 0x01000000
-#define MDP_OV_PIPE_SHARE 0x00800000
-#define MDP_DEINTERLACE_ODD 0x00400000
-#define MDP_OV_PLAY_NOWAIT 0x00200000
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MDP_SOURCE_ROTATED_90 0x00100000
-#define MDP_DPP_HSIC 0x00080000
-#define MDP_BACKEND_COMPOSITION 0x00040000
-#define MDP_BORDERFILL_SUPPORTED 0x00010000
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MDP_SECURE_OVERLAY_SESSION 0x00008000
-#define MDP_MEMORY_ID_TYPE_FB 0x00001000
-#define MDP_TRANSP_NOP 0xffffffff
-#define MDP_ALPHA_NOP 0xff
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MDP_FB_PAGE_PROTECTION_NONCACHED (0)
-#define MDP_FB_PAGE_PROTECTION_WRITECOMBINE (1)
-#define MDP_FB_PAGE_PROTECTION_WRITETHROUGHCACHE (2)
-#define MDP_FB_PAGE_PROTECTION_WRITEBACKCACHE (3)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MDP_FB_PAGE_PROTECTION_WRITEBACKWACACHE (4)
-#define MDP_FB_PAGE_PROTECTION_INVALID (5)
-#define MDP_NUM_FB_PAGE_PROTECTION_VALUES (5)
-struct mdp_rect {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t x;
- uint32_t y;
- uint32_t w;
- uint32_t h;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct mdp_img {
- uint32_t width;
- uint32_t height;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t format;
- uint32_t offset;
- int memory_id;
- uint32_t priv;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-#define MDP_CCS_RGB2YUV 0
-#define MDP_CCS_YUV2RGB 1
-#define MDP_CCS_SIZE 9
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MDP_BV_SIZE 3
-struct mdp_ccs {
- int direction;
- uint16_t ccs[MDP_CCS_SIZE];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint16_t bv[MDP_BV_SIZE];
-};
-struct mdp_csc {
- int id;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t csc_mv[9];
- uint32_t csc_pre_bv[3];
- uint32_t csc_post_bv[3];
- uint32_t csc_pre_lv[6];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t csc_post_lv[6];
-};
-#define MDP_BLIT_REQ_VERSION 2
-struct mdp_blit_req {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct mdp_img src;
- struct mdp_img dst;
- struct mdp_rect src_rect;
- struct mdp_rect dst_rect;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t alpha;
- uint32_t transp_mask;
- uint32_t flags;
- int sharpening_strength;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct mdp_blit_req_list {
- uint32_t count;
- struct mdp_blit_req req[];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-#define MSMFB_DATA_VERSION 2
-struct msmfb_data {
- uint32_t offset;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int memory_id;
- int id;
- uint32_t flags;
- uint32_t priv;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t iova;
-};
-#define MSMFB_NEW_REQUEST -1
-struct msmfb_overlay_data {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t id;
- struct msmfb_data data;
- uint32_t version_key;
- struct msmfb_data plane1_data;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct msmfb_data plane2_data;
-};
-struct msmfb_img {
- uint32_t width;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t height;
- uint32_t format;
-};
-#define MSMFB_WRITEBACK_DEQUEUE_BLOCKING 0x1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct msmfb_writeback_data {
- struct msmfb_data buf_info;
- struct msmfb_img img;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct dpp_ctrl {
- int8_t sharp_strength;
- int8_t hsic_params[NUM_HSIC_PARAM];
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct mdp_overlay {
- struct msmfb_img src;
- struct mdp_rect src_rect;
- struct mdp_rect dst_rect;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t z_order;
- uint32_t is_fg;
- uint32_t alpha;
- uint32_t transp_mask;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t flags;
- uint32_t id;
- uint32_t user_data[8];
- struct dpp_ctrl dpp;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct msmfb_overlay_3d {
- uint32_t is_3d;
- uint32_t width;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t height;
-};
-struct msmfb_overlay_blt {
- uint32_t enable;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t offset;
- uint32_t width;
- uint32_t height;
- uint32_t bpp;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct mdp_histogram {
- uint32_t frame_cnt;
- uint32_t bin_cnt;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t *r;
- uint32_t *g;
- uint32_t *b;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum {
- MDP_BLOCK_RESERVED = 0,
- MDP_BLOCK_OVERLAY_0,
- MDP_BLOCK_OVERLAY_1,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MDP_BLOCK_VG_1,
- MDP_BLOCK_VG_2,
- MDP_BLOCK_RGB_1,
- MDP_BLOCK_RGB_2,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MDP_BLOCK_DMA_P,
- MDP_BLOCK_DMA_S,
- MDP_BLOCK_DMA_E,
- MDP_BLOCK_OVERLAY_2,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- MDP_BLOCK_MAX,
-};
-struct mdp_histogram_start_req {
- uint32_t block;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint8_t frame_cnt;
- uint8_t bit_mask;
- uint8_t num_bins;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct mdp_histogram_data {
- uint32_t block;
- uint8_t bin_cnt;
- uint32_t *c0;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t *c1;
- uint32_t *c2;
- uint32_t *extra_info;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct mdp_pcc_coeff {
- uint32_t c, r, g, b, rr, gg, bb, rg, gb, rb, rgb_0, rgb_1;
-};
-struct mdp_pcc_cfg_data {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t block;
- uint32_t ops;
- struct mdp_pcc_coeff r, g, b;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MDP_CSC_FLAG_ENABLE 0x1
-#define MDP_CSC_FLAG_YUV_IN 0x2
-#define MDP_CSC_FLAG_YUV_OUT 0x4
-struct mdp_csc_cfg {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t flags;
- uint32_t csc_mv[9];
- uint32_t csc_pre_bv[3];
- uint32_t csc_post_bv[3];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t csc_pre_lv[6];
- uint32_t csc_post_lv[6];
-};
-struct mdp_csc_cfg_data {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t block;
- struct mdp_csc_cfg csc_data;
-};
-#define MDP_PP_OPS_READ 0x2
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MDP_PP_OPS_WRITE 0x4
-enum {
- mdp_lut_igc,
- mdp_lut_pgc,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mdp_lut_hist,
- mdp_lut_max,
-};
-struct mdp_igc_lut_data {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t block;
- uint32_t len, ops;
- uint32_t *c0_c1_data;
- uint32_t *c2_data;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct mdp_ar_gc_lut_data {
- uint32_t x_start;
- uint32_t slope;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t offset;
-};
-struct mdp_pgc_lut_data {
- uint32_t block;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t flags;
- uint8_t num_r_stages;
- uint8_t num_g_stages;
- uint8_t num_b_stages;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct mdp_ar_gc_lut_data *r_data;
- struct mdp_ar_gc_lut_data *g_data;
- struct mdp_ar_gc_lut_data *b_data;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct mdp_hist_lut_data {
- uint32_t block;
- uint32_t ops;
- uint32_t len;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t *data;
-};
-struct mdp_lut_cfg_data {
- uint32_t lut_type;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- union {
- struct mdp_igc_lut_data igc_lut_data;
- struct mdp_pgc_lut_data pgc_lut_data;
- struct mdp_hist_lut_data hist_lut_data;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- } data;
-};
-struct mdp_qseed_cfg_data {
- uint32_t block;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t table_num;
- uint32_t ops;
- uint32_t len;
- uint32_t *data;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-enum {
- mdp_op_pcc_cfg,
- mdp_op_csc_cfg,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- mdp_op_lut_cfg,
- mdp_op_qseed_cfg,
- mdp_op_max,
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct msmfb_mdp_pp {
- uint32_t op;
- union {
- struct mdp_pcc_cfg_data pcc_cfg_data;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct mdp_csc_cfg_data csc_cfg_data;
- struct mdp_lut_cfg_data lut_cfg_data;
- struct mdp_qseed_cfg_data qseed_cfg_data;
- } data;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-enum {
- metadata_op_none,
- metadata_op_base_blend,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- metadata_op_max
-};
-struct mdp_blend_cfg {
- uint32_t is_premultiplied;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct msmfb_metadata {
- uint32_t op;
- uint32_t flags;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- union {
- struct mdp_blend_cfg blend_cfg;
- } data;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct mdp_page_protection {
- uint32_t page_protection;
-};
-struct mdp_mixer_info {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int pndx;
- int pnum;
- int ptype;
- int mixer_num;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int z_order;
-};
-#define MAX_PIPE_PER_MIXER 4
-struct msmfb_mixer_info_req {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int mixer_num;
- int cnt;
- struct mdp_mixer_info info[MAX_PIPE_PER_MIXER];
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum {
- DISPLAY_SUBSYSTEM_ID,
- ROTATOR_SUBSYSTEM_ID,
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#endif
diff --git a/include/linux/msm_rotator.h b/include/linux/msm_rotator.h
deleted file mode 100644
index 5583927..0000000
--- a/include/linux/msm_rotator.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __MSM_ROTATOR_H__
-#define __MSM_ROTATOR_H__
-#include <linux/types.h>
-#include <linux/msm_mdp.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MSM_ROTATOR_IOCTL_MAGIC 'R'
-#define MSM_ROTATOR_IOCTL_START _IOWR(MSM_ROTATOR_IOCTL_MAGIC, 1, struct msm_rotator_img_info)
-#define MSM_ROTATOR_IOCTL_ROTATE _IOW(MSM_ROTATOR_IOCTL_MAGIC, 2, struct msm_rotator_data_info)
-#define MSM_ROTATOR_IOCTL_FINISH _IOW(MSM_ROTATOR_IOCTL_MAGIC, 3, int)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define ROTATOR_VERSION_01 0xA5B4C301
-enum rotator_clk_type {
- ROTATOR_CORE_CLK,
- ROTATOR_PCLK,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ROTATOR_IMEM_CLK
-};
-struct msm_rotator_img_info {
- unsigned int session_id;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct msmfb_img src;
- struct msmfb_img dst;
- struct mdp_rect src_rect;
- unsigned int dst_x;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int dst_y;
- unsigned char rotations;
- int enable;
- unsigned int downscale_ratio;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int secure;
-};
-struct msm_rotator_data_info {
- int session_id;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct msmfb_data src;
- struct msmfb_data dst;
- unsigned int version_key;
- struct msmfb_data src_chroma;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct msmfb_data dst_chroma;
-};
-struct msm_rot_clocks {
- const char *clk_name;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- enum rotator_clk_type clk_type;
- unsigned int clk_rate;
-};
-struct msm_rotator_platform_data {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int number_of_clocks;
- unsigned int hardware_version_number;
- struct msm_rot_clocks *rotator_clks;
- const char *regulator_name;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- char rot_iommu_split_domain;
-};
-#endif
diff --git a/include/linux/msm_vidc_dec.h b/include/linux/msm_vidc_dec.h
deleted file mode 100644
index 074b7c3..0000000
--- a/include/linux/msm_vidc_dec.h
+++ /dev/null
@@ -1,539 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _MSM_VIDC_DEC_H_
-#define _MSM_VIDC_DEC_H_
-#include <linux/types.h>
-#include <linux/ioctl.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_S_BASE 0x40000000
-#define VDEC_S_SUCCESS (VDEC_S_BASE)
-#define VDEC_S_EFAIL (VDEC_S_BASE + 1)
-#define VDEC_S_EFATAL (VDEC_S_BASE + 2)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_S_EBADPARAM (VDEC_S_BASE + 3)
-#define VDEC_S_EINVALSTATE (VDEC_S_BASE + 4)
-#define VDEC_S_ENOSWRES (VDEC_S_BASE + 5)
-#define VDEC_S_ENOHWRES (VDEC_S_BASE + 6)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_S_EINVALCMD (VDEC_S_BASE + 7)
-#define VDEC_S_ETIMEOUT (VDEC_S_BASE + 8)
-#define VDEC_S_ENOPREREQ (VDEC_S_BASE + 9)
-#define VDEC_S_ECMDQFULL (VDEC_S_BASE + 10)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_S_ENOTSUPP (VDEC_S_BASE + 11)
-#define VDEC_S_ENOTIMPL (VDEC_S_BASE + 12)
-#define VDEC_S_BUSY (VDEC_S_BASE + 13)
-#define VDEC_S_INPUT_BITSTREAM_ERR (VDEC_S_BASE + 14)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_INTF_VER 1
-#define VDEC_MSG_BASE 0x0000000
-#define VDEC_MSG_INVALID (VDEC_MSG_BASE + 0)
-#define VDEC_MSG_RESP_INPUT_BUFFER_DONE (VDEC_MSG_BASE + 1)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_MSG_RESP_OUTPUT_BUFFER_DONE (VDEC_MSG_BASE + 2)
-#define VDEC_MSG_RESP_INPUT_FLUSHED (VDEC_MSG_BASE + 3)
-#define VDEC_MSG_RESP_OUTPUT_FLUSHED (VDEC_MSG_BASE + 4)
-#define VDEC_MSG_RESP_FLUSH_INPUT_DONE (VDEC_MSG_BASE + 5)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_MSG_RESP_FLUSH_OUTPUT_DONE (VDEC_MSG_BASE + 6)
-#define VDEC_MSG_RESP_START_DONE (VDEC_MSG_BASE + 7)
-#define VDEC_MSG_RESP_STOP_DONE (VDEC_MSG_BASE + 8)
-#define VDEC_MSG_RESP_PAUSE_DONE (VDEC_MSG_BASE + 9)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_MSG_RESP_RESUME_DONE (VDEC_MSG_BASE + 10)
-#define VDEC_MSG_RESP_RESOURCE_LOADED (VDEC_MSG_BASE + 11)
-#define VDEC_EVT_RESOURCES_LOST (VDEC_MSG_BASE + 12)
-#define VDEC_MSG_EVT_CONFIG_CHANGED (VDEC_MSG_BASE + 13)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_MSG_EVT_HW_ERROR (VDEC_MSG_BASE + 14)
-#define VDEC_MSG_EVT_INFO_CONFIG_CHANGED (VDEC_MSG_BASE + 15)
-#define VDEC_MSG_EVT_INFO_FIELD_DROPPED (VDEC_MSG_BASE + 16)
-#define VDEC_BUFFERFLAG_EOS 0x00000001
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_BUFFERFLAG_DECODEONLY 0x00000004
-#define VDEC_BUFFERFLAG_DATACORRUPT 0x00000008
-#define VDEC_BUFFERFLAG_ENDOFFRAME 0x00000010
-#define VDEC_BUFFERFLAG_SYNCFRAME 0x00000020
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_BUFFERFLAG_EXTRADATA 0x00000040
-#define VDEC_BUFFERFLAG_CODECCONFIG 0x00000080
-#define VDEC_EXTRADATA_NONE 0x001
-#define VDEC_EXTRADATA_QP 0x004
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_EXTRADATA_MB_ERROR_MAP 0x008
-#define VDEC_EXTRADATA_SEI 0x010
-#define VDEC_EXTRADATA_VUI 0x020
-#define VDEC_EXTRADATA_VC1 0x040
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_CMDBASE 0x800
-#define VDEC_CMD_SET_INTF_VERSION (VDEC_CMDBASE)
-#define VDEC_IOCTL_MAGIC 'v'
-struct vdec_ioctl_msg {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- void __user *in;
- void __user *out;
-};
-#define VDEC_IOCTL_GET_PROFILE_LEVEL_SUPPORTED _IOWR(VDEC_IOCTL_MAGIC, 0, struct vdec_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_IOCTL_GET_INTERLACE_FORMAT _IOR(VDEC_IOCTL_MAGIC, 1, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_GET_CURRENT_PROFILE_LEVEL _IOWR(VDEC_IOCTL_MAGIC, 2, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_SET_OUTPUT_FORMAT _IOWR(VDEC_IOCTL_MAGIC, 3, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_GET_OUTPUT_FORMAT _IOWR(VDEC_IOCTL_MAGIC, 4, struct vdec_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_IOCTL_SET_CODEC _IOW(VDEC_IOCTL_MAGIC, 5, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_GET_CODEC _IOR(VDEC_IOCTL_MAGIC, 6, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_SET_PICRES _IOW(VDEC_IOCTL_MAGIC, 7, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_GET_PICRES _IOR(VDEC_IOCTL_MAGIC, 8, struct vdec_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_IOCTL_SET_EXTRADATA _IOW(VDEC_IOCTL_MAGIC, 9, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_GET_EXTRADATA _IOR(VDEC_IOCTL_MAGIC, 10, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_SET_SEQUENCE_HEADER _IOW(VDEC_IOCTL_MAGIC, 11, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_SET_BUFFER_REQ _IOW(VDEC_IOCTL_MAGIC, 12, struct vdec_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_IOCTL_GET_BUFFER_REQ _IOR(VDEC_IOCTL_MAGIC, 13, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_ALLOCATE_BUFFER _IOWR(VDEC_IOCTL_MAGIC, 14, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_FREE_BUFFER _IOW(VDEC_IOCTL_MAGIC, 15, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_SET_BUFFER _IOW(VDEC_IOCTL_MAGIC, 16, struct vdec_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_IOCTL_FILL_OUTPUT_BUFFER _IOW(VDEC_IOCTL_MAGIC, 17, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_DECODE_FRAME _IOW(VDEC_IOCTL_MAGIC, 18, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_LOAD_RESOURCES _IO(VDEC_IOCTL_MAGIC, 19)
-#define VDEC_IOCTL_CMD_START _IO(VDEC_IOCTL_MAGIC, 20)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_IOCTL_CMD_STOP _IO(VDEC_IOCTL_MAGIC, 21)
-#define VDEC_IOCTL_CMD_PAUSE _IO(VDEC_IOCTL_MAGIC, 22)
-#define VDEC_IOCTL_CMD_RESUME _IO(VDEC_IOCTL_MAGIC, 23)
-#define VDEC_IOCTL_CMD_FLUSH _IOW(VDEC_IOCTL_MAGIC, 24, struct vdec_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_IOCTL_GET_NEXT_MSG _IOR(VDEC_IOCTL_MAGIC, 25, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_STOP_NEXT_MSG _IO(VDEC_IOCTL_MAGIC, 26)
-#define VDEC_IOCTL_GET_NUMBER_INSTANCES _IOR(VDEC_IOCTL_MAGIC, 27, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_SET_PICTURE_ORDER _IOW(VDEC_IOCTL_MAGIC, 28, struct vdec_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_IOCTL_SET_FRAME_RATE _IOW(VDEC_IOCTL_MAGIC, 29, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_SET_H264_MV_BUFFER _IOW(VDEC_IOCTL_MAGIC, 30, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_FREE_H264_MV_BUFFER _IOW(VDEC_IOCTL_MAGIC, 31, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_GET_MV_BUFFER_SIZE _IOR(VDEC_IOCTL_MAGIC, 32, struct vdec_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_IOCTL_SET_IDR_ONLY_DECODING _IO(VDEC_IOCTL_MAGIC, 33)
-#define VDEC_IOCTL_SET_CONT_ON_RECONFIG _IO(VDEC_IOCTL_MAGIC, 34)
-#define VDEC_IOCTL_SET_DISABLE_DMX _IOW(VDEC_IOCTL_MAGIC, 35, struct vdec_ioctl_msg)
-#define VDEC_IOCTL_GET_DISABLE_DMX _IOR(VDEC_IOCTL_MAGIC, 36, struct vdec_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VDEC_IOCTL_GET_DISABLE_DMX_SUPPORT _IOR(VDEC_IOCTL_MAGIC, 37, struct vdec_ioctl_msg)
-enum vdec_picture {
- PICTURE_TYPE_I,
- PICTURE_TYPE_P,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- PICTURE_TYPE_B,
- PICTURE_TYPE_BI,
- PICTURE_TYPE_SKIP,
- PICTURE_TYPE_IDR,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- PICTURE_TYPE_UNKNOWN
-};
-enum vdec_buffer {
- VDEC_BUFFER_TYPE_INPUT,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_BUFFER_TYPE_OUTPUT
-};
-struct vdec_allocatorproperty {
- enum vdec_buffer buffer_type;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t mincount;
- uint32_t maxcount;
- uint32_t actualcount;
- size_t buffer_size;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t alignment;
- uint32_t buf_poolid;
-};
-struct vdec_bufferpayload {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- void __user *bufferaddr;
- size_t buffer_len;
- int pmem_fd;
- size_t offset;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- size_t mmaped_size;
-};
-struct vdec_setbuffer_cmd {
- enum vdec_buffer buffer_type;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct vdec_bufferpayload buffer;
-};
-struct vdec_fillbuffer_cmd {
- struct vdec_bufferpayload buffer;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- void *client_data;
-};
-enum vdec_bufferflush {
- VDEC_FLUSH_TYPE_INPUT,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_FLUSH_TYPE_OUTPUT,
- VDEC_FLUSH_TYPE_ALL
-};
-enum vdec_codec {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_CODECTYPE_H264 = 0x1,
- VDEC_CODECTYPE_H263 = 0x2,
- VDEC_CODECTYPE_MPEG4 = 0x3,
- VDEC_CODECTYPE_DIVX_3 = 0x4,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_CODECTYPE_DIVX_4 = 0x5,
- VDEC_CODECTYPE_DIVX_5 = 0x6,
- VDEC_CODECTYPE_DIVX_6 = 0x7,
- VDEC_CODECTYPE_XVID = 0x8,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_CODECTYPE_MPEG1 = 0x9,
- VDEC_CODECTYPE_MPEG2 = 0xa,
- VDEC_CODECTYPE_VC1 = 0xb,
- VDEC_CODECTYPE_VC1_RCV = 0xc
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-enum vdec_mpeg2_profile {
- VDEC_MPEG2ProfileSimple = 0x1,
- VDEC_MPEG2ProfileMain = 0x2,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_MPEG2Profile422 = 0x4,
- VDEC_MPEG2ProfileSNR = 0x8,
- VDEC_MPEG2ProfileSpatial = 0x10,
- VDEC_MPEG2ProfileHigh = 0x20,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_MPEG2ProfileKhronosExtensions = 0x6F000000,
- VDEC_MPEG2ProfileVendorStartUnused = 0x7F000000,
- VDEC_MPEG2ProfileMax = 0x7FFFFFFF
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum vdec_mpeg2_level {
- VDEC_MPEG2LevelLL = 0x1,
- VDEC_MPEG2LevelML = 0x2,
- VDEC_MPEG2LevelH14 = 0x4,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_MPEG2LevelHL = 0x8,
- VDEC_MPEG2LevelKhronosExtensions = 0x6F000000,
- VDEC_MPEG2LevelVendorStartUnused = 0x7F000000,
- VDEC_MPEG2LevelMax = 0x7FFFFFFF
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-enum vdec_mpeg4_profile {
- VDEC_MPEG4ProfileSimple = 0x01,
- VDEC_MPEG4ProfileSimpleScalable = 0x02,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_MPEG4ProfileCore = 0x04,
- VDEC_MPEG4ProfileMain = 0x08,
- VDEC_MPEG4ProfileNbit = 0x10,
- VDEC_MPEG4ProfileScalableTexture = 0x20,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_MPEG4ProfileSimpleFace = 0x40,
- VDEC_MPEG4ProfileSimpleFBA = 0x80,
- VDEC_MPEG4ProfileBasicAnimated = 0x100,
- VDEC_MPEG4ProfileHybrid = 0x200,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_MPEG4ProfileAdvancedRealTime = 0x400,
- VDEC_MPEG4ProfileCoreScalable = 0x800,
- VDEC_MPEG4ProfileAdvancedCoding = 0x1000,
- VDEC_MPEG4ProfileAdvancedCore = 0x2000,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_MPEG4ProfileAdvancedScalable = 0x4000,
- VDEC_MPEG4ProfileAdvancedSimple = 0x8000,
- VDEC_MPEG4ProfileKhronosExtensions = 0x6F000000,
- VDEC_MPEG4ProfileVendorStartUnused = 0x7F000000,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_MPEG4ProfileMax = 0x7FFFFFFF
-};
-enum vdec_mpeg4_level {
- VDEC_MPEG4Level0 = 0x01,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_MPEG4Level0b = 0x02,
- VDEC_MPEG4Level1 = 0x04,
- VDEC_MPEG4Level2 = 0x08,
- VDEC_MPEG4Level3 = 0x10,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_MPEG4Level4 = 0x20,
- VDEC_MPEG4Level4a = 0x40,
- VDEC_MPEG4Level5 = 0x80,
- VDEC_MPEG4LevelKhronosExtensions = 0x6F000000,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_MPEG4LevelVendorStartUnused = 0x7F000000,
- VDEC_MPEG4LevelMax = 0x7FFFFFFF
-};
-enum vdec_avc_profile {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_AVCProfileBaseline = 0x01,
- VDEC_AVCProfileMain = 0x02,
- VDEC_AVCProfileExtended = 0x04,
- VDEC_AVCProfileHigh = 0x08,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_AVCProfileHigh10 = 0x10,
- VDEC_AVCProfileHigh422 = 0x20,
- VDEC_AVCProfileHigh444 = 0x40,
- VDEC_AVCProfileKhronosExtensions = 0x6F000000,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_AVCProfileVendorStartUnused = 0x7F000000,
- VDEC_AVCProfileMax = 0x7FFFFFFF
-};
-enum vdec_avc_level {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_AVCLevel1 = 0x01,
- VDEC_AVCLevel1b = 0x02,
- VDEC_AVCLevel11 = 0x04,
- VDEC_AVCLevel12 = 0x08,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_AVCLevel13 = 0x10,
- VDEC_AVCLevel2 = 0x20,
- VDEC_AVCLevel21 = 0x40,
- VDEC_AVCLevel22 = 0x80,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_AVCLevel3 = 0x100,
- VDEC_AVCLevel31 = 0x200,
- VDEC_AVCLevel32 = 0x400,
- VDEC_AVCLevel4 = 0x800,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_AVCLevel41 = 0x1000,
- VDEC_AVCLevel42 = 0x2000,
- VDEC_AVCLevel5 = 0x4000,
- VDEC_AVCLevel51 = 0x8000,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_AVCLevelKhronosExtensions = 0x6F000000,
- VDEC_AVCLevelVendorStartUnused = 0x7F000000,
- VDEC_AVCLevelMax = 0x7FFFFFFF
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum vdec_divx_profile {
- VDEC_DIVXProfile_qMobile = 0x01,
- VDEC_DIVXProfile_Mobile = 0x02,
- VDEC_DIVXProfile_HD = 0x04,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_DIVXProfile_Handheld = 0x08,
- VDEC_DIVXProfile_Portable = 0x10,
- VDEC_DIVXProfile_HomeTheater = 0x20
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum vdec_xvid_profile {
- VDEC_XVIDProfile_Simple = 0x1,
- VDEC_XVIDProfile_Advanced_Realtime_Simple = 0x2,
- VDEC_XVIDProfile_Advanced_Simple = 0x4
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-enum vdec_xvid_level {
- VDEC_XVID_LEVEL_S_L0 = 0x1,
- VDEC_XVID_LEVEL_S_L1 = 0x2,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_XVID_LEVEL_S_L2 = 0x4,
- VDEC_XVID_LEVEL_S_L3 = 0x8,
- VDEC_XVID_LEVEL_ARTS_L1 = 0x10,
- VDEC_XVID_LEVEL_ARTS_L2 = 0x20,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_XVID_LEVEL_ARTS_L3 = 0x40,
- VDEC_XVID_LEVEL_ARTS_L4 = 0x80,
- VDEC_XVID_LEVEL_AS_L0 = 0x100,
- VDEC_XVID_LEVEL_AS_L1 = 0x200,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_XVID_LEVEL_AS_L2 = 0x400,
- VDEC_XVID_LEVEL_AS_L3 = 0x800,
- VDEC_XVID_LEVEL_AS_L4 = 0x1000
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum vdec_h263profile {
- VDEC_H263ProfileBaseline = 0x01,
- VDEC_H263ProfileH320Coding = 0x02,
- VDEC_H263ProfileBackwardCompatible = 0x04,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_H263ProfileISWV2 = 0x08,
- VDEC_H263ProfileISWV3 = 0x10,
- VDEC_H263ProfileHighCompression = 0x20,
- VDEC_H263ProfileInternet = 0x40,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_H263ProfileInterlace = 0x80,
- VDEC_H263ProfileHighLatency = 0x100,
- VDEC_H263ProfileKhronosExtensions = 0x6F000000,
- VDEC_H263ProfileVendorStartUnused = 0x7F000000,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_H263ProfileMax = 0x7FFFFFFF
-};
-enum vdec_h263level {
- VDEC_H263Level10 = 0x01,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_H263Level20 = 0x02,
- VDEC_H263Level30 = 0x04,
- VDEC_H263Level40 = 0x08,
- VDEC_H263Level45 = 0x10,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_H263Level50 = 0x20,
- VDEC_H263Level60 = 0x40,
- VDEC_H263Level70 = 0x80,
- VDEC_H263LevelKhronosExtensions = 0x6F000000,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_H263LevelVendorStartUnused = 0x7F000000,
- VDEC_H263LevelMax = 0x7FFFFFFF
-};
-enum vdec_wmv_format {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_WMVFormatUnused = 0x01,
- VDEC_WMVFormat7 = 0x02,
- VDEC_WMVFormat8 = 0x04,
- VDEC_WMVFormat9 = 0x08,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_WMFFormatKhronosExtensions = 0x6F000000,
- VDEC_WMFFormatVendorStartUnused = 0x7F000000,
- VDEC_WMVFormatMax = 0x7FFFFFFF
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum vdec_vc1_profile {
- VDEC_VC1ProfileSimple = 0x1,
- VDEC_VC1ProfileMain = 0x2,
- VDEC_VC1ProfileAdvanced = 0x4
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-enum vdec_vc1_level {
- VDEC_VC1_LEVEL_S_Low = 0x1,
- VDEC_VC1_LEVEL_S_Medium = 0x2,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_VC1_LEVEL_M_Low = 0x4,
- VDEC_VC1_LEVEL_M_Medium = 0x8,
- VDEC_VC1_LEVEL_M_High = 0x10,
- VDEC_VC1_LEVEL_A_L0 = 0x20,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_VC1_LEVEL_A_L1 = 0x40,
- VDEC_VC1_LEVEL_A_L2 = 0x80,
- VDEC_VC1_LEVEL_A_L3 = 0x100,
- VDEC_VC1_LEVEL_A_L4 = 0x200
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct vdec_profile_level {
- uint32_t profiles;
- uint32_t levels;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-enum vdec_interlaced_format {
- VDEC_InterlaceFrameProgressive = 0x1,
- VDEC_InterlaceInterleaveFrameTopFieldFirst = 0x2,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_InterlaceInterleaveFrameBottomFieldFirst = 0x4
-};
-enum vdec_output_fromat {
- VDEC_YUV_FORMAT_NV12 = 0x1,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_YUV_FORMAT_TILE_4x2 = 0x2
-};
-enum vdec_output_order {
- VDEC_ORDER_DISPLAY = 0x1,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- VDEC_ORDER_DECODE = 0x2
-};
-struct vdec_picsize {
- uint32_t frame_width;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t frame_height;
- uint32_t stride;
- uint32_t scan_lines;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct vdec_seqheader {
- void __user *ptr_seqheader;
- size_t seq_header_len;
- int pmem_fd;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- size_t pmem_offset;
-};
-struct vdec_mberror {
- void __user *ptr_errormap;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- size_t err_mapsize;
-};
-struct vdec_input_frameinfo {
- void __user *bufferaddr;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- size_t offset;
- size_t datalen;
- uint32_t flags;
- int64_t timestamp;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- void *client_data;
- int pmem_fd;
- size_t pmem_offset;
- void __user *desc_addr;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t desc_size;
-};
-struct vdec_framesize {
- uint32_t left;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t top;
- uint32_t right;
- uint32_t bottom;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct vdec_aspectratioinfo {
- uint32_t aspect_ratio;
- uint32_t par_width;
- uint32_t par_height;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct vdec_output_frameinfo {
- void __user *bufferaddr;
- size_t offset;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- size_t len;
- uint32_t flags;
- int64_t time_stamp;
- enum vdec_picture pic_type;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- void *client_data;
- void *input_frame_clientdata;
- struct vdec_framesize framesize;
- enum vdec_interlaced_format interlaced_format;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct vdec_aspectratioinfo aspect_ratio_info;
-};
-union vdec_msgdata {
- struct vdec_output_frameinfo output_frame;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- void *input_frame_clientdata;
-};
-struct vdec_msginfo {
- uint32_t status_code;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- uint32_t msgcode;
- union vdec_msgdata msgdata;
- size_t msgdatasize;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct vdec_framerate {
- unsigned long fps_denominator;
- unsigned long fps_numerator;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct vdec_h264_mv{
- size_t size;
- int count;
- int pmem_fd;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int offset;
-};
-struct vdec_mv_buff_size{
- int width;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int height;
- int size;
- int alignment;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#endif
diff --git a/include/linux/msm_vidc_enc.h b/include/linux/msm_vidc_enc.h
deleted file mode 100644
index d265384..0000000
--- a/include/linux/msm_vidc_enc.h
+++ /dev/null
@@ -1,428 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _MSM_VIDC_ENC_H_
-#define _MSM_VIDC_ENC_H_
-#include <linux/types.h>
-#include <linux/ioctl.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_S_BASE 0x00000000
-#define VEN_S_SUCCESS (VEN_S_BASE)
-#define VEN_S_EFAIL (VEN_S_BASE+1)
-#define VEN_S_EFATAL (VEN_S_BASE+2)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_S_EBADPARAM (VEN_S_BASE+3)
-#define VEN_S_EINVALSTATE (VEN_S_BASE+4)
-#define VEN_S_ENOSWRES (VEN_S_BASE+5)
-#define VEN_S_ENOHWRES (VEN_S_BASE+6)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_S_EBUFFREQ (VEN_S_BASE+7)
-#define VEN_S_EINVALCMD (VEN_S_BASE+8)
-#define VEN_S_ETIMEOUT (VEN_S_BASE+9)
-#define VEN_S_ENOREATMPT (VEN_S_BASE+10)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_S_ENOPREREQ (VEN_S_BASE+11)
-#define VEN_S_ECMDQFULL (VEN_S_BASE+12)
-#define VEN_S_ENOTSUPP (VEN_S_BASE+13)
-#define VEN_S_ENOTIMPL (VEN_S_BASE+14)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_S_ENOTPMEM (VEN_S_BASE+15)
-#define VEN_S_EFLUSHED (VEN_S_BASE+16)
-#define VEN_S_EINSUFBUF (VEN_S_BASE+17)
-#define VEN_S_ESAMESTATE (VEN_S_BASE+18)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_S_EINVALTRANS (VEN_S_BASE+19)
-#define VEN_INTF_VER 1
-#define VEN_MSG_INDICATION 0
-#define VEN_MSG_INPUT_BUFFER_DONE 1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_MSG_OUTPUT_BUFFER_DONE 2
-#define VEN_MSG_NEED_OUTPUT_BUFFER 3
-#define VEN_MSG_FLUSH_INPUT_DONE 4
-#define VEN_MSG_FLUSH_OUPUT_DONE 5
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_MSG_START 6
-#define VEN_MSG_STOP 7
-#define VEN_MSG_PAUSE 8
-#define VEN_MSG_RESUME 9
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_MSG_STOP_READING_MSG 10
-#define VEN_BUFFLAG_EOS 0x00000001
-#define VEN_BUFFLAG_ENDOFFRAME 0x00000010
-#define VEN_BUFFLAG_SYNCFRAME 0x00000020
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_BUFFLAG_EXTRADATA 0x00000040
-#define VEN_BUFFLAG_CODECCONFIG 0x00000080
-#define VEN_EXTRADATA_NONE 0x001
-#define VEN_EXTRADATA_QCOMFILLER 0x002
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_EXTRADATA_SLICEINFO 0x100
-#define VEN_FRAME_TYPE_I 1
-#define VEN_FRAME_TYPE_P 2
-#define VEN_FRAME_TYPE_B 3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_CODEC_MPEG4 1
-#define VEN_CODEC_H264 2
-#define VEN_CODEC_H263 3
-#define VEN_PROFILE_MPEG4_SP 1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_PROFILE_MPEG4_ASP 2
-#define VEN_PROFILE_H264_BASELINE 3
-#define VEN_PROFILE_H264_MAIN 4
-#define VEN_PROFILE_H264_HIGH 5
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_PROFILE_H263_BASELINE 6
-#define VEN_LEVEL_MPEG4_0 0x1
-#define VEN_LEVEL_MPEG4_1 0x2
-#define VEN_LEVEL_MPEG4_2 0x3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_LEVEL_MPEG4_3 0x4
-#define VEN_LEVEL_MPEG4_4 0x5
-#define VEN_LEVEL_MPEG4_5 0x6
-#define VEN_LEVEL_MPEG4_3b 0x7
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_LEVEL_MPEG4_6 0x8
-#define VEN_LEVEL_H264_1 0x9
-#define VEN_LEVEL_H264_1b 0xA
-#define VEN_LEVEL_H264_1p1 0xB
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_LEVEL_H264_1p2 0xC
-#define VEN_LEVEL_H264_1p3 0xD
-#define VEN_LEVEL_H264_2 0xE
-#define VEN_LEVEL_H264_2p1 0xF
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_LEVEL_H264_2p2 0x10
-#define VEN_LEVEL_H264_3 0x11
-#define VEN_LEVEL_H264_3p1 0x12
-#define VEN_LEVEL_H264_3p2 0x13
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_LEVEL_H264_4 0x14
-#define VEN_LEVEL_H263_10 0x15
-#define VEN_LEVEL_H263_20 0x16
-#define VEN_LEVEL_H263_30 0x17
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_LEVEL_H263_40 0x18
-#define VEN_LEVEL_H263_45 0x19
-#define VEN_LEVEL_H263_50 0x1A
-#define VEN_LEVEL_H263_60 0x1B
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_LEVEL_H263_70 0x1C
-#define VEN_ENTROPY_MODEL_CAVLC 1
-#define VEN_ENTROPY_MODEL_CABAC 2
-#define VEN_CABAC_MODEL_0 1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_CABAC_MODEL_1 2
-#define VEN_CABAC_MODEL_2 3
-#define VEN_DB_DISABLE 1
-#define VEN_DB_ALL_BLKG_BNDRY 2
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_DB_SKIP_SLICE_BNDRY 3
-#define VEN_MSLICE_OFF 1
-#define VEN_MSLICE_CNT_MB 2
-#define VEN_MSLICE_CNT_BYTE 3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_MSLICE_GOB 4
-#define VEN_RC_OFF 1
-#define VEN_RC_VBR_VFR 2
-#define VEN_RC_VBR_CFR 3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_RC_CBR_VFR 4
-#define VEN_RC_CBR_CFR 5
-#define VEN_FLUSH_INPUT 1
-#define VEN_FLUSH_OUTPUT 2
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_FLUSH_ALL 3
-#define VEN_INPUTFMT_NV12 1
-#define VEN_INPUTFMT_NV21 2
-#define VEN_INPUTFMT_NV12_16M2KA 3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_ROTATION_0 1
-#define VEN_ROTATION_90 2
-#define VEN_ROTATION_180 3
-#define VEN_ROTATION_270 4
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_TIMEOUT_INFINITE 0xffffffff
-#define VEN_IR_OFF 1
-#define VEN_IR_CYCLIC 2
-#define VEN_IR_RANDOM 3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTLBASE_NENC 0x800
-#define VEN_IOCTLBASE_ENC 0x850
-struct venc_ioctl_msg{
- void __user *in;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- void __user *out;
-};
-#define VEN_IOCTL_SET_INTF_VERSION _IOW(VEN_IOCTLBASE_NENC, 0, struct venc_ioctl_msg)
-#define VEN_IOCTL_CMD_READ_NEXT_MSG _IOWR(VEN_IOCTLBASE_NENC, 1, struct venc_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_CMD_STOP_READ_MSG _IO(VEN_IOCTLBASE_NENC, 2)
-#define VEN_IOCTL_SET_INPUT_BUFFER_REQ _IOW(VEN_IOCTLBASE_NENC, 3, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_INPUT_BUFFER_REQ _IOR(VEN_IOCTLBASE_NENC, 4, struct venc_ioctl_msg)
-#define VEN_IOCTL_CMD_ALLOC_INPUT_BUFFER _IOW(VEN_IOCTLBASE_NENC, 5, struct venc_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_SET_INPUT_BUFFER _IOW(VEN_IOCTLBASE_NENC, 6, struct venc_ioctl_msg)
-#define VEN_IOCTL_CMD_FREE_INPUT_BUFFER _IOW(VEN_IOCTLBASE_NENC, 7, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_OUTPUT_BUFFER_REQ _IOW(VEN_IOCTLBASE_NENC, 8, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_OUTPUT_BUFFER_REQ _IOR(VEN_IOCTLBASE_NENC, 9, struct venc_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_CMD_ALLOC_OUTPUT_BUFFER _IOW(VEN_IOCTLBASE_NENC, 10, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_OUTPUT_BUFFER _IOW(VEN_IOCTLBASE_NENC, 11, struct venc_ioctl_msg)
-#define VEN_IOCTL_CMD_FREE_OUTPUT_BUFFER _IOW(VEN_IOCTLBASE_NENC, 12, struct venc_ioctl_msg)
-#define VEN_IOCTL_CMD_START _IO(VEN_IOCTLBASE_NENC, 13)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_CMD_ENCODE_FRAME _IOW(VEN_IOCTLBASE_NENC, 14, struct venc_ioctl_msg)
-#define VEN_IOCTL_CMD_FILL_OUTPUT_BUFFER _IOW(VEN_IOCTLBASE_NENC, 15, struct venc_ioctl_msg)
-#define VEN_IOCTL_CMD_FLUSH _IOW(VEN_IOCTLBASE_NENC, 16, struct venc_ioctl_msg)
-#define VEN_IOCTL_CMD_PAUSE _IO(VEN_IOCTLBASE_NENC, 17)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_CMD_RESUME _IO(VEN_IOCTLBASE_NENC, 18)
-#define VEN_IOCTL_CMD_STOP _IO(VEN_IOCTLBASE_NENC, 19)
-#define VEN_IOCTL_SET_RECON_BUFFER _IOW(VEN_IOCTLBASE_NENC, 20, struct venc_ioctl_msg)
-#define VEN_IOCTL_FREE_RECON_BUFFER _IOW(VEN_IOCTLBASE_NENC, 21, struct venc_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_GET_RECON_BUFFER_SIZE _IOW(VEN_IOCTLBASE_NENC, 22, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_BASE_CFG _IOW(VEN_IOCTLBASE_ENC, 1, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_BASE_CFG _IOR(VEN_IOCTLBASE_ENC, 2, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_LIVE_MODE _IOW(VEN_IOCTLBASE_ENC, 3, struct venc_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_GET_LIVE_MODE _IOR(VEN_IOCTLBASE_ENC, 4, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_CODEC_PROFILE _IOW(VEN_IOCTLBASE_ENC, 5, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_CODEC_PROFILE _IOR(VEN_IOCTLBASE_ENC, 6, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_PROFILE_LEVEL _IOW(VEN_IOCTLBASE_ENC, 7, struct venc_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_GET_PROFILE_LEVEL _IOR(VEN_IOCTLBASE_ENC, 8, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_SHORT_HDR _IOW(VEN_IOCTLBASE_ENC, 9, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_SHORT_HDR _IOR(VEN_IOCTLBASE_ENC, 10, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_SESSION_QP _IOW(VEN_IOCTLBASE_ENC, 11, struct venc_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_GET_SESSION_QP _IOR(VEN_IOCTLBASE_ENC, 12, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_INTRA_PERIOD _IOW(VEN_IOCTLBASE_ENC, 13, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_INTRA_PERIOD _IOR(VEN_IOCTLBASE_ENC, 14, struct venc_ioctl_msg)
-#define VEN_IOCTL_CMD_REQUEST_IFRAME _IO(VEN_IOCTLBASE_ENC, 15)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_GET_CAPABILITY _IOR(VEN_IOCTLBASE_ENC, 16, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_SEQUENCE_HDR _IOR(VEN_IOCTLBASE_ENC, 17, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_ENTROPY_CFG _IOW(VEN_IOCTLBASE_ENC, 18, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_ENTROPY_CFG _IOR(VEN_IOCTLBASE_ENC, 19, struct venc_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_SET_DEBLOCKING_CFG _IOW(VEN_IOCTLBASE_ENC, 20, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_DEBLOCKING_CFG _IOR(VEN_IOCTLBASE_ENC, 21, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_INTRA_REFRESH _IOW(VEN_IOCTLBASE_ENC, 22, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_INTRA_REFRESH _IOR(VEN_IOCTLBASE_ENC, 23, struct venc_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_SET_MULTI_SLICE_CFG _IOW(VEN_IOCTLBASE_ENC, 24, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_MULTI_SLICE_CFG _IOR(VEN_IOCTLBASE_ENC, 25, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_RATE_CTRL_CFG _IOW(VEN_IOCTLBASE_ENC, 26, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_RATE_CTRL_CFG _IOR(VEN_IOCTLBASE_ENC, 27, struct venc_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_SET_VOP_TIMING_CFG _IOW(VEN_IOCTLBASE_ENC, 28, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_VOP_TIMING_CFG _IOR(VEN_IOCTLBASE_ENC, 29, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_FRAME_RATE _IOW(VEN_IOCTLBASE_ENC, 30, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_FRAME_RATE _IOR(VEN_IOCTLBASE_ENC, 31, struct venc_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_SET_TARGET_BITRATE _IOW(VEN_IOCTLBASE_ENC, 32, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_TARGET_BITRATE _IOR(VEN_IOCTLBASE_ENC, 33, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_ROTATION _IOW(VEN_IOCTLBASE_ENC, 34, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_ROTATION _IOR(VEN_IOCTLBASE_ENC, 35, struct venc_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_SET_HEC _IOW(VEN_IOCTLBASE_ENC, 36, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_HEC _IOR(VEN_IOCTLBASE_ENC, 37, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_DATA_PARTITION _IOW(VEN_IOCTLBASE_ENC, 38, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_DATA_PARTITION _IOR(VEN_IOCTLBASE_ENC, 39, struct venc_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_SET_RVLC _IOW(VEN_IOCTLBASE_ENC, 40, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_RVLC _IOR(VEN_IOCTLBASE_ENC, 41, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_AC_PREDICTION _IOW(VEN_IOCTLBASE_ENC, 42, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_AC_PREDICTION _IOR(VEN_IOCTLBASE_ENC, 43, struct venc_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_SET_QP_RANGE _IOW(VEN_IOCTLBASE_ENC, 44, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_QP_RANGE _IOR(VEN_IOCTLBASE_ENC, 45, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_NUMBER_INSTANCES _IOR(VEN_IOCTLBASE_ENC, 46, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_METABUFFER_MODE _IOW(VEN_IOCTLBASE_ENC, 47, struct venc_ioctl_msg)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define VEN_IOCTL_SET_EXTRADATA _IOW(VEN_IOCTLBASE_ENC, 48, struct venc_ioctl_msg)
-#define VEN_IOCTL_GET_EXTRADATA _IOR(VEN_IOCTLBASE_ENC, 49, struct venc_ioctl_msg)
-#define VEN_IOCTL_SET_SLICE_DELIVERY_MODE _IO(VEN_IOCTLBASE_ENC, 50)
-struct venc_switch{
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned char status;
-};
-struct venc_allocatorproperty{
- unsigned long mincount;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long maxcount;
- unsigned long actualcount;
- unsigned long datasize;
- unsigned long suffixsize;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long alignment;
- unsigned long bufpoolid;
-};
-struct venc_bufferpayload{
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned char *pbuffer;
- size_t sz;
- int fd;
- unsigned int offset;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int maped_size;
- unsigned long filled_len;
-};
-struct venc_buffer{
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned char *ptrbuffer;
- unsigned long sz;
- unsigned long len;
- unsigned long offset;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- long long timestamp;
- unsigned long flags;
- void *clientdata;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct venc_basecfg{
- unsigned long input_width;
- unsigned long input_height;
- unsigned long dvs_width;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long dvs_height;
- unsigned long codectype;
- unsigned long fps_num;
- unsigned long fps_den;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long targetbitrate;
- unsigned long inputformat;
-};
-struct venc_profile{
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long profile;
-};
-struct ven_profilelevel{
- unsigned long level;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct venc_sessionqp{
- unsigned long iframeqp;
- unsigned long pframqp;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct venc_qprange{
- unsigned long maxqp;
- unsigned long minqp;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct venc_intraperiod{
- unsigned long num_pframes;
- unsigned long num_bframes;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct venc_seqheader{
- unsigned char *hdrbufptr;
- unsigned long bufsize;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long hdrlen;
-};
-struct venc_capability{
- unsigned long codec_types;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long maxframe_width;
- unsigned long maxframe_height;
- unsigned long maxtarget_bitrate;
- unsigned long maxframe_rate;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long input_formats;
- unsigned char dvs;
-};
-struct venc_entropycfg{
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned longentropysel;
- unsigned long cabacmodel;
-};
-struct venc_dbcfg{
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long db_mode;
- unsigned long slicealpha_offset;
- unsigned long slicebeta_offset;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct venc_intrarefresh{
- unsigned long irmode;
- unsigned long mbcount;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct venc_multiclicecfg{
- unsigned long mslice_mode;
- unsigned long mslice_size;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct venc_bufferflush{
- unsigned long flush_mode;
-};
-struct venc_ratectrlcfg{
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long rcmode;
-};
-struct venc_voptimingcfg{
- unsigned long voptime_resolution;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct venc_framerate{
- unsigned long fps_denominator;
- unsigned long fps_numerator;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct venc_targetbitrate{
- unsigned long target_bitrate;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct venc_rotation{
- unsigned long rotation;
-};
-struct venc_timeout{
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned long millisec;
-};
-struct venc_headerextension{
- unsigned long header_extension;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct venc_msg{
- unsigned long statuscode;
- unsigned long msgcode;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct venc_buffer buf;
- unsigned long msgdata_size;
-};
-struct venc_recon_addr{
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned char *pbuffer;
- unsigned long buffer_size;
- unsigned long pmem_fd;
- unsigned long offset;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct venc_recon_buff_size{
- int width;
- int height;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int size;
- int alignment;
-};
-#endif
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/include/media/tavarua.h b/include/media/tavarua.h
deleted file mode 100644
index ec152ce..0000000
--- a/include/media/tavarua.h
+++ /dev/null
@@ -1,609 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __LINUX_TAVARUA_H
-#define __LINUX_TAVARUA_H
-#include <stdint.h>
-#include <linux/ioctl.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#include <linux/videodev2.h>
-#undef FM_DEBUG
-#define RDS_BLOCKS_NUM (4)
-#define BYTES_PER_BLOCK (3)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MAX_PS_LENGTH (96)
-#define MAX_RT_LENGTH (64)
-#define XFRDAT0 (0x20)
-#define XFRDAT1 (0x21)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define XFRDAT2 (0x22)
-#define INTDET_PEEK_MSB (0x88)
-#define INTDET_PEEK_LSB (0x26)
-#define RMSSI_PEEK_MSB (0x88)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define RMSSI_PEEK_LSB (0xA8)
-#define MPX_DCC_BYPASS_POKE_MSB (0x88)
-#define MPX_DCC_BYPASS_POKE_LSB (0xC0)
-#define MPX_DCC_PEEK_MSB_REG1 (0x88)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MPX_DCC_PEEK_LSB_REG1 (0xC2)
-#define MPX_DCC_PEEK_MSB_REG2 (0x88)
-#define MPX_DCC_PEEK_LSB_REG2 (0xC3)
-#define MPX_DCC_PEEK_MSB_REG3 (0x88)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MPX_DCC_PEEK_LSB_REG3 (0xC4)
-#define ON_CHANNEL_TH_MSB (0x0B)
-#define ON_CHANNEL_TH_LSB (0xA8)
-#define OFF_CHANNEL_TH_MSB (0x0B)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define OFF_CHANNEL_TH_LSB (0xAC)
-#define ENF_200Khz (1)
-#define SRCH200KHZ_OFFSET (7)
-#define SRCH_MASK (1 << SRCH200KHZ_OFFSET)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define STD_BUF_SIZE (128)
-#define SRCH_DIR_UP (0)
-#define SRCH_DIR_DOWN (1)
-#define CTRL_ON (1)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define CTRL_OFF (0)
-#define US_LOW_BAND (87.5)
-#define US_HIGH_BAND (108)
-#define MASK_PI (0x0000FFFF)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MASK_PI_MSB (0x0000FF00)
-#define MASK_PI_LSB (0x000000FF)
-#define MASK_PTY (0x0000001F)
-#define MASK_TXREPCOUNT (0x0000000F)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#undef FMDBG
-#ifdef FM_DEBUG
-#define FMDBG(fmt, args...) printk(KERN_INFO "tavarua_radio: " fmt, ##args)
-#else
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define FMDBG(fmt, args...)
-#endif
-#undef FMDERR
-#define FMDERR(fmt, args...) printk(KERN_INFO "tavarua_radio: " fmt, ##args)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#undef FMDBG_I2C
-#ifdef FM_DEBUG_I2C
-#define FMDBG_I2C(fmt, args...) printk(KERN_INFO "fm_i2c: " fmt, ##args)
-#else
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define FMDBG_I2C(fmt, args...)
-#endif
-#define TAVARUA_AUDIO_OUT_ANALOG_OFF (0)
-#define TAVARUA_AUDIO_OUT_ANALOG_ON (1)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define TAVARUA_AUDIO_OUT_DIGITAL_OFF (0)
-#define TAVARUA_AUDIO_OUT_DIGITAL_ON (1)
-#define MARIMBA_A0 0x01010013
-#define MARIMBA_2_1 0x02010204
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BAHAMA_1_0 0x0302010A
-#define BAHAMA_2_0 0x04020205
-#define WAIT_TIMEOUT 2000
-#define RADIO_INIT_TIME 15
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define TAVARUA_DELAY 10
-#define FREQ_MUL (1000000 / 62.5)
-enum v4l2_cid_private_tavarua_t {
- V4L2_CID_PRIVATE_TAVARUA_SRCHMODE = (V4L2_CID_PRIVATE_BASE + 1),
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- V4L2_CID_PRIVATE_TAVARUA_SCANDWELL,
- V4L2_CID_PRIVATE_TAVARUA_SRCHON,
- V4L2_CID_PRIVATE_TAVARUA_STATE,
- V4L2_CID_PRIVATE_TAVARUA_TRANSMIT_MODE,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- V4L2_CID_PRIVATE_TAVARUA_RDSGROUP_MASK,
- V4L2_CID_PRIVATE_TAVARUA_REGION,
- V4L2_CID_PRIVATE_TAVARUA_SIGNAL_TH,
- V4L2_CID_PRIVATE_TAVARUA_SRCH_PTY,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- V4L2_CID_PRIVATE_TAVARUA_SRCH_PI,
- V4L2_CID_PRIVATE_TAVARUA_SRCH_CNT,
- V4L2_CID_PRIVATE_TAVARUA_EMPHASIS,
- V4L2_CID_PRIVATE_TAVARUA_RDS_STD,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- V4L2_CID_PRIVATE_TAVARUA_SPACING,
- V4L2_CID_PRIVATE_TAVARUA_RDSON,
- V4L2_CID_PRIVATE_TAVARUA_RDSGROUP_PROC,
- V4L2_CID_PRIVATE_TAVARUA_LP_MODE,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- V4L2_CID_PRIVATE_TAVARUA_ANTENNA,
- V4L2_CID_PRIVATE_TAVARUA_RDSD_BUF,
- V4L2_CID_PRIVATE_TAVARUA_PSALL,
- V4L2_CID_PRIVATE_TAVARUA_TX_SETPSREPEATCOUNT,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- V4L2_CID_PRIVATE_TAVARUA_STOP_RDS_TX_PS_NAME,
- V4L2_CID_PRIVATE_TAVARUA_STOP_RDS_TX_RT,
- V4L2_CID_PRIVATE_TAVARUA_IOVERC,
- V4L2_CID_PRIVATE_TAVARUA_INTDET,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- V4L2_CID_PRIVATE_TAVARUA_MPX_DCC,
- V4L2_CID_PRIVATE_TAVARUA_AF_JUMP,
- V4L2_CID_PRIVATE_TAVARUA_RSSI_DELTA,
- V4L2_CID_PRIVATE_TAVARUA_HLSI,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- V4L2_CID_PRIVATE_SOFT_MUTE,
- V4L2_CID_PRIVATE_RIVA_ACCS_ADDR,
- V4L2_CID_PRIVATE_RIVA_ACCS_LEN,
- V4L2_CID_PRIVATE_RIVA_PEEK,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- V4L2_CID_PRIVATE_RIVA_POKE,
- V4L2_CID_PRIVATE_SSBI_ACCS_ADDR,
- V4L2_CID_PRIVATE_SSBI_PEEK,
- V4L2_CID_PRIVATE_SSBI_POKE,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- V4L2_CID_PRIVATE_TX_TONE,
- V4L2_CID_PRIVATE_RDS_GRP_COUNTERS,
- V4L2_CID_PRIVATE_SET_NOTCH_FILTER,
- V4L2_CID_PRIVATE_TAVARUA_SET_AUDIO_PATH,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- V4L2_CID_PRIVATE_TAVARUA_DO_CALIBRATION,
- V4L2_CID_PRIVATE_TAVARUA_SRCH_ALGORITHM,
- V4L2_CID_PRIVATE_IRIS_GET_SINR,
- V4L2_CID_PRIVATE_INTF_LOW_THRESHOLD,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- V4L2_CID_PRIVATE_INTF_HIGH_THRESHOLD,
- V4L2_CID_PRIVATE_SINR_THRESHOLD,
- V4L2_CID_PRIVATE_SINR_SAMPLES,
- V4L2_CID_PRIVATE_SPUR_FREQ,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- V4L2_CID_PRIVATE_SPUR_FREQ_RMSSI,
- V4L2_CID_PRIVATE_SPUR_SELECTION,
- V4L2_CID_PRIVATE_UPDATE_SPUR_TABLE,
- V4L2_CID_PRIVATE_VALID_CHANNEL,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-enum tavarua_buf_t {
- TAVARUA_BUF_SRCH_LIST,
- TAVARUA_BUF_EVENTS,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- TAVARUA_BUF_RT_RDS,
- TAVARUA_BUF_PS_RDS,
- TAVARUA_BUF_RAW_RDS,
- TAVARUA_BUF_AF_LIST,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- TAVARUA_BUF_MAX
-};
-enum tavarua_xfr_t {
- TAVARUA_XFR_SYNC,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- TAVARUA_XFR_ERROR,
- TAVARUA_XFR_SRCH_LIST,
- TAVARUA_XFR_RT_RDS,
- TAVARUA_XFR_PS_RDS,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- TAVARUA_XFR_AF_LIST,
- TAVARUA_XFR_MAX
-};
-enum channel_spacing {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FM_CH_SPACE_200KHZ,
- FM_CH_SPACE_100KHZ,
- FM_CH_SPACE_50KHZ
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum step_size {
- NO_SRCH200khz,
- ENF_SRCH200khz
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum emphasis {
- EMP_75,
- EMP_50
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum rds_std {
- RBDS_STD,
- RDS_STD
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define RAW_RDS 0x0F
-#define RDS_BLOCK 3
-#define MARIMBA_XO_BUFF_CNTRL 0x07
-#define RADIO_REGISTERS 0x30
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define XFR_REG_NUM 16
-#define STATUS_REG_NUM 3
-#define HEADER_SIZE 4
-#define TX_ON 0x80
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define TAVARUA_TX_RT RDS_RT_0
-#define TAVARUA_TX_PS RDS_PS_0
-enum register_t {
- STATUS_REG1 = 0,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- STATUS_REG2,
- STATUS_REG3,
- RDCTRL,
- FREQ,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- TUNECTRL,
- SRCHRDS1,
- SRCHRDS2,
- SRCHCTRL,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- IOCTRL,
- RDSCTRL,
- ADVCTRL,
- AUDIOCTRL,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RMSSI,
- IOVERC,
- AUDIOIND = 0x1E,
- XFRCTRL,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FM_CTL0 = 0xFF,
- LEAKAGE_CNTRL = 0xFE,
-};
-#define BAHAMA_RBIAS_CTL1 0x07
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BAHAMA_FM_MODE_REG 0xFD
-#define BAHAMA_FM_CTL1_REG 0xFE
-#define BAHAMA_FM_CTL0_REG 0xFF
-#define BAHAMA_FM_MODE_NORMAL 0x00
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define BAHAMA_LDO_DREG_CTL0 0xF0
-#define BAHAMA_LDO_AREG_CTL0 0xF4
-#define RDCTRL_STATE_OFFSET 0
-#define RDCTRL_STATE_MASK (3 << RDCTRL_STATE_OFFSET)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define RDCTRL_BAND_OFFSET 2
-#define RDCTRL_BAND_MASK (1 << RDCTRL_BAND_OFFSET)
-#define RDCTRL_CHSPACE_OFFSET 3
-#define RDCTRL_CHSPACE_MASK (3 << RDCTRL_CHSPACE_OFFSET)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define RDCTRL_DEEMPHASIS_OFFSET 5
-#define RDCTRL_DEEMPHASIS_MASK (1 << RDCTRL_DEEMPHASIS_OFFSET)
-#define RDCTRL_HLSI_OFFSET 6
-#define RDCTRL_HLSI_MASK (3 << RDCTRL_HLSI_OFFSET)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define RDSAF_OFFSET 6
-#define RDSAF_MASK (1 << RDSAF_OFFSET)
-#define TUNE_STATION 0x01
-#define ADD_OFFSET (1 << 1)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SIGSTATE (1 << 5)
-#define MOSTSTATE (1 << 6)
-#define RDSSYNC (1 << 7)
-#define SRCH_MODE_OFFSET 0
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SRCH_MODE_MASK (7 << SRCH_MODE_OFFSET)
-#define SRCH_DIR_OFFSET 3
-#define SRCH_DIR_MASK (1 << SRCH_DIR_OFFSET)
-#define SRCH_DWELL_OFFSET 4
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SRCH_DWELL_MASK (7 << SRCH_DWELL_OFFSET)
-#define SRCH_STATE_OFFSET 7
-#define SRCH_STATE_MASK (1 << SRCH_STATE_OFFSET)
-#define IOC_HRD_MUTE 0x03
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define IOC_SFT_MUTE (1 << 2)
-#define IOC_MON_STR (1 << 3)
-#define IOC_SIG_BLND (1 << 4)
-#define IOC_INTF_BLND (1 << 5)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define IOC_ANTENNA (1 << 6)
-#define IOC_ANTENNA_OFFSET 6
-#define IOC_ANTENNA_MASK (1 << IOC_ANTENNA_OFFSET)
-#define RDS_ON 0x01
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define RDSCTRL_STANDARD_OFFSET 1
-#define RDSCTRL_STANDARD_MASK (1 << RDSCTRL_STANDARD_OFFSET)
-#define RDSRTEN (1 << 3)
-#define RDSPSEN (1 << 4)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIORX_ANALOG_OFFSET 0
-#define AUDIORX_ANALOG_MASK (1 << AUDIORX_ANALOG_OFFSET)
-#define AUDIORX_DIGITAL_OFFSET 1
-#define AUDIORX_DIGITAL_MASK (1 << AUDIORX_DIGITAL_OFFSET)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define AUDIOTX_OFFSET 2
-#define AUDIOTX_MASK (1 << AUDIOTX_OFFSET)
-#define I2SCTRL_OFFSET 3
-#define I2SCTRL_MASK (1 << I2SCTRL_OFFSET)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-enum search_t {
- SEEK,
- SCAN,
- SCAN_FOR_STRONG,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- SCAN_FOR_WEAK,
- RDS_SEEK_PTY,
- RDS_SCAN_PTY,
- RDS_SEEK_PI,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDS_AF_JUMP,
-};
-#define REGION_US_EU_BAND_LOW 87500
-#define REGION_US_EU_BAND_HIGH 108000
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define REGION_JAPAN_STANDARD_BAND_LOW 76000
-#define REGION_JAPAN_STANDARD_BAND_HIGH 90000
-#define REGION_JAPAN_WIDE_BAND_LOW 90000
-#define REGION_JAPAN_WIDE_BAND_HIGH 108000
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MPX_DCC_BYPASS_REG 0x88C0
-#define MPX_DCC_DATA_REG 0x88C2
-enum audio_path {
- FM_DIGITAL_PATH,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FM_ANALOG_PATH
-};
-#define SRCH_MODE 0x07
-#define SRCH_DIR 0x08
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SCAN_DWELL 0x70
-#define SRCH_ON 0x80
-#define RDS_CONFIG_PSALL 0x01
-#define FM_ENABLE 0x22
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SET_REG_FIELD(reg, val, offset, mask) (reg = (reg & ~mask) | (((val) << offset) & mask))
-#define GET_REG_FIELD(reg, offset, mask) ((reg & mask) >> offset)
-#define RSH_DATA(val, offset) ((val) >> (offset))
-#define LSH_DATA(val, offset) ((val) << (offset))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define GET_ABS_VAL(val) ((val) & (0xFF))
-enum radio_state_t {
- FM_OFF,
- FM_RECV,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- FM_TRANS,
- FM_RESET,
-};
-#define XFRCTRL_WRITE (1 << 7)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define READY (1 << 0)
-#define TUNE (1 << 1)
-#define SEARCH (1 << 2)
-#define SCANNEXT (1 << 3)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SIGNAL (1 << 4)
-#define INTF (1 << 5)
-#define SYNC (1 << 6)
-#define AUDIO (1 << 7)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define RDSDAT (1 << 0)
-#define BLOCKB (1 << 1)
-#define PROGID (1 << 2)
-#define RDSPS (1 << 3)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define RDSRT (1 << 4)
-#define RDSAF (1 << 5)
-#define TXRDSDAT (1 << 6)
-#define TXRDSDONE (1 << 7)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define TRANSFER (1 << 0)
-#define RDSPROC (1 << 1)
-#define ERROR (1 << 7)
-#define FM_TX_PWR_LVL_0 0
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define FM_TX_PWR_LVL_MAX 7
-#define TONE_GEN_CTRL_BYTE 0x00
-#define TONE_CHANNEL_EN_AND_SCALING_BYTE 0x01
-#define TONE_LEFT_FREQ_BYTE 0x02
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define TONE_RIGHT_FREQ_BYTE 0x03
-#define TONE_LEFT_PHASE 0x04
-#define TONE_RIGHT_PHASE 0x05
-#define TONE_LEFT_CH_ENABLED 0x01
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define TONE_RIGHT_CH_ENABLED 0x02
-#define TONE_LEFT_RIGHT_CH_ENABLED (TONE_LEFT_CH_ENABLED | TONE_RIGHT_CH_ENABLED)
-#define TONE_SCALING_SHIFT 0x02
-enum tavarua_xfr_ctrl_t {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDS_PS_0 = 0x01,
- RDS_PS_1,
- RDS_PS_2,
- RDS_PS_3,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDS_PS_4,
- RDS_PS_5,
- RDS_PS_6,
- RDS_RT_0,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDS_RT_1,
- RDS_RT_2,
- RDS_RT_3,
- RDS_RT_4,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDS_AF_0,
- RDS_AF_1,
- RDS_CONFIG,
- RDS_TX_GROUPS,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RDS_COUNT_0,
- RDS_COUNT_1,
- RDS_COUNT_2,
- RADIO_CONFIG,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- RX_CONFIG,
- RX_TIMERS,
- RX_STATIONS_0,
- RX_STATIONS_1,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- INT_CTRL,
- ERROR_CODE,
- CHIPID,
- CAL_DAT_0 = 0x20,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- CAL_DAT_1,
- CAL_DAT_2,
- CAL_DAT_3,
- CAL_CFG_0,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- CAL_CFG_1,
- DIG_INTF_0,
- DIG_INTF_1,
- DIG_AGC_0,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- DIG_AGC_1,
- DIG_AGC_2,
- DIG_AUDIO_0,
- DIG_AUDIO_1,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- DIG_AUDIO_2,
- DIG_AUDIO_3,
- DIG_AUDIO_4,
- DIG_RXRDS,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- DIG_DCC,
- DIG_SPUR,
- DIG_MPXDCC,
- DIG_PILOT,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- DIG_DEMOD,
- DIG_MOST,
- DIG_TX_0,
- DIG_TX_1,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- PHY_TXGAIN = 0x3B,
- PHY_CONFIG,
- PHY_TXBLOCK,
- PHY_TCB,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFR_EXT,
- XFR_PEEK_MODE = 0x40,
- XFR_POKE_MODE = 0xC0,
- TAVARUA_XFR_CTRL_MAX
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-enum tavarua_evt_t {
- TAVARUA_EVT_RADIO_READY,
- TAVARUA_EVT_TUNE_SUCC,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- TAVARUA_EVT_SEEK_COMPLETE,
- TAVARUA_EVT_SCAN_NEXT,
- TAVARUA_EVT_NEW_RAW_RDS,
- TAVARUA_EVT_NEW_RT_RDS,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- TAVARUA_EVT_NEW_PS_RDS,
- TAVARUA_EVT_ERROR,
- TAVARUA_EVT_BELOW_TH,
- TAVARUA_EVT_ABOVE_TH,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- TAVARUA_EVT_STEREO,
- TAVARUA_EVT_MONO,
- TAVARUA_EVT_RDS_AVAIL,
- TAVARUA_EVT_RDS_NOT_AVAIL,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- TAVARUA_EVT_NEW_SRCH_LIST,
- TAVARUA_EVT_NEW_AF_LIST,
- TAVARUA_EVT_TXRDSDAT,
- TAVARUA_EVT_TXRDSDONE,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- TAVARUA_EVT_RADIO_DISABLED
-};
-enum tavarua_region_t {
- TAVARUA_REGION_US,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- TAVARUA_REGION_EU,
- TAVARUA_REGION_JAPAN,
- TAVARUA_REGION_JAPAN_WIDE,
- TAVARUA_REGION_OTHER
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-enum {
- ONE_BYTE = 1,
- TWO_BYTE,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- THREE_BYTE,
- FOUR_BYTE,
- FIVE_BYTE,
- SIX_BYTE,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- SEVEN_BYTE,
- EIGHT_BYTE,
- NINE_BYTE,
- TEN_BYTE,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ELEVEN_BYTE,
- TWELVE_BYTE,
- THIRTEEN_BYTE
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define XFR_READ (0)
-#define XFR_WRITE (1)
-#define XFR_MODE_OFFSET (0)
-#define XFR_ADDR_MSB_OFFSET (1)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define XFR_ADDR_LSB_OFFSET (2)
-#define XFR_DATA_OFFSET (3)
-#define SPUR_DATA_SIZE (3)
-#define MAX_SPUR_FREQ_LIMIT (30)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define READ_COMPLETE (0x20)
-#define SPUR_TABLE_ADDR (0x0BB7)
-#define SPUR_TABLE_START_ADDR (SPUR_TABLE_ADDR + 1)
-#define XFR_PEEK_COMPLETE (XFR_PEEK_MODE | READ_COMPLETE)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define XFR_POKE_COMPLETE (XFR_POKE_MODE)
-#define TUNE_MULT (16)
-#define ADJ_CHANNEL_KHZ (50)
-#define MPX_DCC_UPPER_LIMIT (20000)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define MPX_DCC_LIMIT (12566)
-#define INVALID_CHANNEL (0)
-#define VALID_CHANNEL (1)
-#define COMPUTE_SPUR(val) ((((val) - (76000)) / (50)))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define GET_FREQ(val, bit) ((bit == 1) ? ((val) >> 8) : ((val) & 0xFF))
-struct fm_spur_data {
- int freq[MAX_SPUR_FREQ_LIMIT];
- __s8 rmssi[MAX_SPUR_FREQ_LIMIT];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-} __packed;
-struct fm_def_data_wr_req {
- __u8 mode;
- __u8 length;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 data[XFR_REG_NUM];
-} __packed;
-enum Internal_tone_gen_vals {
- ONE_KHZ_LR_EQUA_0DBFS = 1,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- ONE_KHZ_LEFTONLY_EQUA_0DBFS,
- ONE_KHZ_RIGHTONLY_EQUA_0DBFS,
- ONE_KHZ_LR_EQUA_l8DBFS,
- FIFTEEN_KHZ_LR_EQUA_l8DBFS
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-enum Tone_scaling_indexes {
- TONE_SCALE_IND_0,
- TONE_SCALE_IND_1,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- TONE_SCALE_IND_2,
- TONE_SCALE_IND_3,
- TONE_SCALE_IND_4,
- TONE_SCALE_IND_5,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- TONE_SCALE_IND_6,
- TONE_SCALE_IND_7,
- TONE_SCALE_IND_8,
- TONE_SCALE_IND_9,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- TONE_SCALE_IND_10,
- TONE_SCALE_IND_11,
- TONE_SCALE_IND_12
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#endif
diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h
deleted file mode 100644
index 8a22692..0000000
--- a/include/sound/compress_driver.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __COMPRESS_DRIVER_H
-#define __COMPRESS_DRIVER_H
-#include <sound/compress_offload.h>
-#include <sound/asound.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#include <sound/pcm.h>
-struct snd_compr_ops;
-struct snd_compr_runtime {
- snd_pcm_state_t state;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct snd_compr_ops *ops;
- void *buffer;
- size_t buffer_size;
- size_t fragment_size;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int fragments;
- size_t hw_pointer;
- size_t app_pointer;
- wait_queue_head_t sleep;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct snd_compr_stream {
- const char *name;
- struct snd_compr_ops *ops;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct snd_compr_runtime *runtime;
- struct snd_compr *device;
- unsigned int direction;
- void *private_data;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct snd_compr_ops {
- int (*open)(struct snd_compr_stream *stream);
- int (*free)(struct snd_compr_stream *stream);
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int (*set_params)(struct snd_compr_stream *stream,
- struct snd_compr_params *params);
- int (*get_params)(struct snd_compr_stream *stream,
- struct snd_compr_params *params);
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int (*trigger)(struct snd_compr_stream *stream, int cmd);
- int (*pointer)(struct snd_compr_stream *stream,
- struct snd_compr_tstamp *tstamp);
- int (*copy)(struct snd_compr_stream *stream, const char __user *buf,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- size_t count);
- int (*mmap)(struct snd_compr_stream *stream,
- struct vm_area_struct *vma);
- int (*ack)(struct snd_compr_stream *stream);
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- int (*get_caps) (struct snd_compr_stream *stream,
- struct snd_compr_caps *caps);
- int (*get_codec_caps) (struct snd_compr_stream *stream,
- struct snd_compr_codec_caps *codec);
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct snd_compr {
- const char *name;
- struct device *dev;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct mutex lock;
- struct snd_compr_ops *ops;
- struct list_head list;
- void *private_data;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-#endif
diff --git a/include/sound/compress_offload.h b/include/sound/compress_offload.h
deleted file mode 100644
index cb23c9d..0000000
--- a/include/sound/compress_offload.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __COMPRESS_OFFLOAD_H
-#define __COMPRESS_OFFLOAD_H
-#include <linux/types.h>
-struct snd_compressed_buffer {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- size_t fragment_size;
- int fragments;
-};
-struct snd_compr_params {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct snd_compressed_buffer buffer;
- struct snd_codec codec;
-};
-struct snd_compr_tstamp {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- size_t copied_bytes;
- size_t copied_total;
- size_t decoded;
- size_t rendered;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 sampling_rate;
- uint64_t timestamp;
-};
-struct snd_compr_avail {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- size_t avail;
- struct snd_compr_tstamp tstamp;
-};
-struct snd_compr_caps {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 num_codecs;
- __u32 min_fragment_size;
- __u32 max_fragment_size;
- __u32 min_fragments;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_fragments;
- __u32 codecs[MAX_NUM_CODECS];
- __u32 reserved[11];
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct snd_compr_codec_caps {
- __u32 codec;
- __u32 num_descriptors;
- struct snd_codec_desc descriptor[MAX_NUM_CODEC_DESCRIPTORS];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-#define SNDRV_COMPRESS_GET_CAPS _IOWR('C', 0x00, struct snd_compr_caps *)
-#define SNDRV_COMPRESS_GET_CODEC_CAPS _IOWR('C', 0x01, struct snd_compr_codec_caps *)
-#define SNDRV_COMPRESS_SET_PARAMS _IOW('C', 0x02, struct snd_compr_params *)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SNDRV_COMPRESS_GET_PARAMS _IOR('C', 0x03, struct snd_compr_params *)
-#define SNDRV_COMPRESS_TSTAMP _IOR('C', 0x10, struct snd_compr_tstamp *)
-#define SNDRV_COMPRESS_AVAIL _IOR('C', 0x11, struct snd_compr_avail *)
-#define SNDRV_COMPRESS_PAUSE _IO('C', 0x20)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SNDRV_COMPRESS_RESUME _IO('C', 0x21)
-#define SNDRV_COMPRESS_START _IO('C', 0x22)
-#define SNDRV_COMPRESS_STOP _IO('C', 0x23)
-#define SNDRV_COMPRESS_DRAIN _IO('C', 0x24)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_COMPR_TRIGGER_DRAIN 7
-#endif
diff --git a/include/sound/compress_params.h b/include/sound/compress_params.h
deleted file mode 100644
index 192c4b0..0000000
--- a/include/sound/compress_params.h
+++ /dev/null
@@ -1,235 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#define MAX_NUM_CODECS 32
-#define MAX_NUM_CODEC_DESCRIPTORS 32
-#define MAX_NUM_BITRATES 32
-#define SND_AUDIOCODEC_PCM ((__u32) 0x00000001)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOCODEC_MP3 ((__u32) 0x00000002)
-#define SND_AUDIOCODEC_AMR ((__u32) 0x00000003)
-#define SND_AUDIOCODEC_AMRWB ((__u32) 0x00000004)
-#define SND_AUDIOCODEC_AMRWBPLUS ((__u32) 0x00000005)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOCODEC_AAC ((__u32) 0x00000006)
-#define SND_AUDIOCODEC_WMA ((__u32) 0x00000007)
-#define SND_AUDIOCODEC_REAL ((__u32) 0x00000008)
-#define SND_AUDIOCODEC_VORBIS ((__u32) 0x00000009)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOCODEC_FLAC ((__u32) 0x0000000A)
-#define SND_AUDIOCODEC_IEC61937 ((__u32) 0x0000000B)
-#define SND_AUDIOCODEC_G723_1 ((__u32) 0x0000000C)
-#define SND_AUDIOCODEC_G729 ((__u32) 0x0000000D)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOPROFILE_PCM ((__u32) 0x00000001)
-#define SND_AUDIOCHANMODE_MP3_MONO ((__u32) 0x00000001)
-#define SND_AUDIOCHANMODE_MP3_STEREO ((__u32) 0x00000002)
-#define SND_AUDIOCHANMODE_MP3_JOINTSTEREO ((__u32) 0x00000004)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOCHANMODE_MP3_DUAL ((__u32) 0x00000008)
-#define SND_AUDIOPROFILE_AMR ((__u32) 0x00000001)
-#define SND_AUDIOMODE_AMR_DTX_OFF ((__u32) 0x00000001)
-#define SND_AUDIOMODE_AMR_VAD1 ((__u32) 0x00000002)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOMODE_AMR_VAD2 ((__u32) 0x00000004)
-#define SND_AUDIOSTREAMFORMAT_UNDEFINED ((__u32) 0x00000000)
-#define SND_AUDIOSTREAMFORMAT_CONFORMANCE ((__u32) 0x00000001)
-#define SND_AUDIOSTREAMFORMAT_IF1 ((__u32) 0x00000002)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOSTREAMFORMAT_IF2 ((__u32) 0x00000004)
-#define SND_AUDIOSTREAMFORMAT_FSF ((__u32) 0x00000008)
-#define SND_AUDIOSTREAMFORMAT_RTPPAYLOAD ((__u32) 0x00000010)
-#define SND_AUDIOSTREAMFORMAT_ITU ((__u32) 0x00000020)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOPROFILE_AMRWB ((__u32) 0x00000001)
-#define SND_AUDIOMODE_AMRWB_DTX_OFF ((__u32) 0x00000001)
-#define SND_AUDIOMODE_AMRWB_VAD1 ((__u32) 0x00000002)
-#define SND_AUDIOMODE_AMRWB_VAD2 ((__u32) 0x00000004)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOPROFILE_AMRWBPLUS ((__u32) 0x00000001)
-#define SND_AUDIOPROFILE_AAC ((__u32) 0x00000001)
-#define SND_AUDIOMODE_AAC_MAIN ((__u32) 0x00000001)
-#define SND_AUDIOMODE_AAC_LC ((__u32) 0x00000002)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOMODE_AAC_SSR ((__u32) 0x00000004)
-#define SND_AUDIOMODE_AAC_LTP ((__u32) 0x00000008)
-#define SND_AUDIOMODE_AAC_HE ((__u32) 0x00000010)
-#define SND_AUDIOMODE_AAC_SCALABLE ((__u32) 0x00000020)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOMODE_AAC_ERLC ((__u32) 0x00000040)
-#define SND_AUDIOMODE_AAC_LD ((__u32) 0x00000080)
-#define SND_AUDIOMODE_AAC_HE_PS ((__u32) 0x00000100)
-#define SND_AUDIOMODE_AAC_HE_MPS ((__u32) 0x00000200)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOSTREAMFORMAT_MP2ADTS ((__u32) 0x00000001)
-#define SND_AUDIOSTREAMFORMAT_MP4ADTS ((__u32) 0x00000002)
-#define SND_AUDIOSTREAMFORMAT_MP4LOAS ((__u32) 0x00000004)
-#define SND_AUDIOSTREAMFORMAT_MP4LATM ((__u32) 0x00000008)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOSTREAMFORMAT_ADIF ((__u32) 0x00000010)
-#define SND_AUDIOSTREAMFORMAT_MP4FF ((__u32) 0x00000020)
-#define SND_AUDIOSTREAMFORMAT_RAW ((__u32) 0x00000040)
-#define SND_AUDIOPROFILE_WMA7 ((__u32) 0x00000001)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOPROFILE_WMA8 ((__u32) 0x00000002)
-#define SND_AUDIOPROFILE_WMA9 ((__u32) 0x00000004)
-#define SND_AUDIOPROFILE_WMA10 ((__u32) 0x00000008)
-#define SND_AUDIOMODE_WMA_LEVEL1 ((__u32) 0x00000001)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOMODE_WMA_LEVEL2 ((__u32) 0x00000002)
-#define SND_AUDIOMODE_WMA_LEVEL3 ((__u32) 0x00000004)
-#define SND_AUDIOMODE_WMA_LEVEL4 ((__u32) 0x00000008)
-#define SND_AUDIOMODE_WMAPRO_LEVELM0 ((__u32) 0x00000010)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOMODE_WMAPRO_LEVELM1 ((__u32) 0x00000020)
-#define SND_AUDIOMODE_WMAPRO_LEVELM2 ((__u32) 0x00000040)
-#define SND_AUDIOMODE_WMAPRO_LEVELM3 ((__u32) 0x00000080)
-#define SND_AUDIOSTREAMFORMAT_WMA_ASF ((__u32) 0x00000001)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOSTREAMFORMAT_WMA_NOASF_HDR ((__u32) 0x00000002)
-#define SND_AUDIOPROFILE_REALAUDIO ((__u32) 0x00000001)
-#define SND_AUDIOMODE_REALAUDIO_G2 ((__u32) 0x00000001)
-#define SND_AUDIOMODE_REALAUDIO_8 ((__u32) 0x00000002)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOMODE_REALAUDIO_10 ((__u32) 0x00000004)
-#define SND_AUDIOMODE_REALAUDIO_SURROUND ((__u32) 0x00000008)
-#define SND_AUDIOPROFILE_VORBIS ((__u32) 0x00000001)
-#define SND_AUDIOMODE_VORBIS ((__u32) 0x00000001)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOPROFILE_FLAC ((__u32) 0x00000001)
-#define SND_AUDIOMODE_FLAC_LEVEL0 ((__u32) 0x00000001)
-#define SND_AUDIOMODE_FLAC_LEVEL1 ((__u32) 0x00000002)
-#define SND_AUDIOMODE_FLAC_LEVEL2 ((__u32) 0x00000004)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOMODE_FLAC_LEVEL3 ((__u32) 0x00000008)
-#define SND_AUDIOMODE_FLAC_LEVEL4 ((__u32) 0x00000010)
-#define SND_AUDIOMODE_FLAC_LEVEL5 ((__u32) 0x00000020)
-#define SND_AUDIOMODE_FLAC_LEVEL6 ((__u32) 0x00000040)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOMODE_FLAC_LEVEL7 ((__u32) 0x00000080)
-#define SND_AUDIOMODE_FLAC_LEVEL8 ((__u32) 0x00000100)
-#define SND_AUDIOSTREAMFORMAT_FLAC ((__u32) 0x00000001)
-#define SND_AUDIOSTREAMFORMAT_FLAC_OGG ((__u32) 0x00000002)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOPROFILE_IEC61937 ((__u32) 0x00000001)
-#define SND_AUDIOPROFILE_IEC61937_SPDIF ((__u32) 0x00000002)
-#define SND_AUDIOMODE_IEC_REF_STREAM_HEADER ((__u32) 0x00000000)
-#define SND_AUDIOMODE_IEC_LPCM ((__u32) 0x00000001)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOMODE_IEC_AC3 ((__u32) 0x00000002)
-#define SND_AUDIOMODE_IEC_MPEG1 ((__u32) 0x00000004)
-#define SND_AUDIOMODE_IEC_MP3 ((__u32) 0x00000008)
-#define SND_AUDIOMODE_IEC_MPEG2 ((__u32) 0x00000010)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOMODE_IEC_AACLC ((__u32) 0x00000020)
-#define SND_AUDIOMODE_IEC_DTS ((__u32) 0x00000040)
-#define SND_AUDIOMODE_IEC_ATRAC ((__u32) 0x00000080)
-#define SND_AUDIOMODE_IEC_SACD ((__u32) 0x00000100)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOMODE_IEC_EAC3 ((__u32) 0x00000200)
-#define SND_AUDIOMODE_IEC_DTS_HD ((__u32) 0x00000400)
-#define SND_AUDIOMODE_IEC_MLP ((__u32) 0x00000800)
-#define SND_AUDIOMODE_IEC_DST ((__u32) 0x00001000)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOMODE_IEC_WMAPRO ((__u32) 0x00002000)
-#define SND_AUDIOMODE_IEC_REF_CXT ((__u32) 0x00004000)
-#define SND_AUDIOMODE_IEC_HE_AAC ((__u32) 0x00008000)
-#define SND_AUDIOMODE_IEC_HE_AAC2 ((__u32) 0x00010000)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOMODE_IEC_MPEG_SURROUND ((__u32) 0x00020000)
-#define SND_AUDIOPROFILE_G723_1 ((__u32) 0x00000001)
-#define SND_AUDIOMODE_G723_1_ANNEX_A ((__u32) 0x00000001)
-#define SND_AUDIOMODE_G723_1_ANNEX_B ((__u32) 0x00000002)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOMODE_G723_1_ANNEX_C ((__u32) 0x00000004)
-#define SND_AUDIOPROFILE_G729 ((__u32) 0x00000001)
-#define SND_AUDIOMODE_G729_ANNEX_A ((__u32) 0x00000001)
-#define SND_AUDIOMODE_G729_ANNEX_B ((__u32) 0x00000002)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_RATECONTROLMODE_CONSTANTBITRATE ((__u32) 0x00000001)
-#define SND_RATECONTROLMODE_VARIABLEBITRATE ((__u32) 0x00000002)
-struct snd_enc_wma {
- __u32 super_block_align;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct snd_enc_vorbis {
- int quality;
- __u32 managed;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 max_bit_rate;
- __u32 min_bit_rate;
- __u32 downmix;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct snd_enc_real {
- __u32 quant_bits;
- __u32 start_region;
- __u32 num_regions;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct snd_enc_flac {
- __u32 num;
- __u32 gain;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-struct snd_enc_generic {
- __u32 bw;
- int reserved[15];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
-union snd_codec_options {
- struct snd_enc_wma wma;
- struct snd_enc_vorbis vorbis;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct snd_enc_real real;
- struct snd_enc_flac flac;
- struct snd_enc_generic generic;
-};
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct snd_codec_desc {
- __u32 max_ch;
- __u32 sample_rates;
- __u32 bit_rate[MAX_NUM_BITRATES];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 num_bitrates;
- __u32 rate_control;
- __u32 profiles;
- __u32 modes;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 formats;
- __u32 reserved[16];
-};
-struct snd_codec {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 id;
- __u32 ch_in;
- __u32 ch_out;
- __u32 sample_rate;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 bit_rate;
- __u32 rate_control;
- __u32 profile;
- __u32 level;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 ch_mode;
- __u32 format;
- __u32 align;
- union snd_codec_options options;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 reserved[3];
-};
diff --git a/include/sound/tlv.h b/include/sound/tlv.h
deleted file mode 100644
index 869f6c9..0000000
--- a/include/sound/tlv.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- *** To edit the content of this header, modify the corresponding
- *** source file (e.g. under external/kernel-headers/original/) then
- *** run bionic/libc/kernel/tools/update_all.py
- ***
- *** Any manual change here will be lost the next time this script will
- *** be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __SOUND_TLV_H
-#define __SOUND_TLV_H
-#define SNDRV_CTL_TLVT_CONTAINER 0
-#define SNDRV_CTL_TLVT_DB_SCALE 1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SNDRV_CTL_TLVT_DB_LINEAR 2
-#define SNDRV_CTL_TLVT_DB_RANGE 3
-#define SNDRV_CTL_TLVT_DB_MINMAX 4
-#define SNDRV_CTL_TLVT_DB_MINMAX_MUTE 5
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define TLV_DB_SCALE_MASK 0xffff
-#define TLV_DB_SCALE_MUTE 0x10000
-#define TLV_DB_SCALE_ITEM(min, step, mute) SNDRV_CTL_TLVT_DB_SCALE, 2 * sizeof(unsigned int), (min), ((step) & TLV_DB_SCALE_MASK) | ((mute) ? TLV_DB_SCALE_MUTE : 0)
-#define DECLARE_TLV_DB_SCALE(name, min, step, mute) unsigned int name[] = { TLV_DB_SCALE_ITEM(min, step, mute) }
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define TLV_DB_MINMAX_ITEM(min_dB, max_dB) SNDRV_CTL_TLVT_DB_MINMAX, 2 * sizeof(unsigned int), (min_dB), (max_dB)
-#define TLV_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) SNDRV_CTL_TLVT_DB_MINMAX_MUTE, 2 * sizeof(unsigned int), (min_dB), (max_dB)
-#define DECLARE_TLV_DB_MINMAX(name, min_dB, max_dB) unsigned int name[] = { TLV_DB_MINMAX_ITEM(min_dB, max_dB) }
-#define DECLARE_TLV_DB_MINMAX_MUTE(name, min_dB, max_dB) unsigned int name[] = { TLV_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) }
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define TLV_DB_LINEAR_ITEM(min_dB, max_dB) SNDRV_CTL_TLVT_DB_LINEAR, 2 * sizeof(unsigned int), (min_dB), (max_dB)
-#define DECLARE_TLV_DB_LINEAR(name, min_dB, max_dB) unsigned int name[] = { TLV_DB_LINEAR_ITEM(min_dB, max_dB) }
-#define TLV_DB_RANGE_HEAD(num) SNDRV_CTL_TLVT_DB_RANGE, 6 * (num) * sizeof(unsigned int)
-#define TLV_DB_GAIN_MUTE -9999999
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#endif
diff --git a/liblights/lights.c b/liblights/lights.c
index e4b1c71..9f41d38 100644
--- a/liblights/lights.c
+++ b/liblights/lights.c
@@ -31,7 +31,31 @@
#include <sys/types.h>
#include <hardware/lights.h>
-#include "sony_lights.h"
+
+char const*const LCD_BACKLIGHT_FILE = "/sys/class/leds/lcd-backlight_1/brightness";
+char const*const LCD_BACKLIGHT2_FILE = "/sys/class/leds/lcd-backlight_2/brightness";
+char const*const RED_LED_FILE = "/sys/class/leds/pwr-red/brightness";
+char const*const GREEN_LED_FILE = "/sys/class/leds/pwr-green/brightness";
+char const*const BLUE_LED_FILE = "/sys/class/leds/pwr-blue/brightness";
+
+char const*const ALS_FILE = "/sys/devices/i2c-10/10-0040/als_on";
+
+char const*const LED_FILE_TRIGGER[] = {
+ "/sys/class/leds/pwr-red/use_pattern",
+ "/sys/class/leds/pwr-green/use_pattern",
+ "/sys/class/leds/pwr-blue/use_pattern",
+};
+
+char const*const LED_FILE_PATTERN = "/sys/devices/i2c-10/10-0040/pattern_data";
+char const*const LED_FILE_REPEATDELAY = "/sys/devices/i2c-10/10-0040/pattern_delay";
+char const*const LED_FILE_PATTERNLEN = "/sys/devices/i2c-10/10-0040/pattern_duration_secs";
+char const*const LED_FILE_DIMONOFF = "/sys/devices/i2c-10/10-0040/pattern_use_softdim";
+char const*const LED_FILE_DIMTIME = "/sys/devices/i2c-10/10-0040/dim_time";
+
+const int LCD_BRIGHTNESS_MIN = 10;
+
+char const*const ON = "1";
+char const*const OFF = "0";
/* Synchronization primities */
static pthread_once_t g_init = PTHREAD_ONCE_INIT;
@@ -49,8 +73,6 @@ enum {
LED_BLANK
};
-const int LCD_BRIGHTNESS_MIN = 10;
-
static int write_int (const char *path, int value) {
int fd;
static int already_warned = 0;
@@ -104,7 +126,7 @@ static int rgb_to_brightness (struct light_state_t const* state) {
+ (150*((color>>8)&0x00ff)) + (29*(color&0x00ff))) >> 8;
}
-static int brightness_apply_gamma(int brightness) {
+static int brightness_apply_gamma (int brightness) {
double floatbrt = (double) brightness;
floatbrt /= 255.0;
ALOGV("%s: brightness = %d, floatbrt = %f", __func__, brightness, floatbrt);
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index f32f1ef..3f88180 100644
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -25,16 +25,16 @@
<color name="config_defaultNotificationColor">#ffffffff</color>
<!-- Default LED on time for notification LED in milliseconds. -->
- <integer name="config_defaultNotificationLedOn">500</integer>
+ <integer name="config_defaultNotificationLedOn">1000</integer>
<!-- Default LED off time for notification LED in milliseconds. -->
- <integer name="config_defaultNotificationLedOff">4000</integer>
+ <integer name="config_defaultNotificationLedOff">9000</integer>
<!-- If this is true, the screen will come on when you unplug usb/power/whatever. -->
<bool name="config_unplugTurnsOnScreen">true</bool>
- <!-- NOTE: Set to true for now so electron beam isn't used. This causes a screen lockup on our QCOM's right now. -->
- <bool name="config_animateScreenLights">true</bool>
+ <!-- If this is true, the screen will fade off. -->
+ <bool name="config_animateScreenLights">false</bool>
<!-- Whether a software navigation bar should be shown. NOTE: in the future this may be
autodetected from the Configuration. -->
@@ -56,28 +56,14 @@
Must be overridden in platform specific overlays
-->
<integer-array name="config_autoBrightnessLevels">
- <item>30</item>
- <item>35</item>
- <item>40</item>
- <item>45</item>
- <item>50</item>
- <item>55</item>
- <item>60</item>
- <item>80</item>
- <item>100</item>
- <item>150</item>
- <item>200</item>
- <item>250</item>
- <item>300</item>
- <item>350</item>
- <item>400</item>
- <item>450</item>
- <item>500</item>
- <item>550</item>
- <item>600</item>
- <item>700</item>
- <item>800</item>
- <item>900</item>
+ <item>24</item>
+ <item>72</item>
+ <item>156</item>
+ <item>192</item>
+ <item>240</item>
+ <item>420</item>
+ <item>756</item>
+ <item>1024</item>
</integer-array>
<!-- Array of output values for LCD backlight corresponding to the LUX values
@@ -85,29 +71,15 @@
than the size of the config_autoBrightnessLevels array.
-->
<integer-array name="config_autoBrightnessLcdBacklightValues">
- <item>59</item>
- <item>64</item>
- <item>72</item>
- <item>76</item>
- <item>80</item>
- <item>89</item>
- <item>96</item>
- <item>103</item>
- <item>110</item>
- <item>122</item>
- <item>132</item>
- <item>151</item>
- <item>167</item>
- <item>181</item>
- <item>194</item>
- <item>206</item>
- <item>218</item>
- <item>228</item>
- <item>238</item>
- <item>248</item>
- <item>250</item>
- <item>253</item>
- <item>255</item>
+ <item>59</item> <!-- 0 - 24 -->
+ <item>110</item> <!-- 24 - 72 -->
+ <item>142</item> <!-- 72 - 156 -->
+ <item>159</item> <!-- 156 - 192 -->
+ <item>174</item> <!-- 192 - 240 -->
+ <item>200</item> <!-- 240 - 420 -->
+ <item>228</item> <!-- 420 - 756 -->
+ <item>250</item> <!-- 756 - 1024 -->
+ <item>255</item> <!-- 1024+ -->
</integer-array>
<!-- Array of output values for button backlight corresponding to the LUX values
@@ -124,20 +96,6 @@
<item>0</item>
<item>0</item>
<item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
</integer-array>
<!-- Array of output values for keyboard backlight corresponding to the LUX values
@@ -155,36 +113,31 @@
<item>0</item>
<item>0</item>
<item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
- <item>0</item>
</integer-array>
- <!-- Minimum screen brightness allowed by the power manager. -->
- <integer name="config_screenBrightnessDim">1</integer>
-
- <!-- Boolean indicating if current platform supports quick switch-on/off of
- Bluetooth Module -->
- <bool name="config_bluetooth_adapter_quick_switch">false</bool>
+ <!-- The duration (in milliseconds) that the radio will scan for a signal
+ when there's no network connection. If the scan doesn't timeout, use zero -->
+ <integer name="config_radioScanningTimeout">9000</integer>
<string-array translatable="false" name="config_tether_usb_regexs">
- <item>"rndis0"</item>
+ <item>"usb\\d"</item>
+ <item>"rndis\\d"</item>
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ <item>"wlan0"</item>
+ </string-array>
+
+ <!-- List of regexpressions describing the interface (if any) that represent tetherable
+ bluetooth interfaces. If the device doesn't want to support tethering over bluetooth this
+ should be empty. -->
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ <item>"bt-pan"</item>
</string-array>
- <!-- Array of ConnectivityManager.TYPE_xxxx values allowable for tethering -->
+ <!-- Array of allowable ConnectivityManager network types for tethering -->
<!-- Common options are [1, 4] for TYPE_WIFI and TYPE_MOBILE_DUN or
- <!== [0,1,5,7] for TYPE_MOBILE, TYPE_WIFI, TYPE_MOBILE_HIPRI and TYPE_BLUETOOTH -->
+ [0,1,5,7] for TYPE_MOBILE, TYPE_WIFI, TYPE_MOBILE_HIPRI and TYPE_BLUETOOTH -->
<integer-array translatable="false" name="config_tether_upstream_types">
<item>0</item>
<item>1</item>
@@ -195,17 +148,12 @@
<!-- Boolean indicating whether the wifi chipset has background scan support -->
<bool translatable="false" name="config_wifi_background_scan_support">false</bool>
- <string-array translatable="false" name="config_tether_wifi_regexs">
- <item>"wlan\\d"</item>
- </string-array>
-
- <!-- List of regexpressions describing the interface (if any) that represent tetherable
- bluetooth interfaces. If the device doesn't want to support tethering over bluetooth this
- should be empty. -->
- <string-array translatable="false" name="config_tether_bluetooth_regexs">
- <item>"bnep\\d"</item>
- </string-array>
+ <!-- Boolean indicating whether the wifi chipset has dual frequency band support -->
+ <bool translatable="false" name="config_wifi_dual_band_support">true</bool>
+ <!-- This string array should be overridden by the device to present a list of network
+ attributes. This is used by the connectivity manager to decide which networks can coexist
+ based on the hardware -->
<!-- An Array of "[Connection name],[ConnectivityManager.TYPE_xxxx],
[associated radio-type],[priority],[restoral-timer(ms)],[dependencyMet] -->
<!-- the 5th element "resore-time" indicates the number of milliseconds to delay
@@ -217,10 +165,13 @@
<item>"mobile,0,0,0,-1,true"</item>
<item>"mobile_mms,2,0,2,60000,true"</item>
<item>"mobile_supl,3,0,2,60000,true"</item>
- <item>"mobile_dun,4,0,3,60000,true"</item>
+ <item>"mobile_dun,4,0,2,60000,true"</item>
<item>"mobile_hipri,5,0,3,60000,true"</item>
- <item>"mobile_bluetooth,7,7,1,-1,true"</item>
+ <item>"mobile_fota,10,0,2,60000,true"</item>
+ <item>"mobile_ims,11,0,2,60000,true"</item>
+ <item>"mobile_cbs,12,0,2,60000,true"</item>
<item>"wifi_p2p,13,1,0,-1,true"</item>
+ <item>"bluetooth,7,7,2,-1,true"</item>
</string-array>
<!-- An Array of "[ConnectivityManager connectionType],
@@ -231,17 +182,17 @@
<item>"7,1"</item>
</string-array>
- <!-- Package name providing network location support. -->
- <string name="config_networkLocationProviderPackageName" translatable="false">com.google.android.location</string>
+ <!-- Boolean indicating if restoring network selection should be skipped -->
+ <!-- The restoring is handled by modem if it is true -->
+ <bool translatable="false" name="skip_restoring_network_selection">true</bool>
- <!-- Package name providing geocoder API support. -->
- <string name="config_geocodeProviderPackageName" translatable="false">com.google.android.location</string>
+ <!-- Set to true to add links to Cell Broadcast app from Settings and MMS app. -->
+ <bool name="config_cellBroadcastAppLinks">true</bool>
- <!-- Boolean indicating whether the wifi chipset has dual frequency band support -->
- <bool translatable="false" name="config_wifi_dual_band_support">true</bool>
+ <!-- reference volume index for music stream to limit headphone volume and display warning -->
+ <integer name="config_safe_media_volume_index">7</integer>
- <!-- We dont have different firmware for wifi modes, prevent reloading it -->
- <bool name="config_wifiApFirmwareReload">false</bool>
+ <bool name="config_enableWifiDisplay">true</bool>
<!-- Is the notification LED intrusive? Used to decide if there should be a disable option -->
<bool name="config_intrusiveNotificationLed">true</bool>
@@ -252,8 +203,6 @@
<!-- Can we change the battery color? -->
<bool name="config_multiColorBatteryLed">true</bool>
- <bool name="config_autoBrightnessButtonKeyboard">false</bool>
-
<bool name="config_ui_enableFadingMarquee">false</bool>
</resources>
diff --git a/overlay/frameworks/base/core/res/res/xml/storage_list.xml b/overlay/frameworks/base/core/res/res/xml/storage_list.xml
new file mode 100644
index 0000000..58e5ea3
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/xml/storage_list.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 2011, 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.
+*/
+-->
+
+<!-- See storage config details at http://source.android.com/tech/storage/ -->
+
+<StorageList xmlns:android="http://schemas.android.com/apk/res/android">
+ <!-- internal storage -->
+ <storage android:mountPoint="/storage/sdcard0"
+ android:storageDescription="@string/storage_internal"
+ android:primary="true"
+ android:removable="false" />
+ <!-- external sdcard -->
+ <storage android:mountPoint="/storage/sdcard1"
+ android:storageDescription="@string/storage_sd_card"
+ android:primary="false"
+ android:removable="true" />
+
+ <!-- external usb storage -->
+ <storage android:mountPoint="/storage/usbdisk"
+ android:storageDescription="@string/storage_usb"
+ android:primary="false"
+ android:removable="true" />
+
+</StorageList>
diff --git a/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
new file mode 100644
index 0000000..1ea4f9c
--- /dev/null
+++ b/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2009, 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>
+ <bool name="def_screen_brightness_automatic_mode">true</bool>
+</resources>
diff --git a/overlay/packages/apps/Camera/res/values/config.xml b/overlay/packages/apps/Camera/res/values/config.xml
index 4f6b773..a09a94c 100644
--- a/overlay/packages/apps/Camera/res/values/config.xml
+++ b/overlay/packages/apps/Camera/res/values/config.xml
@@ -1,22 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2011, The CyanogenMod 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.
-*/
+<!-- Copyright (C) 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.
-->
+<!-- Camera app resources that may need to be customized
+ for different hardware or product builds. -->
<resources>
- <bool name="enableZSL">true</bool>
+ <!-- The camera removes the focus modes by default when touch-to-focus
+ exists. Use this option to change that behavior -->
+ <bool name="wantsFocusModes">true</bool>
</resources>
diff --git a/overlay/packages/apps/Phone/res/values/config.xml b/overlay/packages/apps/Phone/res/values/config.xml
index febf928..f2eff2e 100644
--- a/overlay/packages/apps/Phone/res/values/config.xml
+++ b/overlay/packages/apps/Phone/res/values/config.xml
@@ -14,21 +14,21 @@
limitations under the License.
-->
-<!-- shooteru-specific phone app resources. -->
+<!-- Phone app resources that may need to be customized
+ for different hardware or product builds. -->
<resources>
-
<!-- Determine whether calls to mute the microphone in PhoneUtils
- are routed through the android.media.AudioManager class (true) or through
+ 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>
- <!-- This device implements a noise suppression device for in call audio-->
- <bool name="has_in_call_noise_suppression">true</bool>
+ <!-- Flag indicating if the tty is enabled -->
+ <bool name="tty_enabled">true</bool>
- <!-- Flag indicating whether the Phone app should ignore
- EVENT_SIM_NETWORK_LOCKED events from the Sim. If true, this will
- prevent the IccNetworkDepersonalizationPanel from being shown,
- and effectively disable the "Sim network lock" feature. -->
- <bool name="ignore_sim_network_locked_events">true</bool>
+ <!-- Flag indicating if dtmf tone type is enabled -->
+ <bool name="dtmf_type_enabled">true</bool>
+ <!-- Determine whether we should show the "listen for instructions" screen after
+ successfully placing the OTA call -->
+ <integer name="OtaShowListeningScreen">1</integer>
</resources>
diff --git a/overlay/packages/apps/Trebuchet/res/values/config.xml b/overlay/packages/apps/Trebuchet/res/values/config.xml
deleted file mode 100644
index 9b12c04..0000000
--- a/overlay/packages/apps/Trebuchet/res/values/config.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<resources>
- <integer name="cell_count_x">5</integer>
- <integer name="cell_count_y">5</integer>
-</resources>
diff --git a/power/Android.mk b/power/Android.mk
deleted file mode 100644
index fcbb721..0000000
--- a/power/Android.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright (C) 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.
-
-
-LOCAL_PATH := $(call my-dir)
-
-# HAL module implemenation stored in
-# hw/<POWERS_HARDWARE_MODULE_ID>.<ro.hardware>.so
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
-LOCAL_SHARED_LIBRARIES := liblog libcutils
-LOCAL_SRC_FILES := power.c
-LOCAL_MODULE := power.$(TARGET_BOARD_PLATFORM)
-LOCAL_MODULE_TAGS := optional
-include $(BUILD_SHARED_LIBRARY)
diff --git a/power/power.c b/power/power.c
deleted file mode 100644
index f3e73c9..0000000
--- a/power/power.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- * Copyright (c) 2012 The CyanogenMod 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 <fcntl.h>
-
-#define LOG_TAG "CM PowerHAL"
-#include <utils/Log.h>
-
-#include <hardware/hardware.h>
-#include <hardware/power.h>
-
-#define SCALING_GOVERNOR_PATH "/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"
-#define BOOSTPULSE_ONDEMAND "/sys/devices/system/cpu/cpufreq/ondemand/boostpulse"
-#define BOOSTPULSE_INTERACTIVE "/sys/devices/system/cpu/cpufreq/interactive/boostpulse"
-#define SAMPLING_RATE_ONDEMAND "/sys/devices/system/cpu/cpufreq/ondemand/sampling_rate"
-#define SAMPLING_RATE_SCREEN_ON "50000"
-#define SAMPLING_RATE_SCREEN_OFF "500000"
-
-struct cm_power_module {
- struct power_module base;
- pthread_mutex_t lock;
- int boostpulse_fd;
- int boostpulse_warned;
-};
-
-static int sysfs_read(char *path, char *s, int num_bytes)
-{
- char buf[80];
- int count;
- int ret = 0;
- int fd = open(path, O_RDONLY);
-
- if (fd < 0) {
- strerror_r(errno, buf, sizeof(buf));
- ALOGE("Error opening %s: %s\n", path, buf);
-
- return -1;
- }
-
- if ((count = read(fd, s, num_bytes - 1)) < 0) {
- strerror_r(errno, buf, sizeof(buf));
- ALOGE("Error writing to %s: %s\n", path, buf);
-
- ret = -1;
- } else {
- s[count] = '\0';
- }
-
- close(fd);
-
- return ret;
-}
-
-static void sysfs_write(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;
- }
-
- len = write(fd, s, strlen(s));
- if (len < 0) {
- strerror_r(errno, buf, sizeof(buf));
- ALOGE("Error writing to %s: %s\n", path, buf);
- }
-
- close(fd);
-}
-
-static int get_scaling_governor(char governor[], int size) {
- if (sysfs_read(SCALING_GOVERNOR_PATH, governor,
- size) == -1) {
- // Can't obtain the scaling governor. Return.
- return -1;
- } else {
- // Strip newline at the end.
- int len = strlen(governor);
-
- len--;
-
- while (len >= 0 && (governor[len] == '\n' || governor[len] == '\r'))
- governor[len--] = '\0';
- }
-
- return 0;
-}
-
-static int boostpulse_open(struct cm_power_module *cm)
-{
- char buf[80];
- char governor[80];
-
- pthread_mutex_lock(&cm->lock);
-
- if (cm->boostpulse_fd < 0) {
- if (get_scaling_governor(governor, sizeof(governor)) < 0) {
- ALOGE("Can't read scaling governor.");
- cm->boostpulse_warned = 1;
- } else {
- if (strncmp(governor, "ondemand", 8) == 0)
- cm->boostpulse_fd = open(BOOSTPULSE_ONDEMAND, O_WRONLY);
- else if (strncmp(governor, "interactive", 11) == 0)
- cm->boostpulse_fd = open(BOOSTPULSE_INTERACTIVE, O_WRONLY);
-
- if (cm->boostpulse_fd < 0 && !cm->boostpulse_warned) {
- strerror_r(errno, buf, sizeof(buf));
- ALOGE("Error opening boostpulse: %s\n", buf);
- cm->boostpulse_warned = 1;
- } else if (cm->boostpulse_fd > 0)
- ALOGD("Opened %s boostpulse interface", governor);
- }
- }
-
- pthread_mutex_unlock(&cm->lock);
- return cm->boostpulse_fd;
-}
-
-static void cm_power_hint(struct power_module *module, power_hint_t hint,
- void *data)
-{
- struct cm_power_module *cm = (struct cm_power_module *) module;
- char buf[80];
- int len;
- int duration = 1;
-
- switch (hint) {
- case POWER_HINT_INTERACTION:
- case POWER_HINT_CPU_BOOST:
- if (boostpulse_open(cm) >= 0) {
- if (data != NULL)
- duration = (int) data;
-
- snprintf(buf, sizeof(buf), "%d", duration);
- len = write(cm->boostpulse_fd, buf, strlen(buf));
-
- if (len < 0) {
- strerror_r(errno, buf, sizeof(buf));
- ALOGE("Error writing to boostpulse: %s\n", buf);
-
- pthread_mutex_lock(&cm->lock);
- close(cm->boostpulse_fd);
- cm->boostpulse_fd = -1;
- cm->boostpulse_warned = 0;
- pthread_mutex_unlock(&cm->lock);
- }
- }
- break;
-
- case POWER_HINT_VSYNC:
- break;
-
- default:
- break;
- }
-}
-
-static void cm_power_set_interactive(struct power_module *module, int on)
-{
- sysfs_write(SAMPLING_RATE_ONDEMAND,
- on ? SAMPLING_RATE_SCREEN_ON : SAMPLING_RATE_SCREEN_OFF);
-}
-
-static void cm_power_init(struct power_module *module)
-{
- sysfs_write(SAMPLING_RATE_ONDEMAND, SAMPLING_RATE_SCREEN_ON);
-}
-
-static struct hw_module_methods_t power_module_methods = {
- .open = NULL,
-};
-
-struct cm_power_module HAL_MODULE_INFO_SYM = {
- base: {
- 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: "CM Power HAL",
- author: "The CyanogenMod Project",
- methods: &power_module_methods,
- },
- init: cm_power_init,
- setInteractive: cm_power_set_interactive,
- powerHint: cm_power_hint,
- },
-
- lock: PTHREAD_MUTEX_INITIALIZER,
- boostpulse_fd: -1,
- boostpulse_warned: 0,
-};
diff --git a/prebuilt/animations/charging_animation_01_X.png b/prebuilt/animations/charging_animation_01_X.png
deleted file mode 100644
index 81bf982..0000000
Binary files a/prebuilt/animations/charging_animation_01_X.png and /dev/null differ
diff --git a/prebuilt/animations/charging_animation_02_X.png b/prebuilt/animations/charging_animation_02_X.png
deleted file mode 100644
index f91a895..0000000
Binary files a/prebuilt/animations/charging_animation_02_X.png and /dev/null differ
diff --git a/prebuilt/animations/charging_animation_03_X.png b/prebuilt/animations/charging_animation_03_X.png
deleted file mode 100644
index 95d06d1..0000000
Binary files a/prebuilt/animations/charging_animation_03_X.png and /dev/null differ
diff --git a/prebuilt/animations/charging_animation_04_X.png b/prebuilt/animations/charging_animation_04_X.png
deleted file mode 100644
index 2550bae..0000000
Binary files a/prebuilt/animations/charging_animation_04_X.png and /dev/null differ
diff --git a/prebuilt/animations/charging_animation_05_X.png b/prebuilt/animations/charging_animation_05_X.png
deleted file mode 100644
index 304dd66..0000000
Binary files a/prebuilt/animations/charging_animation_05_X.png and /dev/null differ
diff --git a/prebuilt/animations/charging_animation_06_X.png b/prebuilt/animations/charging_animation_06_X.png
deleted file mode 100644
index 7367296..0000000
Binary files a/prebuilt/animations/charging_animation_06_X.png and /dev/null differ
diff --git a/prebuilt/animations/charging_animation_07_X.png b/prebuilt/animations/charging_animation_07_X.png
deleted file mode 100644
index d107aa4..0000000
Binary files a/prebuilt/animations/charging_animation_07_X.png and /dev/null differ
diff --git a/prebuilt/fix_storage_permissions.sh b/prebuilt/fix_storage_permissions.sh
deleted file mode 100644
index 228a056..0000000
--- a/prebuilt/fix_storage_permissions.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/sbin/sh
-# Fix permissions on internal sdcard
-# to properly interoperate with Sony
-# firmware
-find /sdcard -user 1023 -exec chown 2800:2800 {} \;
diff --git a/prebuilt/logo_X.rle b/prebuilt/logo_X.rle
deleted file mode 100644
index ed992c5..0000000
Binary files a/prebuilt/logo_X.rle and /dev/null differ
diff --git a/prebuilt/mr b/prebuilt/mr
deleted file mode 100644
index 0b82e3b..0000000
Binary files a/prebuilt/mr and /dev/null differ
diff --git a/prebuilt/resources-xdpi.mk b/prebuilt/resources-xdpi.mk
deleted file mode 100644
index c231735..0000000
--- a/prebuilt/resources-xdpi.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-#Offline charging animation
-PRODUCT_COPY_FILES += \
- device/sony/blue-common/prebuilt/animations/charging_animation_01_X.png:system/semc/chargemon/data/charging_animation_01.png \
- device/sony/blue-common/prebuilt/animations/charging_animation_02_X.png:system/semc/chargemon/data/charging_animation_02.png \
- device/sony/blue-common/prebuilt/animations/charging_animation_03_X.png:system/semc/chargemon/data/charging_animation_03.png \
- device/sony/blue-common/prebuilt/animations/charging_animation_04_X.png:system/semc/chargemon/data/charging_animation_04.png \
- device/sony/blue-common/prebuilt/animations/charging_animation_05_X.png:system/semc/chargemon/data/charging_animation_05.png \
- device/sony/blue-common/prebuilt/animations/charging_animation_06_X.png:system/semc/chargemon/data/charging_animation_06.png \
- device/sony/blue-common/prebuilt/animations/charging_animation_07_X.png:system/semc/chargemon/data/charging_animation_07.png
diff --git a/proprietary-files.txt b/proprietary-files.txt
new file mode 100644
index 0000000..e90a071
--- /dev/null
+++ b/proprietary-files.txt
@@ -0,0 +1,2 @@
+etc/firmware/wlan/prima/WCNSS_cfg.dat
+etc/firmware/wlan/prima/WCNSS_qcom_wlan_nv.bin
diff --git a/recovery/recovery.c b/recovery/recovery.c
index 3a7b719..39db237 100644
--- a/recovery/recovery.c
+++ b/recovery/recovery.c
@@ -182,15 +182,6 @@ void gr_flip(void)
/* swap front and back buffers */
gr_active_fb = (gr_active_fb + 1) & 1;
-#ifdef FLIPPED_SCREEN
- /* flip buffer 180 degrees for devices with physicaly inverted screens */
- unsigned int i;
- for (i = 1; i < (vi.xres * vi.yres); i++) {
- unsigned short tmp = gr_mem_surface.data[i];
- gr_mem_surface.data[i] = gr_mem_surface.data[(vi.xres * vi.yres * 2) - i];
- gr_mem_surface.data[(vi.xres * vi.yres * 2) - i] = tmp;
- }
-#endif
/* copy data from the in-memory surface to the buffer we're about
* to make active. */
memcpy(gr_framebuffer[gr_active_fb].data, gr_mem_surface.data,
diff --git a/recovery/twrpgraphics.c b/recovery/twrpgraphics.c
new file mode 100644
index 0000000..c2b3f85
--- /dev/null
+++ b/recovery/twrpgraphics.c
@@ -0,0 +1,732 @@
+/*
+ * Copyright (C) 2007 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 <stdbool.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <fcntl.h>
+#include <stdio.h>
+
+#include <sys/ioctl.h>
+#include <sys/mman.h>
+#include <sys/types.h>
+
+#include <linux/fb.h>
+#include <linux/kd.h>
+
+#include <pixelflinger/pixelflinger.h>
+
+#include "minui.h"
+
+#ifdef BOARD_USE_CUSTOM_RECOVERY_FONT
+#include BOARD_USE_CUSTOM_RECOVERY_FONT
+#else
+#include "font_10x18.h"
+#endif
+
+#ifdef RECOVERY_BGRA
+#define PIXEL_FORMAT GGL_PIXEL_FORMAT_BGRA_8888
+#define PIXEL_SIZE 4
+#endif
+#ifdef RECOVERY_RGBX
+#define PIXEL_FORMAT GGL_PIXEL_FORMAT_RGBX_8888
+#define PIXEL_SIZE 4
+#endif
+#ifndef PIXEL_FORMAT
+#define PIXEL_FORMAT GGL_PIXEL_FORMAT_RGB_565
+#define PIXEL_SIZE 2
+#endif
+
+#define NUM_BUFFERS 2
+
+// #define PRINT_SCREENINFO 1 // Enables printing of screen info to log
+
+typedef struct {
+ GGLSurface texture;
+ unsigned offset[97];
+ unsigned cheight;
+ unsigned ascent;
+} GRFont;
+
+static GRFont *gr_font = 0;
+static GGLContext *gr_context = 0;
+static GGLSurface gr_font_texture;
+static GGLSurface gr_framebuffer[NUM_BUFFERS];
+static GGLSurface gr_mem_surface;
+static unsigned gr_active_fb = 0;
+static unsigned double_buffering = 0;
+
+static int gr_fb_fd = -1;
+static int gr_vt_fd = -1;
+
+static struct fb_var_screeninfo vi;
+static struct fb_fix_screeninfo fi;
+
+#ifdef PRINT_SCREENINFO
+static void print_fb_var_screeninfo()
+{
+ LOGI("vi.xres: %d\n", vi.xres);
+ LOGI("vi.yres: %d\n", vi.yres);
+ LOGI("vi.xres_virtual: %d\n", vi.xres_virtual);
+ LOGI("vi.yres_virtual: %d\n", vi.yres_virtual);
+ LOGI("vi.xoffset: %d\n", vi.xoffset);
+ LOGI("vi.yoffset: %d\n", vi.yoffset);
+ LOGI("vi.bits_per_pixel: %d\n", vi.bits_per_pixel);
+ LOGI("vi.grayscale: %d\n", vi.grayscale);
+}
+#endif
+
+static int get_framebuffer(GGLSurface *fb)
+{
+ int fd;
+ void *bits, *vi2;
+
+ fd = open("/dev/graphics/fb0", O_RDWR);
+ if (fd < 0) {
+ perror("cannot open fb0");
+ return -1;
+ }
+
+ vi2 = malloc(sizeof(vi) + sizeof(__u32));
+
+ if (ioctl(fd, FBIOGET_VSCREENINFO, vi2) < 0) {
+ perror("failed to get fb0 info");
+ close(fd);
+ free(vi2);
+ return -1;
+ }
+ memcpy((void*) &vi, vi2, sizeof(vi));
+ free(vi2);
+ fprintf(stderr, "Pixel format: %dx%d @ %dbpp\n", vi.xres, vi.yres, vi.bits_per_pixel);
+
+ vi.bits_per_pixel = PIXEL_SIZE * 8;
+ if (PIXEL_FORMAT == GGL_PIXEL_FORMAT_BGRA_8888) {
+ fprintf(stderr, "Pixel format: BGRA_8888\n");
+ if (PIXEL_SIZE != 4) fprintf(stderr, "E: Pixel Size mismatch!\n");
+ vi.red.offset = 8;
+ vi.red.length = 8;
+ vi.green.offset = 16;
+ vi.green.length = 8;
+ vi.blue.offset = 24;
+ vi.blue.length = 8;
+ vi.transp.offset = 0;
+ vi.transp.length = 8;
+ } else if (PIXEL_FORMAT == GGL_PIXEL_FORMAT_RGBX_8888) {
+ fprintf(stderr, "Pixel format: RGBX_8888\n");
+ if (PIXEL_SIZE != 4) fprintf(stderr, "E: Pixel Size mismatch!\n");
+ vi.red.offset = 24;
+ vi.red.length = 8;
+ vi.green.offset = 16;
+ vi.green.length = 8;
+ vi.blue.offset = 8;
+ vi.blue.length = 8;
+ vi.transp.offset = 0;
+ vi.transp.length = 8;
+ } else if (PIXEL_FORMAT == GGL_PIXEL_FORMAT_RGB_565) {
+#ifdef RECOVERY_RGB_565
+ fprintf(stderr, "Pixel format: RGB_565\n");
+ vi.blue.offset = 0;
+ vi.green.offset = 5;
+ vi.red.offset = 11;
+#else
+ fprintf(stderr, "Pixel format: BGR_565\n");
+ vi.blue.offset = 11;
+ vi.green.offset = 5;
+ vi.red.offset = 0;
+#endif
+ if (PIXEL_SIZE != 2) fprintf(stderr, "E: Pixel Size mismatch!\n");
+ vi.blue.length = 5;
+ vi.green.length = 6;
+ vi.red.length = 5;
+ vi.blue.msb_right = 0;
+ vi.green.msb_right = 0;
+ vi.red.msb_right = 0;
+ vi.transp.offset = 0;
+ vi.transp.length = 0;
+ }
+ else
+ {
+ perror("unknown pixel format");
+ close(fd);
+ return -1;
+ }
+
+ vi.vmode = FB_VMODE_NONINTERLACED;
+ vi.activate = FB_ACTIVATE_NOW | FB_ACTIVATE_FORCE;
+
+ if (ioctl(fd, FBIOPUT_VSCREENINFO, &vi) < 0) {
+ perror("failed to put fb0 info");
+ close(fd);
+ return -1;
+ }
+
+ if (ioctl(fd, FBIOGET_FSCREENINFO, &fi) < 0) {
+ perror("failed to get fb0 info");
+ close(fd);
+ return -1;
+ }
+
+ bits = mmap(0, fi.smem_len, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+ if (bits == MAP_FAILED) {
+ perror("failed to mmap framebuffer");
+ close(fd);
+ return -1;
+ }
+
+#ifdef RECOVERY_GRAPHICS_USE_LINELENGTH
+ vi.xres_virtual = fi.line_length / PIXEL_SIZE;
+#endif
+
+ fb->version = sizeof(*fb);
+ fb->width = vi.xres;
+ fb->height = vi.yres;
+#ifdef BOARD_HAS_JANKY_BACKBUFFER
+ LOGI("setting JANKY BACKBUFFER\n");
+ fb->stride = fi.line_length/2;
+#else
+ fb->stride = vi.xres_virtual;
+#endif
+ fb->data = bits;
+ fb->format = PIXEL_FORMAT;
+ memset(fb->data, 0, vi.yres * fb->stride * PIXEL_SIZE);
+
+ fb++;
+
+ /* check if we can use double buffering */
+ if (vi.yres * fi.line_length * 2 > fi.smem_len)
+ return fd;
+
+ double_buffering = 1;
+
+ fb->version = sizeof(*fb);
+ fb->width = vi.xres;
+ fb->height = vi.yres;
+#ifdef BOARD_HAS_JANKY_BACKBUFFER
+ fb->stride = fi.line_length/2;
+ fb->data = (void*) (((unsigned) bits) + vi.yres * fi.line_length);
+#else
+ fb->stride = vi.xres_virtual;
+ fb->data = (void*) (((unsigned) bits) + vi.yres * fb->stride * PIXEL_SIZE);
+#endif
+ fb->format = PIXEL_FORMAT;
+ memset(fb->data, 0, vi.yres * fb->stride * PIXEL_SIZE);
+
+#ifdef PRINT_SCREENINFO
+ print_fb_var_screeninfo();
+#endif
+
+ return fd;
+}
+
+static void get_memory_surface(GGLSurface* ms) {
+ ms->version = sizeof(*ms);
+ ms->width = vi.xres;
+ ms->height = vi.yres;
+ ms->stride = vi.xres_virtual;
+ ms->data = malloc(vi.xres_virtual * vi.yres * PIXEL_SIZE);
+ ms->format = PIXEL_FORMAT;
+}
+
+static void set_active_framebuffer(unsigned n)
+{
+ if (n > 1 || !double_buffering) return;
+ vi.yres_virtual = vi.yres * NUM_BUFFERS;
+ vi.yoffset = n * vi.yres;
+// vi.bits_per_pixel = PIXEL_SIZE * 8;
+ if (ioctl(gr_fb_fd, FBIOPUT_VSCREENINFO, &vi) < 0) {
+ perror("active fb swap failed");
+ }
+}
+
+void gr_flip(void)
+{
+ GGLContext *gl = gr_context;
+
+ /* swap front and back buffers */
+ if (double_buffering)
+ gr_active_fb = (gr_active_fb + 1) & 1;
+
+#ifdef BOARD_HAS_FLIPPED_SCREEN
+ /* flip buffer 180 degrees for devices with physicaly inverted screens */
+ unsigned int i;
+ for (i = 1; i < (vi.xres * vi.yres); i++) {
+ unsigned short tmp = gr_mem_surface.data[i];
+ gr_mem_surface.data[i] = gr_mem_surface.data[(vi.xres * vi.yres * 2) - i];
+ gr_mem_surface.data[(vi.xres * vi.yres * 2) - i] = tmp;
+ }
+#endif
+
+ /* copy data from the in-memory surface to the buffer we're about
+ * to make active. */
+ memcpy(gr_framebuffer[gr_active_fb].data, gr_mem_surface.data,
+ vi.xres_virtual * vi.yres * PIXEL_SIZE);
+
+ /* inform the display driver */
+ set_active_framebuffer(gr_active_fb);
+}
+
+void gr_color(unsigned char r, unsigned char g, unsigned char b, unsigned char a)
+{
+ GGLContext *gl = gr_context;
+ GGLint color[4];
+ color[0] = ((r << 8) | r) + 1;
+ color[1] = ((g << 8) | g) + 1;
+ color[2] = ((b << 8) | b) + 1;
+ color[3] = ((a << 8) | a) + 1;
+ gl->color4xv(gl, color);
+}
+
+int gr_measureEx(const char *s, void* font)
+{
+ GRFont* fnt = (GRFont*) font;
+ int total = 0;
+ unsigned pos;
+ unsigned off;
+
+ if (!fnt) fnt = gr_font;
+
+ while ((off = *s++))
+ {
+ off -= 32;
+ if (off < 96)
+ total += (fnt->offset[off+1] - fnt->offset[off]);
+ }
+ return total;
+}
+
+unsigned character_width(const char *s, void* pFont)
+{
+ GRFont *font = (GRFont*) pFont;
+ unsigned off;
+
+ /* Handle default font */
+ if (!font) font = gr_font;
+
+ off = *s - 32;
+ if (off == 0)
+ return 0;
+
+ return font->offset[off+1] - font->offset[off];
+}
+
+int gr_textEx(int x, int y, const char *s, void* pFont)
+{
+ GGLContext *gl = gr_context;
+ GRFont *font = (GRFont*) pFont;
+ unsigned off;
+ unsigned cwidth;
+
+ /* Handle default font */
+ if (!font) font = gr_font;
+
+ gl->bindTexture(gl, &font->texture);
+ gl->texEnvi(gl, GGL_TEXTURE_ENV, GGL_TEXTURE_ENV_MODE, GGL_REPLACE);
+ gl->texGeni(gl, GGL_S, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
+ gl->texGeni(gl, GGL_T, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
+ gl->enable(gl, GGL_TEXTURE_2D);
+
+ while((off = *s++)) {
+ off -= 32;
+ cwidth = 0;
+ if (off < 96) {
+ cwidth = font->offset[off+1] - font->offset[off];
+ gl->texCoord2i(gl, (font->offset[off]) - x, 0 - y);
+ gl->recti(gl, x, y, x + cwidth, y + font->cheight);
+ x += cwidth;
+ }
+ }
+
+ return x;
+}
+
+int gr_textExW(int x, int y, const char *s, void* pFont, int max_width)
+{
+ GGLContext *gl = gr_context;
+ GRFont *font = (GRFont*) pFont;
+ unsigned off;
+ unsigned cwidth;
+
+ /* Handle default font */
+ if (!font) font = gr_font;
+
+ gl->bindTexture(gl, &font->texture);
+ gl->texEnvi(gl, GGL_TEXTURE_ENV, GGL_TEXTURE_ENV_MODE, GGL_REPLACE);
+ gl->texGeni(gl, GGL_S, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
+ gl->texGeni(gl, GGL_T, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
+ gl->enable(gl, GGL_TEXTURE_2D);
+
+ while((off = *s++)) {
+ off -= 32;
+ cwidth = 0;
+ if (off < 96) {
+ cwidth = font->offset[off+1] - font->offset[off];
+ if ((x + (int)cwidth) < max_width) {
+ gl->texCoord2i(gl, (font->offset[off]) - x, 0 - y);
+ gl->recti(gl, x, y, x + cwidth, y + font->cheight);
+ x += cwidth;
+ } else {
+ gl->texCoord2i(gl, (font->offset[off]) - x, 0 - y);
+ gl->recti(gl, x, y, max_width, y + font->cheight);
+ x = max_width;
+ return x;
+ }
+ }
+ }
+
+ return x;
+}
+
+int gr_textExWH(int x, int y, const char *s, void* pFont, int max_width, int max_height)
+{
+ GGLContext *gl = gr_context;
+ GRFont *font = (GRFont*) pFont;
+ unsigned off;
+ unsigned cwidth;
+ int rect_x, rect_y;
+
+ /* Handle default font */
+ if (!font) font = gr_font;
+
+ gl->bindTexture(gl, &font->texture);
+ gl->texEnvi(gl, GGL_TEXTURE_ENV, GGL_TEXTURE_ENV_MODE, GGL_REPLACE);
+ gl->texGeni(gl, GGL_S, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
+ gl->texGeni(gl, GGL_T, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
+ gl->enable(gl, GGL_TEXTURE_2D);
+
+ while((off = *s++)) {
+ off -= 32;
+ cwidth = 0;
+ if (off < 96) {
+ cwidth = font->offset[off+1] - font->offset[off];
+ if ((x + (int)cwidth) < max_width)
+ rect_x = x + cwidth;
+ else
+ rect_x = max_width;
+ if (y + font->cheight < (unsigned int)(max_height))
+ rect_y = y + font->cheight;
+ else
+ rect_y = max_height;
+
+ gl->texCoord2i(gl, (font->offset[off]) - x, 0 - y);
+ gl->recti(gl, x, y, rect_x, rect_y);
+ x += cwidth;
+ if (x > max_width)
+ return x;
+ }
+ }
+
+ return x;
+}
+
+int twgr_text(int x, int y, const char *s)
+{
+ GGLContext *gl = gr_context;
+ GRFont *font = gr_font;
+ unsigned off;
+ unsigned cwidth = 0;
+
+ y -= font->ascent;
+
+ gl->bindTexture(gl, &font->texture);
+ gl->texEnvi(gl, GGL_TEXTURE_ENV, GGL_TEXTURE_ENV_MODE, GGL_REPLACE);
+ gl->texGeni(gl, GGL_S, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
+ gl->texGeni(gl, GGL_T, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
+ gl->enable(gl, GGL_TEXTURE_2D);
+
+ while((off = *s++)) {
+ off -= 32;
+ if (off < 96) {
+ cwidth = font->offset[off+1] - font->offset[off];
+ gl->texCoord2i(gl, (off * cwidth) - x, 0 - y);
+ gl->recti(gl, x, y, x + cwidth, y + font->cheight);
+ }
+ x += cwidth;
+ }
+
+ return x;
+}
+
+void gr_fill(int x, int y, int w, int h)
+{
+ GGLContext *gl = gr_context;
+ gl->disable(gl, GGL_TEXTURE_2D);
+ gl->recti(gl, x, y, x + w, y + h);
+}
+
+void gr_blit(gr_surface source, int sx, int sy, int w, int h, int dx, int dy) {
+ if (gr_context == NULL) {
+ return;
+ }
+
+ GGLContext *gl = gr_context;
+ gl->bindTexture(gl, (GGLSurface*) source);
+ gl->texEnvi(gl, GGL_TEXTURE_ENV, GGL_TEXTURE_ENV_MODE, GGL_REPLACE);
+ gl->texGeni(gl, GGL_S, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
+ gl->texGeni(gl, GGL_T, GGL_TEXTURE_GEN_MODE, GGL_ONE_TO_ONE);
+ gl->enable(gl, GGL_TEXTURE_2D);
+ gl->texCoord2i(gl, sx - dx, sy - dy);
+ gl->recti(gl, dx, dy, dx + w, dy + h);
+}
+
+unsigned int gr_get_width(gr_surface surface) {
+ if (surface == NULL) {
+ return 0;
+ }
+ return ((GGLSurface*) surface)->width;
+}
+
+unsigned int gr_get_height(gr_surface surface) {
+ if (surface == NULL) {
+ return 0;
+ }
+ return ((GGLSurface*) surface)->height;
+}
+
+void* gr_loadFont(const char* fontName)
+{
+ int fd;
+ GRFont *font = 0;
+ GGLSurface *ftex;
+ unsigned char *bits, *rle;
+ unsigned char *in, data;
+ unsigned width, height;
+ unsigned element;
+
+ fd = open(fontName, O_RDONLY);
+ if (fd == -1)
+ {
+ char tmp[128];
+
+ sprintf(tmp, "/res/fonts/%s.dat", fontName);
+ fd = open(tmp, O_RDONLY);
+ if (fd == -1)
+ return NULL;
+ }
+
+ font = calloc(sizeof(*font), 1);
+ ftex = &font->texture;
+
+ read(fd, &width, sizeof(unsigned));
+ read(fd, &height, sizeof(unsigned));
+ read(fd, font->offset, sizeof(unsigned) * 96);
+ font->offset[96] = width;
+
+ bits = malloc(width * height);
+ memset(bits, 0, width * height);
+
+ unsigned pos = 0;
+ while (pos < width * height)
+ {
+ int bit;
+
+ read(fd, &data, 1);
+ for (bit = 0; bit < 8; bit++)
+ {
+ if (data & (1 << (7-bit))) bits[pos++] = 255;
+ else bits[pos++] = 0;
+
+ if (pos == width * height) break;
+ }
+ }
+ close(fd);
+
+ ftex->version = sizeof(*ftex);
+ ftex->width = width;
+ ftex->height = height;
+ ftex->stride = width;
+ ftex->data = (void*) bits;
+ ftex->format = GGL_PIXEL_FORMAT_A_8;
+ font->cheight = height;
+ font->ascent = height - 2;
+ return (void*) font;
+}
+
+int gr_getFontDetails(void* font, unsigned* cheight, unsigned* maxwidth)
+{
+ GRFont *fnt = (GRFont*) font;
+
+ if (!fnt) fnt = gr_font;
+ if (!fnt) return -1;
+
+ if (cheight) *cheight = fnt->cheight;
+ if (maxwidth)
+ {
+ int pos;
+ *maxwidth = 0;
+ for (pos = 0; pos < 96; pos++)
+ {
+ unsigned int width = fnt->offset[pos+1] - fnt->offset[pos];
+ if (width > *maxwidth)
+ {
+ *maxwidth = width;
+ }
+ }
+ }
+ return 0;
+}
+
+static void gr_init_font(void)
+{
+ int fontRes;
+ GGLSurface *ftex;
+ unsigned char *bits, *rle;
+ unsigned char *in, data;
+ unsigned width, height;
+ unsigned element;
+
+ gr_font = calloc(sizeof(*gr_font), 1);
+ ftex = &gr_font->texture;
+
+ width = font.width;
+ height = font.height;
+
+ bits = malloc(width * height);
+ rle = bits;
+
+ in = font.rundata;
+ while((data = *in++))
+ {
+ memset(rle, (data & 0x80) ? 255 : 0, data & 0x7f);
+ rle += (data & 0x7f);
+ }
+ for (element = 0; element < 97; element++)
+ {
+ gr_font->offset[element] = (element * font.cwidth);
+ }
+
+ ftex->version = sizeof(*ftex);
+ ftex->width = width;
+ ftex->height = height;
+ ftex->stride = width;
+ ftex->data = (void*) bits;
+ ftex->format = GGL_PIXEL_FORMAT_A_8;
+ gr_font->cheight = height;
+ gr_font->ascent = height - 2;
+ return;
+}
+
+int gr_init(void)
+{
+ gglInit(&gr_context);
+ GGLContext *gl = gr_context;
+
+ gr_init_font();
+ gr_vt_fd = open("/dev/tty0", O_RDWR | O_SYNC);
+ if (gr_vt_fd < 0) {
+ // This is non-fatal; post-Cupcake kernels don't have tty0.
+ } else if (ioctl(gr_vt_fd, KDSETMODE, (void*) KD_GRAPHICS)) {
+ // However, if we do open tty0, we expect the ioctl to work.
+ perror("failed KDSETMODE to KD_GRAPHICS on tty0");
+ gr_exit();
+ return -1;
+ }
+
+ gr_fb_fd = get_framebuffer(gr_framebuffer);
+ if (gr_fb_fd < 0) {
+ perror("Unable to get framebuffer.\n");
+ gr_exit();
+ return -1;
+ }
+
+ get_memory_surface(&gr_mem_surface);
+
+ fprintf(stderr, "framebuffer: fd %d (%d x %d)\n",
+ gr_fb_fd, gr_framebuffer[0].width, gr_framebuffer[0].height);
+
+ /* start with 0 as front (displayed) and 1 as back (drawing) */
+ gr_active_fb = 0;
+ set_active_framebuffer(0);
+ gl->colorBuffer(gl, &gr_mem_surface);
+
+ gl->activeTexture(gl, 0);
+ gl->enable(gl, GGL_BLEND);
+ gl->blendFunc(gl, GGL_SRC_ALPHA, GGL_ONE_MINUS_SRC_ALPHA);
+
+// gr_fb_blank(true);
+// gr_fb_blank(false);
+
+ return 0;
+}
+
+void gr_exit(void)
+{
+ close(gr_fb_fd);
+ gr_fb_fd = -1;
+
+ free(gr_mem_surface.data);
+
+ ioctl(gr_vt_fd, KDSETMODE, (void*) KD_TEXT);
+ close(gr_vt_fd);
+ gr_vt_fd = -1;
+}
+
+int gr_fb_width(void)
+{
+ return gr_framebuffer[0].width;
+}
+
+int gr_fb_height(void)
+{
+ return gr_framebuffer[0].height;
+}
+
+gr_pixel *gr_fb_data(void)
+{
+ return (unsigned short *) gr_mem_surface.data;
+}
+
+int gr_fb_blank(int blank)
+{
+ int ret;
+
+ ret = ioctl(gr_fb_fd, FBIOBLANK, blank ? FB_BLANK_POWERDOWN : FB_BLANK_UNBLANK);
+ if (ret < 0)
+ perror("ioctl(): blank");
+ return ret;
+}
+
+int gr_get_surface(gr_surface* surface)
+{
+ GGLSurface* ms = malloc(sizeof(GGLSurface));
+ if (!ms) return -1;
+
+ // Allocate the data
+ get_memory_surface(ms);
+
+ // Now, copy the data
+ memcpy(ms->data, gr_mem_surface.data, vi.xres * vi.yres * vi.bits_per_pixel / 8);
+
+ *surface = (gr_surface*) ms;
+ return 0;
+}
+
+int gr_free_surface(gr_surface surface)
+{
+ if (!surface)
+ return -1;
+
+ GGLSurface* ms = (GGLSurface*) surface;
+ free(ms->data);
+ free(ms);
+ return 0;
+}
+
+void gr_write_frame_to_file(int fd)
+{
+ write(fd, gr_mem_surface.data, vi.xres * vi.yres * vi.bits_per_pixel / 8);
+}
+
diff --git a/releasetools.py b/releasetools.py
new file mode 100644
index 0000000..2e0626f
--- /dev/null
+++ b/releasetools.py
@@ -0,0 +1,36 @@
+# Copyright (C) 2012 The Android Open Source Project
+# Copyright (C) 2012 The CyanogenMod 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.
+
+"""Custom OTA Package commands for blue"""
+
+import common
+import os
+import shutil
+
+TARGET_DIR = os.getenv('OUT')
+
+def FullOTA_Assertions(self):
+
+ # Make common releasetools copy boot.img verbatim
+ bootimage_path = os.path.join(TARGET_DIR, "boot.elf")
+ prebuilt_dir = os.path.join(self.input_tmp, "BOOTABLE_IMAGES")
+ prebuilt_path = os.path.join(prebuilt_dir, "boot.img")
+ os.mkdir(prebuilt_dir)
+ shutil.copyfile(bootimage_path, prebuilt_path)
+
+def FullOTA_InstallEnd(self):
+ self.script.AppendExtra('package_extract_file("system/bin/fix_storage_permissions.sh", "/tmp/fix_storage_permissions.sh");')
+ self.script.AppendExtra('set_perm(0, 0, 0777, "/tmp/fix_storage_permissions.sh");')
+ self.script.AppendExtra('run_program("/tmp/fix_storage_permissions.sh");')
diff --git a/releasetools/common.py b/releasetools/common.py
deleted file mode 100755
index ffaf8d6..0000000
--- a/releasetools/common.py
+++ /dev/null
@@ -1,875 +0,0 @@
-# Copyright (C) 2008 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.
-
-import copy
-import errno
-import getopt
-import getpass
-import imp
-import os
-import platform
-import re
-import shutil
-import subprocess
-import sys
-import tempfile
-import threading
-import time
-import zipfile
-
-try:
- from hashlib import sha1 as sha1
-except ImportError:
- from sha import sha as sha1
-
-# missing in Python 2.4 and before
-if not hasattr(os, "SEEK_SET"):
- os.SEEK_SET = 0
-
-class Options(object): pass
-OPTIONS = Options()
-OPTIONS.search_path = "out/host/linux-x86"
-OPTIONS.verbose = False
-OPTIONS.tempfiles = []
-OPTIONS.device_specific = None
-OPTIONS.extras = {}
-OPTIONS.info_dict = None
-
-
-# Values for "certificate" in apkcerts that mean special things.
-SPECIAL_CERT_STRINGS = ("PRESIGNED", "EXTERNAL")
-
-
-class ExternalError(RuntimeError): pass
-
-
-def Run(args, **kwargs):
- """Create and return a subprocess.Popen object, printing the command
- line on the terminal if -v was specified."""
- if OPTIONS.verbose:
- print " running: ", " ".join(args)
- return subprocess.Popen(args, **kwargs)
-
-
-def CloseInheritedPipes():
- """ Gmake in MAC OS has file descriptor (PIPE) leak. We close those fds
- before doing other work."""
- if platform.system() != "Darwin":
- return
- for d in range(3, 1025):
- try:
- stat = os.fstat(d)
- if stat is not None:
- pipebit = stat[0] & 0x1000
- if pipebit != 0:
- os.close(d)
- except OSError:
- pass
-
-
-def LoadInfoDict(zip):
- """Read and parse the META/misc_info.txt key/value pairs from the
- input target files and return a dict."""
-
- d = {}
- try:
- for line in zip.read("META/misc_info.txt").split("\n"):
- line = line.strip()
- if not line or line.startswith("#"): continue
- k, v = line.split("=", 1)
- d[k] = v
- except KeyError:
- # ok if misc_info.txt doesn't exist
- pass
-
- # backwards compatibility: These values used to be in their own
- # files. Look for them, in case we're processing an old
- # target_files zip.
-
- if "mkyaffs2_extra_flags" not in d:
- try:
- d["mkyaffs2_extra_flags"] = zip.read("META/mkyaffs2-extra-flags.txt").strip()
- except KeyError:
- # ok if flags don't exist
- pass
-
- if "recovery_api_version" not in d:
- try:
- d["recovery_api_version"] = zip.read("META/recovery-api-version.txt").strip()
- except KeyError:
- raise ValueError("can't find recovery API version in input target-files")
-
- if "tool_extensions" not in d:
- try:
- d["tool_extensions"] = zip.read("META/tool-extensions.txt").strip()
- except KeyError:
- # ok if extensions don't exist
- pass
-
- try:
- data = zip.read("META/imagesizes.txt")
- for line in data.split("\n"):
- if not line: continue
- name, value = line.split(" ", 1)
- if not value: continue
- if name == "blocksize":
- d[name] = value
- else:
- d[name + "_size"] = value
- except KeyError:
- pass
-
- def makeint(key):
- if key in d:
- d[key] = int(d[key], 0)
-
- makeint("recovery_api_version")
- makeint("blocksize")
- makeint("system_size")
- makeint("userdata_size")
- makeint("cache_size")
- makeint("recovery_size")
- makeint("boot_size")
-
- d["fstab"] = LoadRecoveryFSTab(zip)
- return d
-
-def LoadRecoveryFSTab(zip):
- class Partition(object):
- pass
-
- try:
- data = zip.read("RECOVERY/RAMDISK/etc/recovery.fstab")
- except KeyError:
- print "Warning: could not find RECOVERY/RAMDISK/etc/recovery.fstab in %s." % zip
- data = ""
-
- d = {}
- for line in data.split("\n"):
- line = line.strip()
- if not line or line.startswith("#"): continue
- pieces = line.split()
- if not (3 <= len(pieces) <= 7):
- raise ValueError("malformed recovery.fstab line: \"%s\"" % (line,))
-
- p = Partition()
- p.mount_point = pieces[0]
- p.fs_type = pieces[1]
- p.device = pieces[2]
- p.length = 0
- options = None
- if len(pieces) >= 4 and pieces[3] != 'NULL':
- if pieces[3].startswith("/"):
- p.device2 = pieces[3]
- if len(pieces) >= 5:
- options = pieces[4]
- else:
- p.device2 = None
- options = pieces[3]
- else:
- p.device2 = None
-
- if options:
- options = options.split(",")
- for i in options:
- if i.startswith("length="):
- p.length = int(i[7:])
- else:
- print "%s: unknown option \"%s\"" % (p.mount_point, i)
-
- d[p.mount_point] = p
- return d
-
-
-def DumpInfoDict(d):
- for k, v in sorted(d.items()):
- print "%-25s = (%s) %s" % (k, type(v).__name__, v)
-
-def BuildBootableImage(sourcedir, fs_config_file):
- """Take a kernel, cmdline, and ramdisk directory from the input (in
- 'sourcedir'), and turn them into a boot image. Return the image
- data, or None if sourcedir does not appear to contains files for
- building the requested image."""
-
- if (not os.access(os.path.join(sourcedir, "RAMDISK"), os.F_OK) or
- not os.access(os.path.join(sourcedir, "kernel"), os.F_OK)):
- return None
-
- ramdisk_img = tempfile.NamedTemporaryFile()
- img = tempfile.NamedTemporaryFile()
-
- if os.access(fs_config_file, os.F_OK):
- cmd = ["mkbootfs", "-f", fs_config_file, os.path.join(sourcedir, "RAMDISK")]
- else:
- cmd = ["mkbootfs", os.path.join(sourcedir, "RAMDISK")]
- p1 = Run(cmd, stdout=subprocess.PIPE)
- p2 = Run(["minigzip"],
- stdin=p1.stdout, stdout=ramdisk_img.file.fileno())
-
- p2.wait()
- p1.wait()
- assert p1.returncode == 0, "mkbootfs of %s ramdisk failed" % (targetname,)
- assert p2.returncode == 0, "minigzip of %s ramdisk failed" % (targetname,)
-
- """check if uboot is requested"""
- fn = os.path.join(sourcedir, "ubootargs")
- if os.access(fn, os.F_OK):
- cmd = ["mkimage"]
- for argument in open(fn).read().rstrip("\n").split(" "):
- cmd.append(argument)
- cmd.append("-d")
- cmd.append(os.path.join(sourcedir, "kernel")+":"+ramdisk_img.name)
- cmd.append(img.name)
-
- else:
- cmd = ["mkbootimg", "--kernel", os.path.join(sourcedir, "kernel")]
-
- fn = os.path.join(sourcedir, "cmdline")
- if os.access(fn, os.F_OK):
- cmd.append("--cmdline")
- cmd.append(open(fn).read().rstrip("\n"))
-
- fn = os.path.join(sourcedir, "base")
- if os.access(fn, os.F_OK):
- cmd.append("--base")
- cmd.append(open(fn).read().rstrip("\n"))
-
- fn = os.path.join(sourcedir, "pagesize")
- if os.access(fn, os.F_OK):
- cmd.append("--pagesize")
- cmd.append(open(fn).read().rstrip("\n"))
-
- fn = os.path.join(sourcedir, "ramdiskaddr")
- if os.access(fn, os.F_OK):
- cmd.append("--ramdiskaddr")
- cmd.append(open(fn).read().rstrip("\n"))
-
- cmd.extend(["--ramdisk", ramdisk_img.name,
- "--output", img.name])
-
- p = Run(cmd, stdout=subprocess.PIPE)
- p.communicate()
- assert p.returncode == 0, "mkbootimg of %s image failed" % (
- os.path.basename(sourcedir),)
-
- img.seek(os.SEEK_SET, 0)
- data = img.read()
-
- ramdisk_img.close()
- img.close()
-
- return data
-
-
-def GetBootableImage(name, prebuilt_name, unpack_dir, tree_subdir):
- """Return a File object (with name 'name') with the desired bootable
- image. Look for it in 'unpack_dir'/BOOTABLE_IMAGES under the name
- 'prebuilt_name', otherwise construct it from the source files in
- 'unpack_dir'/'tree_subdir'."""
-
- prebuilt_path = os.path.join(unpack_dir, "BOOTABLE_IMAGES", prebuilt_name)
- if os.path.exists(prebuilt_path):
- print "using prebuilt %s..." % (prebuilt_name,)
- return File.FromLocalFile(name, prebuilt_path)
- else:
- print "building image from target_files %s..." % (tree_subdir,)
- fs_config = "META/" + tree_subdir.lower() + "_filesystem_config.txt"
- return File(name, BuildBootableImage(os.path.join(unpack_dir, tree_subdir),
- os.path.join(unpack_dir, fs_config)))
-
-
-def UnzipTemp(filename, pattern=None):
- """Unzip the given archive into a temporary directory and return the name.
-
- If filename is of the form "foo.zip+bar.zip", unzip foo.zip into a
- temp dir, then unzip bar.zip into that_dir/BOOTABLE_IMAGES.
-
- Returns (tempdir, zipobj) where zipobj is a zipfile.ZipFile (of the
- main file), open for reading.
- """
-
- tmp = tempfile.mkdtemp(prefix="targetfiles-")
- OPTIONS.tempfiles.append(tmp)
-
- def unzip_to_dir(filename, dirname):
- cmd = ["unzip", "-o", "-q", filename, "-d", dirname]
- if pattern is not None:
- cmd.append(pattern)
- p = Run(cmd, stdout=subprocess.PIPE)
- p.communicate()
- if p.returncode != 0:
- raise ExternalError("failed to unzip input target-files \"%s\"" %
- (filename,))
-
- m = re.match(r"^(.*[.]zip)\+(.*[.]zip)$", filename, re.IGNORECASE)
- if m:
- unzip_to_dir(m.group(1), tmp)
- unzip_to_dir(m.group(2), os.path.join(tmp, "BOOTABLE_IMAGES"))
- filename = m.group(1)
- else:
- unzip_to_dir(filename, tmp)
-
- return tmp, zipfile.ZipFile(filename, "r")
-
-
-def GetKeyPasswords(keylist):
- """Given a list of keys, prompt the user to enter passwords for
- those which require them. Return a {key: password} dict. password
- will be None if the key has no password."""
-
- no_passwords = []
- need_passwords = []
- devnull = open("/dev/null", "w+b")
- for k in sorted(keylist):
- # We don't need a password for things that aren't really keys.
- if k in SPECIAL_CERT_STRINGS:
- no_passwords.append(k)
- continue
-
- p = Run(["openssl", "pkcs8", "-in", k+".pk8",
- "-inform", "DER", "-nocrypt"],
- stdin=devnull.fileno(),
- stdout=devnull.fileno(),
- stderr=subprocess.STDOUT)
- p.communicate()
- if p.returncode == 0:
- no_passwords.append(k)
- else:
- need_passwords.append(k)
- devnull.close()
-
- key_passwords = PasswordManager().GetPasswords(need_passwords)
- key_passwords.update(dict.fromkeys(no_passwords, None))
- return key_passwords
-
-
-def SignFile(input_name, output_name, key, password, align=None,
- whole_file=False):
- """Sign the input_name zip/jar/apk, producing output_name. Use the
- given key and password (the latter may be None if the key does not
- have a password.
-
- If align is an integer > 1, zipalign is run to align stored files in
- the output zip on 'align'-byte boundaries.
-
- If whole_file is true, use the "-w" option to SignApk to embed a
- signature that covers the whole file in the archive comment of the
- zip file.
- """
-
- if align == 0 or align == 1:
- align = None
-
- if align:
- temp = tempfile.NamedTemporaryFile()
- sign_name = temp.name
- else:
- sign_name = output_name
-
- check = (sys.maxsize > 2**32)
- if check is True:
- cmd = ["java", "-Xmx2048m", "-jar",
- os.path.join(OPTIONS.search_path, "framework", "signapk.jar")]
- else:
- cmd = ["java", "-Xmx1024m", "-jar",
- os.path.join(OPTIONS.search_path, "framework", "signapk.jar")]
-
- if whole_file:
- cmd.append("-w")
- cmd.extend([key + ".x509.pem", key + ".pk8",
- input_name, sign_name])
-
- p = Run(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
- if password is not None:
- password += "\n"
- p.communicate(password)
- if p.returncode != 0:
- raise ExternalError("signapk.jar failed: return code %s" % (p.returncode,))
-
- if align:
- p = Run(["zipalign", "-f", str(align), sign_name, output_name])
- p.communicate()
- if p.returncode != 0:
- raise ExternalError("zipalign failed: return code %s" % (p.returncode,))
- temp.close()
-
-
-def CheckSize(data, target, info_dict):
- """Check the data string passed against the max size limit, if
- any, for the given target. Raise exception if the data is too big.
- Print a warning if the data is nearing the maximum size."""
-
- if target.endswith(".img"): target = target[:-4]
- mount_point = "/" + target
-
- if info_dict["fstab"]:
- if mount_point == "/userdata": mount_point = "/data"
- p = info_dict["fstab"][mount_point]
- fs_type = p.fs_type
- device = p.device
- if "/" in device:
- device = device[device.rfind("/")+1:]
- limit = info_dict.get(device + "_size", None)
- if not fs_type or not limit: return
-
- if fs_type == "yaffs2":
- # image size should be increased by 1/64th to account for the
- # spare area (64 bytes per 2k page)
- limit = limit / 2048 * (2048+64)
- size = len(data)
- pct = float(size) * 100.0 / limit
- msg = "%s size (%d) is %.2f%% of limit (%d)" % (target, size, pct, limit)
- if pct >= 99.0:
- raise ExternalError(msg)
- elif pct >= 95.0:
- print
- print " WARNING: ", msg
- print
- elif OPTIONS.verbose:
- print " ", msg
-
-
-def ReadApkCerts(tf_zip):
- """Given a target_files ZipFile, parse the META/apkcerts.txt file
- and return a {package: cert} dict."""
- certmap = {}
- for line in tf_zip.read("META/apkcerts.txt").split("\n"):
- line = line.strip()
- if not line: continue
- m = re.match(r'^name="(.*)"\s+certificate="(.*)"\s+'
- r'private_key="(.*)"$', line)
- if m:
- name, cert, privkey = m.groups()
- if cert in SPECIAL_CERT_STRINGS and not privkey:
- certmap[name] = cert
- elif (cert.endswith(".x509.pem") and
- privkey.endswith(".pk8") and
- cert[:-9] == privkey[:-4]):
- certmap[name] = cert[:-9]
- else:
- raise ValueError("failed to parse line from apkcerts.txt:\n" + line)
- return certmap
-
-
-COMMON_DOCSTRING = """
- -p (--path) <dir>
- Prepend <dir>/bin to the list of places to search for binaries
- run by this script, and expect to find jars in <dir>/framework.
-
- -s (--device_specific) <file>
- Path to the python module containing device-specific
- releasetools code.
-
- -x (--extra) <key=value>
- Add a key/value pair to the 'extras' dict, which device-specific
- extension code may look at.
-
- -v (--verbose)
- Show command lines being executed.
-
- -h (--help)
- Display this usage message and exit.
-"""
-
-def Usage(docstring):
- print docstring.rstrip("\n")
- print COMMON_DOCSTRING
-
-
-def ParseOptions(argv,
- docstring,
- extra_opts="", extra_long_opts=(),
- extra_option_handler=None):
- """Parse the options in argv and return any arguments that aren't
- flags. docstring is the calling module's docstring, to be displayed
- for errors and -h. extra_opts and extra_long_opts are for flags
- defined by the caller, which are processed by passing them to
- extra_option_handler."""
-
- try:
- opts, args = getopt.getopt(
- argv, "hvp:s:x:" + extra_opts,
- ["help", "verbose", "path=", "device_specific=", "extra="] +
- list(extra_long_opts))
- except getopt.GetoptError, err:
- Usage(docstring)
- print "**", str(err), "**"
- sys.exit(2)
-
- path_specified = False
-
- for o, a in opts:
- if o in ("-h", "--help"):
- Usage(docstring)
- sys.exit()
- elif o in ("-v", "--verbose"):
- OPTIONS.verbose = True
- elif o in ("-p", "--path"):
- OPTIONS.search_path = a
- elif o in ("-s", "--device_specific"):
- OPTIONS.device_specific = a
- elif o in ("-x", "--extra"):
- key, value = a.split("=", 1)
- OPTIONS.extras[key] = value
- else:
- if extra_option_handler is None or not extra_option_handler(o, a):
- assert False, "unknown option \"%s\"" % (o,)
-
- os.environ["PATH"] = (os.path.join(OPTIONS.search_path, "bin") +
- os.pathsep + os.environ["PATH"])
-
- return args
-
-
-def Cleanup():
- for i in OPTIONS.tempfiles:
- if os.path.isdir(i):
- shutil.rmtree(i)
- else:
- os.remove(i)
-
-
-class PasswordManager(object):
- def __init__(self):
- self.editor = os.getenv("EDITOR", None)
- self.pwfile = os.getenv("ANDROID_PW_FILE", None)
-
- def GetPasswords(self, items):
- """Get passwords corresponding to each string in 'items',
- returning a dict. (The dict may have keys in addition to the
- values in 'items'.)
-
- Uses the passwords in $ANDROID_PW_FILE if available, letting the
- user edit that file to add more needed passwords. If no editor is
- available, or $ANDROID_PW_FILE isn't define, prompts the user
- interactively in the ordinary way.
- """
-
- current = self.ReadFile()
-
- first = True
- while True:
- missing = []
- for i in items:
- if i not in current or not current[i]:
- missing.append(i)
- # Are all the passwords already in the file?
- if not missing: return current
-
- for i in missing:
- current[i] = ""
-
- if not first:
- print "key file %s still missing some passwords." % (self.pwfile,)
- answer = raw_input("try to edit again? [y]> ").strip()
- if answer and answer[0] not in 'yY':
- raise RuntimeError("key passwords unavailable")
- first = False
-
- current = self.UpdateAndReadFile(current)
-
- def PromptResult(self, current):
- """Prompt the user to enter a value (password) for each key in
- 'current' whose value is fales. Returns a new dict with all the
- values.
- """
- result = {}
- for k, v in sorted(current.iteritems()):
- if v:
- result[k] = v
- else:
- while True:
- result[k] = getpass.getpass("Enter password for %s key> "
- % (k,)).strip()
- if result[k]: break
- return result
-
- def UpdateAndReadFile(self, current):
- if not self.editor or not self.pwfile:
- return self.PromptResult(current)
-
- f = open(self.pwfile, "w")
- os.chmod(self.pwfile, 0600)
- f.write("# Enter key passwords between the [[[ ]]] brackets.\n")
- f.write("# (Additional spaces are harmless.)\n\n")
-
- first_line = None
- sorted = [(not v, k, v) for (k, v) in current.iteritems()]
- sorted.sort()
- for i, (_, k, v) in enumerate(sorted):
- f.write("[[[ %s ]]] %s\n" % (v, k))
- if not v and first_line is None:
- # position cursor on first line with no password.
- first_line = i + 4
- f.close()
-
- p = Run([self.editor, "+%d" % (first_line,), self.pwfile])
- _, _ = p.communicate()
-
- return self.ReadFile()
-
- def ReadFile(self):
- result = {}
- if self.pwfile is None: return result
- try:
- f = open(self.pwfile, "r")
- for line in f:
- line = line.strip()
- if not line or line[0] == '#': continue
- m = re.match(r"^\[\[\[\s*(.*?)\s*\]\]\]\s*(\S+)$", line)
- if not m:
- print "failed to parse password file: ", line
- else:
- result[m.group(2)] = m.group(1)
- f.close()
- except IOError, e:
- if e.errno != errno.ENOENT:
- print "error reading password file: ", str(e)
- return result
-
-
-def ZipWriteStr(zip, filename, data, perms=0644):
- # use a fixed timestamp so the output is repeatable.
- zinfo = zipfile.ZipInfo(filename=filename,
- date_time=(2009, 1, 1, 0, 0, 0))
- zinfo.compress_type = zip.compression
- zinfo.external_attr = perms << 16
- zip.writestr(zinfo, data)
-
-
-class DeviceSpecificParams(object):
- module = None
- def __init__(self, **kwargs):
- """Keyword arguments to the constructor become attributes of this
- object, which is passed to all functions in the device-specific
- module."""
- for k, v in kwargs.iteritems():
- setattr(self, k, v)
- self.extras = OPTIONS.extras
-
- if self.module is None:
- path = OPTIONS.device_specific
- if not path: return
- try:
- if os.path.isdir(path):
- info = imp.find_module("releasetools", [path])
- else:
- d, f = os.path.split(path)
- b, x = os.path.splitext(f)
- if x == ".py":
- f = b
- info = imp.find_module(f, [d])
- self.module = imp.load_module("device_specific", *info)
- except ImportError:
- print "unable to load device-specific module; assuming none"
-
- def _DoCall(self, function_name, *args, **kwargs):
- """Call the named function in the device-specific module, passing
- the given args and kwargs. The first argument to the call will be
- the DeviceSpecific object itself. If there is no module, or the
- module does not define the function, return the value of the
- 'default' kwarg (which itself defaults to None)."""
- if self.module is None or not hasattr(self.module, function_name):
- return kwargs.get("default", None)
- return getattr(self.module, function_name)(*((self,) + args), **kwargs)
-
- def FullOTA_Assertions(self):
- """Called after emitting the block of assertions at the top of a
- full OTA package. Implementations can add whatever additional
- assertions they like."""
- return self._DoCall("FullOTA_Assertions")
-
- def FullOTA_InstallBegin(self):
- """Called at the start of full OTA installation."""
- return self._DoCall("FullOTA_InstallBegin")
-
- def FullOTA_InstallEnd(self):
- """Called at the end of full OTA installation; typically this is
- used to install the image for the device's baseband processor."""
- return self._DoCall("FullOTA_InstallEnd")
-
- def IncrementalOTA_Assertions(self):
- """Called after emitting the block of assertions at the top of an
- incremental OTA package. Implementations can add whatever
- additional assertions they like."""
- return self._DoCall("IncrementalOTA_Assertions")
-
- def IncrementalOTA_VerifyBegin(self):
- """Called at the start of the verification phase of incremental
- OTA installation; additional checks can be placed here to abort
- the script before any changes are made."""
- return self._DoCall("IncrementalOTA_VerifyBegin")
-
- def IncrementalOTA_VerifyEnd(self):
- """Called at the end of the verification phase of incremental OTA
- installation; additional checks can be placed here to abort the
- script before any changes are made."""
- return self._DoCall("IncrementalOTA_VerifyEnd")
-
- def IncrementalOTA_InstallBegin(self):
- """Called at the start of incremental OTA installation (after
- verification is complete)."""
- return self._DoCall("IncrementalOTA_InstallBegin")
-
- def IncrementalOTA_InstallEnd(self):
- """Called at the end of incremental OTA installation; typically
- this is used to install the image for the device's baseband
- processor."""
- return self._DoCall("IncrementalOTA_InstallEnd")
-
-class File(object):
- def __init__(self, name, data):
- self.name = name
- self.data = data
- self.size = len(data)
- self.sha1 = sha1(data).hexdigest()
-
- @classmethod
- def FromLocalFile(cls, name, diskname):
- f = open(diskname, "rb")
- data = f.read()
- f.close()
- return File(name, data)
-
- def WriteToTemp(self):
- t = tempfile.NamedTemporaryFile()
- t.write(self.data)
- t.flush()
- return t
-
- def AddToZip(self, z):
- ZipWriteStr(z, self.name, self.data)
-
-DIFF_PROGRAM_BY_EXT = {
- ".gz" : "imgdiff",
- ".zip" : ["imgdiff", "-z"],
- ".jar" : ["imgdiff", "-z"],
- ".apk" : ["imgdiff", "-z"],
- ".img" : "imgdiff",
- }
-
-class Difference(object):
- def __init__(self, tf, sf):
- self.tf = tf
- self.sf = sf
- self.patch = None
-
- def ComputePatch(self):
- """Compute the patch (as a string of data) needed to turn sf into
- tf. Returns the same tuple as GetPatch()."""
-
- tf = self.tf
- sf = self.sf
-
- ext = os.path.splitext(tf.name)[1]
- diff_program = DIFF_PROGRAM_BY_EXT.get(ext, "bsdiff")
-
- ttemp = tf.WriteToTemp()
- stemp = sf.WriteToTemp()
-
- ext = os.path.splitext(tf.name)[1]
-
- try:
- ptemp = tempfile.NamedTemporaryFile()
- if isinstance(diff_program, list):
- cmd = copy.copy(diff_program)
- else:
- cmd = [diff_program]
- cmd.append(stemp.name)
- cmd.append(ttemp.name)
- cmd.append(ptemp.name)
- p = Run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- _, err = p.communicate()
- if err or p.returncode != 0:
- print "WARNING: failure running %s:\n%s\n" % (diff_program, err)
- return None
- diff = ptemp.read()
- finally:
- ptemp.close()
- stemp.close()
- ttemp.close()
-
- self.patch = diff
- return self.tf, self.sf, self.patch
-
-
- def GetPatch(self):
- """Return a tuple (target_file, source_file, patch_data).
- patch_data may be None if ComputePatch hasn't been called, or if
- computing the patch failed."""
- return self.tf, self.sf, self.patch
-
-
-def ComputeDifferences(diffs):
- """Call ComputePatch on all the Difference objects in 'diffs'."""
- print len(diffs), "diffs to compute"
-
- # Do the largest files first, to try and reduce the long-pole effect.
- by_size = [(i.tf.size, i) for i in diffs]
- by_size.sort(reverse=True)
- by_size = [i[1] for i in by_size]
-
- lock = threading.Lock()
- diff_iter = iter(by_size) # accessed under lock
-
- def worker():
- try:
- lock.acquire()
- for d in diff_iter:
- lock.release()
- start = time.time()
- d.ComputePatch()
- dur = time.time() - start
- lock.acquire()
-
- tf, sf, patch = d.GetPatch()
- if sf.name == tf.name:
- name = tf.name
- else:
- name = "%s (%s)" % (tf.name, sf.name)
- if patch is None:
- print "patching failed! %s" % (name,)
- else:
- print "%8.2f sec %8d / %8d bytes (%6.2f%%) %s" % (
- dur, len(patch), tf.size, 100.0 * len(patch) / tf.size, name)
- lock.release()
- except Exception, e:
- print e
- raise
-
- # start worker threads; wait for them all to finish.
- threads = [threading.Thread(target=worker)
- for i in range(OPTIONS.worker_threads)]
- for th in threads:
- th.start()
- while threads:
- threads.pop().join()
-
-
-# map recovery.fstab's fs_types to mount/format "partition types"
-PARTITION_TYPES = { "bml": "BML",
- "ext2": "EMMC",
- "ext3": "EMMC",
- "ext4": "EMMC",
- "emmc": "EMMC",
- "mtd": "MTD",
- "yaffs2": "MTD",
- "vfat": "EMMC" }
-
-def GetTypeAndDevice(mount_point, info):
- fstab = info["fstab"]
- if fstab:
- return PARTITION_TYPES[fstab[mount_point].fs_type], fstab[mount_point].device
- else:
- return None
diff --git a/releasetools/edify_generator.py b/releasetools/edify_generator.py
deleted file mode 100755
index a917b1f..0000000
--- a/releasetools/edify_generator.py
+++ /dev/null
@@ -1,290 +0,0 @@
-# Copyright (C) 2009 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.
-
-import os
-import re
-
-import common
-
-class EdifyGenerator(object):
- """Class to generate scripts in the 'edify' recovery script language
- used from donut onwards."""
-
- def __init__(self, version, info):
- self.script = []
- self.mounts = set()
- self.version = version
- self.info = info
-
- def MakeTemporary(self):
- """Make a temporary script object whose commands can latter be
- appended to the parent script with AppendScript(). Used when the
- caller wants to generate script commands out-of-order."""
- x = EdifyGenerator(self.version, self.info)
- x.mounts = self.mounts
- return x
-
- @staticmethod
- def _WordWrap(cmd, linelen=80):
- """'cmd' should be a function call with null characters after each
- parameter (eg, "somefun(foo,\0bar,\0baz)"). This function wraps cmd
- to a given line length, replacing nulls with spaces and/or newlines
- to format it nicely."""
- indent = cmd.index("(")+1
- out = []
- first = True
- x = re.compile("^(.{,%d})\0" % (linelen-indent,))
- while True:
- if not first:
- out.append(" " * indent)
- first = False
- m = x.search(cmd)
- if not m:
- parts = cmd.split("\0", 1)
- out.append(parts[0]+"\n")
- if len(parts) == 1:
- break
- else:
- cmd = parts[1]
- continue
- out.append(m.group(1)+"\n")
- cmd = cmd[m.end():]
-
- return "".join(out).replace("\0", " ").rstrip("\n")
-
- def AppendScript(self, other):
- """Append the contents of another script (which should be created
- with temporary=True) to this one."""
- self.script.extend(other.script)
-
- def AssertSomeFingerprint(self, *fp):
- """Assert that the current system build fingerprint is one of *fp."""
- if not fp:
- raise ValueError("must specify some fingerprints")
- cmd = ('assert(' +
- ' ||\0'.join([('file_getprop("/system/build.prop", '
- '"ro.build.fingerprint") == "%s"')
- % i for i in fp]) +
- ');')
- self.script.append(self._WordWrap(cmd))
-
- def AssertOlderBuild(self, timestamp):
- """Assert that the build on the device is older (or the same as)
- the given timestamp."""
- self.script.append(('assert(!less_than_int(%s, '
- 'getprop("ro.build.date.utc")));') % (timestamp,))
-
- def AssertDevice(self, device):
- """Assert that the device identifier is the given string."""
- cmd = ('assert(' +
- ' || \0'.join(['getprop("ro.product.device") == "%s" || getprop("ro.build.product") == "%s"'
- % (i, i) for i in device.split(",")]) +
- ');')
- self.script.append(self._WordWrap(cmd))
-
- def AssertSomeBootloader(self, *bootloaders):
- """Asert that the bootloader version is one of *bootloaders."""
- cmd = ("assert(" +
- " ||\0".join(['getprop("ro.bootloader") == "%s"' % (b,)
- for b in bootloaders]) +
- ");")
- self.script.append(self._WordWrap(cmd))
-
- def RunBackup(self, command):
- self.script.append('package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh");')
- self.script.append('package_extract_file("system/bin/backuptool.functions", "/tmp/backuptool.functions");')
- self.script.append('set_perm(0, 0, 0777, "/tmp/backuptool.sh");')
- self.script.append('set_perm(0, 0, 0644, "/tmp/backuptool.functions");')
- self.script.append(('run_program("/tmp/backuptool.sh", "%s");' % command))
- if command == "restore":
- self.script.append('delete("/system/bin/backuptool.sh");')
- self.script.append('delete("/system/bin/backuptool.functions");')
-
- def RunConfig(self, command):
- self.script.append('package_extract_file("system/bin/modelid_cfg.sh", "/tmp/modelid_cfg.sh");')
- self.script.append('set_perm(0, 0, 0777, "/tmp/modelid_cfg.sh");')
- self.script.append(('run_program("/tmp/modelid_cfg.sh", "%s");' % command))
-
- def RunFixPerm(self):
- self.script.append('package_extract_file("system/bin/fix_storage_permissions.sh", "/tmp/fix_storage_permissions.sh");')
- self.script.append('set_perm(0, 0, 0777, "/tmp/fix_storage_permissions.sh");')
- self.script.append('run_program("/tmp/fix_storage_permissions.sh");')
-
- def ShowProgress(self, frac, dur):
- """Update the progress bar, advancing it over 'frac' over the next
- 'dur' seconds. 'dur' may be zero to advance it via SetProgress
- commands instead of by time."""
- self.script.append("show_progress(%f, %d);" % (frac, int(dur)))
-
- def SetProgress(self, frac):
- """Set the position of the progress bar within the chunk defined
- by the most recent ShowProgress call. 'frac' should be in
- [0,1]."""
- self.script.append("set_progress(%f);" % (frac,))
-
- def PatchCheck(self, filename, *sha1):
- """Check that the given file (or MTD reference) has one of the
- given *sha1 hashes, checking the version saved in cache if the
- file does not match."""
- self.script.append('assert(apply_patch_check("%s"' % (filename,) +
- "".join([', "%s"' % (i,) for i in sha1]) +
- '));')
-
- def FileCheck(self, filename, *sha1):
- """Check that the given file (or MTD reference) has one of the
- given *sha1 hashes."""
- self.script.append('assert(sha1_check(read_file("%s")' % (filename,) +
- "".join([', "%s"' % (i,) for i in sha1]) +
- '));')
-
- def CacheFreeSpaceCheck(self, amount):
- """Check that there's at least 'amount' space that can be made
- available on /cache."""
- self.script.append("assert(apply_patch_space(%d));" % (amount,))
-
- def Mount(self, mount_point):
- """Mount the partition with the given mount_point."""
- fstab = self.info.get("fstab", None)
- if fstab:
- p = fstab[mount_point]
- self.script.append('mount("%s", "%s", "%s", "%s");' %
- (p.fs_type, common.PARTITION_TYPES[p.fs_type],
- p.device, p.mount_point))
- self.mounts.add(p.mount_point)
-
- def Unmount(self, mount_point):
- """Unmount the partiiton with the given mount_point."""
- if mount_point in self.mounts:
- self.mounts.remove(mount_point)
- self.script.append('unmount("%s");' % (mount_point,))
-
- def UnpackPackageDir(self, src, dst):
- """Unpack a given directory from the OTA package into the given
- destination directory."""
- self.script.append('package_extract_dir("%s", "%s");' % (src, dst))
-
- def Comment(self, comment):
- """Write a comment into the update script."""
- self.script.append("")
- for i in comment.split("\n"):
- self.script.append("# " + i)
- self.script.append("")
-
- def Print(self, message):
- """Log a message to the screen (if the logs are visible)."""
- self.script.append('ui_print("%s");' % (message,))
-
- def FormatPartition(self, partition):
- """Format the given partition, specified by its mount point (eg,
- "/system")."""
-
- reserve_size = 0
- fstab = self.info.get("fstab", None)
- if fstab:
- p = fstab[partition]
- self.script.append('format("%s", "%s", "%s", "%s", "%s");' %
- (p.fs_type, common.PARTITION_TYPES[p.fs_type],
- p.device, p.length, p.mount_point))
-
- def DeleteFiles(self, file_list):
- """Delete all files in file_list."""
- if not file_list: return
- cmd = "delete(" + ",\0".join(['"%s"' % (i,) for i in file_list]) + ");"
- self.script.append(self._WordWrap(cmd))
-
- def ApplyPatch(self, srcfile, tgtfile, tgtsize, tgtsha1, *patchpairs):
- """Apply binary patches (in *patchpairs) to the given srcfile to
- produce tgtfile (which may be "-" to indicate overwriting the
- source file."""
- if len(patchpairs) % 2 != 0 or len(patchpairs) == 0:
- raise ValueError("bad patches given to ApplyPatch")
- cmd = ['apply_patch("%s",\0"%s",\0%s,\0%d'
- % (srcfile, tgtfile, tgtsha1, tgtsize)]
- for i in range(0, len(patchpairs), 2):
- cmd.append(',\0%s, package_extract_file("%s")' % patchpairs[i:i+2])
- cmd.append(');')
- cmd = "".join(cmd)
- self.script.append(self._WordWrap(cmd))
-
- def WriteRawImage(self, mount_point, fn):
- """Write the given package file into the partition for the given
- mount point."""
-
- fstab = self.info["fstab"]
- if fstab:
- p = fstab[mount_point]
- partition_type = common.PARTITION_TYPES[p.fs_type]
- args = {'device': p.device, 'fn': fn}
- if partition_type == "MTD":
- self.script.append(
- 'package_extract_file("%(fn)s", "/tmp/boot.img");'
- 'write_raw_image("/tmp/boot.img", "%(device)s");' % args
- % args)
- elif partition_type == "EMMC":
- self.script.append(
- 'package_extract_file("%(fn)s", "%(device)s");' % args)
- elif partition_type == "BML":
- self.script.append(
- ('assert(package_extract_file("%(fn)s", "/tmp/%(device)s.img"),\n'
- ' write_raw_image("/tmp/%(device)s.img", "%(device)s"),\n'
- ' delete("/tmp/%(device)s.img"));') % args)
- else:
- raise ValueError("don't know how to write \"%s\" partitions" % (p.fs_type,))
-
- def SetPermissions(self, fn, uid, gid, mode):
- """Set file ownership and permissions."""
- self.script.append('set_perm(%d, %d, 0%o, "%s");' % (uid, gid, mode, fn))
-
- def SetPermissionsRecursive(self, fn, uid, gid, dmode, fmode):
- """Recursively set path ownership and permissions."""
- self.script.append('set_perm_recursive(%d, %d, 0%o, 0%o, "%s");'
- % (uid, gid, dmode, fmode, fn))
-
- def MakeSymlinks(self, symlink_list):
- """Create symlinks, given a list of (dest, link) pairs."""
- by_dest = {}
- for d, l in symlink_list:
- by_dest.setdefault(d, []).append(l)
-
- for dest, links in sorted(by_dest.iteritems()):
- cmd = ('symlink("%s", ' % (dest,) +
- ",\0".join(['"' + i + '"' for i in sorted(links)]) + ");")
- self.script.append(self._WordWrap(cmd))
-
- def AppendExtra(self, extra):
- """Append text verbatim to the output script."""
- self.script.append(extra)
-
- def UnmountAll(self):
- for p in sorted(self.mounts):
- self.script.append('unmount("%s");' % (p,))
- self.mounts = set()
-
- def AddToZip(self, input_zip, output_zip, input_path=None):
- """Write the accumulated script to the output_zip file. input_zip
- is used as the source for the 'updater' binary needed to run
- script. If input_path is not None, it will be used as a local
- path for the binary instead of input_zip."""
-
- self.UnmountAll()
-
- common.ZipWriteStr(output_zip, "META-INF/com/google/android/updater-script",
- "\n".join(self.script) + "\n")
-
- if input_path is None:
- data = input_zip.read("OTA/bin/updater")
- else:
- data = open(os.path.join(input_path, "updater")).read()
- common.ZipWriteStr(output_zip, "META-INF/com/google/android/update-binary",
- data, perms=0755)
diff --git a/releasetools/sony_ota_from_target_files b/releasetools/sony_ota_from_target_files
deleted file mode 100755
index acc9e41..0000000
--- a/releasetools/sony_ota_from_target_files
+++ /dev/null
@@ -1,876 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2008 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.
-
-"""
-Given a target-files zipfile, produces an OTA package that installs
-that build. An incremental OTA is produced if -i is given, otherwise
-a full OTA is produced.
-
-Usage: ota_from_target_files [flags] input_target_files output_ota_package
-
- -b (--board_config) <file>
- Deprecated.
-
- -k (--package_key) <key> Key to use to sign the package (default is
- the value of default_system_dev_certificate from the input
- target-files's META/misc_info.txt, or
- "build/target/product/security/testkey" if that value is not
- specified).
-
- For incremental OTAs, the default value is based on the source
- target-file, not the target build.
-
- -i (--incremental_from) <file>
- Generate an incremental OTA using the given target-files zip as
- the starting build.
-
- -w (--wipe_user_data)
- Generate an OTA package that will wipe the user data partition
- when installed.
-
- -n (--no_prereq)
- Omit the timestamp prereq check normally included at the top of
- the build scripts (used for developer OTA packages which
- legitimately need to go back and forth).
-
- -e (--extra_script) <file>
- Insert the contents of file at the end of the update script.
-
- -a (--aslr_mode) <on|off>
- Specify whether to turn on ASLR for the package (on by default).
-
- --backup <boolean>
- Enable or disable the execution of backuptool.sh.
- Disabled by default.
-
- --configid <boolean>
- Enable or disable the execution of modelid_cfg.sh.
- Enabled by default.
-
- --override_device <device>
- Override device-specific asserts. Can be a comma-separated list.
-
-"""
-
-import sys
-
-if sys.hexversion < 0x02040000:
- print >> sys.stderr, "Python 2.4 or newer is required."
- sys.exit(1)
-
-import copy
-import errno
-import os
-import re
-import subprocess
-import tempfile
-import time
-import zipfile
-
-try:
- from hashlib import sha1 as sha1
-except ImportError:
- from sha import sha as sha1
-
-import common
-import edify_generator
-
-OPTIONS = common.OPTIONS
-OPTIONS.package_key = None
-OPTIONS.incremental_source = None
-OPTIONS.require_verbatim = set()
-OPTIONS.prohibit_verbatim = set(("system/build.prop",))
-OPTIONS.patch_threshold = 0.95
-OPTIONS.wipe_user_data = False
-OPTIONS.omit_prereq = False
-OPTIONS.extra_script = None
-OPTIONS.aslr_mode = True
-OPTIONS.worker_threads = 3
-OPTIONS.backuptool = False
-OPTIONS.modelidcfg = True
-OPTIONS.override_device = 'auto'
-
-def MostPopularKey(d, default):
- """Given a dict, return the key corresponding to the largest
- value. Returns 'default' if the dict is empty."""
- x = [(v, k) for (k, v) in d.iteritems()]
- if not x: return default
- x.sort()
- return x[-1][1]
-
-
-def IsSymlink(info):
- """Return true if the zipfile.ZipInfo object passed in represents a
- symlink."""
- return (info.external_attr >> 16) & 0770000 == 0120000
-
-def IsRegular(info):
- """Return true if the zipfile.ZipInfo object passed in represents a
- symlink."""
- return (info.external_attr >> 28) == 010
-
-class Item:
- """Items represent the metadata (user, group, mode) of files and
- directories in the system image."""
- ITEMS = {}
- def __init__(self, name, dir=False):
- self.name = name
- self.uid = None
- self.gid = None
- self.mode = None
- self.dir = dir
-
- if name:
- self.parent = Item.Get(os.path.dirname(name), dir=True)
- self.parent.children.append(self)
- else:
- self.parent = None
- if dir:
- self.children = []
-
- def Dump(self, indent=0):
- if self.uid is not None:
- print "%s%s %d %d %o" % (" "*indent, self.name, self.uid, self.gid, self.mode)
- else:
- print "%s%s %s %s %s" % (" "*indent, self.name, self.uid, self.gid, self.mode)
- if self.dir:
- print "%s%s" % (" "*indent, self.descendants)
- print "%s%s" % (" "*indent, self.best_subtree)
- for i in self.children:
- i.Dump(indent=indent+1)
-
- @classmethod
- def Get(cls, name, dir=False):
- if name not in cls.ITEMS:
- cls.ITEMS[name] = Item(name, dir=dir)
- return cls.ITEMS[name]
-
- @classmethod
- def GetMetadata(cls, input_zip):
-
- try:
- # See if the target_files contains a record of what the uid,
- # gid, and mode is supposed to be.
- output = input_zip.read("META/filesystem_config.txt")
- except KeyError:
- # Run the external 'fs_config' program to determine the desired
- # uid, gid, and mode for every Item object. Note this uses the
- # one in the client now, which might not be the same as the one
- # used when this target_files was built.
- p = common.Run(["fs_config"], stdin=subprocess.PIPE,
- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- suffix = { False: "", True: "/" }
- input = "".join(["%s%s\n" % (i.name, suffix[i.dir])
- for i in cls.ITEMS.itervalues() if i.name])
- output, error = p.communicate(input)
- assert not error
-
- for line in output.split("\n"):
- if not line: continue
- name, uid, gid, mode = line.split()
- i = cls.ITEMS.get(name, None)
- if i is not None:
- i.uid = int(uid)
- i.gid = int(gid)
- i.mode = int(mode, 8)
- if i.dir:
- i.children.sort(key=lambda i: i.name)
-
- # set metadata for the files generated by this script.
- i = cls.ITEMS.get("system/recovery-from-boot.p", None)
- if i: i.uid, i.gid, i.mode = 0, 0, 0644
- i = cls.ITEMS.get("system/etc/install-recovery.sh", None)
- if i: i.uid, i.gid, i.mode = 0, 0, 0544
-
- def CountChildMetadata(self):
- """Count up the (uid, gid, mode) tuples for all children and
- determine the best strategy for using set_perm_recursive and
- set_perm to correctly chown/chmod all the files to their desired
- values. Recursively calls itself for all descendants.
-
- Returns a dict of {(uid, gid, dmode, fmode): count} counting up
- all descendants of this node. (dmode or fmode may be None.) Also
- sets the best_subtree of each directory Item to the (uid, gid,
- dmode, fmode) tuple that will match the most descendants of that
- Item.
- """
-
- assert self.dir
- d = self.descendants = {(self.uid, self.gid, self.mode, None): 1}
- for i in self.children:
- if i.dir:
- for k, v in i.CountChildMetadata().iteritems():
- d[k] = d.get(k, 0) + v
- else:
- k = (i.uid, i.gid, None, i.mode)
- d[k] = d.get(k, 0) + 1
-
- # Find the (uid, gid, dmode, fmode) tuple that matches the most
- # descendants.
-
- # First, find the (uid, gid) pair that matches the most
- # descendants.
- ug = {}
- for (uid, gid, _, _), count in d.iteritems():
- ug[(uid, gid)] = ug.get((uid, gid), 0) + count
- ug = MostPopularKey(ug, (0, 0))
-
- # Now find the dmode and fmode that match the most descendants
- # with that (uid, gid), and choose those.
- best_dmode = (0, 0755)
- best_fmode = (0, 0644)
- for k, count in d.iteritems():
- if k[:2] != ug: continue
- if k[2] is not None and count >= best_dmode[0]: best_dmode = (count, k[2])
- if k[3] is not None and count >= best_fmode[0]: best_fmode = (count, k[3])
- self.best_subtree = ug + (best_dmode[1], best_fmode[1])
-
- return d
-
- def SetPermissions(self, script):
- """Append set_perm/set_perm_recursive commands to 'script' to
- set all permissions, users, and groups for the tree of files
- rooted at 'self'."""
-
- self.CountChildMetadata()
-
- def recurse(item, current):
- # current is the (uid, gid, dmode, fmode) tuple that the current
- # item (and all its children) have already been set to. We only
- # need to issue set_perm/set_perm_recursive commands if we're
- # supposed to be something different.
- if item.dir:
- if current != item.best_subtree:
- script.SetPermissionsRecursive("/"+item.name, *item.best_subtree)
- current = item.best_subtree
-
- if item.uid != current[0] or item.gid != current[1] or \
- item.mode != current[2]:
- script.SetPermissions("/"+item.name, item.uid, item.gid, item.mode)
-
- for i in item.children:
- recurse(i, current)
- else:
- if item.uid != current[0] or item.gid != current[1] or \
- item.mode != current[3]:
- script.SetPermissions("/"+item.name, item.uid, item.gid, item.mode)
-
- recurse(self, (-1, -1, -1, -1))
-
-
-def CopySystemFiles(input_zip, output_zip=None,
- substitute=None):
- """Copies files underneath system/ in the input zip to the output
- zip. Populates the Item class with their metadata, and returns a
- list of symlinks. output_zip may be None, in which case the copy is
- skipped (but the other side effects still happen). substitute is an
- optional dict of {output filename: contents} to be output instead of
- certain input files.
- """
-
- symlinks = []
-
- for info in input_zip.infolist():
- if info.filename.startswith("SYSTEM/"):
- basefilename = info.filename[7:]
- if IsSymlink(info):
- symlinks.append((input_zip.read(info.filename),
- "/system/" + basefilename))
- else:
- info2 = copy.copy(info)
- fn = info2.filename = "system/" + basefilename
- if substitute and fn in substitute and substitute[fn] is None:
- continue
- if output_zip is not None:
- if substitute and fn in substitute:
- data = substitute[fn]
- else:
- data = input_zip.read(info.filename)
- output_zip.writestr(info2, data)
- if fn.endswith("/"):
- Item.Get(fn[:-1], dir=True)
- else:
- Item.Get(fn, dir=False)
-
- symlinks.sort()
- return symlinks
-
-
-def SignOutput(temp_zip_name, output_zip_name):
- key_passwords = common.GetKeyPasswords([OPTIONS.package_key])
- pw = key_passwords[OPTIONS.package_key]
-
- common.SignFile(temp_zip_name, output_zip_name, OPTIONS.package_key, pw,
- whole_file=True)
-
-
-def AppendAssertions(script, input_zip):
- if OPTIONS.override_device == "auto":
- device = GetBuildProp("ro.product.device", input_zip)
- else:
- device = OPTIONS.override_device
- script.AssertDevice(device)
-
-
-def MakeRecoveryPatch(output_zip, recovery_img, boot_img):
- """Generate a binary patch that creates the recovery image starting
- with the boot image. (Most of the space in these images is just the
- kernel, which is identical for the two, so the resulting patch
- should be efficient.) Add it to the output zip, along with a shell
- script that is run from init.rc on first boot to actually do the
- patching and install the new recovery image.
-
- recovery_img and boot_img should be File objects for the
- corresponding images. info should be the dictionary returned by
- common.LoadInfoDict() on the input target_files.
-
- Returns an Item for the shell script, which must be made
- executable.
- """
-
- d = common.Difference(recovery_img, boot_img)
- _, _, patch = d.ComputePatch()
- common.ZipWriteStr(output_zip, "recovery/recovery-from-boot.p", patch)
- Item.Get("system/recovery-from-boot.p", dir=False)
-
- boot_type, boot_device = common.GetTypeAndDevice("/boot", OPTIONS.info_dict)
- recovery_type, recovery_device = common.GetTypeAndDevice("/recovery", OPTIONS.info_dict)
-
- sh = """#!/system/bin/sh
-if ! applypatch -c %(recovery_type)s:%(recovery_device)s:%(recovery_size)d:%(recovery_sha1)s; then
- log -t recovery "Installing new recovery image"
- applypatch %(boot_type)s:%(boot_device)s:%(boot_size)d:%(boot_sha1)s %(recovery_type)s:%(recovery_device)s %(recovery_sha1)s %(recovery_size)d %(boot_sha1)s:/system/recovery-from-boot.p
-else
- log -t recovery "Recovery image already installed"
-fi
-""" % { 'boot_size': boot_img.size,
- 'boot_sha1': boot_img.sha1,
- 'recovery_size': recovery_img.size,
- 'recovery_sha1': recovery_img.sha1,
- 'boot_type': boot_type,
- 'boot_device': boot_device,
- 'recovery_type': recovery_type,
- 'recovery_device': recovery_device,
- }
- common.ZipWriteStr(output_zip, "recovery/etc/install-recovery.sh", sh)
- return Item.Get("system/etc/install-recovery.sh", dir=False)
-
-
-def WriteFullOTAPackage(input_zip, output_zip):
- # TODO: how to determine this? We don't know what version it will
- # be installed on top of. For now, we expect the API just won't
- # change very often.
- script = edify_generator.EdifyGenerator(3, OPTIONS.info_dict)
-
- metadata = {"post-build": GetBuildProp("ro.build.fingerprint", input_zip),
- "pre-device": GetBuildProp("ro.product.device", input_zip),
- "post-timestamp": GetBuildProp("ro.build.date.utc", input_zip),
- }
-
- device_specific = common.DeviceSpecificParams(
- input_zip=input_zip,
- input_version=OPTIONS.info_dict["recovery_api_version"],
- output_zip=output_zip,
- script=script,
- input_tmp=OPTIONS.input_tmp,
- metadata=metadata,
- info_dict=OPTIONS.info_dict)
-
- #if not OPTIONS.omit_prereq:
- # ts = GetBuildProp("ro.build.date.utc", input_zip)
- # script.AssertOlderBuild(ts)
-
- AppendAssertions(script, input_zip)
- device_specific.FullOTA_Assertions()
- device_specific.FullOTA_InstallBegin()
-
- if OPTIONS.backuptool:
- script.Mount("/system")
- script.RunBackup("backup")
- script.Unmount("/system")
-
- script.ShowProgress(0.5, 0)
-
- if OPTIONS.wipe_user_data:
- script.FormatPartition("/data")
-
- if "selinux_fc" in OPTIONS.info_dict:
- WritePolicyConfig(OPTIONS.info_dict["selinux_fc"], output_zip)
-
- script.FormatPartition("/system")
- script.Mount("/system")
- #script.UnpackPackageDir("recovery", "/system")
- script.UnpackPackageDir("system", "/system")
-
- symlinks = CopySystemFiles(input_zip, output_zip)
- script.MakeSymlinks(symlinks)
-
- #boot_img = common.GetBootableImage("boot.img", "boot.img",
- # OPTIONS.input_tmp, "BOOT")
- #recovery_img = common.GetBootableImage("recovery.img", "recovery.img",
- # OPTIONS.input_tmp, "RECOVERY")
- #MakeRecoveryPatch(output_zip, recovery_img, boot_img)
-
- Item.GetMetadata(input_zip)
- Item.Get("system").SetPermissions(script)
-
- kernel_img = open(OPTIONS.device_out + '/boot.img','r')
- common.ZipWriteStr(output_zip, "boot.img", kernel_img.read())
- kernel_img.close()
-
-# common.CheckSize(boot_img.data, "boot.img", OPTIONS.info_dict)
-# common.ZipWriteStr(output_zip, "boot.img", boot_img.data)
-# script.ShowProgress(0.2, 0)
-
- if OPTIONS.backuptool:
- script.ShowProgress(0.2, 10)
- script.RunBackup("restore")
-
- if OPTIONS.modelidcfg:
- script.RunConfig("")
-
- script.ShowProgress(0.2, 10)
- script.WriteRawImage("/boot", "boot.img")
-
- script.RunFixPerm()
-
- script.ShowProgress(0.1, 0)
- device_specific.FullOTA_InstallEnd()
-
- if OPTIONS.extra_script is not None:
- script.AppendExtra(OPTIONS.extra_script)
-
- script.UnmountAll()
- script.AddToZip(input_zip, output_zip)
- WriteMetadata(metadata, output_zip)
-
-def WritePolicyConfig(file_context, output_zip):
- f = open(file_context, 'r');
- basename = os.path.basename(file_context)
- common.ZipWriteStr(output_zip, basename, f.read())
-
-
-def WriteMetadata(metadata, output_zip):
- common.ZipWriteStr(output_zip, "META-INF/com/android/metadata",
- "".join(["%s=%s\n" % kv
- for kv in sorted(metadata.iteritems())]))
-
-def LoadSystemFiles(z):
- """Load all the files from SYSTEM/... in a given target-files
- ZipFile, and return a dict of {filename: File object}."""
- out = {}
- for info in z.infolist():
- if info.filename.startswith("SYSTEM/") and not IsSymlink(info):
- basefilename = info.filename[7:]
- fn = "system/" + basefilename
- data = z.read(info.filename)
- out[fn] = common.File(fn, data)
- return out
-
-
-def GetBuildProp(property, z):
- """Return the fingerprint of the build of a given target-files
- ZipFile object."""
- bp = z.read("SYSTEM/build.prop")
- if not property:
- return bp
- m = re.search(re.escape(property) + r"=(.*)\n", bp)
- if not m:
- raise common.ExternalError("couldn't find %s in build.prop" % (property,))
- return m.group(1).strip()
-
-
-def WriteIncrementalOTAPackage(target_zip, source_zip, output_zip):
- source_version = OPTIONS.source_info_dict["recovery_api_version"]
- target_version = OPTIONS.target_info_dict["recovery_api_version"]
-
- if source_version == 0:
- print ("WARNING: generating edify script for a source that "
- "can't install it.")
- script = edify_generator.EdifyGenerator(source_version, OPTIONS.target_info_dict)
-
- metadata = {"pre-device": GetBuildProp("ro.product.device", source_zip),
- "post-timestamp": GetBuildProp("ro.build.date.utc", target_zip),
- }
-
- device_specific = common.DeviceSpecificParams(
- source_zip=source_zip,
- source_version=source_version,
- target_zip=target_zip,
- target_version=target_version,
- output_zip=output_zip,
- script=script,
- metadata=metadata,
- info_dict=OPTIONS.info_dict)
-
- print "Loading target..."
- target_data = LoadSystemFiles(target_zip)
- print "Loading source..."
- source_data = LoadSystemFiles(source_zip)
-
- verbatim_targets = []
- patch_list = []
- diffs = []
- largest_source_size = 0
- for fn in sorted(target_data.keys()):
- tf = target_data[fn]
- assert fn == tf.name
- sf = source_data.get(fn, None)
-
- if sf is None or fn in OPTIONS.require_verbatim:
- # This file should be included verbatim
- if fn in OPTIONS.prohibit_verbatim:
- raise common.ExternalError("\"%s\" must be sent verbatim" % (fn,))
- print "send", fn, "verbatim"
- tf.AddToZip(output_zip)
- verbatim_targets.append((fn, tf.size))
- elif tf.sha1 != sf.sha1:
- # File is different; consider sending as a patch
- diffs.append(common.Difference(tf, sf))
- else:
- # Target file identical to source.
- pass
-
- common.ComputeDifferences(diffs)
-
- for diff in diffs:
- tf, sf, d = diff.GetPatch()
- if d is None or len(d) > tf.size * OPTIONS.patch_threshold:
- # patch is almost as big as the file; don't bother patching
- tf.AddToZip(output_zip)
- verbatim_targets.append((tf.name, tf.size))
- else:
- common.ZipWriteStr(output_zip, "patch/" + tf.name + ".p", d)
- patch_list.append((tf.name, tf, sf, tf.size, common.sha1(d).hexdigest()))
- largest_source_size = max(largest_source_size, sf.size)
-
- source_fp = GetBuildProp("ro.build.fingerprint", source_zip)
- target_fp = GetBuildProp("ro.build.fingerprint", target_zip)
- metadata["pre-build"] = source_fp
- metadata["post-build"] = target_fp
-
- script.Mount("/system")
- script.AssertSomeFingerprint(source_fp, target_fp)
-
- source_boot = common.GetBootableImage(
- "/tmp/boot.img", "boot.img", OPTIONS.source_tmp, "BOOT")
- target_boot = common.GetBootableImage(
- "/tmp/boot.img", "boot.img", OPTIONS.target_tmp, "BOOT")
- updating_boot = (source_boot.data != target_boot.data)
-
- #source_recovery = common.GetBootableImage(
- # "/tmp/recovery.img", "recovery.img", OPTIONS.source_tmp, "RECOVERY")
- #target_recovery = common.GetBootableImage(
- # "/tmp/recovery.img", "recovery.img", OPTIONS.target_tmp, "RECOVERY")
- #updating_recovery = (source_recovery.data != target_recovery.data)
- updating_recovery = false
-
- # Here's how we divide up the progress bar:
- # 0.1 for verifying the start state (PatchCheck calls)
- # 0.8 for applying patches (ApplyPatch calls)
- # 0.1 for unpacking verbatim files, symlinking, and doing the
- # device-specific commands.
-
- AppendAssertions(script, target_zip)
- device_specific.IncrementalOTA_Assertions()
-
- script.Print("Verifying current system...")
-
- device_specific.IncrementalOTA_VerifyBegin()
-
- script.ShowProgress(0.1, 0)
- total_verify_size = float(sum([i[2].size for i in patch_list]) + 1)
- if updating_boot:
- total_verify_size += source_boot.size
- so_far = 0
-
- for fn, tf, sf, size, patch_sha in patch_list:
- script.PatchCheck("/"+fn, tf.sha1, sf.sha1)
- so_far += sf.size
- script.SetProgress(so_far / total_verify_size)
-
- if updating_boot:
- d = common.Difference(target_boot, source_boot)
- _, _, d = d.ComputePatch()
- print "boot target: %d source: %d diff: %d" % (
- target_boot.size, source_boot.size, len(d))
-
- common.ZipWriteStr(output_zip, "patch/boot.img.p", d)
-
- boot_type, boot_device = common.GetTypeAndDevice("/boot", OPTIONS.info_dict)
-
- script.PatchCheck("%s:%s:%d:%s:%d:%s" %
- (boot_type, boot_device,
- source_boot.size, source_boot.sha1,
- target_boot.size, target_boot.sha1))
- so_far += source_boot.size
- script.SetProgress(so_far / total_verify_size)
-
- if patch_list or updating_recovery or updating_boot:
- script.CacheFreeSpaceCheck(largest_source_size)
-
- device_specific.IncrementalOTA_VerifyEnd()
-
- script.Comment("---- start making changes here ----")
-
- device_specific.IncrementalOTA_InstallBegin()
-
- if OPTIONS.wipe_user_data:
- script.Print("Erasing user data...")
- script.FormatPartition("/data")
-
- script.Print("Removing unneeded files...")
- script.DeleteFiles(["/"+i[0] for i in verbatim_targets] +
- ["/"+i for i in sorted(source_data)
- if i not in target_data] +
- ["/system/recovery.img"])
-
- script.ShowProgress(0.8, 0)
- total_patch_size = float(sum([i[1].size for i in patch_list]) + 1)
- if updating_boot:
- total_patch_size += target_boot.size
- so_far = 0
-
- script.Print("Patching system files...")
- deferred_patch_list = []
- for item in patch_list:
- fn, tf, sf, size, _ = item
- if tf.name == "system/build.prop":
- deferred_patch_list.append(item)
- continue
- script.ApplyPatch("/"+fn, "-", tf.size, tf.sha1, sf.sha1, "patch/"+fn+".p")
- so_far += tf.size
- script.SetProgress(so_far / total_patch_size)
-
- if updating_boot:
- # Produce the boot image by applying a patch to the current
- # contents of the boot partition, and write it back to the
- # partition.
- script.Print("Patching boot image...")
- script.ApplyPatch("%s:%s:%d:%s:%d:%s"
- % (boot_type, boot_device,
- source_boot.size, source_boot.sha1,
- target_boot.size, target_boot.sha1),
- "-",
- target_boot.size, target_boot.sha1,
- source_boot.sha1, "patch/boot.img.p")
- so_far += target_boot.size
- script.SetProgress(so_far / total_patch_size)
- print "boot image changed; including."
- else:
- print "boot image unchanged; skipping."
-
- if updating_recovery:
- # Is it better to generate recovery as a patch from the current
- # boot image, or from the previous recovery image? For large
- # updates with significant kernel changes, probably the former.
- # For small updates where the kernel hasn't changed, almost
- # certainly the latter. We pick the first option. Future
- # complicated schemes may let us effectively use both.
- #
- # A wacky possibility: as long as there is room in the boot
- # partition, include the binaries and image files from recovery in
- # the boot image (though not in the ramdisk) so they can be used
- # as fodder for constructing the recovery image.
- MakeRecoveryPatch(output_zip, target_recovery, target_boot)
- script.DeleteFiles(["/system/recovery-from-boot.p",
- "/system/etc/install-recovery.sh"])
- print "recovery image changed; including as patch from boot."
- else:
- print "recovery image unchanged; skipping."
-
- script.ShowProgress(0.1, 10)
-
- target_symlinks = CopySystemFiles(target_zip, None)
-
- target_symlinks_d = dict([(i[1], i[0]) for i in target_symlinks])
- temp_script = script.MakeTemporary()
- Item.GetMetadata(target_zip)
- Item.Get("system").SetPermissions(temp_script)
-
- # Note that this call will mess up the tree of Items, so make sure
- # we're done with it.
- source_symlinks = CopySystemFiles(source_zip, None)
- source_symlinks_d = dict([(i[1], i[0]) for i in source_symlinks])
-
- # Delete all the symlinks in source that aren't in target. This
- # needs to happen before verbatim files are unpacked, in case a
- # symlink in the source is replaced by a real file in the target.
- to_delete = []
- for dest, link in source_symlinks:
- if link not in target_symlinks_d:
- to_delete.append(link)
- script.DeleteFiles(to_delete)
-
- if verbatim_targets:
- script.Print("Unpacking new files...")
- script.UnpackPackageDir("system", "/system")
-
- #if updating_recovery:
- # script.Print("Unpacking new recovery...")
- # script.UnpackPackageDir("recovery", "/system")
-
- script.Print("Symlinks and permissions...")
-
- # Create all the symlinks that don't already exist, or point to
- # somewhere different than what we want. Delete each symlink before
- # creating it, since the 'symlink' command won't overwrite.
- to_create = []
- for dest, link in target_symlinks:
- if link in source_symlinks_d:
- if dest != source_symlinks_d[link]:
- to_create.append((dest, link))
- else:
- to_create.append((dest, link))
- script.DeleteFiles([i[1] for i in to_create])
- script.MakeSymlinks(to_create)
-
- # Now that the symlinks are created, we can set all the
- # permissions.
- script.AppendScript(temp_script)
-
- # Do device-specific installation (eg, write radio image).
- device_specific.IncrementalOTA_InstallEnd()
-
- if OPTIONS.extra_script is not None:
- script.AppendExtra(OPTIONS.extra_script)
-
- # Patch the build.prop file last, so if something fails but the
- # device can still come up, it appears to be the old build and will
- # get set the OTA package again to retry.
- script.Print("Patching remaining system files...")
- for item in deferred_patch_list:
- fn, tf, sf, size, _ = item
- script.ApplyPatch("/"+fn, "-", tf.size, tf.sha1, sf.sha1, "patch/"+fn+".p")
- script.SetPermissions("/system/build.prop", 0, 0, 0644)
-
- script.AddToZip(target_zip, output_zip)
- WriteMetadata(metadata, output_zip)
-
-
-def main(argv):
-
- def option_handler(o, a):
- if o in ("-b", "--board_config"):
- pass # deprecated
- elif o in ("-k", "--package_key"):
- OPTIONS.package_key = a
- elif o in ("-i", "--incremental_from"):
- OPTIONS.incremental_source = a
- elif o in ("-w", "--wipe_user_data"):
- OPTIONS.wipe_user_data = True
- elif o in ("-n", "--no_prereq"):
- OPTIONS.omit_prereq = True
- elif o in ("-e", "--extra_script"):
- OPTIONS.extra_script = a
- elif o in ("-a", "--aslr_mode"):
- if a in ("on", "On", "true", "True", "yes", "Yes"):
- OPTIONS.aslr_mode = True
- else:
- OPTIONS.aslr_mode = False
- elif o in ("--worker_threads"):
- OPTIONS.worker_threads = int(a)
- elif o in ("--backup"):
- OPTIONS.backuptool = bool(a.lower() == 'true')
- elif o in ("--configid"):
- OPTIONS.modelidcfg = bool(a.lower() == 'true')
- elif o in ("--override_device"):
- OPTIONS.override_device = a
- else:
- return False
- return True
-
- args = common.ParseOptions(argv, __doc__,
- extra_opts="b:k:i:d:wne:a:",
- extra_long_opts=["board_config=",
- "package_key=",
- "incremental_from=",
- "wipe_user_data",
- "no_prereq",
- "extra_script=",
- "worker_threads=",
- "aslr_mode=",
- "backup=",
- "override_device="],
- extra_option_handler=option_handler)
-
- if len(args) != 2:
- common.Usage(__doc__)
- sys.exit(1)
-
- if OPTIONS.extra_script is not None:
- OPTIONS.extra_script = open(OPTIONS.extra_script).read()
-
- print "unzipping target target-files..."
- OPTIONS.input_tmp, input_zip = common.UnzipTemp(args[0])
-
- OPTIONS.target_tmp = OPTIONS.input_tmp
- OPTIONS.info_dict = common.LoadInfoDict(input_zip)
- if OPTIONS.verbose:
- print "--- target info ---"
- common.DumpInfoDict(OPTIONS.info_dict)
-
- if OPTIONS.device_specific is None:
- OPTIONS.device_specific = OPTIONS.info_dict.get("tool_extensions", None)
- if OPTIONS.device_specific is not None:
- OPTIONS.device_specific = os.path.normpath(OPTIONS.device_specific)
- print "using device-specific extensions in", OPTIONS.device_specific
-
- temp_zip_file = tempfile.NamedTemporaryFile()
- output_zip = zipfile.ZipFile(temp_zip_file, "w",
- compression=zipfile.ZIP_DEFLATED)
-
- OPTIONS.device_out = os.path.dirname (args[1])
-
- if OPTIONS.incremental_source is None:
- WriteFullOTAPackage(input_zip, output_zip)
- if OPTIONS.package_key is None:
- OPTIONS.package_key = OPTIONS.info_dict.get(
- "default_system_dev_certificate",
- "build/target/product/security/testkey")
- else:
- print "unzipping source target-files..."
- OPTIONS.source_tmp, source_zip = common.UnzipTemp(OPTIONS.incremental_source)
- OPTIONS.target_info_dict = OPTIONS.info_dict
- OPTIONS.source_info_dict = common.LoadInfoDict(source_zip)
- if OPTIONS.package_key is None:
- OPTIONS.package_key = OPTIONS.source_info_dict.get(
- "default_system_dev_certificate",
- "build/target/product/security/testkey")
- if OPTIONS.verbose:
- print "--- source info ---"
- common.DumpInfoDict(OPTIONS.source_info_dict)
- WriteIncrementalOTAPackage(input_zip, source_zip, output_zip)
-
- output_zip.close()
-
- SignOutput(temp_zip_file.name, args[1])
- temp_zip_file.close()
-
- common.Cleanup()
-
- print "done."
-
-
-if __name__ == '__main__':
- try:
- common.CloseInheritedPipes()
- main(sys.argv[1:])
- except common.ExternalError, e:
- print
- print " ERROR: %s" % (e,)
- print
- sys.exit(1)
diff --git a/rootdir/cmdline.txt b/rootdir/cmdline.txt
new file mode 100644
index 0000000..e143d6b
--- /dev/null
+++ b/rootdir/cmdline.txt
@@ -0,0 +1 @@
+androidboot.hardware=qcom user_debug=31 androidboot.baseband=msm msm_rtb.filter=0x3F ehci-hcd.park=3 kgsl.mmutype=gpummu
diff --git a/rootdir/fstab.qcom b/rootdir/fstab.qcom
new file mode 100644
index 0000000..2014bf9
--- /dev/null
+++ b/rootdir/fstab.qcom
@@ -0,0 +1,8 @@
+# Android fstab file.
+#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
+# The filesystem that contains the filesystem checker binary (typically /system) cannot
+# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
+
+/dev/block/platform/msm_sdcc.1/by-name/System /system ext4 ro,barrier=1 wait
+/dev/block/platform/msm_sdcc.1/by-name/Cache /cache ext4 noatime,nosuid,nodev,barrier=1,data=ordered wait,check
+/dev/block/platform/msm_sdcc.1/by-name/Userdata /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc wait,check,encryptable=footer
diff --git a/rootdir/init.qcom.rc b/rootdir/init.qcom.rc
new file mode 100644
index 0000000..18295bd
--- /dev/null
+++ b/rootdir/init.qcom.rc
@@ -0,0 +1,494 @@
+#
+# 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.
+#
+
+import init.device.rc
+import init.sony.usb.rc
+
+on early-init
+ mount debugfs debugfs /sys/kernel/debug
+
+on init
+ mkdir /storage 0775 system system
+ mkdir /storage/sdcard0 0775 system system
+ mkdir /storage/sdcard1 0775 system system
+ mkdir /storage/usbdisk 0775 system system
+
+ export EXTERNAL_STORAGE /storage/sdcard0
+ export SECONDARY_STORAGE /storage/sdcard1
+
+ # for backwards compatibility
+ symlink /storage/sdcard0 /sdcard
+ symlink /storage/sdcard0 /mnt/sdcard
+ symlink /storage/sdcard1 /ext_card
+ symlink /storage/sdcard1 /mnt/ext_card
+ symlink /storage/usbdisk /usbdisk
+ symlink /storage/usbdisk /mnt/usbdisk
+
+ symlink /dev/socket /tmp
+
+on fs
+ mount_all ./fstab.qcom
+
+ chmod 0775 /data/etc
+ start tad
+ exec /system/bin/wait4tad
+ exec /system/bin/taimport
+ start ta_qmi_service
+ start rmt_storage
+
+on early-boot
+ # set RLIMIT_MEMLOCK to 64MB
+ setrlimit 8 67108864 67108864
+
+ # Permissions for AKM897x sensor
+ chown system system /data/misc/akm_set.txt
+ chown system system /sys/class/compass/akm8972/interval
+ chown system system /sys/class/compass/akm8972/single
+ chown system system /sys/class/compass/akm8972/registers
+
+ # WTF
+ chmod 0666 /proc/cmdline
+
+ #Run pre_hw_config.sh before entering charge only mode.
+ exec /system/bin/sh /system/etc/pre_hw_config.sh
+
+ # Start the offline charging (This blocks booting further in some cases)
+ exec /system/bin/chargemon
+
+ # Touch firmware update
+ exec /system/bin/sh /system/etc/clearpad_fwloader.sh
+
+on boot
+ exec /system/bin/btnvtool -O
+ chown bluetooth bluetooth /sys/module/bluetooth_power/parameters/power
+ chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type
+ chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
+ chown bluetooth bluetooth /proc/bluetooth/sleep/proto
+ chown system system /sys/module/sco/parameters/disable_esco
+ chown bluetooth bluetooth /sys/module/hci_smd/parameters/hcismd_set
+ chmod 0660 /sys/module/bluetooth_power/parameters/power
+ chmod 0660 /sys/module/hci_smd/parameters/hcismd_set
+ chmod 0660 /sys/class/rfkill/rfkill0/state
+ chmod 0660 /proc/bluetooth/sleep/proto
+ chown bluetooth bluetooth /dev/ttyHS0
+ chmod 0660 /dev/ttyHS0
+ chown bluetooth bluetooth /sys/devices/platform/msm_serial_hs.0/clock
+ chmod 0660 /sys/devices/platform/msm_serial_hs.0/clock
+
+ #Create QMUX deamon socket area
+ mkdir /dev/socket/qmux_radio 0770 radio radio
+ chmod 2770 /dev/socket/qmux_radio
+ mkdir /dev/socket/qmux_audio 0770 media audio
+ chmod 2770 /dev/socket/qmux_audio
+ mkdir /dev/socket/qmux_bluetooth 0770 bluetooth bluetooth
+ chmod 2770 /dev/socket/qmux_bluetooth
+ mkdir /dev/socket/qmux_gps 0770 gps gps
+ chmod 2770 /dev/socket/qmux_gps
+
+ # Allow QMUX daemon to assign port open wait time
+ chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait
+
+ setprop ro.telephony.call_ring.multiple false
+
+ #Remove SUID bit for iproute2 ip tool
+ chmod 0755 /system/bin/ip
+
+ #port-bridge
+ chmod 0660 /dev/smd0
+ chown system system /dev/smd0
+
+ #BT DUN port-bridge
+ chmod 0660 /dev/smd7
+ chown bluetooth bluetooth /dev/smd7
+
+ chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state
+
+ # create symlink for fb1 as HDMI
+ symlink /dev/graphics/fb1 /dev/graphics/hdmi
+
+ # Remove write permissions to video related nodes
+ chmod 0664 /sys/devices/virtual/graphics/fb1/hpd
+ chmod 0664 /sys/devices/virtual/graphics/fb1/video_mode
+ chmod 0664 /sys/devices/virtual/graphics/fb1/format_3d
+
+ # Change owner and group for media server and surface flinger
+ chown system system /sys/devices/virtual/graphics/fb1/format_3d
+ chown system system /sys/devices/virtual/graphics/fb1/hpd
+
+ # Change owner and group to get adopter/device ids from MHL driver
+ chown system system /sys/class/mhl/sii8334/adopter_id
+ chown system system /sys/class/mhl/sii8334/device_id
+
+ #For bridgemgr daemon to inform the USB driver of the correct transport
+ chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport
+
+ chmod 660 /dev/rtc0
+ chown system system /dev/rtc0
+
+ chown root system /proc/net/ip_conntrack
+
+ # Owner for the proximity sensor
+ chown system system /sys/devices/i2c-12/12-0054/threshold
+ chown system system /sys/devices/i2c-12/12-0054/nburst
+
+ # LM35xx/cameralight
+ chown system system /sys/devices/i2c-10/10-0053/torch_enable
+ chmod 666 /sys/devices/i2c-10/10-0053/torch_enable
+ chown system system /sys/devices/i2c-10/10-0053/torch_current
+ chmod 666 /sys/devices/i2c-10/10-0053/torch_current
+ chown system camera /sys/devices/i2c-10/10-0053/privacy_enable
+ chown system camera /sys/devices/i2c-10/10-0053/privacy_current
+ chown system camera /sys/devices/i2c-10/10-0053/flash_enable
+ chown system camera /sys/devices/i2c-10/10-0053/flash_duration
+ chown system camera /sys/devices/i2c-10/10-0053/flash_synchronization
+ chown system camera /sys/devices/i2c-10/10-0053/flash_current
+ chown system camera /sys/devices/i2c-10/10-0053/status
+
+ # Panel backlight
+ chown system system /sys/class/leds/lcd-backlight_1/brightness
+ chmod 660 /sys/class/leds/lcd-backlight_1/brightness
+ chown system system /sys/class/leds/lcd-backlight_2/brightness
+ chmod 660 /sys/class/leds/lcd-backlight_2/brightness
+
+ # LED
+ chown system system /sys/class/leds/pwr-red/brightness
+ chmod 660 /sys/class/leds/pwr-red/brightness
+ chown system system /sys/class/leds/pwr-red/use_pattern
+ chmod 660 /sys/class/leds/pwr-red/use_pattern
+ chown system system /sys/class/leds/pwr-green/brightness
+ chmod 660 /sys/class/leds/pwr-green/brightness
+ chown system system /sys/class/leds/pwr-green/use_pattern
+ chmod 660 /sys/class/leds/pwr-green/use_pattern
+ chown system system /sys/class/leds/pwr-blue/brightness
+ chmod 660 /sys/class/leds/pwr-blue/brightness
+ chown system system /sys/class/leds/pwr-blue/use_pattern
+ chmod 660 /sys/class/leds/pwr-blue/use_pattern
+ chown system system /sys/devices/i2c-10/10-0040/pattern_data
+ chmod 660 /sys/devices/i2c-10/10-0040/pattern_data
+ chown system system /sys/devices/i2c-10/10-0040/pattern_delay
+ chmod 660 /sys/devices/i2c-10/10-0040/pattern_delay
+ chown system system /sys/devices/i2c-10/10-0040/pattern_duration_secs
+ chmod 660 /sys/devices/i2c-10/10-0040/pattern_duration_secs
+ chown system system /sys/devices/i2c-10/10-0040/pattern_use_softdim
+ chmod 660 /sys/devices/i2c-10/10-0040/pattern_use_softdim
+ chown system system /sys/devices/i2c-10/10-0040/dim_time
+ chmod 660 /sys/devices/i2c-10/10-0040/dim_time
+
+ # AS3676/Ambient Light Sensor
+ chown system system /sys/devices/i2c-10/10-0040/als_on
+ chmod 660 /sys/devices/i2c-10/10-0040/als_on
+
+ # Enable DEBUG_SUSPEND, DEBUG_EXIT_SUSPEND, and DEBUG_WAKEUP
+ write /sys/module/wakelock/parameters/debug_mask 7
+
+ #To allow interfaces to get v6 address when tethering is enabled
+ write /proc/sys/net/ipv6/conf/rmnet0/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet1/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet2/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet3/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet4/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet5/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet6/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet7/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet_sdio0/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet_sdio1/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet_sdio2/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet_sdio3/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet_sdio4/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet_sdio5/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet_sdio6/accept_ra 2
+ write /proc/sys/net/ipv6/conf/rmnet_sdio7/accept_ra 2
+
+# Assign TCP buffer thresholds to be ceiling value of technology maximums
+# Increased technology maximums should be reflected here.
+ write /proc/sys/net/core/rmem_max 1220608
+ write /proc/sys/net/core/wmem_max 1220608
+
+# msm specific files that need to be created on /data
+on post-fs-data
+ # Create the directories used by the Wireless subsystem
+ mkdir /data/misc/wifi 0770 wifi wifi
+ mkdir /data/misc/wifi/sockets 0770 wifi wifi
+ mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi
+ mkdir /data/misc/dhcp 0770 dhcp dhcp
+ # to observe dnsmasq.leases file for dhcp information of soft ap.
+ chown dhcp system /data/misc/dhcp
+
+ #Load corect WIFI MAC address
+ mkdir /data/misc/wifi/prima 0775 wifi wifi
+ exec /system/bin/mac-update
+
+ write /dev/wcnss_wlan 1
+ write /sys/module/wcnss_ssr_8960/parameters/enable_riva_ssr 1
+ write /sys/module/subsystem_restart/parameters/max_restarts 8
+ write /sys/module/subsystem_restart/parameters/max_history_time 1000
+
+ # Create directory used by audio subsystem
+ mkdir /data/misc/audio 0770 audio audio
+
+ chmod 0664 /sys/devices/platform/msm_sdcc.1/polling
+ chmod 0664 /sys/devices/platform/msm_sdcc.2/polling
+ chmod 0664 /sys/devices/platform/msm_sdcc.3/polling
+ chmod 0664 /sys/devices/platform/msm_sdcc.4/polling
+
+ # Chown polling nodes as needed from UI running on system server
+ chown system system /sys/devices/platform/msm_sdcc.1/polling
+ chown system system /sys/devices/platform/msm_sdcc.2/polling
+ chown system system /sys/devices/platform/msm_sdcc.3/polling
+ chown system system /sys/devices/platform/msm_sdcc.4/polling
+
+ #Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant
+ mkdir /data/system 0775 system system
+ #symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant
+
+ #Create directory used by sensor subsystem(dsps)
+ chmod 665 /data/system/sensors
+ write /data/system/sensors/settings 1
+ chmod 660 /data/system/sensors/settings
+
+ # AKM setting data
+ mkdir /data/misc/sensors
+ chmod 775 /data/misc/sensors
+
+ #Create directories for gpsone_daemon services
+ mkdir /data/misc/gpsone_d 0770 system gps
+
+ #Provide the access to hostapd.conf only to root and group
+ chmod 0660 /data/hostapd/hostapd.conf
+
+ # Enable the setgid bit on the directory
+ mkdir /data/audio 0770 media audio
+ chmod 2770 /data/audio
+
+ # Camera
+ mkdir /data/camera 0771 root camera
+
+ exec /system/bin/cal_data_manager
+
+ setprop vold.post_fs_data_done 1
+
+ rm /data/local/tmp/adreno_config.txt
+
+ # communicate with mpdecision and thermald
+ mkdir /dev/socket/mpdecision 0770 system system
+ chmod 2770 /dev/socket/mpdecision
+
+ # Enable Power modes and set the CPU Freq Sampling rates
+ write /sys/module/rpm_resources/enable_low_power/L2_cache 1
+ write /sys/module/rpm_resources/enable_low_power/pxo 1
+ write /sys/module/rpm_resources/enable_low_power/vdd_dig 1
+ write /sys/module/rpm_resources/enable_low_power/vdd_mem 1
+ write /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled 1
+ write /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled 1
+ write /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled 1
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "ondemand"
+ write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "ondemand"
+ write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold 90
+ write /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate 50000
+ write /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy 1
+ write /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor 4
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 384000
+ write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 384000
+
+on charger
+ # Enable Power modes and set the CPU Freq Sampling rates
+ write /sys/module/rpm_resources/enable_low_power/L2_cache 1
+ write /sys/module/rpm_resources/enable_low_power/pxo 1
+ write /sys/module/rpm_resources/enable_low_power/vdd_dig 1
+ write /sys/module/rpm_resources/enable_low_power/vdd_mem 1
+ write /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled 1
+ write /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled 1
+ write /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled 1
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "powersave"
+ write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "powersave"
+ write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold 90
+ write /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate 50000
+ write /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy 1
+ write /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor 4
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 384000
+ write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 384000
+
+on property:init.svc.wpa_supplicant=stopped
+ stop dhcpcd
+
+service rmt_storage /system/bin/rmt_storage
+ class main
+ user root
+ disabled
+
+# Fast Dormancy
+service fast-dormancy /system/bin/fast-dormancy
+ class late_start
+ disabled
+
+on property:ro.semc.enable.fast_dormancy=false
+ stop fast-dormancy
+
+# Update WIFI MAC address
+service mac-update /system/bin/mac-update
+ class main
+ user wifi
+ oneshot
+
+service hciattach /system/bin/sh /system/etc/init.sony.bt.sh
+ class late_start
+ user bluetooth
+ group qcom_oncrpc bluetooth net_bt_admin system
+ disabled
+ oneshot
+
+on property:bluetooth.hciattach=true
+ start hciattach
+
+on property:bluetooth.hciattach=false
+ setprop bluetooth.status off
+
+# QMUX must be in multiple groups to support external process connections
+service qmuxd /system/bin/qmuxd
+ class main
+ user radio
+ group radio audio bluetooth gps qcom_diag
+
+service tad /system/bin/tad /dev/block/mmcblk0 1,16
+ class core
+ user root
+ group root
+ socket tad stream 0660 system system
+ disabled
+
+service secchand /system/bin/secchand
+ class core
+ group root
+ user root
+
+service netmgrd /system/bin/netmgrd
+ class main
+
+service qrngd /system/bin/qrngd -f
+ class main
+ user root
+ group root
+
+service qseecomd /system/bin/qseecomd
+ class late_start
+ user system
+ group system
+
+# Trim Area QMI service
+service ta_qmi_service /system/bin/ta_qmi_service
+ user root
+ disabled
+
+service updatemiscta /system/bin/updatemiscta
+ class main
+ user root
+ oneshot
+
+service hw_config /system/bin/sh /system/etc/hw_config.sh
+ class main
+ user root
+ oneshot
+
+service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \
+ -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
+ -e/data/misc/wifi/entropy.bin
+ # we will start as root and wpa_supplicant will switch to user wifi
+ # after setting up the capabilities required for WEXT
+ # user wifi
+ # group wifi inet keystore
+ class main
+ socket wpa_wlan0 dgram 660 wifi wifi
+ disabled
+ oneshot
+
+service p2p_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \
+ -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf -N \
+ -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
+ -e/data/misc/wifi/entropy.bin -puse_p2p_group_interface=1
+# we will start as root and wpa_supplicant will switch to user wifi
+# after setting up the capabilities required for WEXT
+# user wifi
+# group wifi inet keystore
+ class main
+ socket wpa_wlan0 dgram 660 wifi wifi
+ disabled
+ oneshot
+
+service dhcpcd_wlan0 /system/bin/dhcpcd -aABDKL
+ class main
+ disabled
+ oneshot
+
+service dhcpcd_p2p /system/bin/dhcpcd -aABKL
+ class main
+ disabled
+ oneshot
+
+service iprenew_wlan0 /system/bin/dhcpcd -n
+ class main
+ disabled
+ oneshot
+
+service iprenew_p2p /system/bin/dhcpcd -n
+ class main
+ disabled
+ oneshot
+
+service dhcpcd_bnep0 /system/bin/dhcpcd -BKLG
+ disabled
+ oneshot
+
+on property:ro.data.large_tcp_window_size=true
+ # 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 thermald /system/bin/thermald -c /system/etc/thermald.conf
+ class main
+ socket thermald stream 0666 root root
+ user root
+
+service mpdecision /system/bin/mpdecision --no_sleep --avg_comp
+ class main
+
+service qcamerasvr /system/bin/mm-qcamera-daemon
+ class late_start
+ user camera
+ group camera system inet input
+
+# bugreport is triggered by holding down volume down, volume up and power
+service bugreport /system/bin/bugmailer.sh -v
+ class main
+ disabled
+ oneshot
+ keycodes 114 115 116
+
+service diag_mdlog /system/bin/logwrapper /system/bin/diag_mdlog -s 100
+ class late_start
+ disabled
+
+# on property:gsm.sim.state=READY
+# start diag_mdlog
+
+service fm_dl /system/bin/sh /system/etc/init.qcom.fm.sh
+ class late_start
+ user root
+ group system qcom_oncrpc
+ disabled
+ oneshot
+
+service cnd /system/bin/cnd
+ class late_start
+ socket cnd stream 660 root inet
diff --git a/rootdir/init.recovery.qcom.rc b/rootdir/init.recovery.qcom.rc
new file mode 100644
index 0000000..33eb66f
--- /dev/null
+++ b/rootdir/init.recovery.qcom.rc
@@ -0,0 +1,8 @@
+on init
+ write /sys/class/android_usb/android0/idVendor 0fce
+ write /sys/class/android_usb/android0/idProduct 6182
+
+# Remap boot and FOTA for lk if lk is present
+on property:ro.bootloader=lk
+ start remap
+ setprop lk.remap 1
diff --git a/rootdir/system/bin/fix_storage_permissions.sh b/rootdir/system/bin/fix_storage_permissions.sh
new file mode 100644
index 0000000..c9f8801
--- /dev/null
+++ b/rootdir/system/bin/fix_storage_permissions.sh
@@ -0,0 +1,3 @@
+#!/sbin/sh
+# Fix permissions on internal sdcard
+find /sdcard -user 1023 -exec chown 2800:2800 {} \;
diff --git a/rootdir/system/etc/audio_policy.conf b/rootdir/system/etc/audio_policy.conf
new file mode 100644
index 0000000..f89b605
--- /dev/null
+++ b/rootdir/system/etc/audio_policy.conf
@@ -0,0 +1,101 @@
+# Global configuration section: lists input and output devices always present on the device
+# as well as the output device selected by default.
+# Devices are designated by a string that corresponds to the enum in audio.h
+
+global_configuration {
+ attached_output_devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE
+ default_output_device AUDIO_DEVICE_OUT_SPEAKER
+ attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_VOICE_CALL
+}
+
+# audio hardware module section: contains descriptors for all audio hw modules present on the
+# device. Each hw module node is named after the corresponding hw module library base name.
+# For instance, "primary" corresponds to audio.primary.<device>.so.
+# The "primary" module is mandatory and must include at least one output with
+# AUDIO_OUTPUT_FLAG_PRIMARY flag.
+# Each module descriptor contains one or more output profile descriptors and zero or more
+# input profile descriptors. Each profile lists all the parameters supported by a given output
+# or input stream category.
+# The "channel_masks", "formats", "devices" and "flags" are specified using strings corresponding
+# to enums in audio.h and audio_policy.h. They are concatenated by use of "|" without space or "\n".
+
+audio_hw_modules {
+ primary {
+ outputs {
+ hdmi {
+ sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
+ channel_masks dynamic
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_OUT_AUX_DIGITAL
+ flags AUDIO_OUTPUT_FLAG_DIRECT
+ }
+ primary {
+ sampling_rates 44100|48000
+ channel_masks AUDIO_CHANNEL_OUT_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_PROXY|AUDIO_DEVICE_OUT_FM|AUDIO_DEVICE_OUT_FM_TX|AUDIO_DEVICE_OUT_ALL_A2DP|AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET|AUDIO_DEVICE_OUT_ALL_USB
+ flags AUDIO_OUTPUT_FLAG_PRIMARY
+ }
+ lpa {
+ sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
+ channel_masks AUDIO_CHANNEL_OUT_STEREO|AUDIO_CHANNEL_OUT_MONO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_ALL_A2DP|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_PROXY|AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET|AUDIO_DEVICE_OUT_ALL_USB
+ flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_LPA
+ }
+ voip_rx {
+ sampling_rates 8000|16000
+ channel_masks AUDIO_CHANNEL_OUT_MONO
+ formats AUDIO_FORMAT_PCM_16_BIT|AUDIO_FORMAT_AMR_NB|AUDIO_FORMAT_AMR_WB|AUDIO_FORMAT_QCELP|AUDIO_FORMAT_EVRC|AUDIO_FORMAT_EVRCB|AUDIO_FORMAT_EVRCWB
+ devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET|AUDIO_DEVICE_OUT_ALL_USB
+ flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_VOIP_RX
+ }
+ tunnel {
+ sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
+ channel_masks AUDIO_CHANNEL_OUT_STEREO|AUDIO_CHANNEL_OUT_MONO|AUDIO_CHANNEL_OUT_2POINT1|AUDIO_CHANNEL_OUT_QUAD|AUDIO_CHANNEL_OUT_PENTA|AUDIO_CHANNEL_OUT_5POINT1|AUDIO_CHANNEL_OUT_6POINT1|AUDIO_CHANNEL_OUT_7POINT1
+ formats AUDIO_FORMAT_MP3|AUDIO_FORMAT_AAC|AUDIO_FORMAT_AMR_WB|AUDIO_FORMAT_AMR_WB_PLUS
+ devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_ALL_A2DP|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_PROXY|AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET|AUDIO_DEVICE_OUT_ALL_USB
+ flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_TUNNEL
+ }
+ fast {
+ sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
+ channel_masks AUDIO_CHANNEL_OUT_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_ALL_A2DP|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_ALL_USB
+ flags AUDIO_OUTPUT_FLAG_FAST
+ }
+ }
+ inputs {
+ primary {
+ sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
+ channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO|AUDIO_CHANNEL_IN_5POINT1|AUDIO_CHANNEL_IN_VOICE_CALL_MONO|AUDIO_CHANNEL_IN_VOICE_DNLINK_MONO|AUDIO_CHANNEL_IN_VOICE_UPLINK_MONO
+ formats AUDIO_FORMAT_PCM_16_BIT|AUDIO_FORMAT_AMR_WB
+ devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET|AUDIO_DEVICE_IN_AUX_DIGITAL|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_PROXY|AUDIO_DEVICE_IN_FM_RX|AUDIO_DEVICE_IN_FM_RX_A2DP|AUDIO_DEVICE_IN_ANLG_DOCK_HEADSET|AUDIO_DEVICE_IN_COMMUNICATION
+ }
+ voip_tx {
+ sampling_rates 8000|16000|44100|48000
+ channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT|AUDIO_FORMAT_AMR_NB|AUDIO_FORMAT_AMR_WB|AUDIO_FORMAT_QCELP|AUDIO_FORMAT_EVRC|AUDIO_FORMAT_EVRCB|AUDIO_FORMAT_EVRCWB
+ devices AUDIO_DEVICE_IN_COMMUNICATION
+ }
+ }
+ }
+ r_submix {
+ outputs {
+ submix {
+ sampling_rates 44100|48000
+ channel_masks AUDIO_CHANNEL_OUT_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX
+ }
+ }
+ inputs {
+ submix {
+ sampling_rates 44100|48000
+ channel_masks AUDIO_CHANNEL_IN_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_IN_REMOTE_SUBMIX
+ }
+ }
+ }
+}
diff --git a/rootdir/system/etc/firmware/wlan/prima/WCNSS_qcom_cfg.ini b/rootdir/system/etc/firmware/wlan/prima/WCNSS_qcom_cfg.ini
new file mode 100644
index 0000000..00b45da
--- /dev/null
+++ b/rootdir/system/etc/firmware/wlan/prima/WCNSS_qcom_cfg.ini
@@ -0,0 +1,255 @@
+# Partly modified 2012 Sony Ericsson Mobile Communications AB
+# Partly modified 2012 Sony Mobile Communications AB
+
+# This file allows user to override the factory
+# defaults for the WLAN Driver
+
+# Phy Mode (auto, b, g, n, etc)
+gDot11Mode=0
+
+# Handoff Enable(1) Disable(0)
+gEnableHandoff=0
+
+# CSR Roaming Enable(1) Disable(0)
+gRoamingTime=0
+
+# Assigned MAC Addresses - This will be used until NV items are in place
+# Each byte of MAC address is represented in Hex format as XX
+Intf0MacAddress=000AF58989FF
+Intf1MacAddress=000AF58989FE
+Intf2MacAddress=000AF58989FD
+Intf3MacAddress=000AF58989FC
+
+# UAPSD service interval for VO,VI, BE, BK traffic
+InfraUapsdVoSrvIntv=0
+InfraUapsdViSrvIntv=0
+InfraUapsdBeSrvIntv=0
+InfraUapsdBkSrvIntv=0
+
+# Disable RSSI FW filtering
+gEnableFWRssiMonitoring=1
+
+# Make 1x1 the default antenna configuration
+gNumRxAnt=1
+
+# Enable WAPI or not
+# WAPIIsEnabled=0
+
+#SoftAP Related Parameters
+# AP MAc addr
+gAPMacAddr=000AF58989EF
+
+# 802.11n Protection flag
+gEnableApProt=1
+
+#Enable OBSS protection
+gEnableApOBSSProt=1
+
+#Enable/Disable UAPSD for SoftAP
+gEnableApUapsd=1
+
+# Fixed Rate
+gFixedRate=0
+
+# Maximum Tx power
+# gTxPowerCap=30
+
+# Fragmentation Threshold
+# gFragmentationThreshold=2346
+
+# Set RTS threshold, needed for better performance with Apple and Marvel APs
+RTSThreshold=2346
+
+# Intra-BSS forward
+gDisableIntraBssFwd=0
+
+# WMM Enable/Disable
+WmmIsEnabled=0
+
+# 802.11d support
+g11dSupportEnabled=0
+
+# CCX Support and fast transition
+CcxEnabled=0
+FastTransitionEnabled=0
+ImplicitQosIsEnabled=1
+gNeighborScanTimerPeriod=200
+
+gNeighborLookupThreshold=50
+gNeighborReassocThreshold=55
+
+gNeighborScanChannelList=1,11,36,64
+gNeighborScanChannelMinTime=20
+gNeighborScanChannelMaxTime=30
+gMaxNeighborReqTries=3
+
+# Legacy (non-CCX, non-802.11r) Fast Roaming Support
+# To enable, set FastRoamEnabled=1, gEnableFWRssiMonitoring=1, FastTransitionEnabled=1
+# To disable, set FastRoamEnabled=0, gEnableFWRssiMonitoring=0, FastTransitionEnabled=0
+FastRoamEnabled=0
+
+#Check if the AP to which we are roaming is better than current AP in terms of RSSI.
+#Checking is disabled if set to Zero.Otherwise it will use this value as to how better
+#the RSSI of the new/roamable AP should be for roaming
+RoamRssiDiff=0
+
+# SAP Country code
+# Default Country Code is 2 bytes, 3rd byte is optional indoor or out door.
+# Example
+# US Indoor, USI
+# Korea Outdoor, KRO
+# Japan without optional byte, JP
+# France without optional byte, FR
+#gAPCntryCode=USI
+
+#Short Guard Interval Enable/disable
+gShortGI20Mhz=1
+gShortGI40Mhz=1
+
+# Enable HT-40
+gChannelBondingMode5GHz=1
+
+#Auto Shutdown Value in seconds. A value of 0 means Auto shutoff is disabled
+gAPAutoShutOff=0
+
+# SAP auto channel selection configuration
+# 0 = disable auto channel selection
+# 1 = enable auto channel selection, channel provided by supplicant will be ignored
+gApAutoChannelSelection=0
+
+# Listen Energy Detect Mode Configuration
+# Valid values 0-128
+# 128 means disable Energy Detect feature
+# 0-9 are threshold code and 7 is recommended value from system if feature is to be enabled.
+# 10-128 are reserved.
+# The EDET threshold mapping is as follows in 3dB step:
+# 0 = -60 dBm
+# 1 = -63 dBm
+# 2 = -66 dBm
+# ...
+# 7 = -81 dBm
+# 8 = -84 dBm
+# 9 = -87 dBm
+# Note: Any of these settings are valid. Setting 0 would yield the highest power saving (in a noisy environment) at the cost of more range. The range impact is approximately #calculated as:
+#
+# Range Loss (dB) = EDET threshold level (dBm) + 97 dBm.
+#
+gEnablePhyAgcListenMode=128
+
+#Preferred channel to start BT AMP AP mode (0 means, any channel)
+BtAmpPreferredChannel=0
+
+#Preferred band (both or 2.4 only or 5 only)
+BandCapability=0
+
+
+#Bluetooth Alternate Mac Phy (1 = enable the BT AMP feature, 0 = disable)
+gEnableBtAmp=0
+
+#SOFTAP Channel Range selection
+gAPChannelSelectStartChannel=1
+gAPChannelSelectEndChannel=11
+
+#SOFTAP Channel Range selection Operating band
+# 0:2.4GHZ 1: LOW-5GHZ 2:MID-5GHZ 3:HIGH-5GHZ 4: 4.9HZ BAND
+gAPChannelSelectOperatingBand=0
+
+#Enable Keep alive with non-zero period value
+gStaKeepAlivePeriod = 45
+
+#If set will start with active scan after driver load, otherwise will start with
+#passive scan to find out the domain
+gEnableBypass11d=1
+
+#If set to 0, will not scan DFS channels
+gEnableDFSChnlScan=1
+
+# Enable logp/SSR
+gEnableLogp=1
+
+#Set to prioritize crda/iw regulatory domain updates
+gCountryCodePriority=1
+
+#Set link speed reporting to maximum value
+gReportMaxLinkSpeed=1
+
+# Enable Automatic Tx Power control
+gEnableAutomaticTxPowerControl=1
+
+#Enable CLPC mode
+gEnableCloseLoop=1
+
+#Time we stay on a channel while scanning
+gActiveMaxChannelTime=120
+gActiveMinChannelTime=60
+
+
+#Power save parameters
+
+# Enable IMPS (idle mode power save) or not
+# IMPS determines if the module will sleep when not associated
+gEnableImps=1
+
+# Increase sleep duration (seconds) during IMPS
+# 0 implies no periodic wake up from IMPS. Periodic wakeup is
+# unnecessary if Idle Scan is disabled.
+gImpsModSleepTime=0
+
+# Enable/Disable Idle Scan
+gEnableIdleScan=0
+
+# Enable BMPS or not
+# Beacon mode power save, power saving while associated
+gEnableBmps=1
+
+# Listen interval
+# This needs to be higher than any expected DTIM value, otherwise
+# the module will not follow the APs DTIM value.
+gBmpsModListenInterval=8
+
+# Enable suspend or not
+# 1: Enable standby, 2: Enable Deep sleep, 3: Enable Mcast/Bcast Filter
+gEnableSuspend=3
+
+# Flags to filter Mcast abd Bcast RX packets.
+# Value 0: No filtering, 1: Filter all Multicast.
+# 2: Filter all Broadcast. 3: Filter all Mcast abd Bcast
+McastBcastFilter=0
+
+# Multicast filtering in firmware
+gMCAddrListEnable=1
+
+# Beacon filtering frequency (unit in beacon intervals)
+# Send every nth beacon to the host
+gNthBeaconFilter=50
+
+# Beacon Early Termination (1 = enable the BET feature, 0 = disable)
+# BET is only active during suspend
+enableBeaconEarlyTermination=1
+# Beacon interval to rerun TSF if BET is active
+beaconEarlyTerminationWakeInterval=10
+
+# How long to stay awake after last tx/rx activity. Value in ms.
+# Default = 20. Increased value improves throughput.
+gDataInactivityTimeout=120
+
+# Flag to enable HostARPOffload feature or not
+hostArpOffload=1
+
+# Telescopic Beacon Wakeup
+# This feature is unusable in its current state since it's static
+# and focuses on beacons instead of DTIM. Do not activate.
+# Activating will result in missed multicast/broadcast
+gTelescopicBeaconWakeupEn=0
+#telescopicBeaconTransListenIntervalNumIdleBcns
+#telescopicBeaconMaxListenInterval
+#telescopicBeaconMaxListenIntervalNumIdleBcns
+#telescopicBeaconTransListenInterval
+
+#Wake up on every x DTIM when in sleep
+gEnableModulatedDTIM=2
+
+ConnectivityThresholdDBM=-87
+
+END
+# Note: Configuration parser would not read anything past the END marker
diff --git a/rootdir/system/etc/gps.conf b/rootdir/system/etc/gps.conf
new file mode 100644
index 0000000..f3c2ff1
--- /dev/null
+++ b/rootdir/system/etc/gps.conf
@@ -0,0 +1,84 @@
+XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra2.bin
+XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra2.bin
+XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra2.bin
+
+# DEBUG LEVELS: 0 - none, 1 - Error, 2 - Warning, 3 - Info
+# 4 - Debug, 5 - Verbose
+DEBUG_LEVEL = 3
+
+# Intermediate position report, 1=enable, 0=disable
+INTERMEDIATE_POS=0
+
+# supl version 1.0
+SUPL_VER=0x10000
+
+# Error Estimate
+# _SET = 1
+# _CLEAR = 0
+ERR_ESTIMATE=0
+
+# GPS Capabilities bit mask
+# SCHEDULING = 1
+# MSB = 2
+# MSA = 4
+# ULP = 0x20
+# default = MSA | MSB | SCHEDULING | ULP
+CAPABILITIES=0x07
+
+# Accuracy threshold for intermediate positions
+# less accurate positions are ignored, 0 for passing all positions
+# ACCURACY_THRES=5000
+
+################################
+##### AGPS server settings #####
+################################
+
+# FOR SUPL SUPPORT, set the following
+# SUPL_HOST=supl.host.com or IP
+# SUPL_PORT=1234
+SUPL_HOST=supl.google.com
+SUPL_PORT=7276
+
+# FOR C2K PDE SUPPORT, set the following
+# C2K_HOST=c2k.pde.com or IP
+# C2K_PORT=1234
+
+################################
+# Sensor Settings
+################################
+
+# Needs to be set explicitly based on sensor
+# There is no default value.
+#GYRO_BIAS_RANDOM_WALK=
+
+SENSOR_ACCEL_BATCHES_PER_SEC=2
+SENSOR_ACCEL_SAMPLES_PER_BATCH=5
+SENSOR_GYRO_BATCHES_PER_SEC=2
+SENSOR_GYRO_SAMPLES_PER_BATCH=5
+
+# Sensor Control Mode (0=AUTO, 1=FORCE_ON)
+SENSOR_CONTROL_MODE=0
+
+# Enable or Disable Sensors for GPS use (0=Enable, 1=Disable)
+SENSOR_USAGE=1
+
+# Choose GSIFF sensor provider (1=DSPS, 2=Android NDK)
+SENSOR_PROVIDER=1
+
+################################
+# Indoor Positioning Settings
+################################
+# 0: QUIPC disabled, 1: QUIPC enabled, 2: forced QUIPC only
+QUIPC_ENABLED = 0
+
+################################
+# EXTRA SETTINGS
+################################
+# Enable or Disable Wiper (1=Enable, 0=Disable)
+ENABLE_WIPER=0
+
+####################################
+# LTE Positioning Profile Settings
+####################################
+# 0: Enable RRLP on LTE(Default) 1: Enable LPP_User_Plane on LTE
+LPP_PROFILE = 0
diff --git a/rootdir/system/etc/init.qcom.fm.sh b/rootdir/system/etc/init.qcom.fm.sh
new file mode 100644
index 0000000..adc7004
--- /dev/null
+++ b/rootdir/system/etc/init.qcom.fm.sh
@@ -0,0 +1,106 @@
+#!/system/bin/sh
+# Copyright (c) 2009-2011, Code Aurora Forum. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of Code Aurora nor
+# the names of its contributors may be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+setprop hw.fm.init 0
+
+mode=`getprop hw.fm.mode`
+version=`getprop hw.fm.version`
+isAnalog=`getprop hw.fm.isAnalog`
+
+#find the transport type
+TRANSPORT=`getprop ro.qualcomm.bt.hci_transport`
+
+LOG_TAG="qcom-fm"
+LOG_NAME="${0}:"
+
+loge ()
+{
+ /system/bin/log -t $LOG_TAG -p e "$LOG_NAME $@"
+}
+
+logi ()
+{
+ /system/bin/log -t $LOG_TAG -p i "$LOG_NAME $@"
+}
+
+failed ()
+{
+ loge "$1: exit code $2"
+ exit $2
+}
+
+logi "In FM shell Script"
+logi "mode: $mode"
+logi "isAnalog: $isAnalog"
+logi "Transport : $TRANSPORT"
+logi "Version : $version"
+
+#$fm_qsoc_patches <fm_chipVersion> <enable/disable WCM>
+#
+case $mode in
+ "normal")
+ case $TRANSPORT in
+ "smd")
+ logi "inserting the radio transport module"
+ insmod /system/lib/modules/radio-iris-transport.ko
+ ;;
+ *)
+ logi "default transport case "
+ ;;
+ esac
+ /system/bin/fm_qsoc_patches $version 0
+ ;;
+ "wa_enable")
+ /system/bin/fm_qsoc_patches $version 1
+ ;;
+ "wa_disable")
+ /system/bin/fm_qsoc_patches $version 2
+ ;;
+ "config_dac")
+ /system/bin/fm_qsoc_patches $version 3 $isAnalog
+ ;;
+ *)
+ logi "Shell: Default case"
+ /system/bin/fm_qsoc_patches $version 0
+ ;;
+esac
+
+exit_code_fm_qsoc_patches=$?
+
+case $exit_code_fm_qsoc_patches in
+ 0)
+ logi "FM QSoC calibration and firmware download succeeded"
+ ;;
+ *)
+ failed "FM QSoC firmware download and/or calibration failed" $exit_code_fm_qsoc_patches
+ ;;
+esac
+
+setprop hw.fm.init 1
+
+exit 0
diff --git a/rootdir/system/etc/init.sony.bt.sh b/rootdir/system/etc/init.sony.bt.sh
new file mode 100644
index 0000000..ad5708f
--- /dev/null
+++ b/rootdir/system/etc/init.sony.bt.sh
@@ -0,0 +1,69 @@
+#!/system/bin/sh
+
+BLUETOOTH_SLEEP_PATH=/proc/bluetooth/sleep/proto
+LOG_TAG="sony-bluetooth"
+LOG_NAME="${0}:"
+
+loge ()
+{
+ /system/bin/log -t $LOG_TAG -p e "$LOG_NAME $@"
+}
+
+logi ()
+{
+ /system/bin/log -t $LOG_TAG -p i "$LOG_NAME $@"
+}
+
+failed ()
+{
+ loge "$1: exit code $2"
+ exit $2
+}
+
+# Note that "hci_qcomm_init -e" prints expressions to set the shell variables
+# BTS_DEVICE, BTS_TYPE, BTS_BAUD, and BTS_ADDRESS.
+
+POWER_CLASS=`getprop qcom.bt.dev_power_class`
+TRANSPORT=`getprop ro.qualcomm.bt.hci_transport`
+
+#find the transport type
+logi "Transport : $TRANSPORT"
+
+#load bd addr
+BDADDR=`/system/bin/cat /data/etc/bluetooth_bdaddr`
+
+setprop bluetooth.status off
+
+logi "BDADDR: $BDADDR"
+
+case $POWER_CLASS in
+ 1) PWR_CLASS="-p 0" ;
+ logi "Power Class: 1";;
+ 2) PWR_CLASS="-p 1" ;
+ logi "Power Class: 2";;
+ 3) PWR_CLASS="-p 2" ;
+ logi "Power Class: CUSTOM";;
+ *) PWR_CLASS="";
+ logi "Power Class: Ignored. Default(1) used (1-CLASS1/2-CLASS2/3-CUSTOM)";
+ logi "Power Class: To override, Before turning BT ON; setprop qcom.bt.dev_power_class <1 or 2 or 3>";;
+esac
+
+if [$BDADDR == ""]
+then
+logwrapper /system/bin/hci_qcomm_init -e $PWR_CLASS -vv
+else
+logwrapper /system/bin/hci_qcomm_init -b $BDADDR -e $PWR_CLASS -vv
+fi
+
+case $? in
+ 0) logi "Bluetooth QSoC firmware download succeeded, $PWR_CLASS $BDADDR $TRANSPORT";;
+ *) failed "Bluetooth QSoC firmware download failed" $exit_code_hci_qcomm_init;
+ setprop bluetooth.status off;
+ exit $exit_code_hci_qcomm_init;;
+esac
+
+setprop bluetooth.status on
+
+logi "start bluetooth smd transport"
+
+exit 0
diff --git a/rootdir/system/etc/media_profiles.xml b/rootdir/system/etc/media_profiles.xml
new file mode 100644
index 0000000..fd18500
--- /dev/null
+++ b/rootdir/system/etc/media_profiles.xml
@@ -0,0 +1,342 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+ Copyright (C) 2010, 2011, 2012 Sony Ericsson Mobile Communications AB
+ Copyright (C) 2012 Sony Mobile Communications AB.
+
+ 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.
+
+ NOTE: This file has been modified by Sony Ericsson Mobile Communications AB /
+ Sony Mobile Communications AB. Modifications are licensed under the License.
+-->
+<!DOCTYPE MediaSettings [
+<!ELEMENT MediaSettings (CamcorderProfiles,
+ EncoderOutputFileFormat+,
+ VideoEncoderCap+,
+ AudioEncoderCap+,
+ VideoDecoderCap,
+ AudioDecoderCap,
+ VideoEditorCap,
+ ExportVideoProfile)>
+<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
+<!ELEMENT EncoderProfile (Video, Audio)>
+<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
+<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
+<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
+<!ATTLIST EncoderProfile cameraId (0|1) #REQUIRED>
+<!ELEMENT Video EMPTY>
+<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
+<!ATTLIST Video bitRate CDATA #REQUIRED>
+<!ATTLIST Video width CDATA #REQUIRED>
+<!ATTLIST Video height CDATA #REQUIRED>
+<!ATTLIST Video frameRate CDATA #REQUIRED>
+<!ELEMENT Audio EMPTY>
+<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
+<!ATTLIST Audio bitRate CDATA #REQUIRED>
+<!ATTLIST Audio sampleRate CDATA #REQUIRED>
+<!ATTLIST Audio channels (1|2) #REQUIRED>
+<!ELEMENT ImageEncoding EMPTY>
+<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
+<!ELEMENT ImageDecoding EMPTY>
+<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
+<!ELEMENT Camera EMPTY>
+<!ATTLIST Camera previewFrameRate CDATA #REQUIRED>
+<!ELEMENT EncoderOutputFileFormat EMPTY>
+<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
+<!ELEMENT VideoEncoderCap EMPTY>
+<!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED>
+<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
+<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
+<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
+<!ELEMENT AudioEncoderCap EMPTY>
+<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
+<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
+<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
+<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
+<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
+<!ELEMENT VideoDecoderCap EMPTY>
+<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
+<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
+<!ELEMENT AudioDecoderCap EMPTY>
+<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
+<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
+<!ELEMENT VideoEditorCap EMPTY>
+<!ATTLIST VideoEditorCap maxInputFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEditorCap maxInputFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEditorCap maxOutputFrameWidth CDATA #REQUIRED>
+<!ATTLIST VideoEditorCap maxOutputFrameHeight CDATA #REQUIRED>
+<!ATTLIST VideoEditorCap maxPrefetchYUVFrames CDATA #REQUIRED>
+<!ELEMENT ExportVideoProfile EMPTY>
+<!ATTLIST ExportVideoProfile name (h264|h263|m4v) #REQUIRED>
+<!ATTLIST ExportVideoProfile profile CDATA #REQUIRED>
+<!ATTLIST ExportVideoProfile level CDATA #REQUIRED>
+]>
+<!--
+ This file is used to declare the multimedia profiles and capabilities
+ on an android-powered device.
+-->
+<MediaSettings>
+ <!-- Each camcorder profile defines a set of predefined configuration parameters -->
+ <CamcorderProfiles cameraId="0">
+ <!--
+ Profiles for the back camera
+ -->
+ <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
+ <Video codec="h264"
+ bitRate="17500000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="128000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
+ <Video codec="h264"
+ bitRate="12000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="128000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
+ <Video codec="h264"
+ bitRate="4000000"
+ width="720"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="128000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qcif" fileFormat="3gp" duration="20">
+ <Video codec="h263"
+ bitRate="96000"
+ width="176"
+ height="144"
+ frameRate="15" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
+ <Video codec="h264"
+ bitRate="17500000"
+ width="1920"
+ height="1080"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="128000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
+ <Video codec="h264"
+ bitRate="12000000"
+ width="1280"
+ height="720"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="128000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
+ <Video codec="h264"
+ bitRate="4000000"
+ width="720"
+ height="480"
+ frameRate="30" />
+ <!-- audio setting is ignored -->
+ <Audio codec="aac"
+ bitRate="128000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqcif" fileFormat="3gp" duration="20">
+ <Video codec="h263"
+ bitRate="96000"
+ width="176"
+ height="144"
+ frameRate="15" />
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+
+ <ImageEncoding quality="90" />
+ <ImageEncoding quality="80" />
+ <ImageEncoding quality="70" />
+ <ImageDecoding memCap="20000000" />
+
+ <Camera previewFrameRate="0" />
+
+ </CamcorderProfiles>
+
+ <CamcorderProfiles cameraId="1">
+ <!--
+ Profiles for the front camera
+ -->
+
+ <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
+ <Video codec="h264"
+ bitRate="4000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="128000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="qcif" fileFormat="3gp" duration="20">
+ <Video codec="h263"
+ bitRate="96000"
+ width="176"
+ height="144"
+ frameRate="15" />
+
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
+ <Video codec="h264"
+ bitRate="4000000"
+ width="640"
+ height="480"
+ frameRate="30" />
+
+ <Audio codec="aac"
+ bitRate="128000"
+ sampleRate="48000"
+ channels="2" />
+ </EncoderProfile>
+
+ <EncoderProfile quality="timelapseqcif" fileFormat="3gp" duration="20">
+ <Video codec="h263"
+ bitRate="96000"
+ width="176"
+ height="144"
+ frameRate="15" />
+ <!-- audio setting is ignored -->
+ <Audio codec="amrnb"
+ bitRate="12200"
+ sampleRate="8000"
+ channels="1" />
+ </EncoderProfile>
+
+ <ImageEncoding quality="90" />
+ <ImageEncoding quality="80" />
+ <ImageEncoding quality="70" />
+ <ImageDecoding memCap="20000000" />
+
+ <Camera previewFrameRate="0" />
+
+ </CamcorderProfiles>
+
+
+ <EncoderOutputFileFormat name="3gp" />
+ <EncoderOutputFileFormat name="mp4" />
+
+ <!--
+ If a codec is not enabled, it is invisible to the applications
+ In other words, the applications won't be able to use the codec
+ or query the capabilities of the codec at all if it is disabled
+ -->
+ <VideoEncoderCap name="h263" enabled="true"
+ minBitRate="96000" maxBitRate="420000"
+ minFrameWidth="176" maxFrameWidth="640"
+ minFrameHeight="144" maxFrameHeight="480"
+ minFrameRate="7" maxFrameRate="30" />
+
+ <VideoEncoderCap name="h264" enabled="true"
+ minBitRate="96000" maxBitRate="20000000"
+ minFrameWidth="176" maxFrameWidth="1920"
+ minFrameHeight="144" maxFrameHeight="1080"
+ minFrameRate="7" maxFrameRate="30" />
+
+ <VideoEncoderCap name="m4v" enabled="true"
+ minBitRate="96000" maxBitRate="20000000"
+ minFrameWidth="176" maxFrameWidth="1920"
+ minFrameHeight="144" maxFrameHeight="1080"
+ minFrameRate="7" maxFrameRate="30" />
+
+ <AudioEncoderCap name="amrnb" enabled="true"
+ minBitRate="5525" maxBitRate="12200"
+ minSampleRate="8000" maxSampleRate="8000"
+ minChannels="1" maxChannels="1" />
+
+ <AudioEncoderCap name="amrwb" enabled="true"
+ minBitRate="6600" maxBitRate="23050"
+ minSampleRate="16000" maxSampleRate="16000"
+ minChannels="1" maxChannels="1" />
+
+ <AudioEncoderCap name="aac" enabled="true"
+ minBitRate="5525" maxBitRate="128000"
+ minSampleRate="8000" maxSampleRate="48000"
+ minChannels="1" maxChannels="2" />
+
+
+ <!--
+ FIXME:
+ We do not check decoder capabilities at present
+ At present, we only check whether windows media is visible
+ for TEST applications. For other applications, we do
+ not perform any checks at all.
+ -->
+ <VideoDecoderCap name="wmv" enabled="false"/>
+ <AudioDecoderCap name="wma" enabled="false"/>
+
+ <VideoEditorCap maxInputFrameWidth="1920"
+ maxInputFrameHeight="1088" maxOutputFrameWidth="1920"
+ maxOutputFrameHeight="1088" maxPrefetchYUVFrames="3"/>
+
+ <ExportVideoProfile name="h263" profile="1" level="1"/>
+ <ExportVideoProfile name="h264" profile="1" level="1"/>
+ <ExportVideoProfile name="m4v" profile="1" level="1"/>
+</MediaSettings>
diff --git a/rootdir/system/etc/nfcee_access.xml b/rootdir/system/etc/nfcee_access.xml
new file mode 100644
index 0000000..02e12fd
--- /dev/null
+++ b/rootdir/system/etc/nfcee_access.xml
@@ -0,0 +1,11 @@
+<?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/rootdir/system/etc/nfcee_access_debug.xml b/rootdir/system/etc/nfcee_access_debug.xml
new file mode 100644
index 0000000..a96a2d1
--- /dev/null
+++ b/rootdir/system/etc/nfcee_access_debug.xml
@@ -0,0 +1,17 @@
+<?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/rootdir/system/etc/snd_soc_msm/snd_soc_msm_2x b/rootdir/system/etc/snd_soc_msm/snd_soc_msm_2x
new file mode 100644
index 0000000..76952a5
--- /dev/null
+++ b/rootdir/system/etc/snd_soc_msm/snd_soc_msm_2x
@@ -0,0 +1,7049 @@
+# 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 SPDIF"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia1':1:1
+ 'SEC_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia1':1:0
+ 'SEC_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 "HiFiBT CARKIT 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
+
+SectionVerb
+ Name "HiFiUSB PROXY 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 "HiFiUSB PROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiSPDIF"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiSPDIF Speaker"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiSPDIF Earpiece"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiSPDIF Headphones"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiSPDIF ANC Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiSPDIF Speaker Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiSPDIF Speaker ANC Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiPROXY Rx Speaker"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiPROXY Rx Earpiece"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiPROXY Rx Headphones"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiPROXY Rx ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiPROXY Rx Speaker Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFiPROXY Rx Speaker ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+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 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 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 PowerPROXY Rx Speaker"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerPROXY Rx Earpiece"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerPROXY Rx Headphones"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerPROXY Rx ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerPROXY Rx Speaker Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 4
+
+EndSection
+
+SectionVerb
+ Name "HiFi Low PowerPROXY Rx Speaker ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ 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 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."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 RecBT DSP 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 CARKIT 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 RecPROXY Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFi RecUSB PROXY Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFi RecPROXY Tx"
+
+ EnableSequence
+ 'MultiMedia1 Mixer AFE_PCM_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer AFE_PCM_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionVerb
+ Name "HiFi RecUSB PROXY Tx"
+
+ EnableSequence
+ 'MultiMedia1 Mixer AFE_PCM_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer AFE_PCM_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."SGLTE" {
+Comment "SGLTE use case"
+SectionVerb
+ Name "SGLTE"
+
+ EnableSequence
+ 'SLIM_0_RX_Voice Mixer SGLTE':1:1
+ 'SGLTE_Tx Mixer SLIM_0_TX_SGLTE':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM_0_RX_Voice Mixer SGLTE':1:0
+ 'SGLTE_Tx Mixer SLIM_0_TX_SGLTE':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 13
+ CapturePCM 13
+
+EndSection
+
+SectionVerb
+ Name "SGLTE CallHDMI"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'HDMI_RX_Voice Mixer SGLTE':1:0
+ 'SGLTE_Tx Mixer SLIM_0_TX_SGLTE':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 13
+ CapturePCM 13
+
+EndSection
+
+SectionVerb
+ Name "SGLTE CallHDMI Tx"
+
+ EnableSequence
+ 'HDMI_RX_Voice Mixer SGLTE':1:1
+ 'SGLTE_Tx Mixer SLIM_0_TX_SGLTE':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 13
+ CapturePCM 13
+
+EndSection
+
+SectionVerb
+ Name "SGLTE CallBT SCO Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer SGLTE':1:0
+ 'SGLTE_Tx Mixer INTERNAL_BT_SCO_TX_SGLTE':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 13
+ CapturePCM 13
+
+EndSection
+
+SectionVerb
+ Name "SGLTE CallBT SCO Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer SGLTE':1:1
+ 'SGLTE_Tx Mixer INTERNAL_BT_SCO_TX_SGLTE':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 13
+ CapturePCM 13
+
+EndSection
+
+SectionVerb
+ Name "SGLTE CallBT SCO WB Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer SGLTE':1:0
+ 'SGLTE_Tx Mixer INTERNAL_BT_SCO_TX_SGLTE':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 13
+ CapturePCM 13
+
+EndSection
+
+SectionVerb
+ Name "SGLTE CallBT SCO WB Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:16000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer SGLTE':1:1
+ 'SGLTE_Tx Mixer INTERNAL_BT_SCO_TX_SGLTE':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 13
+ CapturePCM 13
+
+EndSection
+
+SectionVerb
+ Name "SGLTE CallPROXY Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX_Voice Mixer SGLTE':1:0
+ 'SGLTE_Tx Mixer AFE_PCM_TX_SGLTE':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 13
+ CapturePCM 13
+
+EndSection
+
+SectionVerb
+ Name "SGLTE CallPROXY Tx"
+
+ EnableSequence
+ 'AFE_PCM_RX_Voice Mixer SGLTE':1:1
+ 'SGLTE_Tx Mixer AFE_PCM_TX_SGLTE':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 13
+ CapturePCM 13
+
+EndSection
+}
+SectionUseCase."Voice Call" {
+Comment "Voice Call use case"
+SectionVerb
+ Name "Voice Call"
+
+ EnableSequence
+ 'SLIM_0_RX_Voice Mixer CSVoice':1:1
+ 'Voice_Tx Mixer SLIM_0_TX_Voice':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM_0_RX_Voice Mixer CSVoice':1:0
+ 'Voice_Tx Mixer SLIM_0_TX_Voice':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionVerb
+ Name "Voice CallHDMI"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'HDMI_RX_Voice Mixer CSVoice':1:0
+ 'Voice_Tx Mixer SLIM_0_TX_Voice':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionVerb
+ Name "Voice CallHDMI Tx"
+
+ EnableSequence
+ 'HDMI_RX_Voice Mixer CSVoice':1:1
+ 'Voice_Tx Mixer SLIM_0_TX_Voice':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionVerb
+ Name "Voice CallBT SCO Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:0
+ 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionVerb
+ Name "Voice CallBT SCO Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:1
+ 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionVerb
+ Name "Voice CallBT SCO WB Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:0
+ 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionVerb
+ Name "Voice CallBT SCO WB Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:16000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:1
+ 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionVerb
+ Name "Voice CallBT DSP SCO Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:1
+ 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ capturePCM 2
+
+EndSection
+
+SectionVerb
+ Name "Voice CallBT CARKIT Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:0
+ 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ capturePCM 2
+
+EndSection
+
+SectionVerb
+ Name "Voice CallBT CARKIT Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:1
+ 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ capturePCM 2
+
+EndSection
+
+SectionVerb
+ Name "Voice CallPROXY Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX_Voice Mixer CSVoice':1:0
+ 'Voice_Tx Mixer AFE_PCM_TX_Voice':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionVerb
+ Name "Voice CallUSB PROXY Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX_Voice Mixer CSVoice':1:0
+ 'Voice_Tx Mixer AFE_PCM_TX_Voice':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionVerb
+ Name "Voice CallPROXY Tx"
+
+ EnableSequence
+ 'AFE_PCM_RX_Voice Mixer CSVoice':1:1
+ 'Voice_Tx Mixer AFE_PCM_TX_Voice':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionVerb
+ Name "Voice CallUSB PROXY Tx"
+
+ EnableSequence
+ 'AFE_PCM_RX_Voice Mixer CSVoice':1:1
+ 'Voice_Tx Mixer AFE_PCM_TX_Voice':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+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 IPBT DSP SCO Tx"
+
+ 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 IPBT CARKIT Rx"
+
+ 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 IPBT CARKIT Tx"
+
+ 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"
+
+ 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
+
+SectionVerb
+ Name "Voice Call IPPROXY Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer AFE_PCM_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPUSB PROXY Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer AFE_PCM_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPPROXY Tx"
+
+ EnableSequence
+ 'AFE_PCM_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer AFE_PCM_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionVerb
+ Name "Voice Call IPUSB PROXY Tx"
+
+ EnableSequence
+ 'AFE_PCM_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer AFE_PCM_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+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 RadioUSB PROXY 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."DL REC" {
+Comment "Voice Downlink Recording use case"
+SectionVerb
+ Name "DL REC"
+
+ EnableSequence
+ 'MultiMedia1 Mixer VOC_REC_DL':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer VOC_REC_DL':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 0
+ CapturePCM 0
+
+EndSection
+}
+SectionUseCase."UL DL REC" {
+Comment "Voice Uplink Downlink Recording use case"
+SectionVerb
+ Name "UL DL REC"
+
+ EnableSequence
+ 'MultiMedia1 Mixer VOC_REC_UL':1:1
+ 'MultiMedia1 Mixer VOC_REC_DL':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer VOC_REC_UL':1:0
+ 'MultiMedia1 Mixer VOC_REC_DL':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 SPDIF"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia4':1:1
+ 'SEC_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia4':1:0
+ 'SEC_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
+
+SectionVerb
+ Name "HiFi TunnelPROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelUSB PROXY 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
+
+SectionVerb
+ Name "HiFi TunnelUSB PROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelSPDIF"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelSPDIF Speaker"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelSPDIF Earpiece"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelSPDIF Headphones"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelSPDIF ANC Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelSPDIF Speaker Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelSPDIF Speaker ANC Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelPROXY Rx Speaker"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelPROXY Rx Earpiece"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelPROXY Rx Headphones"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelPROXY Rx ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelPROXY Rx Speaker Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionVerb
+ Name "HiFi TunnelPROXY Rx Speaker ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+}
+SectionUseCase."MI2S" {
+Comment "MI2S use case"
+
+SectionVerb
+ Name "MI2S"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Port Mixer MI2S_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Port Mixer MI2S_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 12
+ PlaybackPCM 5
+
+EndSection
+
+SectionVerb
+ Name "MI2SSpeaker"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_DL_HL Switch':1:1
+ 'SLIMBUS_0_RX Port Mixer MI2S_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_DL_HL Switch':1:0
+ 'SLIMBUS_0_RX Port Mixer MI2S_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 12
+ PlaybackPCM 5
+
+EndSection
+
+SectionVerb
+ Name "MI2SHDMI"
+
+ EnableSequence
+ 'HDMI_RX Port Mixer MI2S_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI_RX Port Mixer MI2S_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 12
+ PlaybackPCM 11
+
+EndSection
+
+SectionVerb
+ Name "MI2SSPDIF"
+
+ EnableSequence
+ 'SEC_I2S_RX Port Mixer MI2S_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_I2S_RX Port Mixer MI2S_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 12
+ PlaybackPCM 13
+
+EndSection
+
+}
+SectionUseCase."VoLTE" {
+Comment "VoLTE use case"
+SectionVerb
+ Name "VoLTE"
+
+ EnableSequence
+ 'SLIM_0_RX_Voice Mixer VoLTE':1:1
+ 'VoLTE_Tx Mixer SLIM_0_TX_VoLTE':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM_0_RX_Voice Mixer VoLTE':1:0
+ 'VoLTE_Tx Mixer SLIM_0_TX_VoLTE':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ capturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "VoLTE CallHDMI"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'HDMI_RX_Voice Mixer VoLTE':1:0
+ 'VoLTE_Tx Mixer SLIM_0_TX_VoLTE':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ capturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "VoLTE CallHDMI Tx"
+
+ EnableSequence
+ 'HDMI_RX_Voice Mixer VoLTE':1:1
+ 'VoLTE_Tx Mixer SLIM_0_TX_VoLTE':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ capturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "VoLTE CallBT SCO Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer VoLTE':1:0
+ 'VoLTE_Tx Mixer INTERNAL_BT_SCO_TX_VoLTE':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ capturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "VoLTE CallBT SCO Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer VoLTE':1:1
+ 'VoLTE_Tx Mixer INTERNAL_BT_SCO_TX_VoLTE':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ capturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "VoLTE CallBT SCO WB Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer VoLTE':1:0
+ 'VoLTE_Tx Mixer INTERNAL_BT_SCO_TX_VoLTE':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ capturePCM 12
+
+EndSection
+
+SectionVerb
+ Name "VoLTE CallBT SCO WB Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:16000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer VoLTE':1:1
+ 'VoLTE_Tx Mixer INTERNAL_BT_SCO_TX_VoLTE':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ capturePCM 12
+
+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
+}
+SectionDevice
+ Name "Earpiece"
+ Comment "Handset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'EAR PA Gain':0:POS_6_DB
+ 'DAC1 Switch':1:1
+ 'RX1 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'DAC1 Switch':1:0
+ 'RX1 Digital Volume':1:0
+ EndSequence
+
+ ACDBID 7:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Voice Earpiece"
+ Comment "Handset Rx device for voice call"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'EAR PA Gain':0:POS_6_DB
+ 'DAC1 Switch':1:1
+ 'RX1 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'DAC1 Switch':1:0
+ 'RX1 Digital Volume':1:0
+ EndSequence
+
+ ACDBID 7:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "TTY Handset Rx"
+ Comment "TTY HCO Handset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'EAR PA Gain':0:POS_2_DB
+ 'DAC1 Switch':1:1
+ 'RX1 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'DAC1 Switch':1:0
+ EndSequence
+
+ ACDBID 37:1
+ EffectsMixerCTL "SRS TruMedia"
+ EC_REF_RXMixerCTL "SLIM_RX"
+
+EndSection
+
+SectionDevice
+ Name "ANC Handset"
+ Comment "ANC Handset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'DAC1 Switch':1:1
+ 'ANC Slot':1:1
+ 'ANC1 MUX':0:DMIC1
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'RX1 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'DAC1 Switch':1:0
+ 'ANC Slot':1:0
+ 'ANC1 MUX':0:ZERO
+ 'MICBIAS1 CAPLESS Switch':1:0
+ EndSequence
+
+ ACDBID 30:1
+ EffectsMixerCTL "SRS TruMedia"
+ EC_REF_RXMixerCTL "SLIM_RX"
+
+EndSection
+
+SectionDevice
+ Name "Earpiece hac Rx"
+ Comment "Handset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'EAR PA Gain':0:POS_6_DB
+ 'DAC1 Switch':1:1
+ 'RX1 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'DAC1 Switch':1:0
+ 'RX1 Digital Volume':1:0
+ EndSequence
+
+ ACDBID 257:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Speaker"
+ Comment "Speaker Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX2
+ 'LINEOUT1 DAC Switch':1:1
+ 'LINEOUT1 Volume':1:100
+ 'RX3 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'LINEOUT1 DAC Switch':1:0
+ 'LINEOUT1 Volume':1:0
+ 'RX3 Digital Volume':1:0
+ EndSequence
+
+ ACDBID 263:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "xLoud Speaker"
+ Comment "xLoud Speaker Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX2
+ 'LINEOUT1 DAC Switch':1:1
+ 'LINEOUT1 Volume':1:100
+ 'RX3 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'LINEOUT1 DAC Switch':1:0
+ 'LINEOUT1 Volume':1:0
+ 'RX3 Digital Volume':1:0
+ EndSequence
+
+ ACDBID 520:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Ringtone xLoud Speaker"
+ Comment "Ringtone xLoud Speaker Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX2
+ 'LINEOUT1 DAC Switch':1:1
+ 'LINEOUT1 Volume':1:100
+ 'RX3 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'LINEOUT1 DAC Switch':1:0
+ 'LINEOUT1 Volume':1:0
+ 'RX3 Digital Volume':1:0
+ EndSequence
+
+ ACDBID 546:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Ringtone Speaker"
+ Comment "Ringtone Speaker Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX2
+ 'LINEOUT1 DAC Switch':1:1
+ 'LINEOUT1 Volume':1:100
+ 'RX3 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'LINEOUT1 DAC Switch':1:0
+ 'LINEOUT1 Volume':1:0
+ 'RX3 Digital Volume':1:0
+ EndSequence
+
+ ACDBID 545:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Headphones"
+ Comment "Headset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX2 MIX1 INP1':0:RX2
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:80
+ 'HPHR Volume':1:80
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP1':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
+ 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
+ 'RX2 MIX1 INP1':0:RX2
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:80
+ 'HPHR Volume':1:80
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP1':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
+ EndSequence
+
+ ACDBID 10:1
+ EffectsMixerCTL "SRS TruMedia"
+
+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:RX2
+ 'RX3 Digital Volume':1:68
+ 'LINEOUT1 DAC Switch':1:1
+ 'LINEOUT1 Volume':1:100
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX2 MIX1 INP1':0:RX2
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:40
+ 'HPHR Volume':1:40
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'RX3 Digital Volume':1:0
+ 'LINEOUT1 DAC Switch':1:0
+ 'LINEOUT1 Volume':1:0
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'RX1 Digital Volume':1:0
+ 'RX2 Digital Volume':1:0
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ EndSequence
+
+ ACDBID 272: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
+ 'RX5 MIX1 INP1':0:RX2
+ '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
+ 'RX2 MIX1 INP1':0:RX2
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:70
+ 'HPHR Volume':1:70
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ '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
+ 'RX3 Digital Volume':1:68
+ 'RX4 Digital Volume':1:68
+ 'RX5 Digital Volume':1:68
+ 'RX6 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX5 MIX1 INP1':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
+ 'RX2 MIX1 INP1':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
+ EndSequence
+
+ ACDBID 26:1
+ EffectsMixerCTL "SRS TruMedia"
+ EC_REF_RXMixerCTL "SLIM_RX"
+
+EndSection
+
+SectionDevice
+ Name "ANC Headset"
+ Comment "ANC Headset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX2 MIX1 INP1':0:RX2
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:70
+ 'HPHR Volume':1:70
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ '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
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP1':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
+ EndSequence
+
+ ACDBID 26:1
+ EffectsMixerCTL "SRS TruMedia"
+ EC_REF_RXMixerCTL "SLIM_RX"
+
+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
+ 'RX2 MIX1 INP1':0:RX2
+ '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
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP1':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
+ EndSequence
+
+ ACDBID 26:1
+ EffectsMixerCTL "SRS TruMedia"
+
+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:RX2
+ 'LINEOUT1 DAC Switch':1:1
+ 'LINEOUT1 Volume':1:66
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX3 MIX1 INP2':0:ZERO
+ 'LINEOUT1 DAC Switch':1:0
+ 'LINEOUT1 Volume':1:0
+ 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:DEC5
+ 'DEC5 MUX':0:ADC2
+ 'DEC5 Volume':1:67
+ 'ADC2 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC5 MUX':0:ZERO
+ 'ADC2 Volume':1:0
+ 'DEC5 Volume':1:0
+ EndSequence
+
+ ACDBID 8:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Handset"
+ Comment "Handset Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC6
+ 'DEC6 MUX':0:ADC1
+ 'DEC6 Volume':1:66
+ 'ADC1 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC6 MUX':0:ZERO
+ 'DEC6 Volume':1:0
+ 'ADC1 Volume':1:0
+ EndSequence
+
+ ACDBID 4:2
+ EffectsMixerCTL "SRS TruMedia"
+
+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
+ 'ADC1 Volume':1:100
+ 'MICBIAS1 CAPLESS Switch':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC7 MUX':0:ZERO
+ '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: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 "TTY Handset Tx"
+ Comment "TTY VCO Handset 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 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 "Speaker Tx"
+ Comment "Speakerphone Tx Device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC6
+ 'DEC6 Volume':1:66
+ 'DEC6 MUX':0:ADC1
+ 'ADC1 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC6 MUX':0:ZERO
+ 'DEC6 Volume':1:0
+ 'ADC1 Volume':1:0
+ EndSequence
+
+ ACDBID 11:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "DMIC Broadside"
+ Comment "Dual MIC Broadside Tx device"
+
+ EnableSequence
+ 'SLIM TX7 MUX':0:DEC6
+ 'DEC6 MUX':0:ADC1
+ 'DEC6 Volume':1:66
+ 'ADC1 Volume':1:100
+ 'SLIM TX8 MUX':0:DEC4
+ 'DEC4 MUX':0:ADC3
+ 'DEC4 Volume':1:66
+ 'ADC3 Volume':1:100
+ 'SLIM_0_TX Channels':0:Two
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC6 MUX':0:ZERO
+ 'DEC6 Volume':1:0
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC4 MUX':0:ZERO
+ 'DEC4 Volume':1:0
+ EndSequence
+
+ ACDBID 5:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "DMIC Endfire"
+ Comment "Dual MIC Endfire Tx device"
+
+ EnableSequence
+ 'SLIM TX7 MUX':0:DEC6
+ 'DEC6 MUX':0:ADC1
+ 'DEC6 Volume':1:66
+ 'ADC1 Volume':1:100
+ 'SLIM TX8 MUX':0:DEC4
+ 'DEC4 MUX':0:ADC3
+ 'DEC4 Volume':1:66
+ 'ADC3 Volume':1:100
+ 'SLIM_0_TX Channels':0:Two
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC6 MUX':0:ZERO
+ 'DEC6 Volume':1:0
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC4 MUX':0:ZERO
+ 'DEC4 Volume':1:0
+ EndSequence
+
+ ACDBID 6:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Speaker DMIC Broadside"
+ Comment "Dual MIC Broadside Tx device"
+
+ EnableSequence
+ 'SLIM TX7 MUX':0:DEC6
+ 'DEC6 MUX':0:ADC1
+ 'ADC1 Volume':1:100
+ 'SLIM TX8 MUX':0:DEC4
+ 'DEC4 MUX':0:ADC3
+ 'ADC3 Volume':1:100
+ 'MICBIAS1 CAPLESS Switch':1:1
+ 'SLIM_0_TX Channels':0:Two
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC6 MUX':0:ZERO
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC4 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:DEC6
+ 'DEC6 MUX':0:ADC1
+ 'DEC6 Volume':1:66
+ 'ADC1 Volume':1:100
+ 'SLIM TX8 MUX':0:DEC4
+ 'DEC4 MUX':0:ADC3
+ 'DEC4 Volume':1:66
+ 'ADC3 Volume':1:100
+ 'SLIM_0_TX Channels':0:Two
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC6 MUX':0:ZERO
+ 'DEC6 Volume':1:0
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC4 MUX':0:ZERO
+ 'DEC4 Volume':1:0
+ EndSequence
+
+ ACDBID 13:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Handset 2nd"
+ Comment "Handset Tx Secondary Mic"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC4
+ 'DEC4 MUX':0:ADC3
+ 'DEC4 Volume':1:66
+ 'ADC3 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC4 MUX':0:ZERO
+ 'DEC4 Volume':1:0
+ 'ADC3 Volume':1:0
+ EndSequence
+
+ ACDBID 4:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "DMIC stereo Tx"
+ Comment "Dual MIC Endfire Tx real stereo device"
+
+ EnableSequence
+ 'SLIM TX7 MUX':0:DEC4
+ 'DEC4 MUX':0:ADC3
+ 'DEC4 Volume':1:66
+ 'ADC3 Volume':1:100
+ 'SLIM TX8 MUX':0:DEC6
+ 'DEC6 MUX':0:ADC1
+ 'DEC6 Volume':1:70
+ 'ADC1 Volume':1:100
+ 'SLIM_0_TX Channels':0:Two
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC4 MUX':0:ZERO
+ 'DEC4 Volume':1:0
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC6 MUX':0:ZERO
+ 'DEC6 Volume':1:0
+ 'ADC3 Volume':1:0
+ 'ADC1 Volume':1:0
+ EndSequence
+
+ ACDBID 35:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Handset ASR Tx"
+ Comment "Handset ASR Tx device"
+
+ EnableSequence
+ 'SLIM_0_TX Channels':0:One
+ 'SLIM TX7 MUX':0:DEC6
+ 'DEC6 MUX':0:ADC1
+ 'DEC6 Volume':1:66
+ 'ADC1 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC6 MUX':0:ZERO
+ 'DEC6 Volume':1:0
+ 'ADC1 Volume':1:0
+ EndSequence
+
+ ACDBID 528:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "Camcorder Tx"
+ Comment "Camcorder Tx device"
+
+ EnableSequence
+ 'SLIM TX7 MUX':0:DEC4
+ 'DEC4 MUX':0:ADC3
+ 'DEC4 Volume':1:66
+ 'ADC3 Volume':1:100
+ 'SLIM TX8 MUX':0:DEC6
+ 'DEC6 MUX':0:ADC1
+ 'DEC6 Volume':1:66
+ 'ADC1 Volume':1:100
+ 'SLIM_0_TX Channels':0:Two
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC4 MUX':0:ZERO
+ 'DEC4 Volume':1:0
+ 'ADC3 Volume':1:0
+ 'SLIM TX8 MUX':0:ZERO
+ 'DEC6 MUX':0:ZERO
+ 'DEC6 Volume':1:0
+ 'ADC1 Volume':1:0
+ EndSequence
+
+ ACDBID 544: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:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX2 MIX1 INP1':0:RX2
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:80
+ 'HPHR Volume':1:80
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 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
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ 'RX1 Digital Volume':1:0
+ 'RX2 Digital 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:DEC5
+ 'DEC5 MUX':0:ADC2
+ 'DEC5 Volume':1:66
+ 'ADC2 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'TTY Mode':0:ZERO
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC5 MUX':0:ZERO
+ 'DEC5 Volume':1:0
+ '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:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX2 MIX1 INP1':0:RX2
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:80
+ 'HPHR Volume':1:80
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 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
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ 'RX1 Digital Volume':1:0
+ 'RX2 Digital 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:DEC5
+ 'DEC5 MUX':0:ADC2
+ 'DEC5 Volume':1:66
+ 'ADC2 Volume':1:100
+ EndSequence
+
+ DisableSequence
+ 'SLIM TX7 MUX':0:ZERO
+ 'DEC5 MUX':0:ZERO
+ 'DEC5 Volume':1:0
+ '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 WB Rx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 39:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "BT SCO WB Tx"
+ Comment "BT SCO WB Tx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 38:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "BT DSP SCO Tx"
+ Comment "BT SCO Tx device if AT*NREC=false"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 282:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "BT DSP WB SCO Tx"
+ Comment "BT SCO WB Tx device if AT*NREC=false"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 550:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "BT CARKIT Rx"
+ Comment "BT CARKIT Rx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 22:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "BT CARKIT Tx"
+ Comment "BT CARKIT Tx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 266:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "BT CARKIT WB Tx"
+ Comment "BT CARKIT WB Tx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 294: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 SPDIF"
+ Comment "HDMI + SPDIF Rx combo device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 18:1
+ EffectsMixerCTL "SRS TruMedia HDMI"
+
+EndSection
+
+SectionDevice
+ Name "FM Rec Tx"
+ Comment "FM Rec Tx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 806:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "FM Tx"
+ Comment "FM Tx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 0:1
+ EffectsMixerCTL "SRS TruMedia FM"
+
+EndSection
+
+SectionDevice
+ Name "PROXY Rx"
+ Comment "PROXY Rx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 530: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 "USB PROXY Rx"
+ Comment "USB PROXY Rx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 45:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "USB PROXY Tx"
+ Comment "USB PROXY Tx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 44:2
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "SPDIF"
+ Comment "SPDIF Rx device"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ ACDBID 0:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "SPDIF Earpiece"
+ Comment "SPDIF + Handset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'EAR PA Gain':0:POS_2_DB
+ 'DAC1 Switch':1:1
+ 'RX1 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'DAC1 Switch':1:0
+ EndSequence
+
+ ACDBID 7:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "SPDIF Speaker"
+ Comment "SPDIF + Speaker Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX5 MIX1 INP1':0:RX2
+ '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
+ 'RX3 Digital Volume':1:68
+ 'RX4 Digital Volume':1:68
+ 'RX5 Digital Volume':1:68
+ 'RX6 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX5 MIX1 INP1':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
+ EndSequence
+
+ ACDBID 15:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "SPDIF Headphones"
+ Comment "SPDIF + Headset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX2 MIX1 INP1':0:RX2
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:80
+ 'HPHR Volume':1:80
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP1':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
+ EndSequence
+
+ ACDBID 10:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "SPDIF ANC Headset"
+ Comment "SPDIF + ANC Headset Rx device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX2 MIX1 INP1':0:RX2
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:70
+ 'HPHR Volume':1:70
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ '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
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'HPHL Volume':1:0
+ 'HPHR 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
+ EndSequence
+
+ ACDBID 26:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "SPDIF Speaker Headset"
+ Comment "SPDIF + Speaker Headset Rx combo device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX5 MIX1 INP1':0:RX2
+ '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
+ 'RX2 MIX1 INP1':0:RX2
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:80
+ 'HPHR Volume':1:80
+ 'RX3 Digital Volume':1:68
+ 'RX4 Digital Volume':1:68
+ 'RX5 Digital Volume':1:68
+ 'RX6 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX5 MIX1 INP1':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
+ 'RX2 MIX1 INP1':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ EndSequence
+
+ ACDBID 10:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "SPDIF Speaker ANC Headset"
+ Comment "SPDIF + Speaker ANC Headset Rx combo device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX5 MIX1 INP1':0:RX2
+ '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
+ 'RX2 MIX1 INP1':0:RX2
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:70
+ 'HPHR Volume':1:70
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ '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
+ 'RX3 Digital Volume':1:68
+ 'RX4 Digital Volume':1:68
+ 'RX5 Digital Volume':1:68
+ 'RX6 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX5 MIX1 INP1':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
+ 'RX2 MIX1 INP1':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'HPHL Volume':1:0
+ 'HPHR 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
+ EndSequence
+
+ ACDBID 26:1
+ 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
+
+SectionDevice
+ Name "PROXY Rx Earpiece"
+ Comment "PROXY Rx + Handset Rx device combo device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:One
+ 'RX1 MIX1 INP1':0:RX1
+ 'EAR PA Gain':0:POS_2_DB
+ 'DAC1 Switch':1:1
+ 'RX1 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'DAC1 Switch':1:0
+ EndSequence
+
+ ACDBID 7:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "PROXY Rx Speaker"
+ Comment "PROXY Rx + Speaker Rx device combo device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX3 MIX1 INP2':0:RX2
+ 'LINEOUT1 DAC Switch':1:1
+ 'LINEOUT1 Volume':1:66
+ 'RX3 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'LINEOUT1 DAC Switch':1:0
+ 'LINEOUT1 Volume':1:0
+ 'RX3 Digital Volume':1:0
+ EndSequence
+
+ ACDBID 15:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "PROXY Rx Headphones"
+ Comment "PROXY Rx + Headphone Rx device combo device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX2 MIX1 INP1':0:RX2
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:80
+ 'HPHR Volume':1:80
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP1':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
+ EndSequence
+
+ ACDBID 10:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "PROXY Rx Speaker Headset"
+ Comment "PROXY Rx + Speaker Headset Rx combo device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX5 MIX1 INP1':0:RX2
+ '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
+ 'RX2 MIX1 INP1':0:RX2
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:80
+ 'HPHR Volume':1:80
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ 'RX3 Digital Volume':1:68
+ 'RX4 Digital Volume':1:68
+ 'RX5 Digital Volume':1:68
+ 'RX6 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX5 MIX1 INP1':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
+ 'RX2 MIX1 INP1':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'HPHL Volume':1:0
+ 'HPHR Volume':1:0
+ EndSequence
+
+ ACDBID 10:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "PROXY Rx Speaker ANC Headset"
+ Comment "PROXY Rx + Speaker ANC Headset Rx combo device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX3 MIX1 INP1':0:RX1
+ 'RX5 MIX1 INP1':0:RX2
+ '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
+ 'RX2 MIX1 INP1':0:RX2
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:70
+ 'HPHR Volume':1:70
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ '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
+ 'RX3 Digital Volume':1:68
+ 'RX4 Digital Volume':1:68
+ 'RX5 Digital Volume':1:68
+ 'RX6 Digital Volume':1:68
+ EndSequence
+
+ DisableSequence
+ 'RX3 MIX1 INP1':0:ZERO
+ 'RX5 MIX1 INP1':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
+ 'RX2 MIX1 INP1':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'HPHL Volume':1:0
+ 'HPHR 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
+ EndSequence
+
+ ACDBID 26:1
+ EffectsMixerCTL "SRS TruMedia"
+
+EndSection
+
+SectionDevice
+ Name "PROXY Rx ANC Headset"
+ Comment "PROXY Rx ANC Headset Rx device combo device"
+
+ EnableSequence
+ 'SLIM_0_RX Channels':0:Two
+ 'RX1 MIX1 INP1':0:RX1
+ 'RX2 MIX1 INP1':0:RX2
+ 'HPHL DAC Switch':1:1
+ 'HPHR DAC Switch':1:1
+ 'HPHL Volume':1:70
+ 'HPHR Volume':1:70
+ 'RX1 Digital Volume':1:68
+ 'RX2 Digital Volume':1:68
+ '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
+ EndSequence
+
+ DisableSequence
+ 'RX1 MIX1 INP1':0:ZERO
+ 'RX2 MIX1 INP1':0:ZERO
+ 'HPHL DAC Switch':1:0
+ 'HPHR DAC Switch':1:0
+ 'HPHL Volume':1:0
+ 'HPHR 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
+ EndSequence
+
+ ACDBID 26:1
+ 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 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 SPDIF"
+ Comment "Modifier for music playback on HDMI SPDIF"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia1':1:1
+ 'SEC_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia1':1:0
+ 'SEC_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 MusicBT CARKIT 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 MusicUSB PROXY 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 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 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 "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 FMPROXY 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
+
+SectionModifier
+ Name "Play FMUSB PROXY 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
+
+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 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 "Play LPAUSB PROXY 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 DSP 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 CARKIT 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 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
+ 'SLIM_0_RX_Voice Mixer CSVoice':1:1
+ 'Voice_Tx Mixer SLIM_0_TX_Voice':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM_0_RX_Voice Mixer CSVoice':1:0
+ 'Voice_Tx Mixer SLIM_0_TX_Voice':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 2
+ PlaybackPCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceHDMI"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'HDMI_RX_Voice Mixer CSVoice':1:0
+ 'Voice_Tx Mixer SLIM_0_TX_Voice':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ capturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceHDMI Tx"
+
+ EnableSequence
+ 'HDMI_RX_Voice Mixer CSVoice':1:1
+ 'Voice_Tx Mixer SLIM_0_TX_Voice':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ capturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceBT SCO Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:0
+ 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceBT SCO Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:1
+ 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceBT DSP SCO Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:1
+ 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ capturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceBT CARKIT Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:1
+ 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ capturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceBT CARKIT Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:0
+ 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ capturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceBT SCO WB Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'Internal BTSCO SampleRate':0:8000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:0
+ 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceBT SCO WB Tx"
+
+ EnableSequence
+ 'Internal BTSCO SampleRate':0:16000
+ 'INTERNAL_BT_SCO_RX_Voice Mixer CSVoice':1:1
+ 'Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Capture Voice"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+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 VOIPBT DSP SCO Tx"
+
+ EnableSequence
+ 'SLIM_0_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 VOIPBT CARKIT Rx"
+
+ 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
+
+SectionModifier
+ Name "Play VOIPBT CARKIT Tx"
+
+ EnableSequence
+ 'SLIM_0_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 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 "Capture Voice Downlink"
+
+ EnableSequence
+ 'MultiMedia1 Mixer VOC_REC_DL':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer VOC_REC_DL':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 0
+ CapturePCM 0
+
+EndSection
+
+SectionModifier
+ Name "Capture Voice Uplink Downlink"
+
+ EnableSequence
+ 'MultiMedia1 Mixer VOC_REC_UL':1:1
+ 'MultiMedia1 Mixer VOC_REC_DL':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer VOC_REC_UL':1:0
+ 'MultiMedia1 Mixer VOC_REC_DL':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 0
+ CapturePCM 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 SPDIF"
+
+ EnableSequence
+ 'HDMI Mixer MultiMedia4':1:1
+ 'SEC_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI Mixer MultiMedia4':1:0
+ 'SEC_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 "Play TunnelUSB PROXY 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 "Play MusicSPDIF"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicSPDIF Speaker"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_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 MusicSPDIF Earpiece"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_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 MusicSPDIF Headphones"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_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 MusicSPDIF ANC Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_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 MusicSPDIF Speaker Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_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 MusicSPDIF Speaker ANC Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_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 Music2SPDIF"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia2':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play Music2SPDIF 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 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play Music2SPDIF 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 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play Music2SPDIF 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 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play Music2SPDIF 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 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play Music2SPDIF 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 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play Music2SPDIF 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 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelSPDIF"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelSPDIF Speaker"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelSPDIF Earpiece"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelSPDIF Headphones"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelSPDIF ANC Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelSPDIF Speaker Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelSPDIF Speaker ANC Headset"
+
+ EnableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Capture MusicPROXY Tx"
+
+ EnableSequence
+ 'MultiMedia1 Mixer AFE_PCM_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer AFE_PCM_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Capture MusicUSB PROXY Tx"
+
+ EnableSequence
+ 'MultiMedia1 Mixer AFE_PCM_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'MultiMedia1 Mixer AFE_PCM_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play SGLTE"
+
+ EnableSequence
+ 'SLIM_0_RX_Voice Mixer SGLTE':1:1
+ 'SGLTE_Tx Mixer SLIM_0_TX_SGLTE':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM_0_RX_Voice Mixer SGLTE':1:0
+ 'SGLTE_Tx Mixer SLIM_0_TX_SGLTE':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 13
+ PlaybackPCM 13
+
+EndSection
+
+SectionModifier
+ Name "Play VoicePROXY Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX_Voice Mixer CSVoice':1:0
+ 'Voice_Tx Mixer AFE_PCM_TX_Voice':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceUSB PROXY Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX_Voice Mixer CSVoice':1:0
+ 'Voice_Tx Mixer AFE_PCM_TX_Voice':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play VoicePROXY Tx"
+
+ EnableSequence
+ 'AFE_PCM_RX_Voice Mixer CSVoice':1:1
+ 'Voice_Tx Mixer AFE_PCM_TX_Voice':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play VoiceUSB PROXY Tx"
+
+ EnableSequence
+ 'AFE_PCM_RX_Voice Mixer CSVoice':1:1
+ 'Voice_Tx Mixer AFE_PCM_TX_Voice':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play VOIPPROXY Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer AFE_PCM_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play VOIPUSB PROXY Rx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX_Voice Mixer Voip':1:0
+ 'Voip_Tx Mixer AFE_PCM_TX_Voip':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play VOIPPROXY Tx"
+
+ EnableSequence
+ 'AFE_PCM_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer AFE_PCM_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play VOIPUSB PROXY Tx"
+
+ EnableSequence
+ 'AFE_PCM_RX_Voice Mixer Voip':1:1
+ 'Voip_Tx Mixer AFE_PCM_TX_Voip':1:1
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 2
+ CapturePCM 2
+
+EndSection
+
+SectionModifier
+ Name "Play MusicPROXY Tx"
+
+ EnableSequence
+ EndSequence
+
+ DisableSequence
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 0
+
+EndSection
+
+SectionModifier
+ Name "Play MusicUSB PROXY 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 LPAUSB PROXY 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 "Play FMUSB PROXY 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 MusicUSB PROXY 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 MI2S"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Port Mixer MI2S_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Port Mixer MI2S_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 12
+ PlaybackPCM 5
+
+EndSection
+
+SectionModifier
+ Name "Play MI2SSpeaker"
+
+ EnableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_DL_HL Switch':1:1
+ 'SLIMBUS_0_RX Port Mixer MI2S_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:0
+ 'SLIMBUS_DL_HL Switch':1:0
+ 'SLIMBUS_0_RX Port Mixer MI2S_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 12
+ PlaybackPCM 5
+
+EndSection
+
+SectionModifier
+ Name "Play MI2SHDMI"
+
+ EnableSequence
+ 'HDMI_RX Port Mixer MI2S_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'HDMI_RX Port Mixer MI2S_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 12
+ PlaybackPCM 11
+
+EndSection
+
+SectionModifier
+ Name "Play MI2SSPDIF"
+
+ EnableSequence
+ 'SEC_I2S_RX Port Mixer MI2S_TX':1:1
+ EndSequence
+
+ DisableSequence
+ 'SEC_I2S_RX Port Mixer MI2S_TX':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 12
+ PlaybackPCM 13
+
+EndSection
+
+SectionModifier
+ Name "Play VoLTE"
+
+ EnableSequence
+ 'SLIM_0_RX_Voice Mixer VoLTE':1:1
+ 'VoLTE_Tx Mixer SLIM_0_TX_VoLTE':1:1
+ EndSequence
+
+ DisableSequence
+ 'SLIM_0_RX_Voice Mixer VoLTE':1:0
+ 'VoLTE_Tx Mixer SLIM_0_TX_VoLTE':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 12
+ capturePCM 12
+
+EndSection
+
+SectionModifier
+ Name "Play MusicPROXY Rx Speaker"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_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 MusicPROXY Rx Earpiece"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_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 MusicPROXY Rx Headphones"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_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 MusicPROXY Rx ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_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 MusicPROXY Rx Speaker Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_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 MusicPROXY Rx Speaker ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia1':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia1':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_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 LPAPROXY Rx Speaker"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPAPROXY Rx Earpiece"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPAPROXY Rx Headphones"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPAPROXY Rx ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPAPROXY Rx Speaker Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play LPAPROXY Rx Speaker ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia3':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia3':1:0
+ EndSequence
+
+ # ALSA PCMs
+ CapturePCM 0
+ PlaybackPCM 4
+
+EndSection
+
+SectionModifier
+ Name "Play Music2PROXY 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
+
+SectionModifier
+ Name "Play Music2PROXY 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
+
+SectionModifier
+ Name "Play Music2PROXY 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
+
+SectionModifier
+ Name "Play Music2PROXY 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
+
+SectionModifier
+ Name "Play Music2PROXY 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
+
+SectionModifier
+ Name "Play Music2PROXY 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
+
+SectionModifier
+
+ Name "Play TunnelPROXY Rx Speaker"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelPROXY Rx Earpiece"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play Tunnel TunnelPROXY Rx Headphones"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelPROXY Rx ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelPROXY Rx Speaker Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+
+SectionModifier
+ Name "Play TunnelPROXY Rx Speaker ANC Headset"
+
+ EnableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:1
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:1
+ EndSequence
+
+ DisableSequence
+ 'AFE_PCM_RX Audio Mixer MultiMedia4':1:0
+ 'SLIMBUS_0_RX Audio Mixer MultiMedia4':1:0
+ EndSequence
+
+ # ALSA PCMs
+ PlaybackPCM 9
+
+EndSection
+# End of master file
diff --git a/rootdir/system/etc/thermald.conf b/rootdir/system/etc/thermald.conf
new file mode 100644
index 0000000..82f9c56
--- /dev/null
+++ b/rootdir/system/etc/thermald.conf
@@ -0,0 +1,43 @@
+sampling 5000
+
+[pa_therm0]
+sampling 1000
+thresholds 43 50 55 69
+thresholds_clr 40 45 50 55
+actions cpu+lcd cpu+lcd cpu+lcd shutdown
+action_info 1512000+255 1026000+105 810000+71 5000
+
+[tsens_tz_sensor0]
+sampling 1000
+thresholds 65 90 93 96 99 102 105
+thresholds_clr 62 87 90 93 96 99 102
+actions cpu cpu cpu cpu cpu cpu shutdown
+action_info 1512000 1296000 1188000 918000 756000 648000 5000
+
+[tsens_tz_sensor1]
+sampling 1000
+thresholds 75
+thresholds_clr 72
+actions none
+action_info 0
+
+[tsens_tz_sensor2]
+sampling 1000
+thresholds 75
+thresholds_clr 72
+actions none
+action_info 0
+
+[tsens_tz_sensor3]
+sampling 1000
+thresholds 75 78 81 84 87 90
+thresholds_clr 72 75 78 81 84 87
+actions cpu cpu cpu cpu cpu shutdown
+action_info 1296000 1188000 918000 756000 648000 5000
+
+[tsens_tz_sensor4]
+sampling 1000
+thresholds 75
+thresholds_clr 72
+actions none
+action_info 0
diff --git a/rootdir/system/etc/vold.fstab b/rootdir/system/etc/vold.fstab
new file mode 100644
index 0000000..0cddabe
--- /dev/null
+++ b/rootdir/system/etc/vold.fstab
@@ -0,0 +1,30 @@
+# Copyright (c) 2011, Code Aurora Forum. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+# * Neither the name of Code Aurora Forum, Inc. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+dev_mount int_card /storage/sdcard0 15 /devices/platform/msm_sdcc.1/mmc_host/mmc0 nonremovable
+dev_mount ext_card /storage/sdcard1 auto /devices/platform/msm_sdcc.3/mmc_host/mmc1
+dev_mount usbdisk /storage/usbdisk auto /devices/platform/msm_otg/msm_hsusb_host
diff --git a/rootdir/system/etc/wpa_supplicant.conf b/rootdir/system/etc/wpa_supplicant.conf
new file mode 100644
index 0000000..2136bb6
--- /dev/null
+++ b/rootdir/system/etc/wpa_supplicant.conf
@@ -0,0 +1,827 @@
+##### Example wpa_supplicant configuration file ###############################
+#
+# This file describes configuration file format and lists all available option.
+# Please also take a look at simpler configuration examples in 'examples'
+# subdirectory.
+#
+# Empty lines and lines starting with # are ignored
+
+# NOTE! This file may contain password information and should probably be made
+# readable only by root user on multiuser systems.
+
+# Note: All file paths in this configuration file should use full (absolute,
+# not relative to working directory) path in order to allow working directory
+# to be changed. This can happen if wpa_supplicant is run in the background.
+
+# Whether to allow wpa_supplicant to update (overwrite) configuration
+#
+# This option can be used to allow wpa_supplicant to overwrite configuration
+# file whenever configuration is changed (e.g., new network block is added with
+# wpa_cli or wpa_gui, or a password is changed). This is required for
+# wpa_cli/wpa_gui to be able to store the configuration changes permanently.
+# Please note that overwriting configuration file will remove the comments from
+# it.
+update_config=1
+
+# global configuration (shared by all network blocks)
+#
+# Parameters for the control interface. If this is specified, wpa_supplicant
+# will open a control interface that is available for external programs to
+# manage wpa_supplicant. The meaning of this string depends on which control
+# interface mechanism is used. For all cases, the existance of this parameter
+# in configuration is used to determine whether the control interface is
+# enabled.
+#
+# For UNIX domain sockets (default on Linux and BSD): This is a directory that
+# will be created for UNIX domain sockets for listening to requests from
+# external programs (CLI/GUI, etc.) for status information and configuration.
+# The socket file will be named based on the interface name, so multiple
+# wpa_supplicant processes can be run at the same time if more than one
+# interface is used.
+# /var/run/wpa_supplicant is the recommended directory for sockets and by
+# default, wpa_cli will use it when trying to connect with wpa_supplicant.
+#
+# Access control for the control interface can be configured by setting the
+# directory to allow only members of a group to use sockets. This way, it is
+# possible to run wpa_supplicant as root (since it needs to change network
+# configuration and open raw sockets) and still allow GUI/CLI components to be
+# run as non-root users. However, since the control interface can be used to
+# change the network configuration, this access needs to be protected in many
+# cases. By default, wpa_supplicant is configured to use gid 0 (root). If you
+# want to allow non-root users to use the control interface, add a new group
+# and change this value to match with that group. Add users that should have
+# control interface access to this group. If this variable is commented out or
+# not included in the configuration file, group will not be changed from the
+# value it got by default when the directory or socket was created.
+#
+# When configuring both the directory and group, use following format:
+# DIR=/var/run/wpa_supplicant GROUP=wheel
+# DIR=/var/run/wpa_supplicant GROUP=0
+# (group can be either group name or gid)
+#
+ctrl_interface=<will be set by wifi.c>
+
+# IEEE 802.1X/EAPOL version
+# wpa_supplicant is implemented based on IEEE Std 802.1X-2004 which defines
+# EAPOL version 2. However, there are many APs that do not handle the new
+# version number correctly (they seem to drop the frames completely). In order
+# to make wpa_supplicant interoperate with these APs, the version number is set
+# to 1 by default. This configuration value can be used to set it to the new
+# version (2).
+eapol_version=1
+
+# AP scanning/selection
+# By default, wpa_supplicant requests driver to perform AP scanning and then
+# uses the scan results to select a suitable AP. Another alternative is to
+# allow the driver to take care of AP scanning and selection and use
+# wpa_supplicant just to process EAPOL frames based on IEEE 802.11 association
+# information from the driver.
+# 1: wpa_supplicant initiates scanning and AP selection
+# 0: driver takes care of scanning, AP selection, and IEEE 802.11 association
+# parameters (e.g., WPA IE generation); this mode can also be used with
+# non-WPA drivers when using IEEE 802.1X mode; do not try to associate with
+# APs (i.e., external program needs to control association). This mode must
+# also be used when using wired Ethernet drivers.
+# 2: like 0, but associate with APs using security policy and SSID (but not
+# BSSID); this can be used, e.g., with ndiswrapper and NDIS drivers to
+# enable operation with hidden SSIDs and optimized roaming; in this mode,
+# the network blocks in the configuration file are tried one by one until
+# the driver reports successful association; each network block should have
+# explicit security policy (i.e., only one option in the lists) for
+# key_mgmt, pairwise, group, proto variables
+ap_scan=1
+
+# EAP fast re-authentication
+# By default, fast re-authentication is enabled for all EAP methods that
+# support it. This variable can be used to disable fast re-authentication.
+# Normally, there is no need to disable this.
+fast_reauth=1
+
+# OpenSSL Engine support
+# These options can be used to load OpenSSL engines.
+# The two engines that are supported currently are shown below:
+# They are both from the opensc project (http://www.opensc.org/)
+# By default no engines are loaded.
+# make the opensc engine available
+#opensc_engine_path=/usr/lib/opensc/engine_opensc.so
+# make the pkcs11 engine available
+#pkcs11_engine_path=/usr/lib/opensc/engine_pkcs11.so
+# configure the path to the pkcs11 module required by the pkcs11 engine
+#pkcs11_module_path=/usr/lib/pkcs11/opensc-pkcs11.so
+
+# Dynamic EAP methods
+# If EAP methods were built dynamically as shared object files, they need to be
+# loaded here before being used in the network blocks. By default, EAP methods
+# are included statically in the build, so these lines are not needed
+#load_dynamic_eap=/usr/lib/wpa_supplicant/eap_tls.so
+#load_dynamic_eap=/usr/lib/wpa_supplicant/eap_md5.so
+
+# Driver interface parameters
+# This field can be used to configure arbitrary driver interace parameters. The
+# format is specific to the selected driver interface. This field is not used
+# in most cases.
+#driver_param="field=value"
+
+# Country code
+# The ISO/IEC alpha2 country code for the country in which this device is
+# currently operating.
+#country=US
+
+# Maximum lifetime for PMKSA in seconds; default 43200
+#dot11RSNAConfigPMKLifetime=43200
+# Threshold for reauthentication (percentage of PMK lifetime); default 70
+#dot11RSNAConfigPMKReauthThreshold=70
+# Timeout for security association negotiation in seconds; default 60
+#dot11RSNAConfigSATimeout=60
+
+# Wi-Fi Protected Setup (WPS) parameters
+
+# Universally Unique IDentifier (UUID; see RFC 4122) of the device
+# If not configured, UUID will be generated based on the local MAC address.
+#uuid=12345678-9abc-def0-1234-56789abcdef0
+
+# Device Name
+# User-friendly description of device; up to 32 octets encoded in UTF-8
+#device_name=Wireless Client
+
+# Manufacturer
+# The manufacturer of the device (up to 64 ASCII characters)
+#manufacturer=Company
+
+# Model Name
+# Model of the device (up to 32 ASCII characters)
+#model_name=cmodel
+
+# Model Number
+# Additional device description (up to 32 ASCII characters)
+#model_number=123
+
+# Serial Number
+# Serial number of the device (up to 32 characters)
+#serial_number=12345
+
+# Primary Device Type
+# Used format: <categ>-<OUI>-<subcateg>
+# categ = Category as an integer value
+# OUI = OUI and type octet as a 4-octet hex-encoded value; 0050F204 for
+# default WPS OUI
+# subcateg = OUI-specific Sub Category as an integer value
+# Examples:
+# 1-0050F204-1 (Computer / PC)
+# 1-0050F204-2 (Computer / Server)
+# 5-0050F204-1 (Storage / NAS)
+# 6-0050F204-1 (Network Infrastructure / AP)
+#device_type=1-0050F204-1
+
+# OS Version
+# 4-octet operating system version number (hex string)
+#os_version=01020300
+
+# Credential processing
+# 0 = process received credentials internally (default)
+# 1 = do not process received credentials; just pass them over ctrl_iface to
+# external program(s)
+# 2 = process received credentials internally and pass them over ctrl_iface
+# to external program(s)
+#wps_cred_processing=0
+
+# network block
+#
+# Each network (usually AP's sharing the same SSID) is configured as a separate
+# block in this configuration file. The network blocks are in preference order
+# (the first match is used).
+#
+# network block fields:
+#
+# disabled:
+# 0 = this network can be used (default)
+# 1 = this network block is disabled (can be enabled through ctrl_iface,
+# e.g., with wpa_cli or wpa_gui)
+#
+# id_str: Network identifier string for external scripts. This value is passed
+# to external action script through wpa_cli as WPA_ID_STR environment
+# variable to make it easier to do network specific configuration.
+#
+# ssid: SSID (mandatory); either as an ASCII string with double quotation or
+# as hex string; network name
+#
+# scan_ssid:
+# 0 = do not scan this SSID with specific Probe Request frames (default)
+# 1 = scan with SSID-specific Probe Request frames (this can be used to
+# find APs that do not accept broadcast SSID or use multiple SSIDs;
+# this will add latency to scanning, so enable this only when needed)
+#
+# bssid: BSSID (optional); if set, this network block is used only when
+# associating with the AP using the configured BSSID
+#
+# priority: priority group (integer)
+# By default, all networks will get same priority group (0). If some of the
+# networks are more desirable, this field can be used to change the order in
+# which wpa_supplicant goes through the networks when selecting a BSS. The
+# priority groups will be iterated in decreasing priority (i.e., the larger the
+# priority value, the sooner the network is matched against the scan results).
+# Within each priority group, networks will be selected based on security
+# policy, signal strength, etc.
+# Please note that AP scanning with scan_ssid=1 and ap_scan=2 mode are not
+# using this priority to select the order for scanning. Instead, they try the
+# networks in the order that used in the configuration file.
+#
+# mode: IEEE 802.11 operation mode
+# 0 = infrastructure (Managed) mode, i.e., associate with an AP (default)
+# 1 = IBSS (ad-hoc, peer-to-peer)
+# Note: IBSS can only be used with key_mgmt NONE (plaintext and static WEP)
+# and key_mgmt=WPA-NONE (fixed group key TKIP/CCMP). In addition, ap_scan has
+# to be set to 2 for IBSS. WPA-None requires following network block options:
+# proto=WPA, key_mgmt=WPA-NONE, pairwise=NONE, group=TKIP (or CCMP, but not
+# both), and psk must also be set.
+#
+# frequency: Channel frequency in megahertz (MHz) for IBSS, e.g.,
+# 2412 = IEEE 802.11b/g channel 1. This value is used to configure the initial
+# channel for IBSS (adhoc) networks. It is ignored in the infrastructure mode.
+# In addition, this value is only used by the station that creates the IBSS. If
+# an IBSS network with the configured SSID is already present, the frequency of
+# the network will be used instead of this configured value.
+#
+# proto: list of accepted protocols
+# WPA = WPA/IEEE 802.11i/D3.0
+# RSN = WPA2/IEEE 802.11i (also WPA2 can be used as an alias for RSN)
+# If not set, this defaults to: WPA RSN
+#
+# key_mgmt: list of accepted authenticated key management protocols
+# WPA-PSK = WPA pre-shared key (this requires 'psk' field)
+# WPA-EAP = WPA using EAP authentication
+# IEEE8021X = IEEE 802.1X using EAP authentication and (optionally) dynamically
+# generated WEP keys
+# NONE = WPA is not used; plaintext or static WEP could be used
+# WPA-PSK-SHA256 = Like WPA-PSK but using stronger SHA256-based algorithms
+# WPA-EAP-SHA256 = Like WPA-EAP but using stronger SHA256-based algorithms
+# If not set, this defaults to: WPA-PSK WPA-EAP
+#
+# auth_alg: list of allowed IEEE 802.11 authentication algorithms
+# OPEN = Open System authentication (required for WPA/WPA2)
+# SHARED = Shared Key authentication (requires static WEP keys)
+# LEAP = LEAP/Network EAP (only used with LEAP)
+# If not set, automatic selection is used (Open System with LEAP enabled if
+# LEAP is allowed as one of the EAP methods).
+#
+# pairwise: list of accepted pairwise (unicast) ciphers for WPA
+# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
+# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
+# NONE = Use only Group Keys (deprecated, should not be included if APs support
+# pairwise keys)
+# If not set, this defaults to: CCMP TKIP
+#
+# group: list of accepted group (broadcast/multicast) ciphers for WPA
+# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
+# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
+# WEP104 = WEP (Wired Equivalent Privacy) with 104-bit key
+# WEP40 = WEP (Wired Equivalent Privacy) with 40-bit key [IEEE 802.11]
+# If not set, this defaults to: CCMP TKIP WEP104 WEP40
+#
+# psk: WPA preshared key; 256-bit pre-shared key
+# The key used in WPA-PSK mode can be entered either as 64 hex-digits, i.e.,
+# 32 bytes or as an ASCII passphrase (in which case, the real PSK will be
+# generated using the passphrase and SSID). ASCII passphrase must be between
+# 8 and 63 characters (inclusive).
+# This field is not needed, if WPA-EAP is used.
+# Note: Separate tool, wpa_passphrase, can be used to generate 256-bit keys
+# from ASCII passphrase. This process uses lot of CPU and wpa_supplicant
+# startup and reconfiguration time can be optimized by generating the PSK only
+# only when the passphrase or SSID has actually changed.
+#
+# eapol_flags: IEEE 802.1X/EAPOL options (bit field)
+# Dynamic WEP key required for non-WPA mode
+# bit0 (1): require dynamically generated unicast WEP key
+# bit1 (2): require dynamically generated broadcast WEP key
+# (3 = require both keys; default)
+# Note: When using wired authentication, eapol_flags must be set to 0 for the
+# authentication to be completed successfully.
+#
+# mixed_cell: This option can be used to configure whether so called mixed
+# cells, i.e., networks that use both plaintext and encryption in the same
+# SSID, are allowed when selecting a BSS form scan results.
+# 0 = disabled (default)
+# 1 = enabled
+#
+# proactive_key_caching:
+# Enable/disable opportunistic PMKSA caching for WPA2.
+# 0 = disabled (default)
+# 1 = enabled
+#
+# wep_key0..3: Static WEP key (ASCII
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment