summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Vance <andrew.j.vance@gmail.com>2017-01-12 22:11:46 -0700
committerAndrew Vance <andrew.j.vance@gmail.com>2017-01-12 22:12:31 -0700
commit261131c7a208d928276e79d8f9557bb776e0383e (patch)
tree58c37fba0a4681ff34ff03dd678b2a42adf53b82
parent2981aaef629a18e3ee2ade36f3dca991715705ce (diff)
Revert "deb: cleanup the tree"
This reverts commit 82d372e74e027f1649dc75ed76242f51de0153fe. Change-Id: I704acad029653beb7ca6e036f007a717f15488d4
-rw-r--r--Android.mk2
-rw-r--r--AndroidProducts.mk19
-rw-r--r--BoardConfig.mk8
-rw-r--r--CleanSpec.mk56
-rw-r--r--aosp_deb.mk34
-rw-r--r--device.mk24
-rw-r--r--dumpstate/Android.mk26
-rw-r--r--dumpstate/NOTICE190
-rw-r--r--dumpstate/dumpstate.c39
-rwxr-xr-xfactory-images/generate-factory-images-package.sh36
-rw-r--r--fstab.deb (renamed from rootdir/etc/fstab.deb)0
-rw-r--r--full_deb.mk20
-rw-r--r--init.deb.rc (renamed from rootdir/etc/init.deb.rc)1
-rw-r--r--kernel-headers/media/msm_cam_sensor.h579
-rw-r--r--kernel-headers/media/msm_gemini.h106
-rw-r--r--kernel-headers/media/msmb_camera.h140
-rw-r--r--kernel-headers/media/msmb_generic_buf_mgr.h35
-rw-r--r--kernel-headers/media/msmb_isp.h420
-rw-r--r--kernel-headers/media/msmb_ispif.h148
-rw-r--r--kernel-headers/media/msmb_pproc.h154
-rw-r--r--original-kernel-headers/media/msm_cam_sensor.h545
-rw-r--r--original-kernel-headers/media/msm_gemini.h123
-rw-r--r--original-kernel-headers/media/msmb_camera.h160
-rw-r--r--original-kernel-headers/media/msmb_generic_buf_mgr.h23
-rw-r--r--original-kernel-headers/media/msmb_isp.h412
-rw-r--r--original-kernel-headers/media/msmb_ispif.h121
-rw-r--r--original-kernel-headers/media/msmb_pproc.h153
-rw-r--r--rootdir/Android.mk19
-rw-r--r--self-extractors/Android.mk0
-rw-r--r--self-extractors/PART112
-rw-r--r--self-extractors/PART222
-rw-r--r--self-extractors/PART312
-rw-r--r--self-extractors/PROLOGUE2
-rw-r--r--self-extractors/asus/COPYRIGHT1
-rw-r--r--self-extractors/asus/LICENSE225
-rw-r--r--self-extractors/asus/staging/BoardConfigPartial.mk13
-rw-r--r--self-extractors/asus/staging/device-partial.mk20
-rw-r--r--self-extractors/broadcom/COPYRIGHT1
-rw-r--r--self-extractors/broadcom/LICENSE225
-rw-r--r--self-extractors/broadcom/staging/BoardConfigPartial.mk13
-rw-r--r--self-extractors/broadcom/staging/device-partial.mk19
-rw-r--r--self-extractors/extract-lists.txt199
-rwxr-xr-xself-extractors/files-by-owner.sh95
-rwxr-xr-xself-extractors/generate-packages.sh284
-rw-r--r--self-extractors/qcom/COPYRIGHT1
-rw-r--r--self-extractors/qcom/LICENSE264
-rw-r--r--self-extractors/qcom/staging/BoardConfigPartial.mk13
-rw-r--r--self-extractors/qcom/staging/device-partial.mk198
-rw-r--r--self-extractors/qcom/staging/proprietary/Android.mk55
-rw-r--r--self-extractors/root/BoardConfigVendor.mk19
-rw-r--r--self-extractors/root/device-vendor.mk19
-rw-r--r--system.prop13
-rw-r--r--vendor_owner_info.txt199
53 files changed, 5478 insertions, 39 deletions
diff --git a/Android.mk b/Android.mk
index d9db8b1..dd491b1 100644
--- a/Android.mk
+++ b/Android.mk
@@ -35,6 +35,6 @@ LOCAL_SRC_FILES := $(LOCAL_MODULE)
LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/hostapd
include $(BUILD_PREBUILT)
-include $(call all-makefiles-under,$(LOCAL_PATH))
+include $(call first-makefiles-under,$(LOCAL_PATH))
endif
diff --git a/AndroidProducts.mk b/AndroidProducts.mk
new file mode 100644
index 0000000..a55114e
--- /dev/null
+++ b/AndroidProducts.mk
@@ -0,0 +1,19 @@
+#
+# Copyright 2013 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.
+#
+
+PRODUCT_MAKEFILES := \
+ $(LOCAL_DIR)/aosp_deb.mk \
+ $(LOCAL_DIR)/full_deb.mk
diff --git a/BoardConfig.mk b/BoardConfig.mk
index 870d28b..7033fe9 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -18,13 +18,13 @@ TARGET_BOOTLOADER_BOARD_NAME := deb
TARGET_BOOTLOADER_NAME := deb
TARGET_BOARD_INFO_FILE := device/asus/deb/board-info.txt
+BOARD_HAL_STATIC_LIBRARIES := libdumpstate.deb
+
TARGET_RELEASETOOLS_EXTENSIONS := device/asus/deb
-TARGET_SYSTEM_PROP := \
- device/asus/flo/system.prop \
- device/asus/deb/system.prop
+TARGET_SYSTEM_PROP := device/asus/flo/system.prop device/asus/deb/system.prop
-TARGET_RECOVERY_FSTAB = device/asus/deb/rootdir/etc/fstab.deb
+TARGET_RECOVERY_FSTAB = device/asus/deb/fstab.deb
BOARD_SEPOLICY_DIRS += device/asus/deb/sepolicy
diff --git a/CleanSpec.mk b/CleanSpec.mk
new file mode 100644
index 0000000..ca59517
--- /dev/null
+++ b/CleanSpec.mk
@@ -0,0 +1,56 @@
+# 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.
+#
+
+# If you don't need to do a full clean build but would like to touch
+# a file or delete some intermediate files, add a clean step to the end
+# of the list. These steps will only be run once, if they haven't been
+# run before.
+#
+# E.g.:
+# $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
+# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
+#
+# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
+# files that are missing or have been moved.
+#
+# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
+# Use $(OUT_DIR) to refer to the "out" directory.
+#
+# If you need to re-do something that's already mentioned, just copy
+# the command and add it to the bottom of the list. E.g., if a change
+# that you made last week required touching a file and a change you
+# made today requires touching the same file, just copy the old
+# touch step and add it to the end of the list.
+#
+# ************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+# ************************************************
+
+# For example:
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
+#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
+#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
+
+# Switching to jemalloc requires deleting these files.
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libc_*)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libc_*)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libart_*)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libartd_*)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libart_*)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libartd_*)
diff --git a/aosp_deb.mk b/aosp_deb.mk
new file mode 100644
index 0000000..2d04509
--- /dev/null
+++ b/aosp_deb.mk
@@ -0,0 +1,34 @@
+#
+# 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.
+#
+
+# Sample: This is where we'd set a backup provider if we had one
+# $(call inherit-product, device/sample/products/backup_overlay.mk)
+
+
+# Inherit from the common Open Source product configuration
+$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base.mk)
+
+PRODUCT_NAME := aosp_deb
+PRODUCT_DEVICE := deb
+PRODUCT_BRAND := Android
+PRODUCT_MODEL := Nexus 7
+PRODUCT_MANUFACTURER := ASUS
+PRODUCT_RESTRICT_VENDOR_FILES := false
+
+# Inherit from hardware-specific part of the product configuration
+$(call inherit-product, device/asus/deb/device.mk)
+$(call inherit-product-if-exists, vendor/asus/deb/device-vendor.mk)
+#$(call inherit-product-if-exists, vendor/qcom/proprietary/common/config/device-vendor.mk)
diff --git a/device.mk b/device.mk
index 79f16b3..c1c0434 100644
--- a/device.mk
+++ b/device.mk
@@ -20,21 +20,29 @@ PRODUCT_PACKAGES := \
CarrierConfig \
BasicSmsReceiver
-# Ramdisk
-PRODUCT_PACKAGES += \
- fstab.deb \
- init.deb.rc
+PRODUCT_COPY_FILES := \
+ device/asus/deb/fstab.deb:root/fstab.flo \
+ device/asus/deb/init.deb.rc:root/init.flo.rc
-# Features
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.telephony.gsm.xml:system/etc/permissions/android.hardware.telephony.gsm.xml
-# Camera
PRODUCT_PACKAGES += \
- camera.deb
+ camera.deb
+
+#NFC
+PRODUCT_PACKAGES += \
+ nfc_nci.bcm2079x.default
+
+# Do not power down SIM card when modem is sent to Low Power Mode.
+PRODUCT_PROPERTY_OVERRIDES += \
+ persist.radio.apm_sim_not_pwdn=1
+
+PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
+ rild.libpath=/system/lib/libril-qc-qmi-1.so
PRODUCT_PACKAGES += \
- hostapd_default.conf
+ hostapd_default.conf
# the actual meat of the device-specific product definition
$(call inherit-product, device/asus/flo/device-common.mk)
diff --git a/dumpstate/Android.mk b/dumpstate/Android.mk
new file mode 100644
index 0000000..e68ab44
--- /dev/null
+++ b/dumpstate/Android.mk
@@ -0,0 +1,26 @@
+# Copyright (C) 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.
+
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_C_INCLUDES := frameworks/native/cmds/dumpstate
+
+LOCAL_SRC_FILES := dumpstate.c
+
+LOCAL_MODULE := libdumpstate.deb
+
+LOCAL_MODULE_TAGS := optional
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/dumpstate/NOTICE b/dumpstate/NOTICE
new file mode 100644
index 0000000..a303bd0
--- /dev/null
+++ b/dumpstate/NOTICE
@@ -0,0 +1,190 @@
+
+ Copyright (C) 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.
+
+ 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.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
diff --git a/dumpstate/dumpstate.c b/dumpstate/dumpstate.c
new file mode 100644
index 0000000..15a32da
--- /dev/null
+++ b/dumpstate/dumpstate.c
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+
+#include <dumpstate.h>
+
+void dump_ks_bridges()
+{
+ int i;
+ for (i = 1; i <= 4; ++i) {
+ char path[64], title[32];
+ sprintf(path, "/sys/kernel/debug/ks_bridge/ks_bridge:%d", i);
+ sprintf(title, "KS BRIDGE LOG#%d", i);
+ dump_file(title, path);
+ }
+}
+
+void dumpstate_board()
+{
+ dump_file("INTERRUPTS", "/proc/interrupts");
+ run_command("MODEM TOMBSTONES", 5, SU_PATH, "root", "ls", "-l", "/data/tombstones/mdm", NULL);
+ dump_ks_bridges();
+ dump_file("eMMC manfid",
+ "/sys/devices/platform/msm_sdcc.1/mmc_host/mmc0/mmc0:0001/manfid");
+ dump_file("eMMC capacity",
+ "/sys/devices/platform/msm_sdcc.1/mmc_host/mmc0/mmc0:0001/sec_count");
+};
diff --git a/factory-images/generate-factory-images-package.sh b/factory-images/generate-factory-images-package.sh
new file mode 100755
index 0000000..330e894
--- /dev/null
+++ b/factory-images/generate-factory-images-package.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# Copyright 2013 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.
+
+# start jb-mr2-dev
+# 704765 = JSR72
+# 740015 = JSS11F
+# 741000 = JSS11I
+# 741250 = JSS15
+# 746990 = JSS15H
+# 748502 = JSS15I
+# 748593 = JSS15J
+# 750418 = JSS15K
+# end jb-mr2-dev
+
+source ../../../common/clear-factory-images-variables.sh
+BUILD=937116
+DEVICE=deb
+PRODUCT=razorg
+VERSION=kot49h
+SRCPREFIX=signed-
+BOOTLOADER=flo-04.02
+RADIO=deb-g00_2.37.0_1024
+source ../../../common/generate-factory-images-common.sh
diff --git a/rootdir/etc/fstab.deb b/fstab.deb
index f7ec9f8..f7ec9f8 100644
--- a/rootdir/etc/fstab.deb
+++ b/fstab.deb
diff --git a/full_deb.mk b/full_deb.mk
new file mode 100644
index 0000000..f3ba942
--- /dev/null
+++ b/full_deb.mk
@@ -0,0 +1,20 @@
+#
+# Copyright 2013 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.
+#
+$(call inherit-product, device/asus/deb/aosp_deb.mk)
+
+PRODUCT_NAME := full_deb
+
+$(call inherit-product-if-exists, vendor/asus/deb/deb-vendor.mk)
diff --git a/rootdir/etc/init.deb.rc b/init.deb.rc
index 4714af5..3ac5980 100644
--- a/rootdir/etc/init.deb.rc
+++ b/init.deb.rc
@@ -15,6 +15,7 @@
#
import init.flo.usb.rc
+import init.flo.diag.rc
import init.flo.power.rc
on early-init
diff --git a/kernel-headers/media/msm_cam_sensor.h b/kernel-headers/media/msm_cam_sensor.h
new file mode 100644
index 0000000..4a67c61
--- /dev/null
+++ b/kernel-headers/media/msm_cam_sensor.h
@@ -0,0 +1,579 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ *** 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 _UAPI_MEDIA_MSM_CAM_SENSOR_H
+#define _UAPI_MEDIA_MSM_CAM_SENSOR_H
+#ifdef MSM_CAMERA_BIONIC
+#include <sys/types.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#include <linux/types.h>
+#include <linux/v4l2-mediabus.h>
+#include <linux/i2c.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define I2C_SEQ_REG_SETTING_MAX 5
+#define I2C_SEQ_REG_DATA_MAX 20
+#define MAX_CID 16
+#define MSM_SENSOR_MCLK_8HZ 8000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_SENSOR_MCLK_16HZ 16000000
+#define MSM_SENSOR_MCLK_24HZ 24000000
+#define GPIO_OUT_LOW (0 << 1)
+#define GPIO_OUT_HIGH (1 << 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CSI_EMBED_DATA 0x12
+#define CSI_RESERVED_DATA_0 0x13
+#define CSI_YUV422_8 0x1E
+#define CSI_RAW8 0x2A
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CSI_RAW10 0x2B
+#define CSI_RAW12 0x2C
+#define CSI_DECODE_6BIT 0
+#define CSI_DECODE_8BIT 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CSI_DECODE_10BIT 2
+#define CSI_DECODE_DPCM_10_8_10 5
+#define MAX_SENSOR_NAME 32
+#define MAX_ACT_MOD_NAME_SIZE 32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAX_ACT_NAME_SIZE 32
+#define NUM_ACTUATOR_DIR 2
+#define MAX_ACTUATOR_SCENARIO 8
+#define MAX_ACTUATOR_REGION 5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAX_ACTUATOR_INIT_SET 12
+#define MAX_ACTUATOR_REG_TBL_SIZE 8
+#define MOVE_NEAR 0
+#define MOVE_FAR 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAX_EEPROM_NAME 32
+enum msm_camera_i2c_reg_addr_type {
+ MSM_CAMERA_I2C_BYTE_ADDR = 1,
+ MSM_CAMERA_I2C_WORD_ADDR,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+enum msm_camera_i2c_data_type {
+ MSM_CAMERA_I2C_BYTE_DATA = 1,
+ MSM_CAMERA_I2C_WORD_DATA,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ MSM_CAMERA_I2C_SET_BYTE_MASK,
+ MSM_CAMERA_I2C_UNSET_BYTE_MASK,
+ MSM_CAMERA_I2C_SET_WORD_MASK,
+ MSM_CAMERA_I2C_UNSET_WORD_MASK,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ MSM_CAMERA_I2C_SET_BYTE_WRITE_MASK_DATA,
+};
+enum msm_sensor_power_seq_type_t {
+ SENSOR_CLK,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ SENSOR_GPIO,
+ SENSOR_VREG,
+ SENSOR_I2C_MUX,
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+enum msm_sensor_clk_type_t {
+ SENSOR_CAM_MCLK,
+ SENSOR_CAM_CLK,
+ SENSOR_CAM_CLK_MAX,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+enum msm_sensor_power_seq_gpio_t {
+ SENSOR_GPIO_RESET,
+ SENSOR_GPIO_STANDBY,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ SENSOR_GPIO_MAX,
+};
+enum msm_camera_vreg_name_t {
+ CAM_VDIG,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CAM_VIO,
+ CAM_VANA,
+ CAM_VAF,
+ CAM_VREG_MAX,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+enum msm_sensor_resolution_t {
+ MSM_SENSOR_RES_FULL,
+ MSM_SENSOR_RES_QTR,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ MSM_SENSOR_RES_2,
+ MSM_SENSOR_RES_3,
+ MSM_SENSOR_RES_4,
+ MSM_SENSOR_RES_5,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ MSM_SENSOR_RES_6,
+ MSM_SENSOR_RES_7,
+ MSM_SENSOR_INVALID_RES,
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+enum sensor_sub_module_t {
+ SUB_MODULE_SENSOR,
+ SUB_MODULE_CHROMATIX,
+ SUB_MODULE_ACTUATOR,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ SUB_MODULE_EEPROM,
+ SUB_MODULE_LED_FLASH,
+ SUB_MODULE_STROBE_FLASH,
+ SUB_MODULE_CSID,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ SUB_MODULE_CSID_3D,
+ SUB_MODULE_CSIPHY,
+ SUB_MODULE_CSIPHY_3D,
+ SUB_MODULE_MAX,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+enum csid_cfg_type_t {
+ CSID_INIT,
+ CSID_CFG,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CSID_RELEASE,
+};
+enum csiphy_cfg_type_t {
+ CSIPHY_INIT,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CSIPHY_CFG,
+ CSIPHY_RELEASE,
+};
+enum camera_vreg_type {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ REG_LDO,
+ REG_VS,
+ REG_GPIO,
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_sensor_power_setting {
+ enum msm_sensor_power_seq_type_t seq_type;
+ uint16_t seq_val;
+ long config_val;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint16_t delay;
+ void *data[10];
+};
+struct msm_sensor_power_setting_array {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct msm_sensor_power_setting *power_setting;
+ uint16_t size;
+};
+struct msm_sensor_id_info_t {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint16_t sensor_id_reg_addr;
+ uint16_t sensor_id;
+};
+struct msm_camera_sensor_slave_info {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint16_t slave_addr;
+ enum msm_camera_i2c_reg_addr_type addr_type;
+ struct msm_sensor_id_info_t sensor_id_info;
+ struct msm_sensor_power_setting_array power_setting_array;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct msm_camera_i2c_reg_array {
+ uint16_t reg_addr;
+ uint16_t reg_data;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct msm_camera_i2c_reg_setting {
+ struct msm_camera_i2c_reg_array *reg_setting;
+ uint16_t size;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ enum msm_camera_i2c_reg_addr_type addr_type;
+ enum msm_camera_i2c_data_type data_type;
+ uint16_t delay;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_camera_i2c_seq_reg_array {
+ uint16_t reg_addr;
+ uint8_t reg_data[I2C_SEQ_REG_DATA_MAX];
+ uint16_t reg_data_size;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct msm_camera_i2c_seq_reg_setting {
+ struct msm_camera_i2c_seq_reg_array *reg_setting;
+ uint16_t size;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ enum msm_camera_i2c_reg_addr_type addr_type;
+ uint16_t delay;
+};
+struct msm_camera_csid_vc_cfg {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint8_t cid;
+ uint8_t dt;
+ uint8_t decode_format;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_camera_csid_lut_params {
+ uint8_t num_cid;
+ struct msm_camera_csid_vc_cfg *vc_cfg[MAX_CID];
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_camera_csid_params {
+ uint8_t lane_cnt;
+ uint16_t lane_assign;
+ uint8_t phy_sel;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct msm_camera_csid_lut_params lut_params;
+};
+struct msm_camera_csiphy_params {
+ uint8_t lane_cnt;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint8_t settle_cnt;
+ uint16_t lane_mask;
+ uint8_t combo_mode;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_camera_csi2_params {
+ struct msm_camera_csid_params csid_params;
+ struct msm_camera_csiphy_params csiphy_params;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_camera_csi_lane_params {
+ uint16_t csi_lane_assign;
+ uint16_t csi_lane_mask;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct csi_lane_params_t {
+ uint16_t csi_lane_assign;
+ uint8_t csi_lane_mask;
+ uint8_t csi_if;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint8_t csid_core[2];
+ uint8_t csi_phy_sel;
+};
+struct msm_sensor_info_t {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ char sensor_name[MAX_SENSOR_NAME];
+ int32_t session_id;
+ int32_t subdev_id[SUB_MODULE_MAX];
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct camera_vreg_t {
+ const char *reg_name;
+ enum camera_vreg_type type;
+ int min_voltage;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int max_voltage;
+ int op_mode;
+ uint32_t delay;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+enum camb_position_t {
+ BACK_CAMERA_B,
+ FRONT_CAMERA_B,
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+enum camerab_mode_t {
+ CAMERA_MODE_2D_B = (1<<0),
+ CAMERA_MODE_3D_B = (1<<1)
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_sensor_init_params {
+ int modes_supported;
+ enum camb_position_t position;
+ uint32_t sensor_mount_angle;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct sensorb_cfg_data {
+ int cfgtype;
+ union {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct msm_sensor_info_t sensor_info;
+ struct msm_sensor_init_params sensor_init_params;
+ void *setting;
+ int8_t effect;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint8_t wb_val;
+ int8_t exp_compensation;
+ int8_t fps;
+ } cfg;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct csid_cfg_data {
+ enum csid_cfg_type_t cfgtype;
+ union {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t csid_version;
+ struct msm_camera_csid_params *csid_params;
+ } cfg;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct csiphy_cfg_data {
+ enum csiphy_cfg_type_t cfgtype;
+ union {
+ struct msm_camera_csiphy_params *csiphy_params;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct msm_camera_csi_lane_params *csi_lane_params;
+ } cfg;
+};
+enum eeprom_cfg_type_t {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CFG_EEPROM_GET_INFO,
+ CFG_EEPROM_GET_DATA,
+ CFG_EEPROM_READ_DATA,
+ CFG_EEPROM_WRITE_DATA,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct eeprom_get_t {
+ uint16_t num_bytes;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct eeprom_read_t {
+ uint8_t *dbuffer;
+ uint16_t num_bytes;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct eeprom_write_t {
+ uint8_t *dbuffer;
+ uint16_t num_bytes;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_eeprom_cfg_data {
+ enum eeprom_cfg_type_t cfgtype;
+ uint8_t is_supported;
+ union {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ char eeprom_name[MAX_SENSOR_NAME];
+ struct eeprom_get_t get_data;
+ struct eeprom_read_t read_data;
+ struct eeprom_write_t write_data;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ } cfg;
+};
+enum msm_sensor_cfg_type_t {
+ CFG_SET_SLAVE_INFO,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CFG_WRITE_I2C_ARRAY,
+ CFG_WRITE_I2C_SEQ_ARRAY,
+ CFG_POWER_UP,
+ CFG_POWER_DOWN,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CFG_SET_STOP_STREAM_SETTING,
+ CFG_GET_SENSOR_INFO,
+ CFG_GET_SENSOR_INIT_PARAMS,
+ CFG_SET_INIT_SETTING,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CFG_SET_RESOLUTION,
+ CFG_SET_STOP_STREAM,
+ CFG_SET_START_STREAM,
+ CFG_SET_EFFECT,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CFG_SET_WB,
+ CFG_SET_FPS,
+ CFG_SET_EXPOSURE_COMPENSATION,
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+enum msm_actuator_cfg_type_t {
+ CFG_GET_ACTUATOR_INFO,
+ CFG_SET_ACTUATOR_INFO,
+ CFG_SET_DEFAULT_FOCUS,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CFG_MOVE_FOCUS,
+ CFG_ACTUATOR_POWERDOWN,
+};
+enum actuator_type {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ACTUATOR_VCM,
+ ACTUATOR_PIEZO,
+};
+enum msm_actuator_data_type {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ MSM_ACTUATOR_BYTE_DATA = 1,
+ MSM_ACTUATOR_WORD_DATA,
+};
+enum msm_actuator_addr_type {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ MSM_ACTUATOR_BYTE_ADDR = 1,
+ MSM_ACTUATOR_WORD_ADDR,
+};
+struct reg_settings_t {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint16_t reg_addr;
+ uint16_t reg_data;
+};
+struct region_params_t {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint16_t step_bound[2];
+ uint16_t code_per_step;
+};
+struct damping_params_t {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t damping_step;
+ uint32_t damping_delay;
+ uint32_t hw_params;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_actuator_move_params_t {
+ int8_t dir;
+ int8_t sign_dir;
+ int16_t dest_step_pos;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int32_t num_steps;
+ struct damping_params_t *ringing_params;
+};
+struct msm_actuator_tuning_params_t {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int16_t initial_code;
+ uint16_t pwd_step;
+ uint16_t region_size;
+ uint32_t total_steps;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct region_params_t *region_params;
+};
+struct msm_actuator_params_t {
+ enum actuator_type act_type;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint8_t reg_tbl_size;
+ uint16_t data_size;
+ uint16_t init_setting_size;
+ uint32_t i2c_addr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ enum msm_actuator_addr_type i2c_addr_type;
+ enum msm_actuator_data_type i2c_data_type;
+ struct msm_actuator_reg_params_t *reg_tbl_params;
+ struct reg_settings_t *init_settings;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct msm_actuator_set_info_t {
+ struct msm_actuator_params_t actuator_params;
+ struct msm_actuator_tuning_params_t af_tuning_params;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct msm_actuator_get_info_t {
+ uint32_t focal_length_num;
+ uint32_t focal_length_den;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t f_number_num;
+ uint32_t f_number_den;
+ uint32_t f_pix_num;
+ uint32_t f_pix_den;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t total_f_dist_num;
+ uint32_t total_f_dist_den;
+ uint32_t hor_view_angle_num;
+ uint32_t hor_view_angle_den;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t ver_view_angle_num;
+ uint32_t ver_view_angle_den;
+};
+enum af_camera_name {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ACTUATOR_MAIN_CAM_0,
+ ACTUATOR_MAIN_CAM_1,
+ ACTUATOR_MAIN_CAM_2,
+ ACTUATOR_MAIN_CAM_3,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ACTUATOR_MAIN_CAM_4,
+ ACTUATOR_MAIN_CAM_5,
+ ACTUATOR_WEB_CAM_0,
+ ACTUATOR_WEB_CAM_1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ACTUATOR_WEB_CAM_2,
+};
+#define CAMERA_EFFECT_OFF 0
+#define CAMERA_EFFECT_MONO 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CAMERA_EFFECT_NEGATIVE 2
+#define CAMERA_EFFECT_SOLARIZE 3
+#define CAMERA_EFFECT_SEPIA 4
+#define CAMERA_EFFECT_POSTERIZE 5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CAMERA_EFFECT_WHITEBOARD 6
+#define CAMERA_EFFECT_BLACKBOARD 7
+#define CAMERA_EFFECT_AQUA 8
+#define CAMERA_EFFECT_EMBOSS 9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CAMERA_EFFECT_SKETCH 10
+#define CAMERA_EFFECT_NEON 11
+#define CAMERA_EFFECT_MAX 12
+#define YUV_CAMERA_WB_AUTO 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define YUV_CAMERA_WB_CUSTOM 1
+#define YUV_CAMERA_WB_INCANDESCENT 2
+#define YUV_CAMERA_WB_FLUORESCENT 3
+#define YUV_CAMERA_WB_WARM_FLUORESCENT 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define YUV_CAMERA_WB_DAYLIGHT 5
+#define YUV_CAMERA_WB_CLOUDY_DAYLIGHT 6
+#define YUV_CAMERA_WB_TWILIGHT 7
+#define YUV_CAMERA_WB_SHADE 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CAMERA_EXPOSURE_COMPENSATION_LV0 12
+#define CAMERA_EXPOSURE_COMPENSATION_LV1 6
+#define CAMERA_EXPOSURE_COMPENSATION_LV2 0
+#define CAMERA_EXPOSURE_COMPENSATION_LV3 -6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CAMERA_EXPOSURE_COMPENSATION_LV4 -12
+#define CAMERA_FPS_FIX_30 30
+#define CAMERA_FPS_FIX_25 25
+#define CAMERA_FPS_FIX_24 24
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CAMERA_FPS_FIX_20 20
+#define CAMERA_FPS_FIX_15 15
+#define CAMERA_FPS_AUTO_30 0
+struct msm_actuator_cfg_data {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int cfgtype;
+ uint8_t is_af_supported;
+ union {
+ struct msm_actuator_move_params_t move;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct msm_actuator_set_info_t set_info;
+ struct msm_actuator_get_info_t get_info;
+ enum af_camera_name cam_name;
+ } cfg;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+enum msm_actuator_write_type {
+ MSM_ACTUATOR_WRITE_HW_DAMP,
+ MSM_ACTUATOR_WRITE_DAC,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct msm_actuator_reg_params_t {
+ enum msm_actuator_write_type reg_write_type;
+ uint32_t hw_mask;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint16_t reg_addr;
+ uint16_t hw_shift;
+ uint16_t data_shift;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+enum msm_camera_led_config_t {
+ MSM_CAMERA_LED_OFF,
+ MSM_CAMERA_LED_LOW,
+ MSM_CAMERA_LED_HIGH,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ MSM_CAMERA_LED_INIT,
+ MSM_CAMERA_LED_RELEASE,
+};
+struct msm_camera_led_cfg_t {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ enum msm_camera_led_config_t cfgtype;
+};
+#define VIDIOC_MSM_SENSOR_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct sensorb_cfg_data)
+#define VIDIOC_MSM_SENSOR_RELEASE _IO('V', BASE_VIDIOC_PRIVATE + 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VIDIOC_MSM_SENSOR_GET_SUBDEV_ID _IOWR('V', BASE_VIDIOC_PRIVATE + 3, uint32_t)
+#define VIDIOC_MSM_CSIPHY_IO_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct csid_cfg_data)
+#define VIDIOC_MSM_CSID_IO_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct csiphy_cfg_data)
+#define VIDIOC_MSM_ACTUATOR_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_actuator_cfg_data)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VIDIOC_MSM_FLASH_LED_DATA_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_led_cfg_t)
+#define VIDIOC_MSM_EEPROM_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_eeprom_cfg_data)
+#define MSM_V4L2_PIX_FMT_META v4l2_fourcc('M', 'E', 'T', 'A')
+#define MSM_V4L2_PIX_FMT_RESERVED_0 v4l2_fourcc('R', 'E', 'S', '0')
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/kernel-headers/media/msm_gemini.h b/kernel-headers/media/msm_gemini.h
new file mode 100644
index 0000000..4a49b76
--- /dev/null
+++ b/kernel-headers/media/msm_gemini.h
@@ -0,0 +1,106 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ *** 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_GEMINI_H
+#define __LINUX_MSM_GEMINI_H
+#include <linux/types.h>
+#include <linux/ioctl.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_GMN_IOCTL_MAGIC 'g'
+#define MSM_GMN_IOCTL_GET_HW_VERSION _IOW(MSM_GMN_IOCTL_MAGIC, 1, struct msm_gemini_hw_cmd *)
+#define MSM_GMN_IOCTL_RESET _IOW(MSM_GMN_IOCTL_MAGIC, 2, struct msm_gemini_ctrl_cmd *)
+#define MSM_GMN_IOCTL_STOP _IOW(MSM_GMN_IOCTL_MAGIC, 3, struct msm_gemini_hw_cmds *)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_GMN_IOCTL_START _IOW(MSM_GMN_IOCTL_MAGIC, 4, struct msm_gemini_hw_cmds *)
+#define MSM_GMN_IOCTL_INPUT_BUF_ENQUEUE _IOW(MSM_GMN_IOCTL_MAGIC, 5, struct msm_gemini_buf *)
+#define MSM_GMN_IOCTL_INPUT_GET _IOW(MSM_GMN_IOCTL_MAGIC, 6, struct msm_gemini_buf *)
+#define MSM_GMN_IOCTL_INPUT_GET_UNBLOCK _IOW(MSM_GMN_IOCTL_MAGIC, 7, int)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_GMN_IOCTL_OUTPUT_BUF_ENQUEUE _IOW(MSM_GMN_IOCTL_MAGIC, 8, struct msm_gemini_buf *)
+#define MSM_GMN_IOCTL_OUTPUT_GET _IOW(MSM_GMN_IOCTL_MAGIC, 9, struct msm_gemini_buf *)
+#define MSM_GMN_IOCTL_OUTPUT_GET_UNBLOCK _IOW(MSM_GMN_IOCTL_MAGIC, 10, int)
+#define MSM_GMN_IOCTL_EVT_GET _IOW(MSM_GMN_IOCTL_MAGIC, 11, struct msm_gemini_ctrl_cmd *)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_GMN_IOCTL_EVT_GET_UNBLOCK _IOW(MSM_GMN_IOCTL_MAGIC, 12, int)
+#define MSM_GMN_IOCTL_HW_CMD _IOW(MSM_GMN_IOCTL_MAGIC, 13, struct msm_gemini_hw_cmd *)
+#define MSM_GMN_IOCTL_HW_CMDS _IOW(MSM_GMN_IOCTL_MAGIC, 14, struct msm_gemini_hw_cmds *)
+#define MSM_GMN_IOCTL_TEST_DUMP_REGION _IOW(MSM_GMN_IOCTL_MAGIC, 15, unsigned long)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_GMN_IOCTL_SET_MODE _IOW(MSM_GMN_IOCTL_MAGIC, 16, enum msm_gmn_out_mode)
+#define MSM_GEMINI_MODE_REALTIME_ENCODE 0
+#define MSM_GEMINI_MODE_OFFLINE_ENCODE 1
+#define MSM_GEMINI_MODE_REALTIME_ROTATION 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_GEMINI_MODE_OFFLINE_ROTATION 3
+enum msm_gmn_out_mode {
+ MSM_GMN_OUTMODE_FRAGMENTED,
+ MSM_GMN_OUTMODE_SINGLE
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct msm_gemini_ctrl_cmd {
+ uint32_t type;
+ uint32_t len;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ void *value;
+};
+#define MSM_GEMINI_EVT_RESET 0
+#define MSM_GEMINI_EVT_FRAMEDONE 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_GEMINI_EVT_ERR 2
+struct msm_gemini_buf {
+ uint32_t type;
+ int fd;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ void *vaddr;
+ uint32_t y_off;
+ uint32_t y_len;
+ uint32_t framedone_len;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t cbcr_off;
+ uint32_t cbcr_len;
+ uint32_t num_of_mcu_rows;
+ uint32_t offset;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+#define MSM_GEMINI_HW_CMD_TYPE_READ 0
+#define MSM_GEMINI_HW_CMD_TYPE_WRITE 1
+#define MSM_GEMINI_HW_CMD_TYPE_WRITE_OR 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_GEMINI_HW_CMD_TYPE_UWAIT 3
+#define MSM_GEMINI_HW_CMD_TYPE_MWAIT 4
+#define MSM_GEMINI_HW_CMD_TYPE_MDELAY 5
+#define MSM_GEMINI_HW_CMD_TYPE_UDELAY 6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_gemini_hw_cmd {
+ uint32_t type:4;
+ uint32_t n:12;
+ uint32_t offset:16;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t mask;
+ union {
+ uint32_t data;
+ uint32_t *pdata;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ };
+};
+struct msm_gemini_hw_cmds {
+ uint32_t m;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct msm_gemini_hw_cmd hw_cmd[1];
+};
+#endif
diff --git a/kernel-headers/media/msmb_camera.h b/kernel-headers/media/msmb_camera.h
new file mode 100644
index 0000000..5809272
--- /dev/null
+++ b/kernel-headers/media/msmb_camera.h
@@ -0,0 +1,140 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ *** 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_MSMB_CAMERA_H
+#define __LINUX_MSMB_CAMERA_H
+#include <linux/videodev2.h>
+#include <linux/types.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <linux/ioctl.h>
+#define MSM_CAM_V4L2_IOCTL_NOTIFY _IOW('V', BASE_VIDIOC_PRIVATE + 30, struct v4l2_event)
+#define MSM_CAM_V4L2_IOCTL_NOTIFY_META _IOW('V', BASE_VIDIOC_PRIVATE + 31, struct v4l2_event)
+#define MSM_CAM_V4L2_IOCTL_CMD_ACK _IOW('V', BASE_VIDIOC_PRIVATE + 32, struct v4l2_event)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define QCAMERA_DEVICE_GROUP_ID 1
+#define QCAMERA_VNODE_GROUP_ID 2
+#define MSM_CAMERA_NAME "msm_camera"
+#define MSM_CONFIGURATION_NAME "msm_config"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_CAMERA_SUBDEV_CSIPHY 0
+#define MSM_CAMERA_SUBDEV_CSID 1
+#define MSM_CAMERA_SUBDEV_ISPIF 2
+#define MSM_CAMERA_SUBDEV_VFE 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_CAMERA_SUBDEV_AXI 4
+#define MSM_CAMERA_SUBDEV_VPE 5
+#define MSM_CAMERA_SUBDEV_SENSOR 6
+#define MSM_CAMERA_SUBDEV_ACTUATOR 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_CAMERA_SUBDEV_EEPROM 8
+#define MSM_CAMERA_SUBDEV_CPP 9
+#define MSM_CAMERA_SUBDEV_CCI 10
+#define MSM_CAMERA_SUBDEV_LED_FLASH 11
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_CAMERA_SUBDEV_STROBE_FLASH 12
+#define MSM_CAMERA_SUBDEV_BUF_MNGR 13
+#define MSM_MAX_CAMERA_SENSORS 5
+#define MSM_CAMERA_FEATURE_BASE 0x00010000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_CAMERA_FEATURE_SHUTDOWN (MSM_CAMERA_FEATURE_BASE + 1)
+#define MSM_CAMERA_STATUS_BASE 0x00020000
+#define MSM_CAMERA_STATUS_FAIL (MSM_CAMERA_STATUS_BASE + 1)
+#define MSM_CAMERA_STATUS_SUCCESS (MSM_CAMERA_STATUS_BASE + 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_CAMERA_V4L2_EVENT_TYPE (V4L2_EVENT_PRIVATE_START + 0x00002000)
+#define MSM_CAMERA_EVENT_MIN 0
+#define MSM_CAMERA_NEW_SESSION (MSM_CAMERA_EVENT_MIN + 1)
+#define MSM_CAMERA_DEL_SESSION (MSM_CAMERA_EVENT_MIN + 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_CAMERA_SET_PARM (MSM_CAMERA_EVENT_MIN + 3)
+#define MSM_CAMERA_GET_PARM (MSM_CAMERA_EVENT_MIN + 4)
+#define MSM_CAMERA_MAPPING_CFG (MSM_CAMERA_EVENT_MIN + 5)
+#define MSM_CAMERA_MAPPING_SES (MSM_CAMERA_EVENT_MIN + 6)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_CAMERA_MSM_NOTIFY (MSM_CAMERA_EVENT_MIN + 7)
+#define MSM_CAMERA_EVENT_MAX (MSM_CAMERA_EVENT_MIN + 8)
+#define MSM_CAMERA_PRIV_S_CROP (V4L2_CID_PRIVATE_BASE + 1)
+#define MSM_CAMERA_PRIV_G_CROP (V4L2_CID_PRIVATE_BASE + 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_CAMERA_PRIV_G_FMT (V4L2_CID_PRIVATE_BASE + 3)
+#define MSM_CAMERA_PRIV_S_FMT (V4L2_CID_PRIVATE_BASE + 4)
+#define MSM_CAMERA_PRIV_TRY_FMT (V4L2_CID_PRIVATE_BASE + 5)
+#define MSM_CAMERA_PRIV_METADATA (V4L2_CID_PRIVATE_BASE + 6)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_CAMERA_PRIV_QUERY_CAP (V4L2_CID_PRIVATE_BASE + 7)
+#define MSM_CAMERA_PRIV_STREAM_ON (V4L2_CID_PRIVATE_BASE + 8)
+#define MSM_CAMERA_PRIV_STREAM_OFF (V4L2_CID_PRIVATE_BASE + 9)
+#define MSM_CAMERA_PRIV_NEW_STREAM (V4L2_CID_PRIVATE_BASE + 10)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_CAMERA_PRIV_DEL_STREAM (V4L2_CID_PRIVATE_BASE + 11)
+#define MSM_CAMERA_PRIV_SHUTDOWN (V4L2_CID_PRIVATE_BASE + 12)
+#define MSM_CAMERA_PRIV_STREAM_INFO_SYNC (V4L2_CID_PRIVATE_BASE + 13)
+#define MSM_CAMERA_CMD_SUCESS 0x00000001
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_CAMERA_BUF_MAP_SUCESS 0x00000002
+#define MSM_CAMERA_ERR_EVT_BASE 0x00010000
+#define MSM_CAMERA_ERR_CMD_FAIL (MSM_CAMERA_ERR_EVT_BASE + 1)
+#define MSM_CAMERA_ERR_MAPPING (MSM_CAMERA_ERR_EVT_BASE + 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_v4l2_event_data {
+ unsigned int command;
+ unsigned int status;
+ unsigned int session_id;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int stream_id;
+ unsigned int map_op;
+ unsigned int map_buf_idx;
+ unsigned int notify;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int arg_value;
+ unsigned int ret_value;
+ unsigned int nop3;
+ unsigned int nop4;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int nop5;
+ unsigned int nop6;
+ unsigned int nop7;
+ unsigned int nop8;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int nop9;
+};
+struct msm_v4l2_format_data {
+ enum v4l2_buf_type type;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int width;
+ unsigned int height;
+ unsigned int pixelformat;
+ unsigned char num_planes;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int plane_sizes[VIDEO_MAX_PLANES];
+};
+#define msm_v4l2_fourcc(a, b, c, d) ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 24))
+#define MSM_V4L2_PIX_FMT_STATS_COMB v4l2_fourcc('S', 'T', 'C', 'M')
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_V4L2_PIX_FMT_STATS_AE v4l2_fourcc('S', 'T', 'A', 'E')
+#define MSM_V4L2_PIX_FMT_STATS_AF v4l2_fourcc('S', 'T', 'A', 'F')
+#define MSM_V4L2_PIX_FMT_STATS_AWB v4l2_fourcc('S', 'T', 'W', 'B')
+#define MSM_V4L2_PIX_FMT_STATS_IHST v4l2_fourcc('I', 'H', 'S', 'T')
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_V4L2_PIX_FMT_STATS_CS v4l2_fourcc('S', 'T', 'C', 'S')
+#define MSM_V4L2_PIX_FMT_STATS_RS v4l2_fourcc('S', 'T', 'R', 'S')
+#define MSM_V4L2_PIX_FMT_STATS_BG v4l2_fourcc('S', 'T', 'B', 'G')
+#define MSM_V4L2_PIX_FMT_STATS_BF v4l2_fourcc('S', 'T', 'B', 'F')
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSM_V4L2_PIX_FMT_STATS_BHST v4l2_fourcc('B', 'H', 'S', 'T')
+#endif
diff --git a/kernel-headers/media/msmb_generic_buf_mgr.h b/kernel-headers/media/msmb_generic_buf_mgr.h
new file mode 100644
index 0000000..af6d008
--- /dev/null
+++ b/kernel-headers/media/msmb_generic_buf_mgr.h
@@ -0,0 +1,35 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ *** 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 __MEDIA_MSMB_BUF_MNGR_H__
+#define __MEDIA_MSMB_BUF_MNGR_H__
+struct msm_buf_mngr_info {
+ uint32_t session_id;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t stream_id;
+ uint32_t frame_id;
+ struct timeval timestamp;
+ uint32_t index;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct v4l2_subdev *msm_buf_mngr_get_subdev(void);
+#define VIDIOC_MSM_BUF_MNGR_GET_BUF _IOWR('V', BASE_VIDIOC_PRIVATE + 33, struct msm_buf_mngr_info)
+#define VIDIOC_MSM_BUF_MNGR_PUT_BUF _IOWR('V', BASE_VIDIOC_PRIVATE + 34, struct msm_buf_mngr_info)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VIDIOC_MSM_BUF_MNGR_BUF_DONE _IOWR('V', BASE_VIDIOC_PRIVATE + 35, struct msm_buf_mngr_info)
+#endif
diff --git a/kernel-headers/media/msmb_isp.h b/kernel-headers/media/msmb_isp.h
new file mode 100644
index 0000000..7d6fc02
--- /dev/null
+++ b/kernel-headers/media/msmb_isp.h
@@ -0,0 +1,420 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ *** 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 _UAPI_MEDIA_MSMB_ISP_H
+#define _UAPI_MEDIA_MSMB_ISP_H
+#include <linux/videodev2.h>
+#define MAX_PLANES_PER_STREAM 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAX_NUM_STREAM 7
+#define ISP_VERSION_40 40
+#define ISP_VERSION_32 32
+#define ISP_NATIVE_BUF_BIT 0x10000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ISP0_BIT 0x20000
+#define ISP1_BIT 0x40000
+#define ISP_STATS_STREAM_BIT 0x80000000
+enum ISP_START_PIXEL_PATTERN {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ISP_BAYER_RGRGRG,
+ ISP_BAYER_GRGRGR,
+ ISP_BAYER_BGBGBG,
+ ISP_BAYER_GBGBGB,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ISP_YUV_YCbYCr,
+ ISP_YUV_YCrYCb,
+ ISP_YUV_CbYCrY,
+ ISP_YUV_CrYCbY,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ISP_PIX_PATTERN_MAX
+};
+enum msm_vfe_plane_fmt {
+ Y_PLANE,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CB_PLANE,
+ CR_PLANE,
+ CRCB_PLANE,
+ CBCR_PLANE,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ VFE_PLANE_FMT_MAX
+};
+enum msm_vfe_input_src {
+ VFE_PIX_0,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ VFE_RAW_0,
+ VFE_RAW_1,
+ VFE_RAW_2,
+ VFE_SRC_MAX,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+enum msm_vfe_axi_stream_src {
+ PIX_ENCODER,
+ PIX_VIEWFINDER,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CAMIF_RAW,
+ IDEAL_RAW,
+ RDI_INTF_0,
+ RDI_INTF_1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ RDI_INTF_2,
+ VFE_AXI_SRC_MAX
+};
+enum msm_vfe_frame_skip_pattern {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ NO_SKIP,
+ EVERY_2FRAME,
+ EVERY_3FRAME,
+ EVERY_4FRAME,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ EVERY_5FRAME,
+ EVERY_6FRAME,
+ EVERY_7FRAME,
+ EVERY_8FRAME,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ EVERY_16FRAME,
+ EVERY_32FRAME,
+ MAX_SKIP,
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+enum msm_vfe_camif_input {
+ CAMIF_DISABLED,
+ CAMIF_PAD_REG_INPUT,
+ CAMIF_MIDDI_INPUT,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CAMIF_MIPI_INPUT,
+};
+struct msm_vfe_camif_cfg {
+ uint32_t lines_per_frame;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t pixels_per_line;
+ uint32_t first_pixel;
+ uint32_t last_pixel;
+ uint32_t first_line;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t last_line;
+ uint32_t epoch_line0;
+ uint32_t epoch_line1;
+ enum msm_vfe_camif_input camif_input;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+enum msm_vfe_inputmux {
+ CAMIF,
+ TESTGEN,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ EXTERNAL_READ,
+};
+struct msm_vfe_pix_cfg {
+ struct msm_vfe_camif_cfg camif_cfg;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ enum msm_vfe_inputmux input_mux;
+ enum ISP_START_PIXEL_PATTERN pixel_pattern;
+};
+struct msm_vfe_rdi_cfg {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint8_t cid;
+ uint8_t frame_based;
+};
+struct msm_vfe_input_cfg {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ union {
+ struct msm_vfe_pix_cfg pix_cfg;
+ struct msm_vfe_rdi_cfg rdi_cfg;
+ } d;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ enum msm_vfe_input_src input_src;
+ uint32_t input_pix_clk;
+};
+struct msm_vfe_axi_plane_cfg {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t output_width;
+ uint32_t output_height;
+ uint32_t output_stride;
+ uint32_t output_scan_lines;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t output_plane_format;
+ uint32_t plane_addr_offset;
+ uint8_t csid_src;
+ uint8_t rdi_cid;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct msm_vfe_axi_stream_request_cmd {
+ uint32_t session_id;
+ uint32_t stream_id;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t output_format;
+ enum msm_vfe_axi_stream_src stream_src;
+ struct msm_vfe_axi_plane_cfg plane_cfg[MAX_PLANES_PER_STREAM];
+ uint32_t burst_count;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t hfr_mode;
+ uint8_t frame_base;
+ uint32_t init_frame_drop;
+ enum msm_vfe_frame_skip_pattern frame_skip_pattern;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint8_t buf_divert;
+ uint32_t axi_stream_handle;
+};
+struct msm_vfe_axi_stream_release_cmd {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t stream_handle;
+};
+enum msm_vfe_axi_stream_cmd {
+ STOP_STREAM,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ START_STREAM,
+};
+struct msm_vfe_axi_stream_cfg_cmd {
+ uint8_t num_streams;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t stream_handle[MAX_NUM_STREAM];
+ enum msm_vfe_axi_stream_cmd cmd;
+};
+enum msm_vfe_axi_stream_update_type {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ENABLE_STREAM_BUF_DIVERT,
+ DISABLE_STREAM_BUF_DIVERT,
+ UPDATE_STREAM_FRAMEDROP_PATTERN,
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_vfe_axi_stream_update_cmd {
+ uint32_t stream_handle;
+ enum msm_vfe_axi_stream_update_type update_type;
+ enum msm_vfe_frame_skip_pattern skip_pattern;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+enum msm_isp_stats_type {
+ MSM_ISP_STATS_AEC,
+ MSM_ISP_STATS_AF,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ MSM_ISP_STATS_AWB,
+ MSM_ISP_STATS_RS,
+ MSM_ISP_STATS_CS,
+ MSM_ISP_STATS_IHIST,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ MSM_ISP_STATS_SKIN,
+ MSM_ISP_STATS_BG,
+ MSM_ISP_STATS_BF,
+ MSM_ISP_STATS_BE,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ MSM_ISP_STATS_BHIST,
+ MSM_ISP_STATS_MAX
+};
+struct msm_vfe_stats_stream_request_cmd {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t session_id;
+ uint32_t stream_id;
+ enum msm_isp_stats_type stats_type;
+ uint32_t composite_flag;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t framedrop_pattern;
+ uint32_t irq_subsample_pattern;
+ uint32_t buffer_offset;
+ uint32_t stream_handle;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct msm_vfe_stats_stream_release_cmd {
+ uint32_t stream_handle;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_vfe_stats_stream_cfg_cmd {
+ uint8_t num_streams;
+ uint32_t stream_handle[MSM_ISP_STATS_MAX];
+ uint8_t enable;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+enum msm_vfe_reg_cfg_type {
+ VFE_WRITE,
+ VFE_WRITE_MB,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ VFE_READ,
+ VFE_CFG_MASK,
+ VFE_WRITE_DMI_16BIT,
+ VFE_WRITE_DMI_32BIT,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ VFE_WRITE_DMI_64BIT,
+ VFE_READ_DMI_16BIT,
+ VFE_READ_DMI_32BIT,
+ VFE_READ_DMI_64BIT,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct msm_vfe_cfg_cmd2 {
+ uint16_t num_cfg;
+ uint16_t cmd_len;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ void __user *cfg_data;
+ void __user *cfg_cmd;
+};
+struct msm_vfe_reg_rw_info {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t reg_offset;
+ uint32_t cmd_data_offset;
+ uint32_t len;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_vfe_reg_mask_info {
+ uint32_t reg_offset;
+ uint32_t mask;
+ uint32_t val;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct msm_vfe_reg_dmi_info {
+ uint32_t hi_tbl_offset;
+ uint32_t lo_tbl_offset;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t len;
+};
+struct msm_vfe_reg_cfg_cmd {
+ union {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct msm_vfe_reg_rw_info rw_info;
+ struct msm_vfe_reg_mask_info mask_info;
+ struct msm_vfe_reg_dmi_info dmi_info;
+ } u;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ enum msm_vfe_reg_cfg_type cmd_type;
+};
+enum msm_isp_buf_type {
+ ISP_PRIVATE_BUF,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ISP_SHARE_BUF,
+ MAX_ISP_BUF_TYPE,
+};
+struct msm_isp_buf_request {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t session_id;
+ uint32_t stream_id;
+ uint8_t num_buf;
+ uint32_t handle;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ enum msm_isp_buf_type buf_type;
+};
+struct msm_isp_qbuf_info {
+ uint32_t handle;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int buf_idx;
+ struct v4l2_buffer buffer;
+ uint32_t dirty_buf;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_vfe_axi_src_state {
+ enum msm_vfe_input_src input_src;
+ uint32_t src_active;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+enum msm_isp_event_idx {
+ ISP_REG_UPDATE = 0,
+ ISP_START_ACK = 1,
+ ISP_STOP_ACK = 2,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ISP_IRQ_VIOLATION = 3,
+ ISP_WM_BUS_OVERFLOW = 4,
+ ISP_STATS_OVERFLOW = 5,
+ ISP_CAMIF_ERROR = 6,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ISP_SOF = 7,
+ ISP_EOF = 8,
+ ISP_EVENT_MAX = 9
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ISP_EVENT_OFFSET 8
+#define ISP_EVENT_BASE (V4L2_EVENT_PRIVATE_START)
+#define ISP_BUF_EVENT_BASE (ISP_EVENT_BASE + (1 << ISP_EVENT_OFFSET))
+#define ISP_STATS_EVENT_BASE (ISP_EVENT_BASE + (2 << ISP_EVENT_OFFSET))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ISP_EVENT_REG_UPDATE (ISP_EVENT_BASE + ISP_REG_UPDATE)
+#define ISP_EVENT_START_ACK (ISP_EVENT_BASE + ISP_START_ACK)
+#define ISP_EVENT_STOP_ACK (ISP_EVENT_BASE + ISP_STOP_ACK)
+#define ISP_EVENT_IRQ_VIOLATION (ISP_EVENT_BASE + ISP_IRQ_VIOLATION)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ISP_EVENT_WM_BUS_OVERFLOW (ISP_EVENT_BASE + ISP_WM_BUS_OVERFLOW)
+#define ISP_EVENT_STATS_OVERFLOW (ISP_EVENT_BASE + ISP_STATS_OVERFLOW)
+#define ISP_EVENT_CAMIF_ERROR (ISP_EVENT_BASE + ISP_CAMIF_ERROR)
+#define ISP_EVENT_SOF (ISP_EVENT_BASE + ISP_SOF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ISP_EVENT_EOF (ISP_EVENT_BASE + ISP_EOF)
+#define ISP_EVENT_BUF_DIVERT (ISP_BUF_EVENT_BASE)
+#define ISP_EVENT_STATS_NOTIFY (ISP_STATS_EVENT_BASE)
+#define ISP_EVENT_COMP_STATS_NOTIFY (ISP_EVENT_STATS_NOTIFY + MSM_ISP_STATS_MAX)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_isp_buf_event {
+ uint32_t session_id;
+ uint32_t stream_id;
+ uint32_t handle;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int8_t buf_idx;
+};
+struct msm_isp_stats_event {
+ uint32_t stats_mask;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint8_t stats_buf_idxs[MSM_ISP_STATS_MAX];
+};
+struct msm_isp_stream_ack {
+ uint32_t session_id;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t stream_id;
+ uint32_t handle;
+};
+struct msm_isp_event_data {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct timeval timestamp;
+ struct timeval mono_timestamp;
+ uint32_t frame_id;
+ union {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct msm_isp_stream_ack stream_ack;
+ enum msm_vfe_input_src input_src;
+ struct msm_isp_stats_event stats;
+ uint32_t irq_status_mask;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct msm_isp_buf_event buf_done;
+ } u;
+};
+#define V4L2_PIX_FMT_QBGGR8 v4l2_fourcc('Q', 'B', 'G', '8')
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define V4L2_PIX_FMT_QGBRG8 v4l2_fourcc('Q', 'G', 'B', '8')
+#define V4L2_PIX_FMT_QGRBG8 v4l2_fourcc('Q', 'G', 'R', '8')
+#define V4L2_PIX_FMT_QRGGB8 v4l2_fourcc('Q', 'R', 'G', '8')
+#define V4L2_PIX_FMT_QBGGR10 v4l2_fourcc('Q', 'B', 'G', '0')
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define V4L2_PIX_FMT_QGBRG10 v4l2_fourcc('Q', 'G', 'B', '0')
+#define V4L2_PIX_FMT_QGRBG10 v4l2_fourcc('Q', 'G', 'R', '0')
+#define V4L2_PIX_FMT_QRGGB10 v4l2_fourcc('Q', 'R', 'G', '0')
+#define V4L2_PIX_FMT_QBGGR12 v4l2_fourcc('Q', 'B', 'G', '2')
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define V4L2_PIX_FMT_QGBRG12 v4l2_fourcc('Q', 'G', 'B', '2')
+#define V4L2_PIX_FMT_QGRBG12 v4l2_fourcc('Q', 'G', 'R', '2')
+#define V4L2_PIX_FMT_QRGGB12 v4l2_fourcc('Q', 'R', 'G', '2')
+#define VIDIOC_MSM_VFE_REG_CFG _IOWR('V', BASE_VIDIOC_PRIVATE, struct msm_vfe_cfg_cmd2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VIDIOC_MSM_ISP_REQUEST_BUF _IOWR('V', BASE_VIDIOC_PRIVATE+1, struct msm_isp_buf_request)
+#define VIDIOC_MSM_ISP_ENQUEUE_BUF _IOWR('V', BASE_VIDIOC_PRIVATE+2, struct msm_isp_qbuf_info)
+#define VIDIOC_MSM_ISP_RELEASE_BUF _IOWR('V', BASE_VIDIOC_PRIVATE+3, struct msm_isp_buf_request)
+#define VIDIOC_MSM_ISP_REQUEST_STREAM _IOWR('V', BASE_VIDIOC_PRIVATE+4, struct msm_vfe_axi_stream_request_cmd)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VIDIOC_MSM_ISP_CFG_STREAM _IOWR('V', BASE_VIDIOC_PRIVATE+5, struct msm_vfe_axi_stream_cfg_cmd)
+#define VIDIOC_MSM_ISP_RELEASE_STREAM _IOWR('V', BASE_VIDIOC_PRIVATE+6, struct msm_vfe_axi_stream_release_cmd)
+#define VIDIOC_MSM_ISP_INPUT_CFG _IOWR('V', BASE_VIDIOC_PRIVATE+7, struct msm_vfe_input_cfg)
+#define VIDIOC_MSM_ISP_SET_SRC_STATE _IOWR('V', BASE_VIDIOC_PRIVATE+8, struct msm_vfe_axi_src_state)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VIDIOC_MSM_ISP_REQUEST_STATS_STREAM _IOWR('V', BASE_VIDIOC_PRIVATE+9, struct msm_vfe_stats_stream_request_cmd)
+#define VIDIOC_MSM_ISP_CFG_STATS_STREAM _IOWR('V', BASE_VIDIOC_PRIVATE+10, struct msm_vfe_stats_stream_cfg_cmd)
+#define VIDIOC_MSM_ISP_RELEASE_STATS_STREAM _IOWR('V', BASE_VIDIOC_PRIVATE+11, struct msm_vfe_stats_stream_release_cmd)
+#define VIDIOC_MSM_ISP_CFG_STATS_COMP_POLICY _IOWR('V', BASE_VIDIOC_PRIVATE+12, struct msm_vfe_stats_comp_policy_cfg)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VIDIOC_MSM_ISP_UPDATE_STREAM _IOWR('V', BASE_VIDIOC_PRIVATE+13, struct msm_vfe_axi_stream_update_cmd)
+#endif
diff --git a/kernel-headers/media/msmb_ispif.h b/kernel-headers/media/msmb_ispif.h
new file mode 100644
index 0000000..b20617e
--- /dev/null
+++ b/kernel-headers/media/msmb_ispif.h
@@ -0,0 +1,148 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ *** 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_CAM_ISPIF_H
+#define MSM_CAM_ISPIF_H
+#define CSID_VERSION_V2 0x02000011
+#define CSID_VERSION_V3 0x30000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+enum msm_ispif_vfe_intf {
+ VFE0,
+ VFE1,
+ VFE_MAX
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+#define VFE0_MASK (1 << VFE0)
+#define VFE1_MASK (1 << VFE1)
+enum msm_ispif_intftype {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ PIX0,
+ RDI0,
+ PIX1,
+ RDI1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ RDI2,
+ INTF_MAX
+};
+#define MAX_PARAM_ENTRIES (INTF_MAX * 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PIX0_MASK (1 << PIX0)
+#define PIX1_MASK (1 << PIX1)
+#define RDI0_MASK (1 << RDI0)
+#define RDI1_MASK (1 << RDI1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define RDI2_MASK (1 << RDI2)
+enum msm_ispif_vc {
+ VC0,
+ VC1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ VC2,
+ VC3,
+ VC_MAX
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+enum msm_ispif_cid {
+ CID0,
+ CID1,
+ CID2,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CID3,
+ CID4,
+ CID5,
+ CID6,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CID7,
+ CID8,
+ CID9,
+ CID10,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CID11,
+ CID12,
+ CID13,
+ CID14,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CID15,
+ CID_MAX
+};
+enum msm_ispif_csid {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CSID0,
+ CSID1,
+ CSID2,
+ CSID3,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CSID_MAX
+};
+struct msm_ispif_params_entry {
+ enum msm_ispif_vfe_intf vfe_intf;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ enum msm_ispif_intftype intftype;
+ int num_cids;
+ enum msm_ispif_cid cids[3];
+ enum msm_ispif_csid csid;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int crop_enable;
+ uint16_t crop_start_pixel;
+ uint16_t crop_end_pixel;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_ispif_param_data {
+ uint32_t num;
+ struct msm_ispif_params_entry entries[MAX_PARAM_ENTRIES];
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_isp_info {
+ uint32_t max_resolution;
+ uint32_t id;
+ uint32_t ver;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct msm_ispif_vfe_info {
+ int num_vfe;
+ struct msm_isp_info info[VFE_MAX];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+enum ispif_cfg_type_t {
+ ISPIF_CLK_ENABLE,
+ ISPIF_CLK_DISABLE,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ISPIF_INIT,
+ ISPIF_CFG,
+ ISPIF_START_FRAME_BOUNDARY,
+ ISPIF_STOP_FRAME_BOUNDARY,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ISPIF_STOP_IMMEDIATELY,
+ ISPIF_RELEASE,
+ ISPIF_ENABLE_REG_DUMP,
+ ISPIF_SET_VFE_INFO,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct ispif_cfg_data {
+ enum ispif_cfg_type_t cfg_type;
+ union {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int reg_dump;
+ uint32_t csid_version;
+ struct msm_ispif_vfe_info vfe_info;
+ struct msm_ispif_param_data params;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ };
+};
+#define VIDIOC_MSM_ISPIF_CFG _IOWR('V', BASE_VIDIOC_PRIVATE, struct ispif_cfg_data)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/kernel-headers/media/msmb_pproc.h b/kernel-headers/media/msmb_pproc.h
new file mode 100644
index 0000000..1d9687c
--- /dev/null
+++ b/kernel-headers/media/msmb_pproc.h
@@ -0,0 +1,154 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ *** 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 __MSMB_PPROC_H
+#define __MSMB_PPROC_H
+#ifdef MSM_CAMERA_BIONIC
+#include <sys/types.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#include <linux/videodev2.h>
+#include <linux/types.h>
+#define MAX_PLANES VIDEO_MAX_PLANES
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAX_NUM_CPP_STRIPS 8
+#define MSM_CPP_MAX_NUM_PLANES 3
+enum msm_cpp_frame_type {
+ MSM_CPP_OFFLINE_FRAME,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ MSM_CPP_REALTIME_FRAME,
+};
+struct msm_cpp_frame_strip_info {
+ int scale_v_en;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int scale_h_en;
+ int upscale_v_en;
+ int upscale_h_en;
+ int src_start_x;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int src_end_x;
+ int src_start_y;
+ int src_end_y;
+ int pad_bottom;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int pad_top;
+ int pad_right;
+ int pad_left;
+ int v_init_phase;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int h_init_phase;
+ int h_phase_step;
+ int v_phase_step;
+ int prescale_crop_width_first_pixel;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int prescale_crop_width_last_pixel;
+ int prescale_crop_height_first_line;
+ int prescale_crop_height_last_line;
+ int postscale_crop_height_first_line;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int postscale_crop_height_last_line;
+ int postscale_crop_width_first_pixel;
+ int postscale_crop_width_last_pixel;
+ int dst_start_x;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int dst_end_x;
+ int dst_start_y;
+ int dst_end_y;
+ int bytes_per_pixel;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int source_address;
+ unsigned int destination_address;
+ unsigned int src_stride;
+ unsigned int dst_stride;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int rotate_270;
+ int horizontal_flip;
+ int vertical_flip;
+ int scale_output_width;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int scale_output_height;
+ int prescale_crop_en;
+ int postscale_crop_en;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_cpp_buffer_info_t {
+ int fd;
+ uint32_t index;
+ uint32_t offset;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint8_t native_buff;
+ uint8_t processed_divert;
+};
+struct msm_cpp_stream_buff_info_t {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t identity;
+ uint32_t num_buffs;
+ struct msm_cpp_buffer_info_t *buffer_info;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_cpp_frame_info_t {
+ int32_t frame_id;
+ struct timeval timestamp;
+ uint32_t inst_id;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t identity;
+ uint32_t client_id;
+ enum msm_cpp_frame_type frame_type;
+ uint32_t num_strips;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct msm_cpp_frame_strip_info *strip_info;
+ uint32_t msg_len;
+ uint32_t *cpp_cmd_msg;
+ int src_fd;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int dst_fd;
+ struct ion_handle *src_ion_handle;
+ struct ion_handle *dest_ion_handle;
+ struct timeval in_time, out_time;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ void *cookie;
+ int32_t *status;
+ struct msm_cpp_buffer_info_t input_buffer_info;
+ struct msm_cpp_buffer_info_t output_buffer_info;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct cpp_hw_info {
+ uint32_t cpp_hw_version;
+ uint32_t cpp_hw_caps;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+#define VIDIOC_MSM_CPP_CFG _IOWR('V', BASE_VIDIOC_PRIVATE, struct msm_camera_v4l2_ioctl_t)
+#define VIDIOC_MSM_CPP_GET_EVENTPAYLOAD _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct msm_camera_v4l2_ioctl_t)
+#define VIDIOC_MSM_CPP_GET_INST_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 2, struct msm_camera_v4l2_ioctl_t)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VIDIOC_MSM_CPP_LOAD_FIRMWARE _IOWR('V', BASE_VIDIOC_PRIVATE + 3, struct msm_camera_v4l2_ioctl_t)
+#define VIDIOC_MSM_CPP_GET_HW_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct msm_camera_v4l2_ioctl_t)
+#define VIDIOC_MSM_CPP_FLUSH_QUEUE _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct msm_camera_v4l2_ioctl_t)
+#define VIDIOC_MSM_CPP_ENQUEUE_STREAM_BUFF_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_camera_v4l2_ioctl_t)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VIDIOC_MSM_CPP_DEQUEUE_STREAM_BUFF_INFO _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_v4l2_ioctl_t)
+#define V4L2_EVENT_CPP_FRAME_DONE (V4L2_EVENT_PRIVATE_START + 0)
+struct msm_camera_v4l2_ioctl_t {
+ uint32_t id;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t len;
+ int32_t trans_code;
+ void __user *ioctl_ptr;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/original-kernel-headers/media/msm_cam_sensor.h b/original-kernel-headers/media/msm_cam_sensor.h
new file mode 100644
index 0000000..a092324
--- /dev/null
+++ b/original-kernel-headers/media/msm_cam_sensor.h
@@ -0,0 +1,545 @@
+#ifndef _UAPI_MEDIA_MSM_CAM_SENSOR_H
+#define _UAPI_MEDIA_MSM_CAM_SENSOR_H
+
+#ifdef MSM_CAMERA_BIONIC
+#include <sys/types.h>
+#endif
+#include <linux/types.h>
+#include <linux/v4l2-mediabus.h>
+#include <linux/i2c.h>
+
+#define I2C_SEQ_REG_SETTING_MAX 5
+#define I2C_SEQ_REG_DATA_MAX 20
+#define MAX_CID 16
+
+#define MSM_SENSOR_MCLK_8HZ 8000000
+#define MSM_SENSOR_MCLK_16HZ 16000000
+#define MSM_SENSOR_MCLK_24HZ 24000000
+
+#define GPIO_OUT_LOW (0 << 1)
+#define GPIO_OUT_HIGH (1 << 1)
+
+#define CSI_EMBED_DATA 0x12
+#define CSI_RESERVED_DATA_0 0x13
+#define CSI_YUV422_8 0x1E
+#define CSI_RAW8 0x2A
+#define CSI_RAW10 0x2B
+#define CSI_RAW12 0x2C
+
+#define CSI_DECODE_6BIT 0
+#define CSI_DECODE_8BIT 1
+#define CSI_DECODE_10BIT 2
+#define CSI_DECODE_DPCM_10_8_10 5
+
+#define MAX_SENSOR_NAME 32
+
+#define MAX_ACT_MOD_NAME_SIZE 32
+#define MAX_ACT_NAME_SIZE 32
+#define NUM_ACTUATOR_DIR 2
+#define MAX_ACTUATOR_SCENARIO 8
+#define MAX_ACTUATOR_REGION 5
+#define MAX_ACTUATOR_INIT_SET 12
+#define MAX_ACTUATOR_REG_TBL_SIZE 8
+
+#define MOVE_NEAR 0
+#define MOVE_FAR 1
+
+#define MAX_EEPROM_NAME 32
+
+enum msm_camera_i2c_reg_addr_type {
+ MSM_CAMERA_I2C_BYTE_ADDR = 1,
+ MSM_CAMERA_I2C_WORD_ADDR,
+};
+
+enum msm_camera_i2c_data_type {
+ MSM_CAMERA_I2C_BYTE_DATA = 1,
+ MSM_CAMERA_I2C_WORD_DATA,
+ MSM_CAMERA_I2C_SET_BYTE_MASK,
+ MSM_CAMERA_I2C_UNSET_BYTE_MASK,
+ MSM_CAMERA_I2C_SET_WORD_MASK,
+ MSM_CAMERA_I2C_UNSET_WORD_MASK,
+ MSM_CAMERA_I2C_SET_BYTE_WRITE_MASK_DATA,
+};
+
+enum msm_sensor_power_seq_type_t {
+ SENSOR_CLK,
+ SENSOR_GPIO,
+ SENSOR_VREG,
+ SENSOR_I2C_MUX,
+};
+
+enum msm_sensor_clk_type_t {
+ SENSOR_CAM_MCLK,
+ SENSOR_CAM_CLK,
+ SENSOR_CAM_CLK_MAX,
+};
+
+enum msm_sensor_power_seq_gpio_t {
+ SENSOR_GPIO_RESET,
+ SENSOR_GPIO_STANDBY,
+ SENSOR_GPIO_MAX,
+};
+
+enum msm_camera_vreg_name_t {
+ CAM_VDIG,
+ CAM_VIO,
+ CAM_VANA,
+ CAM_VAF,
+ CAM_VREG_MAX,
+};
+
+enum msm_sensor_resolution_t {
+ MSM_SENSOR_RES_FULL,
+ MSM_SENSOR_RES_QTR,
+ MSM_SENSOR_RES_2,
+ MSM_SENSOR_RES_3,
+ MSM_SENSOR_RES_4,
+ MSM_SENSOR_RES_5,
+ MSM_SENSOR_RES_6,
+ MSM_SENSOR_RES_7,
+ MSM_SENSOR_INVALID_RES,
+};
+
+enum sensor_sub_module_t {
+ SUB_MODULE_SENSOR,
+ SUB_MODULE_CHROMATIX,
+ SUB_MODULE_ACTUATOR,
+ SUB_MODULE_EEPROM,
+ SUB_MODULE_LED_FLASH,
+ SUB_MODULE_STROBE_FLASH,
+ SUB_MODULE_CSID,
+ SUB_MODULE_CSID_3D,
+ SUB_MODULE_CSIPHY,
+ SUB_MODULE_CSIPHY_3D,
+ SUB_MODULE_MAX,
+};
+
+enum csid_cfg_type_t {
+ CSID_INIT,
+ CSID_CFG,
+ CSID_RELEASE,
+};
+
+enum csiphy_cfg_type_t {
+ CSIPHY_INIT,
+ CSIPHY_CFG,
+ CSIPHY_RELEASE,
+};
+
+enum camera_vreg_type {
+ REG_LDO,
+ REG_VS,
+ REG_GPIO,
+};
+
+struct msm_sensor_power_setting {
+ enum msm_sensor_power_seq_type_t seq_type;
+ uint16_t seq_val;
+ long config_val;
+ uint16_t delay;
+ void *data[10];
+};
+
+struct msm_sensor_power_setting_array {
+ struct msm_sensor_power_setting *power_setting;
+ uint16_t size;
+};
+
+struct msm_sensor_id_info_t {
+ uint16_t sensor_id_reg_addr;
+ uint16_t sensor_id;
+};
+
+struct msm_camera_sensor_slave_info {
+ uint16_t slave_addr;
+ enum msm_camera_i2c_reg_addr_type addr_type;
+ struct msm_sensor_id_info_t sensor_id_info;
+ struct msm_sensor_power_setting_array power_setting_array;
+};
+
+struct msm_camera_i2c_reg_array {
+ uint16_t reg_addr;
+ uint16_t reg_data;
+};
+
+struct msm_camera_i2c_reg_setting {
+ struct msm_camera_i2c_reg_array *reg_setting;
+ uint16_t size;
+ enum msm_camera_i2c_reg_addr_type addr_type;
+ enum msm_camera_i2c_data_type data_type;
+ uint16_t delay;
+};
+
+struct msm_camera_i2c_seq_reg_array {
+ uint16_t reg_addr;
+ uint8_t reg_data[I2C_SEQ_REG_DATA_MAX];
+ uint16_t reg_data_size;
+};
+
+struct msm_camera_i2c_seq_reg_setting {
+ struct msm_camera_i2c_seq_reg_array *reg_setting;
+ uint16_t size;
+ enum msm_camera_i2c_reg_addr_type addr_type;
+ uint16_t delay;
+};
+
+struct msm_camera_csid_vc_cfg {
+ uint8_t cid;
+ uint8_t dt;
+ uint8_t decode_format;
+};
+
+struct msm_camera_csid_lut_params {
+ uint8_t num_cid;
+ struct msm_camera_csid_vc_cfg *vc_cfg[MAX_CID];
+};
+
+struct msm_camera_csid_params {
+ uint8_t lane_cnt;
+ uint16_t lane_assign;
+ uint8_t phy_sel;
+ struct msm_camera_csid_lut_params lut_params;
+};
+
+struct msm_camera_csiphy_params {
+ uint8_t lane_cnt;
+ uint8_t settle_cnt;
+ uint16_t lane_mask;
+ uint8_t combo_mode;
+};
+
+struct msm_camera_csi2_params {
+ struct msm_camera_csid_params csid_params;
+ struct msm_camera_csiphy_params csiphy_params;
+};
+
+struct msm_camera_csi_lane_params {
+ uint16_t csi_lane_assign;
+ uint16_t csi_lane_mask;
+};
+
+struct csi_lane_params_t {
+ uint16_t csi_lane_assign;
+ uint8_t csi_lane_mask;
+ uint8_t csi_if;
+ uint8_t csid_core[2];
+ uint8_t csi_phy_sel;
+};
+
+struct msm_sensor_info_t {
+ char sensor_name[MAX_SENSOR_NAME];
+ int32_t session_id;
+ int32_t subdev_id[SUB_MODULE_MAX];
+};
+
+struct camera_vreg_t {
+ const char *reg_name;
+ enum camera_vreg_type type;
+ int min_voltage;
+ int max_voltage;
+ int op_mode;
+ uint32_t delay;
+};
+
+enum camb_position_t {
+ BACK_CAMERA_B,
+ FRONT_CAMERA_B,
+};
+
+enum camerab_mode_t {
+ CAMERA_MODE_2D_B = (1<<0),
+ CAMERA_MODE_3D_B = (1<<1)
+};
+
+struct msm_sensor_init_params {
+ /* mask of modes supported: 2D, 3D */
+ int modes_supported;
+ /* sensor position: front, back */
+ enum camb_position_t position;
+ /* sensor mount angle */
+ uint32_t sensor_mount_angle;
+};
+
+struct sensorb_cfg_data {
+ int cfgtype;
+ union {
+ struct msm_sensor_info_t sensor_info;
+ struct msm_sensor_init_params sensor_init_params;
+ void *setting;
+ int8_t effect;
+ uint8_t wb_val;
+ int8_t exp_compensation;
+ int8_t fps;
+ } cfg;
+};
+
+struct csid_cfg_data {
+ enum csid_cfg_type_t cfgtype;
+ union {
+ uint32_t csid_version;
+ struct msm_camera_csid_params *csid_params;
+ } cfg;
+};
+
+struct csiphy_cfg_data {
+ enum csiphy_cfg_type_t cfgtype;
+ union {
+ struct msm_camera_csiphy_params *csiphy_params;
+ struct msm_camera_csi_lane_params *csi_lane_params;
+ } cfg;
+};
+
+enum eeprom_cfg_type_t {
+ CFG_EEPROM_GET_INFO,
+ CFG_EEPROM_GET_DATA,
+ CFG_EEPROM_READ_DATA,
+ CFG_EEPROM_WRITE_DATA,
+};
+struct eeprom_get_t {
+ uint16_t num_bytes;
+};
+
+struct eeprom_read_t {
+ uint8_t *dbuffer;
+ uint16_t num_bytes;
+};
+
+struct eeprom_write_t {
+ uint8_t *dbuffer;
+ uint16_t num_bytes;
+};
+
+struct msm_eeprom_cfg_data {
+ enum eeprom_cfg_type_t cfgtype;
+ uint8_t is_supported;
+ union {
+ char eeprom_name[MAX_SENSOR_NAME];
+ struct eeprom_get_t get_data;
+ struct eeprom_read_t read_data;
+ struct eeprom_write_t write_data;
+ } cfg;
+};
+
+enum msm_sensor_cfg_type_t {
+ CFG_SET_SLAVE_INFO,
+ CFG_WRITE_I2C_ARRAY,
+ CFG_WRITE_I2C_SEQ_ARRAY,
+ CFG_POWER_UP,
+ CFG_POWER_DOWN,
+ CFG_SET_STOP_STREAM_SETTING,
+ CFG_GET_SENSOR_INFO,
+ CFG_GET_SENSOR_INIT_PARAMS,
+ CFG_SET_INIT_SETTING,
+ CFG_SET_RESOLUTION,
+ CFG_SET_STOP_STREAM,
+ CFG_SET_START_STREAM,
+ CFG_SET_EFFECT,
+ CFG_SET_WB,
+ CFG_SET_FPS,
+ CFG_SET_EXPOSURE_COMPENSATION,
+};
+
+enum msm_actuator_cfg_type_t {
+ CFG_GET_ACTUATOR_INFO,
+ CFG_SET_ACTUATOR_INFO,
+ CFG_SET_DEFAULT_FOCUS,
+ CFG_MOVE_FOCUS,
+ CFG_ACTUATOR_POWERDOWN,
+};
+
+enum actuator_type {
+ ACTUATOR_VCM,
+ ACTUATOR_PIEZO,
+};
+
+enum msm_actuator_data_type {
+ MSM_ACTUATOR_BYTE_DATA = 1,
+ MSM_ACTUATOR_WORD_DATA,
+};
+
+enum msm_actuator_addr_type {
+ MSM_ACTUATOR_BYTE_ADDR = 1,
+ MSM_ACTUATOR_WORD_ADDR,
+};
+
+struct reg_settings_t {
+ uint16_t reg_addr;
+ uint16_t reg_data;
+};
+
+struct region_params_t {
+ /* [0] = ForwardDirection Macro boundary
+ [1] = ReverseDirection Inf boundary
+ */
+ uint16_t step_bound[2];
+ uint16_t code_per_step;
+};
+
+struct damping_params_t {
+ uint32_t damping_step;
+ uint32_t damping_delay;
+ uint32_t hw_params;
+};
+
+struct msm_actuator_move_params_t {
+ int8_t dir;
+ int8_t sign_dir;
+ int16_t dest_step_pos;
+ int32_t num_steps;
+ struct damping_params_t *ringing_params;
+};
+
+struct msm_actuator_tuning_params_t {
+ int16_t initial_code;
+ uint16_t pwd_step;
+ uint16_t region_size;
+ uint32_t total_steps;
+ struct region_params_t *region_params;
+};
+
+struct msm_actuator_params_t {
+ enum actuator_type act_type;
+ uint8_t reg_tbl_size;
+ uint16_t data_size;
+ uint16_t init_setting_size;
+ uint32_t i2c_addr;
+ enum msm_actuator_addr_type i2c_addr_type;
+ enum msm_actuator_data_type i2c_data_type;
+ struct msm_actuator_reg_params_t *reg_tbl_params;
+ struct reg_settings_t *init_settings;
+};
+
+struct msm_actuator_set_info_t {
+ struct msm_actuator_params_t actuator_params;
+ struct msm_actuator_tuning_params_t af_tuning_params;
+};
+
+struct msm_actuator_get_info_t {
+ uint32_t focal_length_num;
+ uint32_t focal_length_den;
+ uint32_t f_number_num;
+ uint32_t f_number_den;
+ uint32_t f_pix_num;
+ uint32_t f_pix_den;
+ uint32_t total_f_dist_num;
+ uint32_t total_f_dist_den;
+ uint32_t hor_view_angle_num;
+ uint32_t hor_view_angle_den;
+ uint32_t ver_view_angle_num;
+ uint32_t ver_view_angle_den;
+};
+
+enum af_camera_name {
+ ACTUATOR_MAIN_CAM_0,
+ ACTUATOR_MAIN_CAM_1,
+ ACTUATOR_MAIN_CAM_2,
+ ACTUATOR_MAIN_CAM_3,
+ ACTUATOR_MAIN_CAM_4,
+ ACTUATOR_MAIN_CAM_5,
+ ACTUATOR_WEB_CAM_0,
+ ACTUATOR_WEB_CAM_1,
+ ACTUATOR_WEB_CAM_2,
+};
+
+#define CAMERA_EFFECT_OFF 0
+#define CAMERA_EFFECT_MONO 1
+#define CAMERA_EFFECT_NEGATIVE 2
+#define CAMERA_EFFECT_SOLARIZE 3
+#define CAMERA_EFFECT_SEPIA 4
+#define CAMERA_EFFECT_POSTERIZE 5
+#define CAMERA_EFFECT_WHITEBOARD 6
+#define CAMERA_EFFECT_BLACKBOARD 7
+#define CAMERA_EFFECT_AQUA 8
+#define CAMERA_EFFECT_EMBOSS 9
+#define CAMERA_EFFECT_SKETCH 10
+#define CAMERA_EFFECT_NEON 11
+#define CAMERA_EFFECT_MAX 12
+
+#define YUV_CAMERA_WB_AUTO 0 /* This list must match aeecamera.h */
+#define YUV_CAMERA_WB_CUSTOM 1
+#define YUV_CAMERA_WB_INCANDESCENT 2
+#define YUV_CAMERA_WB_FLUORESCENT 3
+#define YUV_CAMERA_WB_WARM_FLUORESCENT 4
+#define YUV_CAMERA_WB_DAYLIGHT 5
+#define YUV_CAMERA_WB_CLOUDY_DAYLIGHT 6
+#define YUV_CAMERA_WB_TWILIGHT 7
+#define YUV_CAMERA_WB_SHADE 8
+
+#define CAMERA_EXPOSURE_COMPENSATION_LV0 12
+#define CAMERA_EXPOSURE_COMPENSATION_LV1 6
+#define CAMERA_EXPOSURE_COMPENSATION_LV2 0
+#define CAMERA_EXPOSURE_COMPENSATION_LV3 -6
+#define CAMERA_EXPOSURE_COMPENSATION_LV4 -12
+
+#define CAMERA_FPS_FIX_30 30
+#define CAMERA_FPS_FIX_25 25
+#define CAMERA_FPS_FIX_24 24
+#define CAMERA_FPS_FIX_20 20
+#define CAMERA_FPS_FIX_15 15
+#define CAMERA_FPS_AUTO_30 0
+
+struct msm_actuator_cfg_data {
+ int cfgtype;
+ uint8_t is_af_supported;
+ union {
+ struct msm_actuator_move_params_t move;
+ struct msm_actuator_set_info_t set_info;
+ struct msm_actuator_get_info_t get_info;
+ enum af_camera_name cam_name;
+ } cfg;
+};
+
+enum msm_actuator_write_type {
+ MSM_ACTUATOR_WRITE_HW_DAMP,
+ MSM_ACTUATOR_WRITE_DAC,
+};
+
+struct msm_actuator_reg_params_t {
+ enum msm_actuator_write_type reg_write_type;
+ uint32_t hw_mask;
+ uint16_t reg_addr;
+ uint16_t hw_shift;
+ uint16_t data_shift;
+};
+
+enum msm_camera_led_config_t {
+ MSM_CAMERA_LED_OFF,
+ MSM_CAMERA_LED_LOW,
+ MSM_CAMERA_LED_HIGH,
+ MSM_CAMERA_LED_INIT,
+ MSM_CAMERA_LED_RELEASE,
+};
+
+struct msm_camera_led_cfg_t {
+ enum msm_camera_led_config_t cfgtype;
+};
+
+#define VIDIOC_MSM_SENSOR_CFG \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct sensorb_cfg_data)
+
+#define VIDIOC_MSM_SENSOR_RELEASE \
+ _IO('V', BASE_VIDIOC_PRIVATE + 2)
+
+#define VIDIOC_MSM_SENSOR_GET_SUBDEV_ID \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 3, uint32_t)
+
+#define VIDIOC_MSM_CSIPHY_IO_CFG \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct csid_cfg_data)
+
+#define VIDIOC_MSM_CSID_IO_CFG \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct csiphy_cfg_data)
+
+#define VIDIOC_MSM_ACTUATOR_CFG \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_actuator_cfg_data)
+
+#define VIDIOC_MSM_FLASH_LED_DATA_CFG \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_led_cfg_t)
+
+#define VIDIOC_MSM_EEPROM_CFG \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_eeprom_cfg_data)
+
+#define MSM_V4L2_PIX_FMT_META v4l2_fourcc('M', 'E', 'T', 'A') /* META */
+
+#define MSM_V4L2_PIX_FMT_RESERVED_0 v4l2_fourcc('R', 'E', 'S', '0')
+
+#endif /* __LINUX_MSM_CAM_SENSOR_H */
diff --git a/original-kernel-headers/media/msm_gemini.h b/original-kernel-headers/media/msm_gemini.h
new file mode 100644
index 0000000..2209758
--- /dev/null
+++ b/original-kernel-headers/media/msm_gemini.h
@@ -0,0 +1,123 @@
+#ifndef __LINUX_MSM_GEMINI_H
+#define __LINUX_MSM_GEMINI_H
+
+#include <linux/types.h>
+#include <linux/ioctl.h>
+
+#define MSM_GMN_IOCTL_MAGIC 'g'
+
+#define MSM_GMN_IOCTL_GET_HW_VERSION \
+ _IOW(MSM_GMN_IOCTL_MAGIC, 1, struct msm_gemini_hw_cmd *)
+
+#define MSM_GMN_IOCTL_RESET \
+ _IOW(MSM_GMN_IOCTL_MAGIC, 2, struct msm_gemini_ctrl_cmd *)
+
+#define MSM_GMN_IOCTL_STOP \
+ _IOW(MSM_GMN_IOCTL_MAGIC, 3, struct msm_gemini_hw_cmds *)
+
+#define MSM_GMN_IOCTL_START \
+ _IOW(MSM_GMN_IOCTL_MAGIC, 4, struct msm_gemini_hw_cmds *)
+
+#define MSM_GMN_IOCTL_INPUT_BUF_ENQUEUE \
+ _IOW(MSM_GMN_IOCTL_MAGIC, 5, struct msm_gemini_buf *)
+
+#define MSM_GMN_IOCTL_INPUT_GET \
+ _IOW(MSM_GMN_IOCTL_MAGIC, 6, struct msm_gemini_buf *)
+
+#define MSM_GMN_IOCTL_INPUT_GET_UNBLOCK \
+ _IOW(MSM_GMN_IOCTL_MAGIC, 7, int)
+
+#define MSM_GMN_IOCTL_OUTPUT_BUF_ENQUEUE \
+ _IOW(MSM_GMN_IOCTL_MAGIC, 8, struct msm_gemini_buf *)
+
+#define MSM_GMN_IOCTL_OUTPUT_GET \
+ _IOW(MSM_GMN_IOCTL_MAGIC, 9, struct msm_gemini_buf *)
+
+#define MSM_GMN_IOCTL_OUTPUT_GET_UNBLOCK \
+ _IOW(MSM_GMN_IOCTL_MAGIC, 10, int)
+
+#define MSM_GMN_IOCTL_EVT_GET \
+ _IOW(MSM_GMN_IOCTL_MAGIC, 11, struct msm_gemini_ctrl_cmd *)
+
+#define MSM_GMN_IOCTL_EVT_GET_UNBLOCK \
+ _IOW(MSM_GMN_IOCTL_MAGIC, 12, int)
+
+#define MSM_GMN_IOCTL_HW_CMD \
+ _IOW(MSM_GMN_IOCTL_MAGIC, 13, struct msm_gemini_hw_cmd *)
+
+#define MSM_GMN_IOCTL_HW_CMDS \
+ _IOW(MSM_GMN_IOCTL_MAGIC, 14, struct msm_gemini_hw_cmds *)
+
+#define MSM_GMN_IOCTL_TEST_DUMP_REGION \
+ _IOW(MSM_GMN_IOCTL_MAGIC, 15, unsigned long)
+
+#define MSM_GMN_IOCTL_SET_MODE \
+ _IOW(MSM_GMN_IOCTL_MAGIC, 16, enum msm_gmn_out_mode)
+
+#define MSM_GEMINI_MODE_REALTIME_ENCODE 0
+#define MSM_GEMINI_MODE_OFFLINE_ENCODE 1
+#define MSM_GEMINI_MODE_REALTIME_ROTATION 2
+#define MSM_GEMINI_MODE_OFFLINE_ROTATION 3
+
+enum msm_gmn_out_mode {
+ MSM_GMN_OUTMODE_FRAGMENTED,
+ MSM_GMN_OUTMODE_SINGLE
+};
+
+struct msm_gemini_ctrl_cmd {
+ uint32_t type;
+ uint32_t len;
+ void *value;
+};
+
+#define MSM_GEMINI_EVT_RESET 0
+#define MSM_GEMINI_EVT_FRAMEDONE 1
+#define MSM_GEMINI_EVT_ERR 2
+
+struct msm_gemini_buf {
+ uint32_t type;
+ int fd;
+
+ void *vaddr;
+
+ uint32_t y_off;
+ uint32_t y_len;
+ uint32_t framedone_len;
+
+ uint32_t cbcr_off;
+ uint32_t cbcr_len;
+
+ uint32_t num_of_mcu_rows;
+ uint32_t offset;
+};
+
+#define MSM_GEMINI_HW_CMD_TYPE_READ 0
+#define MSM_GEMINI_HW_CMD_TYPE_WRITE 1
+#define MSM_GEMINI_HW_CMD_TYPE_WRITE_OR 2
+#define MSM_GEMINI_HW_CMD_TYPE_UWAIT 3
+#define MSM_GEMINI_HW_CMD_TYPE_MWAIT 4
+#define MSM_GEMINI_HW_CMD_TYPE_MDELAY 5
+#define MSM_GEMINI_HW_CMD_TYPE_UDELAY 6
+struct msm_gemini_hw_cmd {
+
+ uint32_t type:4;
+
+ /* n microseconds of timeout for WAIT */
+ /* n microseconds of time for DELAY */
+ /* repeat n times for READ/WRITE */
+ /* max is 0xFFF, 4095 */
+ uint32_t n:12;
+ uint32_t offset:16;
+ uint32_t mask;
+ union {
+ uint32_t data; /* for single READ/WRITE/WAIT, n = 1 */
+ uint32_t *pdata; /* for multiple READ/WRITE/WAIT, n > 1 */
+ };
+};
+
+struct msm_gemini_hw_cmds {
+ uint32_t m; /* number of elements in the hw_cmd array */
+ struct msm_gemini_hw_cmd hw_cmd[1];
+};
+
+#endif /* __LINUX_MSM_GEMINI_H */
diff --git a/original-kernel-headers/media/msmb_camera.h b/original-kernel-headers/media/msmb_camera.h
new file mode 100644
index 0000000..e431926
--- /dev/null
+++ b/original-kernel-headers/media/msmb_camera.h
@@ -0,0 +1,160 @@
+#ifndef __LINUX_MSMB_CAMERA_H
+#define __LINUX_MSMB_CAMERA_H
+
+#include <linux/videodev2.h>
+#include <linux/types.h>
+#include <linux/ioctl.h>
+
+#define MSM_CAM_V4L2_IOCTL_NOTIFY \
+ _IOW('V', BASE_VIDIOC_PRIVATE + 30, struct v4l2_event)
+
+#define MSM_CAM_V4L2_IOCTL_NOTIFY_META \
+ _IOW('V', BASE_VIDIOC_PRIVATE + 31, struct v4l2_event)
+
+#define MSM_CAM_V4L2_IOCTL_CMD_ACK \
+ _IOW('V', BASE_VIDIOC_PRIVATE + 32, struct v4l2_event)
+
+#define QCAMERA_DEVICE_GROUP_ID 1
+#define QCAMERA_VNODE_GROUP_ID 2
+#define MSM_CAMERA_NAME "msm_camera"
+#define MSM_CONFIGURATION_NAME "msm_config"
+
+#define MSM_CAMERA_SUBDEV_CSIPHY 0
+#define MSM_CAMERA_SUBDEV_CSID 1
+#define MSM_CAMERA_SUBDEV_ISPIF 2
+#define MSM_CAMERA_SUBDEV_VFE 3
+#define MSM_CAMERA_SUBDEV_AXI 4
+#define MSM_CAMERA_SUBDEV_VPE 5
+#define MSM_CAMERA_SUBDEV_SENSOR 6
+#define MSM_CAMERA_SUBDEV_ACTUATOR 7
+#define MSM_CAMERA_SUBDEV_EEPROM 8
+#define MSM_CAMERA_SUBDEV_CPP 9
+#define MSM_CAMERA_SUBDEV_CCI 10
+#define MSM_CAMERA_SUBDEV_LED_FLASH 11
+#define MSM_CAMERA_SUBDEV_STROBE_FLASH 12
+#define MSM_CAMERA_SUBDEV_BUF_MNGR 13
+
+#define MSM_MAX_CAMERA_SENSORS 5
+
+/* featur base */
+#define MSM_CAMERA_FEATURE_BASE 0x00010000
+#define MSM_CAMERA_FEATURE_SHUTDOWN (MSM_CAMERA_FEATURE_BASE + 1)
+
+#define MSM_CAMERA_STATUS_BASE 0x00020000
+#define MSM_CAMERA_STATUS_FAIL (MSM_CAMERA_STATUS_BASE + 1)
+#define MSM_CAMERA_STATUS_SUCCESS (MSM_CAMERA_STATUS_BASE + 2)
+
+/* event type */
+#define MSM_CAMERA_V4L2_EVENT_TYPE (V4L2_EVENT_PRIVATE_START + 0x00002000)
+
+/* event id */
+#define MSM_CAMERA_EVENT_MIN 0
+#define MSM_CAMERA_NEW_SESSION (MSM_CAMERA_EVENT_MIN + 1)
+#define MSM_CAMERA_DEL_SESSION (MSM_CAMERA_EVENT_MIN + 2)
+#define MSM_CAMERA_SET_PARM (MSM_CAMERA_EVENT_MIN + 3)
+#define MSM_CAMERA_GET_PARM (MSM_CAMERA_EVENT_MIN + 4)
+#define MSM_CAMERA_MAPPING_CFG (MSM_CAMERA_EVENT_MIN + 5)
+#define MSM_CAMERA_MAPPING_SES (MSM_CAMERA_EVENT_MIN + 6)
+#define MSM_CAMERA_MSM_NOTIFY (MSM_CAMERA_EVENT_MIN + 7)
+#define MSM_CAMERA_EVENT_MAX (MSM_CAMERA_EVENT_MIN + 8)
+
+/* data.command */
+#define MSM_CAMERA_PRIV_S_CROP (V4L2_CID_PRIVATE_BASE + 1)
+#define MSM_CAMERA_PRIV_G_CROP (V4L2_CID_PRIVATE_BASE + 2)
+#define MSM_CAMERA_PRIV_G_FMT (V4L2_CID_PRIVATE_BASE + 3)
+#define MSM_CAMERA_PRIV_S_FMT (V4L2_CID_PRIVATE_BASE + 4)
+#define MSM_CAMERA_PRIV_TRY_FMT (V4L2_CID_PRIVATE_BASE + 5)
+#define MSM_CAMERA_PRIV_METADATA (V4L2_CID_PRIVATE_BASE + 6)
+#define MSM_CAMERA_PRIV_QUERY_CAP (V4L2_CID_PRIVATE_BASE + 7)
+#define MSM_CAMERA_PRIV_STREAM_ON (V4L2_CID_PRIVATE_BASE + 8)
+#define MSM_CAMERA_PRIV_STREAM_OFF (V4L2_CID_PRIVATE_BASE + 9)
+#define MSM_CAMERA_PRIV_NEW_STREAM (V4L2_CID_PRIVATE_BASE + 10)
+#define MSM_CAMERA_PRIV_DEL_STREAM (V4L2_CID_PRIVATE_BASE + 11)
+#define MSM_CAMERA_PRIV_SHUTDOWN (V4L2_CID_PRIVATE_BASE + 12)
+#define MSM_CAMERA_PRIV_STREAM_INFO_SYNC \
+ (V4L2_CID_PRIVATE_BASE + 13)
+
+/* data.status - success */
+#define MSM_CAMERA_CMD_SUCESS 0x00000001
+#define MSM_CAMERA_BUF_MAP_SUCESS 0x00000002
+
+/* data.status - error */
+#define MSM_CAMERA_ERR_EVT_BASE 0x00010000
+#define MSM_CAMERA_ERR_CMD_FAIL (MSM_CAMERA_ERR_EVT_BASE + 1)
+#define MSM_CAMERA_ERR_MAPPING (MSM_CAMERA_ERR_EVT_BASE + 2)
+
+/* The msm_v4l2_event_data structure should match the
+ * v4l2_event.u.data field.
+ * should not exceed 16 elements */
+struct msm_v4l2_event_data {
+ /*word 0 */
+ unsigned int command;
+ /*word 1 */
+ unsigned int status;
+ /*word 2 */
+ unsigned int session_id;
+ /*word 3 */
+ unsigned int stream_id;
+ /*word 4 */
+ unsigned int map_op;
+ /*word 5 */
+ unsigned int map_buf_idx;
+ /*word 6 */
+ unsigned int notify;
+ /*word 7 */
+ unsigned int arg_value;
+ /*word 8 */
+ unsigned int ret_value;
+ /*word 9 */
+ unsigned int nop3;
+ /*word 10 */
+ unsigned int nop4;
+ /*word 11 */
+ unsigned int nop5;
+ /*word 12 */
+ unsigned int nop6;
+ /*word 13 */
+ unsigned int nop7;
+ /*word 14 */
+ unsigned int nop8;
+ /*word 15 */
+ unsigned int nop9;
+};
+
+/* map to v4l2_format.fmt.raw_data */
+struct msm_v4l2_format_data {
+ enum v4l2_buf_type type;
+ unsigned int width;
+ unsigned int height;
+ unsigned int pixelformat; /* FOURCC */
+ unsigned char num_planes;
+ unsigned int plane_sizes[VIDEO_MAX_PLANES];
+};
+
+/* MSM Four-character-code (FOURCC) */
+#define msm_v4l2_fourcc(a, b, c, d)\
+ ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) |\
+ ((__u32)(d) << 24))
+
+/* Composite stats */
+#define MSM_V4L2_PIX_FMT_STATS_COMB v4l2_fourcc('S', 'T', 'C', 'M')
+/* AEC stats */
+#define MSM_V4L2_PIX_FMT_STATS_AE v4l2_fourcc('S', 'T', 'A', 'E')
+/* AF stats */
+#define MSM_V4L2_PIX_FMT_STATS_AF v4l2_fourcc('S', 'T', 'A', 'F')
+/* AWB stats */
+#define MSM_V4L2_PIX_FMT_STATS_AWB v4l2_fourcc('S', 'T', 'W', 'B')
+/* IHIST stats */
+#define MSM_V4L2_PIX_FMT_STATS_IHST v4l2_fourcc('I', 'H', 'S', 'T')
+/* Column count stats */
+#define MSM_V4L2_PIX_FMT_STATS_CS v4l2_fourcc('S', 'T', 'C', 'S')
+/* Row count stats */
+#define MSM_V4L2_PIX_FMT_STATS_RS v4l2_fourcc('S', 'T', 'R', 'S')
+/* Bayer Grid stats */
+#define MSM_V4L2_PIX_FMT_STATS_BG v4l2_fourcc('S', 'T', 'B', 'G')
+/* Bayer focus stats */
+#define MSM_V4L2_PIX_FMT_STATS_BF v4l2_fourcc('S', 'T', 'B', 'F')
+/* Bayer hist stats */
+#define MSM_V4L2_PIX_FMT_STATS_BHST v4l2_fourcc('B', 'H', 'S', 'T')
+
+#endif /* __LINUX_MSMB_CAMERA_H */
diff --git a/original-kernel-headers/media/msmb_generic_buf_mgr.h b/original-kernel-headers/media/msmb_generic_buf_mgr.h
new file mode 100644
index 0000000..efcb425
--- /dev/null
+++ b/original-kernel-headers/media/msmb_generic_buf_mgr.h
@@ -0,0 +1,23 @@
+#ifndef __MEDIA_MSMB_BUF_MNGR_H__
+#define __MEDIA_MSMB_BUF_MNGR_H__
+
+struct msm_buf_mngr_info {
+ uint32_t session_id;
+ uint32_t stream_id;
+ uint32_t frame_id;
+ struct timeval timestamp;
+ uint32_t index;
+};
+
+struct v4l2_subdev *msm_buf_mngr_get_subdev(void);
+
+#define VIDIOC_MSM_BUF_MNGR_GET_BUF \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 33, struct msm_buf_mngr_info)
+
+#define VIDIOC_MSM_BUF_MNGR_PUT_BUF \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 34, struct msm_buf_mngr_info)
+
+#define VIDIOC_MSM_BUF_MNGR_BUF_DONE \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 35, struct msm_buf_mngr_info)
+
+#endif
diff --git a/original-kernel-headers/media/msmb_isp.h b/original-kernel-headers/media/msmb_isp.h
new file mode 100644
index 0000000..6b71815
--- /dev/null
+++ b/original-kernel-headers/media/msmb_isp.h
@@ -0,0 +1,412 @@
+#ifndef _UAPI_MEDIA_MSMB_ISP_H
+#define _UAPI_MEDIA_MSMB_ISP_H
+
+#include <linux/videodev2.h>
+
+#define MAX_PLANES_PER_STREAM 3
+#define MAX_NUM_STREAM 7
+
+#define ISP_VERSION_40 40
+#define ISP_VERSION_32 32
+#define ISP_NATIVE_BUF_BIT 0x10000
+#define ISP0_BIT 0x20000
+#define ISP1_BIT 0x40000
+#define ISP_STATS_STREAM_BIT 0x80000000
+
+enum ISP_START_PIXEL_PATTERN {
+ ISP_BAYER_RGRGRG,
+ ISP_BAYER_GRGRGR,
+ ISP_BAYER_BGBGBG,
+ ISP_BAYER_GBGBGB,
+ ISP_YUV_YCbYCr,
+ ISP_YUV_YCrYCb,
+ ISP_YUV_CbYCrY,
+ ISP_YUV_CrYCbY,
+ ISP_PIX_PATTERN_MAX
+};
+
+enum msm_vfe_plane_fmt {
+ Y_PLANE,
+ CB_PLANE,
+ CR_PLANE,
+ CRCB_PLANE,
+ CBCR_PLANE,
+ VFE_PLANE_FMT_MAX
+};
+
+enum msm_vfe_input_src {
+ VFE_PIX_0,
+ VFE_RAW_0,
+ VFE_RAW_1,
+ VFE_RAW_2,
+ VFE_SRC_MAX,
+};
+
+enum msm_vfe_axi_stream_src {
+ PIX_ENCODER,
+ PIX_VIEWFINDER,
+ CAMIF_RAW,
+ IDEAL_RAW,
+ RDI_INTF_0,
+ RDI_INTF_1,
+ RDI_INTF_2,
+ VFE_AXI_SRC_MAX
+};
+
+enum msm_vfe_frame_skip_pattern {
+ NO_SKIP,
+ EVERY_2FRAME,
+ EVERY_3FRAME,
+ EVERY_4FRAME,
+ EVERY_5FRAME,
+ EVERY_6FRAME,
+ EVERY_7FRAME,
+ EVERY_8FRAME,
+ EVERY_16FRAME,
+ EVERY_32FRAME,
+ MAX_SKIP,
+};
+
+enum msm_vfe_camif_input {
+ CAMIF_DISABLED,
+ CAMIF_PAD_REG_INPUT,
+ CAMIF_MIDDI_INPUT,
+ CAMIF_MIPI_INPUT,
+};
+
+struct msm_vfe_camif_cfg {
+ uint32_t lines_per_frame;
+ uint32_t pixels_per_line;
+ uint32_t first_pixel;
+ uint32_t last_pixel;
+ uint32_t first_line;
+ uint32_t last_line;
+ uint32_t epoch_line0;
+ uint32_t epoch_line1;
+ enum msm_vfe_camif_input camif_input;
+};
+
+enum msm_vfe_inputmux {
+ CAMIF,
+ TESTGEN,
+ EXTERNAL_READ,
+};
+
+struct msm_vfe_pix_cfg {
+ struct msm_vfe_camif_cfg camif_cfg;
+ enum msm_vfe_inputmux input_mux;
+ enum ISP_START_PIXEL_PATTERN pixel_pattern;
+};
+
+struct msm_vfe_rdi_cfg {
+ uint8_t cid;
+ uint8_t frame_based;
+};
+
+struct msm_vfe_input_cfg {
+ union {
+ struct msm_vfe_pix_cfg pix_cfg;
+ struct msm_vfe_rdi_cfg rdi_cfg;
+ } d;
+ enum msm_vfe_input_src input_src;
+ uint32_t input_pix_clk;
+};
+
+struct msm_vfe_axi_plane_cfg {
+ uint32_t output_width; /*Include padding*/
+ uint32_t output_height;
+ uint32_t output_stride;
+ uint32_t output_scan_lines;
+ uint32_t output_plane_format; /*Y/Cb/Cr/CbCr*/
+ uint32_t plane_addr_offset;
+ uint8_t csid_src; /*RDI 0-2*/
+ uint8_t rdi_cid;/*CID 1-16*/
+};
+
+struct msm_vfe_axi_stream_request_cmd {
+ uint32_t session_id;
+ uint32_t stream_id;
+ uint32_t output_format;/*Planar/RAW/Misc*/
+ enum msm_vfe_axi_stream_src stream_src; /*CAMIF/IDEAL/RDIs*/
+ struct msm_vfe_axi_plane_cfg plane_cfg[MAX_PLANES_PER_STREAM];
+
+ uint32_t burst_count;
+ uint32_t hfr_mode;
+ uint8_t frame_base;
+
+ uint32_t init_frame_drop; /*MAX 31 Frames*/
+ enum msm_vfe_frame_skip_pattern frame_skip_pattern;
+ uint8_t buf_divert; /* if TRUE no vb2 buf done. */
+ /*Return values*/
+ uint32_t axi_stream_handle;
+};
+
+struct msm_vfe_axi_stream_release_cmd {
+ uint32_t stream_handle;
+};
+
+enum msm_vfe_axi_stream_cmd {
+ STOP_STREAM,
+ START_STREAM,
+};
+
+struct msm_vfe_axi_stream_cfg_cmd {
+ uint8_t num_streams;
+ uint32_t stream_handle[MAX_NUM_STREAM];
+ enum msm_vfe_axi_stream_cmd cmd;
+};
+
+enum msm_vfe_axi_stream_update_type {
+ ENABLE_STREAM_BUF_DIVERT,
+ DISABLE_STREAM_BUF_DIVERT,
+ UPDATE_STREAM_FRAMEDROP_PATTERN,
+};
+
+struct msm_vfe_axi_stream_update_cmd {
+ uint32_t stream_handle;
+ enum msm_vfe_axi_stream_update_type update_type;
+ enum msm_vfe_frame_skip_pattern skip_pattern;
+};
+
+enum msm_isp_stats_type {
+ MSM_ISP_STATS_AEC, /* legacy based AEC */
+ MSM_ISP_STATS_AF, /* legacy based AF */
+ MSM_ISP_STATS_AWB, /* legacy based AWB */
+ MSM_ISP_STATS_RS, /* legacy based RS */
+ MSM_ISP_STATS_CS, /* legacy based CS */
+ MSM_ISP_STATS_IHIST, /* legacy based HIST */
+ MSM_ISP_STATS_SKIN, /* legacy based SKIN */
+ MSM_ISP_STATS_BG, /* Bayer Grids */
+ MSM_ISP_STATS_BF, /* Bayer Focus */
+ MSM_ISP_STATS_BE, /* Bayer Exposure*/
+ MSM_ISP_STATS_BHIST, /* Bayer Hist */
+ MSM_ISP_STATS_MAX /* MAX */
+};
+
+struct msm_vfe_stats_stream_request_cmd {
+ uint32_t session_id;
+ uint32_t stream_id;
+ enum msm_isp_stats_type stats_type;
+ uint32_t composite_flag;
+ uint32_t framedrop_pattern;
+ uint32_t irq_subsample_pattern;
+ uint32_t buffer_offset;
+ uint32_t stream_handle;
+};
+
+struct msm_vfe_stats_stream_release_cmd {
+ uint32_t stream_handle;
+};
+
+struct msm_vfe_stats_stream_cfg_cmd {
+ uint8_t num_streams;
+ uint32_t stream_handle[MSM_ISP_STATS_MAX];
+ uint8_t enable;
+};
+
+enum msm_vfe_reg_cfg_type {
+ VFE_WRITE,
+ VFE_WRITE_MB,
+ VFE_READ,
+ VFE_CFG_MASK,
+ VFE_WRITE_DMI_16BIT,
+ VFE_WRITE_DMI_32BIT,
+ VFE_WRITE_DMI_64BIT,
+ VFE_READ_DMI_16BIT,
+ VFE_READ_DMI_32BIT,
+ VFE_READ_DMI_64BIT,
+};
+
+struct msm_vfe_cfg_cmd2 {
+ uint16_t num_cfg;
+ uint16_t cmd_len;
+ void __user *cfg_data;
+ void __user *cfg_cmd;
+};
+
+struct msm_vfe_reg_rw_info {
+ uint32_t reg_offset;
+ uint32_t cmd_data_offset;
+ uint32_t len;
+};
+
+struct msm_vfe_reg_mask_info {
+ uint32_t reg_offset;
+ uint32_t mask;
+ uint32_t val;
+};
+
+struct msm_vfe_reg_dmi_info {
+ uint32_t hi_tbl_offset; /*Optional*/
+ uint32_t lo_tbl_offset; /*Required*/
+ uint32_t len;
+};
+
+struct msm_vfe_reg_cfg_cmd {
+ union {
+ struct msm_vfe_reg_rw_info rw_info;
+ struct msm_vfe_reg_mask_info mask_info;
+ struct msm_vfe_reg_dmi_info dmi_info;
+ } u;
+ enum msm_vfe_reg_cfg_type cmd_type;
+};
+
+enum msm_isp_buf_type {
+ ISP_PRIVATE_BUF,
+ ISP_SHARE_BUF,
+ MAX_ISP_BUF_TYPE,
+};
+
+struct msm_isp_buf_request {
+ uint32_t session_id;
+ uint32_t stream_id;
+ uint8_t num_buf;
+ uint32_t handle;
+ enum msm_isp_buf_type buf_type;
+};
+
+struct msm_isp_qbuf_info {
+ uint32_t handle;
+ int buf_idx;
+ /*Only used for prepare buffer*/
+ struct v4l2_buffer buffer;
+ /*Only used for diverted buffer*/
+ uint32_t dirty_buf;
+};
+
+struct msm_vfe_axi_src_state {
+ enum msm_vfe_input_src input_src;
+ uint32_t src_active;
+};
+
+enum msm_isp_event_idx {
+ ISP_REG_UPDATE = 0,
+ ISP_START_ACK = 1,
+ ISP_STOP_ACK = 2,
+ ISP_IRQ_VIOLATION = 3,
+ ISP_WM_BUS_OVERFLOW = 4,
+ ISP_STATS_OVERFLOW = 5,
+ ISP_CAMIF_ERROR = 6,
+ ISP_SOF = 7,
+ ISP_EOF = 8,
+ ISP_EVENT_MAX = 9
+};
+
+#define ISP_EVENT_OFFSET 8
+#define ISP_EVENT_BASE (V4L2_EVENT_PRIVATE_START)
+#define ISP_BUF_EVENT_BASE (ISP_EVENT_BASE + (1 << ISP_EVENT_OFFSET))
+#define ISP_STATS_EVENT_BASE (ISP_EVENT_BASE + (2 << ISP_EVENT_OFFSET))
+#define ISP_EVENT_REG_UPDATE (ISP_EVENT_BASE + ISP_REG_UPDATE)
+#define ISP_EVENT_START_ACK (ISP_EVENT_BASE + ISP_START_ACK)
+#define ISP_EVENT_STOP_ACK (ISP_EVENT_BASE + ISP_STOP_ACK)
+#define ISP_EVENT_IRQ_VIOLATION (ISP_EVENT_BASE + ISP_IRQ_VIOLATION)
+#define ISP_EVENT_WM_BUS_OVERFLOW (ISP_EVENT_BASE + ISP_WM_BUS_OVERFLOW)
+#define ISP_EVENT_STATS_OVERFLOW (ISP_EVENT_BASE + ISP_STATS_OVERFLOW)
+#define ISP_EVENT_CAMIF_ERROR (ISP_EVENT_BASE + ISP_CAMIF_ERROR)
+#define ISP_EVENT_SOF (ISP_EVENT_BASE + ISP_SOF)
+#define ISP_EVENT_EOF (ISP_EVENT_BASE + ISP_EOF)
+#define ISP_EVENT_BUF_DIVERT (ISP_BUF_EVENT_BASE)
+#define ISP_EVENT_STATS_NOTIFY (ISP_STATS_EVENT_BASE)
+#define ISP_EVENT_COMP_STATS_NOTIFY (ISP_EVENT_STATS_NOTIFY + MSM_ISP_STATS_MAX)
+/* The msm_v4l2_event_data structure should match the
+ * v4l2_event.u.data field.
+ * should not exceed 64 bytes */
+
+struct msm_isp_buf_event {
+ uint32_t session_id;
+ uint32_t stream_id;
+ uint32_t handle;
+ int8_t buf_idx;
+};
+struct msm_isp_stats_event {
+ uint32_t stats_mask; /* 4 bytes */
+ uint8_t stats_buf_idxs[MSM_ISP_STATS_MAX]; /* 11 bytes */
+};
+
+struct msm_isp_stream_ack {
+ uint32_t session_id;
+ uint32_t stream_id;
+ uint32_t handle;
+};
+
+struct msm_isp_event_data {
+ /*Wall clock except for buffer divert events
+ *which use monotonic clock
+ */
+ struct timeval timestamp;
+ /* Monotonic timestamp since bootup */
+ struct timeval mono_timestamp;
+ /* if pix is a src frame_id is from camif */
+ uint32_t frame_id;
+ union {
+ /* START_ACK, STOP_ACK */
+ struct msm_isp_stream_ack stream_ack;
+ /* REG_UPDATE_TRIGGER, bus over flow */
+ enum msm_vfe_input_src input_src;
+ /* stats notify */
+ struct msm_isp_stats_event stats;
+ /* IRQ_VIOLATION, STATS_OVER_FLOW, WM_OVER_FLOW */
+ uint32_t irq_status_mask;
+ struct msm_isp_buf_event buf_done;
+ } u; /* union can have max 52 bytes */
+};
+
+#define V4L2_PIX_FMT_QBGGR8 v4l2_fourcc('Q', 'B', 'G', '8')
+#define V4L2_PIX_FMT_QGBRG8 v4l2_fourcc('Q', 'G', 'B', '8')
+#define V4L2_PIX_FMT_QGRBG8 v4l2_fourcc('Q', 'G', 'R', '8')
+#define V4L2_PIX_FMT_QRGGB8 v4l2_fourcc('Q', 'R', 'G', '8')
+#define V4L2_PIX_FMT_QBGGR10 v4l2_fourcc('Q', 'B', 'G', '0')
+#define V4L2_PIX_FMT_QGBRG10 v4l2_fourcc('Q', 'G', 'B', '0')
+#define V4L2_PIX_FMT_QGRBG10 v4l2_fourcc('Q', 'G', 'R', '0')
+#define V4L2_PIX_FMT_QRGGB10 v4l2_fourcc('Q', 'R', 'G', '0')
+#define V4L2_PIX_FMT_QBGGR12 v4l2_fourcc('Q', 'B', 'G', '2')
+#define V4L2_PIX_FMT_QGBRG12 v4l2_fourcc('Q', 'G', 'B', '2')
+#define V4L2_PIX_FMT_QGRBG12 v4l2_fourcc('Q', 'G', 'R', '2')
+#define V4L2_PIX_FMT_QRGGB12 v4l2_fourcc('Q', 'R', 'G', '2')
+
+#define VIDIOC_MSM_VFE_REG_CFG \
+ _IOWR('V', BASE_VIDIOC_PRIVATE, struct msm_vfe_cfg_cmd2)
+
+#define VIDIOC_MSM_ISP_REQUEST_BUF \
+ _IOWR('V', BASE_VIDIOC_PRIVATE+1, struct msm_isp_buf_request)
+
+#define VIDIOC_MSM_ISP_ENQUEUE_BUF \
+ _IOWR('V', BASE_VIDIOC_PRIVATE+2, struct msm_isp_qbuf_info)
+
+#define VIDIOC_MSM_ISP_RELEASE_BUF \
+ _IOWR('V', BASE_VIDIOC_PRIVATE+3, struct msm_isp_buf_request)
+
+#define VIDIOC_MSM_ISP_REQUEST_STREAM \
+ _IOWR('V', BASE_VIDIOC_PRIVATE+4, struct msm_vfe_axi_stream_request_cmd)
+
+#define VIDIOC_MSM_ISP_CFG_STREAM \
+ _IOWR('V', BASE_VIDIOC_PRIVATE+5, struct msm_vfe_axi_stream_cfg_cmd)
+
+#define VIDIOC_MSM_ISP_RELEASE_STREAM \
+ _IOWR('V', BASE_VIDIOC_PRIVATE+6, struct msm_vfe_axi_stream_release_cmd)
+
+#define VIDIOC_MSM_ISP_INPUT_CFG \
+ _IOWR('V', BASE_VIDIOC_PRIVATE+7, struct msm_vfe_input_cfg)
+
+#define VIDIOC_MSM_ISP_SET_SRC_STATE \
+ _IOWR('V', BASE_VIDIOC_PRIVATE+8, struct msm_vfe_axi_src_state)
+
+#define VIDIOC_MSM_ISP_REQUEST_STATS_STREAM \
+ _IOWR('V', BASE_VIDIOC_PRIVATE+9, \
+ struct msm_vfe_stats_stream_request_cmd)
+
+#define VIDIOC_MSM_ISP_CFG_STATS_STREAM \
+ _IOWR('V', BASE_VIDIOC_PRIVATE+10, struct msm_vfe_stats_stream_cfg_cmd)
+
+#define VIDIOC_MSM_ISP_RELEASE_STATS_STREAM \
+ _IOWR('V', BASE_VIDIOC_PRIVATE+11, \
+ struct msm_vfe_stats_stream_release_cmd)
+
+#define VIDIOC_MSM_ISP_CFG_STATS_COMP_POLICY \
+ _IOWR('V', BASE_VIDIOC_PRIVATE+12, \
+ struct msm_vfe_stats_comp_policy_cfg)
+
+#define VIDIOC_MSM_ISP_UPDATE_STREAM \
+ _IOWR('V', BASE_VIDIOC_PRIVATE+13, struct msm_vfe_axi_stream_update_cmd)
+
+#endif /* _UAPI_MEDIA_MSMB_ISP_H */
diff --git a/original-kernel-headers/media/msmb_ispif.h b/original-kernel-headers/media/msmb_ispif.h
new file mode 100644
index 0000000..aeb4a62
--- /dev/null
+++ b/original-kernel-headers/media/msmb_ispif.h
@@ -0,0 +1,121 @@
+#ifndef MSM_CAM_ISPIF_H
+#define MSM_CAM_ISPIF_H
+
+#define CSID_VERSION_V2 0x02000011
+#define CSID_VERSION_V3 0x30000000
+
+enum msm_ispif_vfe_intf {
+ VFE0,
+ VFE1,
+ VFE_MAX
+};
+#define VFE0_MASK (1 << VFE0)
+#define VFE1_MASK (1 << VFE1)
+
+enum msm_ispif_intftype {
+ PIX0,
+ RDI0,
+ PIX1,
+ RDI1,
+ RDI2,
+ INTF_MAX
+};
+#define MAX_PARAM_ENTRIES (INTF_MAX * 2)
+
+#define PIX0_MASK (1 << PIX0)
+#define PIX1_MASK (1 << PIX1)
+#define RDI0_MASK (1 << RDI0)
+#define RDI1_MASK (1 << RDI1)
+#define RDI2_MASK (1 << RDI2)
+
+
+enum msm_ispif_vc {
+ VC0,
+ VC1,
+ VC2,
+ VC3,
+ VC_MAX
+};
+
+enum msm_ispif_cid {
+ CID0,
+ CID1,
+ CID2,
+ CID3,
+ CID4,
+ CID5,
+ CID6,
+ CID7,
+ CID8,
+ CID9,
+ CID10,
+ CID11,
+ CID12,
+ CID13,
+ CID14,
+ CID15,
+ CID_MAX
+};
+
+enum msm_ispif_csid {
+ CSID0,
+ CSID1,
+ CSID2,
+ CSID3,
+ CSID_MAX
+};
+
+struct msm_ispif_params_entry {
+ enum msm_ispif_vfe_intf vfe_intf;
+ enum msm_ispif_intftype intftype;
+ int num_cids;
+ enum msm_ispif_cid cids[3];
+ enum msm_ispif_csid csid;
+ int crop_enable;
+ uint16_t crop_start_pixel;
+ uint16_t crop_end_pixel;
+};
+
+struct msm_ispif_param_data {
+ uint32_t num;
+ struct msm_ispif_params_entry entries[MAX_PARAM_ENTRIES];
+};
+
+struct msm_isp_info {
+ uint32_t max_resolution;
+ uint32_t id;
+ uint32_t ver;
+};
+
+struct msm_ispif_vfe_info {
+ int num_vfe;
+ struct msm_isp_info info[VFE_MAX];
+};
+
+enum ispif_cfg_type_t {
+ ISPIF_CLK_ENABLE,
+ ISPIF_CLK_DISABLE,
+ ISPIF_INIT,
+ ISPIF_CFG,
+ ISPIF_START_FRAME_BOUNDARY,
+ ISPIF_STOP_FRAME_BOUNDARY,
+ ISPIF_STOP_IMMEDIATELY,
+ ISPIF_RELEASE,
+ ISPIF_ENABLE_REG_DUMP,
+ ISPIF_SET_VFE_INFO,
+};
+
+struct ispif_cfg_data {
+ enum ispif_cfg_type_t cfg_type;
+ union {
+ int reg_dump; /* ISPIF_ENABLE_REG_DUMP */
+ uint32_t csid_version; /* ISPIF_INIT */
+ struct msm_ispif_vfe_info vfe_info; /* ISPIF_SET_VFE_INFO */
+ struct msm_ispif_param_data params; /* CFG, START, STOP */
+ };
+};
+
+#define VIDIOC_MSM_ISPIF_CFG \
+ _IOWR('V', BASE_VIDIOC_PRIVATE, struct ispif_cfg_data)
+
+#endif /* MSM_CAM_ISPIF_H */
diff --git a/original-kernel-headers/media/msmb_pproc.h b/original-kernel-headers/media/msmb_pproc.h
new file mode 100644
index 0000000..c185096
--- /dev/null
+++ b/original-kernel-headers/media/msmb_pproc.h
@@ -0,0 +1,153 @@
+#ifndef __MSMB_PPROC_H
+#define __MSMB_PPROC_H
+
+#ifdef MSM_CAMERA_BIONIC
+#include <sys/types.h>
+#endif
+#include <linux/videodev2.h>
+#include <linux/types.h>
+
+/* Should be same as VIDEO_MAX_PLANES in videodev2.h */
+#define MAX_PLANES VIDEO_MAX_PLANES
+
+#define MAX_NUM_CPP_STRIPS 8
+#define MSM_CPP_MAX_NUM_PLANES 3
+
+enum msm_cpp_frame_type {
+ MSM_CPP_OFFLINE_FRAME,
+ MSM_CPP_REALTIME_FRAME,
+};
+
+struct msm_cpp_frame_strip_info {
+ int scale_v_en;
+ int scale_h_en;
+
+ int upscale_v_en;
+ int upscale_h_en;
+
+ int src_start_x;
+ int src_end_x;
+ int src_start_y;
+ int src_end_y;
+
+ /* Padding is required for upscaler because it does not
+ * pad internally like other blocks, also needed for rotation
+ * rotation expects all the blocks in the stripe to be the same size
+ * Padding is done such that all the extra padded pixels
+ * are on the right and bottom
+ */
+ int pad_bottom;
+ int pad_top;
+ int pad_right;
+ int pad_left;
+
+ int v_init_phase;
+ int h_init_phase;
+ int h_phase_step;
+ int v_phase_step;
+
+ int prescale_crop_width_first_pixel;
+ int prescale_crop_width_last_pixel;
+ int prescale_crop_height_first_line;
+ int prescale_crop_height_last_line;
+
+ int postscale_crop_height_first_line;
+ int postscale_crop_height_last_line;
+ int postscale_crop_width_first_pixel;
+ int postscale_crop_width_last_pixel;
+
+ int dst_start_x;
+ int dst_end_x;
+ int dst_start_y;
+ int dst_end_y;
+
+ int bytes_per_pixel;
+ unsigned int source_address;
+ unsigned int destination_address;
+ unsigned int src_stride;
+ unsigned int dst_stride;
+ int rotate_270;
+ int horizontal_flip;
+ int vertical_flip;
+ int scale_output_width;
+ int scale_output_height;
+ int prescale_crop_en;
+ int postscale_crop_en;
+};
+
+struct msm_cpp_buffer_info_t {
+ int fd;
+ uint32_t index;
+ uint32_t offset;
+ uint8_t native_buff;
+ uint8_t processed_divert;
+};
+
+struct msm_cpp_stream_buff_info_t {
+ uint32_t identity;
+ uint32_t num_buffs;
+ struct msm_cpp_buffer_info_t *buffer_info;
+};
+
+struct msm_cpp_frame_info_t {
+ int32_t frame_id;
+ struct timeval timestamp;
+ uint32_t inst_id;
+ uint32_t identity;
+ uint32_t client_id;
+ enum msm_cpp_frame_type frame_type;
+ uint32_t num_strips;
+ struct msm_cpp_frame_strip_info *strip_info;
+ uint32_t msg_len;
+ uint32_t *cpp_cmd_msg;
+ int src_fd;
+ int dst_fd;
+ struct ion_handle *src_ion_handle;
+ struct ion_handle *dest_ion_handle;
+ struct timeval in_time, out_time;
+ void *cookie;
+ int32_t *status;
+
+ struct msm_cpp_buffer_info_t input_buffer_info;
+ struct msm_cpp_buffer_info_t output_buffer_info;
+};
+
+struct cpp_hw_info {
+ uint32_t cpp_hw_version;
+ uint32_t cpp_hw_caps;
+};
+
+#define VIDIOC_MSM_CPP_CFG \
+ _IOWR('V', BASE_VIDIOC_PRIVATE, struct msm_camera_v4l2_ioctl_t)
+
+#define VIDIOC_MSM_CPP_GET_EVENTPAYLOAD \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct msm_camera_v4l2_ioctl_t)
+
+#define VIDIOC_MSM_CPP_GET_INST_INFO \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 2, struct msm_camera_v4l2_ioctl_t)
+
+#define VIDIOC_MSM_CPP_LOAD_FIRMWARE \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 3, struct msm_camera_v4l2_ioctl_t)
+
+#define VIDIOC_MSM_CPP_GET_HW_INFO \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct msm_camera_v4l2_ioctl_t)
+
+#define VIDIOC_MSM_CPP_FLUSH_QUEUE \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct msm_camera_v4l2_ioctl_t)
+
+#define VIDIOC_MSM_CPP_ENQUEUE_STREAM_BUFF_INFO \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_camera_v4l2_ioctl_t)
+
+#define VIDIOC_MSM_CPP_DEQUEUE_STREAM_BUFF_INFO \
+ _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_v4l2_ioctl_t)
+
+#define V4L2_EVENT_CPP_FRAME_DONE (V4L2_EVENT_PRIVATE_START + 0)
+
+struct msm_camera_v4l2_ioctl_t {
+ uint32_t id;
+ uint32_t len;
+ int32_t trans_code;
+ void __user *ioctl_ptr;
+};
+
+#endif /* __MSMB_PPROC_H */
diff --git a/rootdir/Android.mk b/rootdir/Android.mk
deleted file mode 100644
index fd6cac6..0000000
--- a/rootdir/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-# Device init scripts
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := fstab.flo
-LOCAL_MODULE_TAGS := optional eng
-LOCAL_MODULE_CLASS := ETC
-LOCAL_SRC_FILES := etc/fstab.deb
-LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := init.flo.rc
-LOCAL_MODULE_TAGS := optional eng
-LOCAL_MODULE_CLASS := ETC
-LOCAL_SRC_FILES := etc/init.deb.rc
-LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
-include $(BUILD_PREBUILT)
diff --git a/self-extractors/Android.mk b/self-extractors/Android.mk
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/self-extractors/Android.mk
diff --git a/self-extractors/PART1 b/self-extractors/PART1
new file mode 100644
index 0000000..935267e
--- /dev/null
+++ b/self-extractors/PART1
@@ -0,0 +1,12 @@
+#
+# Usage is subject to the enclosed license agreement
+
+echo
+echo The license for this software will now be displayed.
+echo You must agree to this license before using this software.
+echo
+echo -n Press Enter to view the license
+read dummy
+echo
+
+more << __EOF__
diff --git a/self-extractors/PART2 b/self-extractors/PART2
new file mode 100644
index 0000000..30e8d43
--- /dev/null
+++ b/self-extractors/PART2
@@ -0,0 +1,22 @@
+__EOF__
+
+if test $? != 0
+then
+ echo ERROR: Couldn\'t display license file 1>&2
+ exit 1
+fi
+
+echo
+
+echo -n Type \"I ACCEPT\" if you agree to the terms of the license:\
+read typed
+
+if test "$typed" != I\ ACCEPT
+then
+ echo
+ echo You didn\'t accept the license. Extraction aborted.
+ exit 2
+fi
+
+echo
+
diff --git a/self-extractors/PART3 b/self-extractors/PART3
new file mode 100644
index 0000000..6847be5
--- /dev/null
+++ b/self-extractors/PART3
@@ -0,0 +1,12 @@
+
+if test $? != 0
+then
+ echo
+ echo ERROR: Couldn\'t extract files. 1>&2
+ exit 3
+else
+ echo
+ echo Files extracted successfully.
+fi
+exit 0
+
diff --git a/self-extractors/PROLOGUE b/self-extractors/PROLOGUE
new file mode 100644
index 0000000..c856ef1
--- /dev/null
+++ b/self-extractors/PROLOGUE
@@ -0,0 +1,2 @@
+#!/bin/bash
+#
diff --git a/self-extractors/asus/COPYRIGHT b/self-extractors/asus/COPYRIGHT
new file mode 100644
index 0000000..e2ba69c
--- /dev/null
+++ b/self-extractors/asus/COPYRIGHT
@@ -0,0 +1 @@
+# (C) ASUSTek COMPUTER INC.
diff --git a/self-extractors/asus/LICENSE b/self-extractors/asus/LICENSE
new file mode 100644
index 0000000..2eaa115
--- /dev/null
+++ b/self-extractors/asus/LICENSE
@@ -0,0 +1,225 @@
+THIS DEVELOPER SOFTWARE LICENSE AGREEMENT (THE "AGREEMENT") IS A LEGALLY
+BINDING AGREEMENT BETWEEN ASUSTek COMPUTER INC. ("LICENSOR") AND
+YOU OR THE LEGAL ENTITY YOU REPRESENT ("You" or its possessive, "Your"). BY
+TYPING "I ACCEPT" WHERE INDICATED YOU ACKNOWLEDGE THAT YOU HAVE READ THIS
+AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.
+IF YOU DO NOT AGREE TO THESE TERMS YOU MUST DISCONTINUE THE INSTALLATION
+PROCESS AND YOU SHALL NOT USE THE SOFTWARE OR RETAIN ANY COPIES OF THE
+SOFTWARE OR DOCUMENTATION. ANY USE OR POSSESSION OF THE SOFTWARE BY YOU IS
+SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT. IF THE
+SOFTWARE IS INSTALLED ON A COMPUTER OWNED BY A CORPORATION OR OTHER LEGAL
+ENTITY, THEN YOU REPRESENT AND WARRANT THAT YOU HAVE THE AUTHORITY TO BIND
+SUCH ENTITY TO THE TERMS AND CONDITIONS OF THIS AGREEMENT.
+
+ 1. Special Definitions
+
+ a. The term "Android" means the open source mobile platform, software
+ stack, operating system, middleware, application programming
+ interfaces and mobile applications under the trade-name "Android"
+ distributed at Android.com.
+
+ b. The term "Android Applications" means a software application or
+ open-source contribution developed by You, designed to operate with
+ Android that does not contain or incorporate any of the Software.
+
+ c. The term "Authorized Android Enabled Device" means only the device
+ identified on the site from which You downloaded the Software.
+ The term "Software" means the Licensor's proprietary software and
+ libraries in object code form, designed for use on the Authorized
+ Android Enabled Device.
+
+ d. The term "Authorized Android Enabled Device Software" means a
+ packaged build for Authorized Android Enabled Devices, consisting
+ of files suitable for installation on an Authorized Android Enabled
+ Device using a mechanism such as fastboot mode or recovery mode.
+
+ 2. License Grant
+
+ a. Subject to the terms of this Agreement, Licensor hereby grants to
+ You, free of charge, a non-exclusive, non-sublicensable,
+ non-transferable, limited license, during the term of
+ this Agreement, to download, install and use the Software
+ internally in machine-readable (i.e., object code) form and the
+ Documentation for non-commercial use on an Authorized Android
+ Enabled Device and non-commercial redistribution of the Authorized
+ Android Enabled Device Software (the "Limited Purpose"). You may
+ grant your end users the right to use the Software for
+ the Limited Purpose.
+ The license to the Software granted to You hereunder is solely for
+ the Limited Purpose set forth in this section, and the Software
+ shall not be used for any other purpose.
+
+ 3. Restrictions
+
+ a. Retention of Rights. The entire right, title and interest in the
+ Software shall remain with Licensor and, unless specified in
+ writing hereunder, no rights are granted to any of the Software.
+ Except for the right to use the Software for the Limited Purpose,
+ the delivery of the Software to You does not convey to You any
+ intellectual property rights in the Software, including, but not
+ limited to any rights under any patent, trademark, copyright, or
+ trade secret. Neither the delivery of the Software to You nor any
+ terms set forth herein shall be construed to grant to You, either
+ expressly, by implication or by way of estoppel, any license under
+ any patents or other intellectual property rights covering or
+ relating to any other product or invention or any combination of
+ the Software with any other product. Any rights not expressly
+ granted to You herein are reserved by Licensor.
+
+ b. No Commercialization or Distribution of the Software and
+ Documentation. Except as expressly provided in Section 2 of this
+ Agreement, You shall have no right to (i) copy, disclose,
+ distribute, publically perform, publically display, transfer,
+ alter, modify, translate, disassemble, decompile, reverse engineer,
+ or adapt the Software and Documentation, or any portion thereof, or
+ create any derivative works based thereon; (ii) rent, lease,
+ assign, sublicense, resell, disclose or otherwise transfer the
+ Software and Documentation in whole or in part to any third party
+ (iii) use the Software and Documentation except for the Limited
+ Purpose, (iv) remove or alter any of the copyright or proprietary
+ notices contained in any of the Software and Documentation. For the
+ purposes of clarity, nothing in this Agreement prohibits You from
+ making and distributing Android Applications under commercial or
+ non-commercial terms, provided that You shall not contain,
+ incorporate, and/or compile the Software or any of its derivative
+ works, in whole or in part, into Your Android Applications and/or
+ any software/devices created by You or by third parties acting on
+ Your behalf. You and any such third party shall comply with all of
+ the terms and conditions of this Agreement.
+
+ c. No Reverse Engineering. Except for any portions of the Software
+ provided to You in source code format and except for any third
+ party code distributed with the Software that is licensed under
+ contrary terms, You will not reverse engineer, disassemble,
+ decompile, or translate the Software, or otherwise attempt to
+ derive the source code version of the Software, except if and to
+ the extent expressly permitted under any applicable law.
+
+ d. Third Party Software. You agree that Android may contain third
+ party software. You agree that you may not distribute such third
+ party software for any purpose without appropriate licenses from
+ the applicable third party or parties.
+
+ e. No Transfer or Assignment. You shall not assign any of its rights
+ or obligations under this Agreement. Any attempted assignment in
+ contravention of this Section shall be void.
+
+ 4. Indemnity
+
+ a. You agree to indemnify and hold harmless Licensor and
+ its officers, directors, customers, employees and successors and
+ assigns (each an "Indemnified Party") against any and all claims,
+ demands, causes of action, losses, liabilities, damages, costs and
+ expenses, incurred by the Indemnified Party (including but not
+ limited to costs of defense, investigation and reasonable
+ attorney's fees) arising out of, resulting from or related to
+ (i) any software, products, documentation, content, materials or
+ derivative works created or developed by You using the Software
+ which causes an infringement of any patent, copyright, trademark,
+ trade secret, or other property, publicity or privacy rights of any
+ third parties arising in any jurisdiction anywhere in the world,
+ (ii) the download, distribution, installation, storage, execution,
+ use or transfer of such software, products, documentation, content,
+ materials or derivative works by any person or entity, and/or
+ (iii) any breach of this Agreement by You. If requested by an
+ Indemnified Party, You agree to defend such Indemnified Party in
+ connection with any third party claims, demands, or causes of
+ action resulting from, arising out of or in connection with any of
+ the foregoing.
+
+ 5. Limitation of Liability
+
+ a. TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAWS, UNDER NO
+ CIRCUMSTANCES, INCLUDING WITHOUT LIMITATION NEGLIGENCE, SHALL
+ LICENSOR, ITS AFFILIATES AND/OR ITS DIRECTORS, OFFICERS,
+ EMPLOYEES OR AGENTS BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
+ SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT
+ LIMITED TO DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
+ INTERRUPTION, LOSS OF BUSINESS INFORMATION AND THE LIKE) ARISING
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ANY DOWNLOAD,
+ INSTALLATION OR USE OF, OR INABILITY TO USE, THE SOFTWARE, EVEN IF
+ LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
+ EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
+ THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
+ IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY
+ TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
+ ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
+ INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
+ (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
+ DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
+ THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
+ AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
+ PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
+ PARTIES.
+
+ 6. No Warranty
+
+ a. LICENSOR MAKES NO WARRANTIES, EXPRESS OR IMPLIED, WITH
+ RESPECT TO THE SOFTWARE AND DOCUMENTATION PROVIDED UNDER THIS
+ AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST
+ INFRINGEMENT, OR ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF
+ TRADE USAGE OR OUT OF A COURSE OF DEALING OR COURSE OF PERFORMANCE.
+ NOTHING CONTAINED IN THIS AGREEMENT SHALL BE CONSTRUED AS A
+ WARRANTY OR REPRESENTATION BY LICENSOR (I) AS TO THE VALIDITY OR
+ SCOPE OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT
+ AND (II) THAT ANY MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT
+ OF PATENTS, COPYRIGHTS OR OTHER INTELLECTUAL PROPERTY RIGHTS OF
+ OTHERS, AND IT SHALL BE THE SOLE RESPONSIBILITY OF YOU TO MAKE SUCH
+ DETERMINATION AS IS NECESSARY WITH RESPECT TO THE ACQUISITION OF
+ LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF THIRD
+ PARTIES. Licensor SHALL NOT HAVE ANY OBLIGATION TO
+ PROVIDE ANY TECHNICAL SUPPORT OF THE SOFTWARE UNDER THIS AGREEMENT.
+
+ 7. Term and Termination
+
+ a. This Agreement shall be effective on the date You accept this
+ Agreement and shall remain in effect until terminated as provided
+ herein. You may terminate the Agreement at any time by deleting and
+ destroying all copies of the Software and all related information
+ in Your possession or control. This Agreement terminates
+ immediately and automatically, with or without notice, if You fail
+ to comply with any provision hereof. Additionally, Licensor may at
+ any time terminate this Agreement, without cause, upon notice to
+ You. Upon termination You must delete or destroy all copies of the
+ Software in Your possession, and the license granted to You in this
+ Agreement shall terminate. Sections 3, 4, 5, 6 and 8 shall survive
+ the termination of this Agreement.
+
+ 8. Miscellaneous
+
+ a. Governing Law. This Agreement is governed and interpreted in
+ accordance with the laws of the State of California without giving
+ effect to its conflict of laws provisions. The United Nations
+ Convention on Contracts for the International Sale of Goods is
+ expressly disclaimed and shall not apply. Any claim arising out of
+ or related to this Agreement must be brought exclusively in a
+ federal or state court located in Santa Clara County, California
+ and You consent to the jurisdiction and venue of such courts.
+
+ b. Waiver and Severability. The failure of either party to require
+ performance by the other party of any provision of this Agreement
+ shall not affect the full right to require such performance at any
+ time thereafter; nor shall the waiver by either party of a breach
+ of any provision of this Agreement be taken or held to be a waiver
+ of the provision itself. Severability. If any provision of this
+ Agreement is unenforceable or invalid under any applicable law or
+ is so held by applicable court decision, such unenforceability or
+ invalidity shall not render this Agreement unenforceable or invalid
+ as a whole, and such provision shall be changed and interpreted so
+ as to best accomplish the objectives of such unenforceable or
+ invalid provision within the limits of applicable law or
+ applicable court decisions.
+
+ c. Amendment and Modification. This Agreement and any of its terms and
+ provisions may only be amended, modified, supplemented or waived in
+ a writing signed by both parties hereto.
+
+ d. Compliance with Laws. You shall comply with all applicable laws,
+ rules, and regulations in connection with its activities under this
+ Agreement.
+
+ e. Entire Agreement. This Agreement completely and exclusively states
+ the agreement between You and Licensor regarding this subject
+ matter.
diff --git a/self-extractors/asus/staging/BoardConfigPartial.mk b/self-extractors/asus/staging/BoardConfigPartial.mk
new file mode 100644
index 0000000..317c4e6
--- /dev/null
+++ b/self-extractors/asus/staging/BoardConfigPartial.mk
@@ -0,0 +1,13 @@
+# Copyright 2013 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.
diff --git a/self-extractors/asus/staging/device-partial.mk b/self-extractors/asus/staging/device-partial.mk
new file mode 100644
index 0000000..ca7e9be
--- /dev/null
+++ b/self-extractors/asus/staging/device-partial.mk
@@ -0,0 +1,20 @@
+# Copyright 2013 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.
+
+# Asus blob(s) necessary for Deb hardware
+PRODUCT_COPY_FILES := \
+ vendor/asus/deb/proprietary/apns-conf.xml:system/etc/apns-conf.xml:asus \
+ vendor/asus/deb/proprietary/libacdbdata.so:system/lib/libacdbdata.so:asus \
+ vendor/asus/deb/proprietary/libAKM.so:system/lib/libAKM.so:asus \
+
diff --git a/self-extractors/broadcom/COPYRIGHT b/self-extractors/broadcom/COPYRIGHT
new file mode 100644
index 0000000..bf44774
--- /dev/null
+++ b/self-extractors/broadcom/COPYRIGHT
@@ -0,0 +1 @@
+# (C) Broadcom Corporation
diff --git a/self-extractors/broadcom/LICENSE b/self-extractors/broadcom/LICENSE
new file mode 100644
index 0000000..f633ddc
--- /dev/null
+++ b/self-extractors/broadcom/LICENSE
@@ -0,0 +1,225 @@
+THIS DEVELOPER SOFTWARE LICENSE AGREEMENT (THE "AGREEMENT") IS A LEGALLY
+BINDING AGREEMENT BETWEEN BROADCOM CORPORATION ("LICENSOR") AND
+YOU OR THE LEGAL ENTITY YOU REPRESENT ("You" or its possessive, "Your"). BY
+TYPING "I ACCEPT" WHERE INDICATED YOU ACKNOWLEDGE THAT YOU HAVE READ THIS
+AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.
+IF YOU DO NOT AGREE TO THESE TERMS YOU MUST DISCONTINUE THE INSTALLATION
+PROCESS AND YOU SHALL NOT USE THE SOFTWARE OR RETAIN ANY COPIES OF THE
+SOFTWARE OR DOCUMENTATION. ANY USE OR POSSESSION OF THE SOFTWARE BY YOU IS
+SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT. IF THE
+SOFTWARE IS INSTALLED ON A COMPUTER OWNED BY A CORPORATION OR OTHER LEGAL
+ENTITY, THEN YOU REPRESENT AND WARRANT THAT YOU HAVE THE AUTHORITY TO BIND
+SUCH ENTITY TO THE TERMS AND CONDITIONS OF THIS AGREEMENT.
+
+ 1. Special Definitions
+
+ a. The term "Android" means the open source mobile platform, software
+ stack, operating system, middleware, application programming
+ interfaces and mobile applications under the trade-name "Android"
+ distributed at Android.com.
+
+ b. The term "Android Applications" means a software application or
+ open-source contribution developed by You, designed to operate with
+ Android that does not contain or incorporate any of the Software.
+
+ c. The term "Authorized Android Enabled Device" means only the device
+ identified on the site from which You downloaded the Software.
+ The term "Software" means the Licensor's proprietary software and
+ libraries in object code form, designed for use on the Authorized
+ Android Enabled Device.
+
+ d. The term "Authorized Android Enabled Device Software" means a
+ packaged build for Authorized Android Enabled Devices, consisting
+ of files suitable for installation on an Authorized Android Enabled
+ Device using a mechanism such as fastboot mode or recovery mode.
+
+ 2. License Grant
+
+ a. Subject to the terms of this Agreement, Licensor hereby grants to
+ You, free of charge, a non-exclusive, non-sublicensable,
+ non-transferable, limited license, during the term of
+ this Agreement, to download, install and use the Software
+ internally in machine-readable (i.e., object code) form and the
+ Documentation for non-commercial use on an Authorized Android
+ Enabled Device and non-commercial redistribution of the Authorized
+ Android Enabled Device Software (the "Limited Purpose"). You may
+ grant your end users the right to use the Software for
+ the Limited Purpose.
+ The license to the Software granted to You hereunder is solely for
+ the Limited Purpose set forth in this section, and the Software
+ shall not be used for any other purpose.
+
+ 3. Restrictions
+
+ a. Retention of Rights. The entire right, title and interest in the
+ Software shall remain with Licensor and, unless specified in
+ writing hereunder, no rights are granted to any of the Software.
+ Except for the right to use the Software for the Limited Purpose,
+ the delivery of the Software to You does not convey to You any
+ intellectual property rights in the Software, including, but not
+ limited to any rights under any patent, trademark, copyright, or
+ trade secret. Neither the delivery of the Software to You nor any
+ terms set forth herein shall be construed to grant to You, either
+ expressly, by implication or by way of estoppel, any license under
+ any patents or other intellectual property rights covering or
+ relating to any other product or invention or any combination of
+ the Software with any other product. Any rights not expressly
+ granted to You herein are reserved by Licensor.
+
+ b. No Commercialization or Distribution of the Software and
+ Documentation. Except as expressly provided in Section 2 of this
+ Agreement, You shall have no right to (i) copy, disclose,
+ distribute, publically perform, publically display, transfer,
+ alter, modify, translate, disassemble, decompile, reverse engineer,
+ or adapt the Software and Documentation, or any portion thereof, or
+ create any derivative works based thereon; (ii) rent, lease,
+ assign, sublicense, resell, disclose or otherwise transfer the
+ Software and Documentation in whole or in part to any third party
+ (iii) use the Software and Documentation except for the Limited
+ Purpose, (iv) remove or alter any of the copyright or proprietary
+ notices contained in any of the Software and Documentation. For the
+ purposes of clarity, nothing in this Agreement prohibits You from
+ making and distributing Android Applications under commercial or
+ non-commercial terms, provided that You shall not contain,
+ incorporate, and/or compile the Software or any of its derivative
+ works, in whole or in part, into Your Android Applications and/or
+ any software/devices created by You or by third parties acting on
+ Your behalf. You and any such third party shall comply with all of
+ the terms and conditions of this Agreement.
+
+ c. No Reverse Engineering. Except for any portions of the Software
+ provided to You in source code format and except for any third
+ party code distributed with the Software that is licensed under
+ contrary terms, You will not reverse engineer, disassemble,
+ decompile, or translate the Software, or otherwise attempt to
+ derive the source code version of the Software, except if and to
+ the extent expressly permitted under any applicable law.
+
+ d. Third Party Software. You agree that Android may contain third
+ party software. You agree that you may not distribute such third
+ party software for any purpose without appropriate licenses from
+ the applicable third party or parties.
+
+ e. No Transfer or Assignment. You shall not assign any of its rights
+ or obligations under this Agreement. Any attempted assignment in
+ contravention of this Section shall be void.
+
+ 4. Indemnity
+
+ a. You agree to indemnify and hold harmless Licensor and
+ its officers, directors, customers, employees and successors and
+ assigns (each an "Indemnified Party") against any and all claims,
+ demands, causes of action, losses, liabilities, damages, costs and
+ expenses, incurred by the Indemnified Party (including but not
+ limited to costs of defense, investigation and reasonable
+ attorney's fees) arising out of, resulting from or related to
+ (i) any software, products, documentation, content, materials or
+ derivative works created or developed by You using the Software
+ which causes an infringement of any patent, copyright, trademark,
+ trade secret, or other property, publicity or privacy rights of any
+ third parties arising in any jurisdiction anywhere in the world,
+ (ii) the download, distribution, installation, storage, execution,
+ use or transfer of such software, products, documentation, content,
+ materials or derivative works by any person or entity, and/or
+ (iii) any breach of this Agreement by You. If requested by an
+ Indemnified Party, You agree to defend such Indemnified Party in
+ connection with any third party claims, demands, or causes of
+ action resulting from, arising out of or in connection with any of
+ the foregoing.
+
+ 5. Limitation of Liability
+
+ a. TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAWS, UNDER NO
+ CIRCUMSTANCES, INCLUDING WITHOUT LIMITATION NEGLIGENCE, SHALL
+ LICENSOR, ITS AFFILIATES AND/OR ITS DIRECTORS, OFFICERS,
+ EMPLOYEES OR AGENTS BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
+ SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT
+ LIMITED TO DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
+ INTERRUPTION, LOSS OF BUSINESS INFORMATION AND THE LIKE) ARISING
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ANY DOWNLOAD,
+ INSTALLATION OR USE OF, OR INABILITY TO USE, THE SOFTWARE, EVEN IF
+ LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
+ EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
+ THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
+ IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY
+ TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
+ ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
+ INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
+ (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
+ DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
+ THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
+ AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
+ PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
+ PARTIES.
+
+ 6. No Warranty
+
+ a. LICENSOR MAKES NO WARRANTIES, EXPRESS OR IMPLIED, WITH
+ RESPECT TO THE SOFTWARE AND DOCUMENTATION PROVIDED UNDER THIS
+ AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST
+ INFRINGEMENT, OR ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF
+ TRADE USAGE OR OUT OF A COURSE OF DEALING OR COURSE OF PERFORMANCE.
+ NOTHING CONTAINED IN THIS AGREEMENT SHALL BE CONSTRUED AS A
+ WARRANTY OR REPRESENTATION BY LICENSOR (I) AS TO THE VALIDITY OR
+ SCOPE OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT
+ AND (II) THAT ANY MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT
+ OF PATENTS, COPYRIGHTS OR OTHER INTELLECTUAL PROPERTY RIGHTS OF
+ OTHERS, AND IT SHALL BE THE SOLE RESPONSIBILITY OF YOU TO MAKE SUCH
+ DETERMINATION AS IS NECESSARY WITH RESPECT TO THE ACQUISITION OF
+ LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF THIRD
+ PARTIES. Licensor SHALL NOT HAVE ANY OBLIGATION TO
+ PROVIDE ANY TECHNICAL SUPPORT OF THE SOFTWARE UNDER THIS AGREEMENT.
+
+ 7. Term and Termination
+
+ a. This Agreement shall be effective on the date You accept this
+ Agreement and shall remain in effect until terminated as provided
+ herein. You may terminate the Agreement at any time by deleting and
+ destroying all copies of the Software and all related information
+ in Your possession or control. This Agreement terminates
+ immediately and automatically, with or without notice, if You fail
+ to comply with any provision hereof. Additionally, Licensor may at
+ any time terminate this Agreement, without cause, upon notice to
+ You. Upon termination You must delete or destroy all copies of the
+ Software in Your possession, and the license granted to You in this
+ Agreement shall terminate. Sections 3, 4, 5, 6 and 8 shall survive
+ the termination of this Agreement.
+
+ 8. Miscellaneous
+
+ a. Governing Law. This Agreement is governed and interpreted in
+ accordance with the laws of the State of California without giving
+ effect to its conflict of laws provisions. The United Nations
+ Convention on Contracts for the International Sale of Goods is
+ expressly disclaimed and shall not apply. Any claim arising out of
+ or related to this Agreement must be brought exclusively in a
+ federal or state court located in Santa Clara County, California
+ and You consent to the jurisdiction and venue of such courts.
+
+ b. Waiver and Severability. The failure of either party to require
+ performance by the other party of any provision of this Agreement
+ shall not affect the full right to require such performance at any
+ time thereafter; nor shall the waiver by either party of a breach
+ of any provision of this Agreement be taken or held to be a waiver
+ of the provision itself. Severability. If any provision of this
+ Agreement is unenforceable or invalid under any applicable law or
+ is so held by applicable court decision, such unenforceability or
+ invalidity shall not render this Agreement unenforceable or invalid
+ as a whole, and such provision shall be changed and interpreted so
+ as to best accomplish the objectives of such unenforceable or
+ invalid provision within the limits of applicable law or
+ applicable court decisions.
+
+ c. Amendment and Modification. This Agreement and any of its terms and
+ provisions may only be amended, modified, supplemented or waived in
+ a writing signed by both parties hereto.
+
+ d. Compliance with Laws. You shall comply with all applicable laws,
+ rules, and regulations in connection with its activities under this
+ Agreement.
+
+ e. Entire Agreement. This Agreement completely and exclusively states
+ the agreement between You and Licensor regarding this subject
+ matter.
diff --git a/self-extractors/broadcom/staging/BoardConfigPartial.mk b/self-extractors/broadcom/staging/BoardConfigPartial.mk
new file mode 100644
index 0000000..317c4e6
--- /dev/null
+++ b/self-extractors/broadcom/staging/BoardConfigPartial.mk
@@ -0,0 +1,13 @@
+# Copyright 2013 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.
diff --git a/self-extractors/broadcom/staging/device-partial.mk b/self-extractors/broadcom/staging/device-partial.mk
new file mode 100644
index 0000000..6a7424c
--- /dev/null
+++ b/self-extractors/broadcom/staging/device-partial.mk
@@ -0,0 +1,19 @@
+# Copyright 2013 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.
+
+# Broadcom blob(s) necessary for Deb hardware
+PRODUCT_COPY_FILES := \
+ vendor/broadcom/deb/proprietary/bcm2079x-b5_firmware.ncd:system/vendor/firmware/bcm2079x-b5_firmware.ncd:broadcom \
+ vendor/broadcom/deb/proprietary/bcm2079x-b5_pre_firmware.ncd:system/vendor/firmware/bcm2079x-b5_pre_firmware.ncd:broadcom \
+
diff --git a/self-extractors/extract-lists.txt b/self-extractors/extract-lists.txt
new file mode 100644
index 0000000..c5edc63
--- /dev/null
+++ b/self-extractors/extract-lists.txt
@@ -0,0 +1,199 @@
+ asus)
+ TO_EXTRACT="\
+ system/etc/apns-conf.xml \
+ system/lib/libacdbdata.so \
+ system/lib/libAKM.so \
+ "
+ ;;
+ broadcom)
+ TO_EXTRACT="\
+ system/vendor/firmware/bcm2079x-b5_firmware.ncd \
+ system/vendor/firmware/bcm2079x-b5_pre_firmware.ncd \
+ "
+ ;;
+ qcom)
+ TO_EXTRACT="\
+ system/bin/ATFWD-daemon \
+ system/bin/bridgemgrd \
+ system/bin/btnvtool \
+ system/bin/diag_klog \
+ system/bin/diag_mdlog \
+ system/bin/ds_fmc_appd \
+ system/bin/efsks \
+ system/bin/hci_qcomm_init \
+ system/bin/irsc_util \
+ system/bin/ks \
+ system/bin/mm-qcamera-app \
+ system/bin/mm-qcamera-daemon \
+ system/bin/mm-qjpeg-enc-test \
+ system/bin/mm-qomx-ienc-test \
+ system/bin/mpdecision \
+ system/bin/netmgrd \
+ system/bin/nl_listener \
+ system/bin/port-bridge \
+ system/bin/qcks \
+ system/bin/qmuxd \
+ system/bin/qseecomd \
+ system/bin/radish \
+ system/bin/rmt_storage \
+ system/bin/sensors.qcom \
+ system/bin/thermald \
+ system/bin/usbhub \
+ system/bin/usbhub_init \
+ system/etc/firmware/vidc_1080p.fw \
+ system/etc/firmware/vidc.b00 \
+ system/etc/firmware/vidc.b01 \
+ system/etc/firmware/vidc.b02 \
+ system/etc/firmware/vidc.b03 \
+ system/etc/firmware/vidcfw.elf \
+ system/etc/firmware/vidc.mdt \
+ system/etc/gps.conf \
+ system/vendor/lib/egl/eglsubAndroid.so \
+ system/vendor/lib/egl/libEGL_adreno.so \
+ system/vendor/lib/egl/libGLESv1_CM_adreno.so \
+ system/vendor/lib/egl/libGLESv2_adreno.so \
+ system/vendor/lib/egl/libplayback_adreno.so \
+ system/vendor/lib/egl/libq3dtools_adreno.so \
+ system/lib/hw/flp.msm8960.so \
+ system/lib/hw/gps.msm8960.so \
+ system/lib/hw/sensors.msm8960.so \
+ system/lib/libacdbloader.so \
+ system/vendor/lib/libadreno_utils.so \
+ system/lib/libaudcal.so \
+ system/lib/libaudioalsa.so \
+ system/vendor/lib/libC2D2.so \
+ system/vendor/lib/libc2d30-a3xx.so \
+ system/vendor/lib/libc2d30.so \
+ system/vendor/lib/libCB.so \
+ system/lib/libchromatix_ov5693_common.so \
+ system/lib/libchromatix_ov5693_default_video.so \
+ system/lib/libchromatix_ov5693_preview.so \
+ system/lib/libCommandSvc.so \
+ system/lib/libconfigdb.so \
+ system/lib/libcsd-client.so \
+ system/lib/libdiag.so \
+ system/lib/libdrmdiag.so \
+ system/lib/libdrmfs.so \
+ system/lib/libdrmtime.so \
+ system/lib/libdsi_netctrl.so \
+ system/lib/libdsprofile.so \
+ system/lib/libdss.so \
+ system/lib/libdsucsd.so \
+ system/lib/libdsutils.so \
+ system/lib/libDxHdcp.so \
+ system/lib/libgps.utils.so \
+ system/vendor/lib/libgsl.so \
+ system/lib/libI420colorconvert.so \
+ system/lib/libidl.so \
+ system/vendor/lib/libllvm-qcom.so \
+ system/lib/libloc_core.so \
+ system/lib/libloc_eng.so \
+ system/lib/libmm-abl.so \
+ system/lib/libmmcamera2_stats_algorithm.so \
+ system/lib/libmmcamera_image_stab.so \
+ system/lib/libmmcamera_mi1040.so \
+ system/lib/libmmcamera_ov5693.so \
+ system/lib/libmm-color-convertor.so \
+ system/lib/libnetmgr.so \
+ system/lib/liboemcrypto.so \
+ system/lib/libqcci_legacy.so \
+ system/lib/libqdi.so \
+ system/lib/libqdp.so \
+ system/lib/libqmi_cci.so \
+ system/lib/libqmi_client_qmux.so \
+ system/lib/libqmi_common_so.so \
+ system/lib/libqmi_csi.so \
+ system/lib/libqmi_csvt_srvc.so \
+ system/lib/libqmi_encdec.so \
+ system/lib/libqmiservices.so \
+ system/lib/libqmi.so \
+ system/lib/libQSEEComAPI.so \
+ system/lib/libril-qc-qmi-1.so \
+ system/lib/libril-qcril-hook-oem.so \
+ system/vendor/lib/librs_adreno_sha1.so \
+ system/vendor/lib/librs_adreno.so \
+ system/vendor/lib/libRSDriver_adreno.so \
+ system/vendor/lib/libsc-a3xx.so \
+ system/lib/libsensor1.so \
+ system/lib/libsensor_reg.so \
+ system/lib/libsensor_user_cal.so \
+ system/lib/libstagefright_hdcp.so \
+ system/lib/libxml.so \
+ system/vendor/firmware/a300_pfp.fw \
+ system/vendor/firmware/a300_pm4.fw \
+ system/vendor/firmware/discretix/dxhdcp2.b00 \
+ system/vendor/firmware/discretix/dxhdcp2.b01 \
+ system/vendor/firmware/discretix/dxhdcp2.b02 \
+ system/vendor/firmware/discretix/dxhdcp2.b03 \
+ system/vendor/firmware/discretix/dxhdcp2.mdt \
+ system/vendor/firmware/dsps.b00 \
+ system/vendor/firmware/dsps.b01 \
+ system/vendor/firmware/dsps.b02 \
+ system/vendor/firmware/dsps.b03 \
+ system/vendor/firmware/dsps.b04 \
+ system/vendor/firmware/dsps.b05 \
+ system/vendor/firmware/dsps.mdt \
+ system/vendor/firmware/gss.b00 \
+ system/vendor/firmware/gss.b01 \
+ system/vendor/firmware/gss.b02 \
+ system/vendor/firmware/gss.b03 \
+ system/vendor/firmware/gss.b04 \
+ system/vendor/firmware/gss.b05 \
+ system/vendor/firmware/gss.b06 \
+ system/vendor/firmware/gss.b07 \
+ system/vendor/firmware/gss.b08 \
+ system/vendor/firmware/gss.b09 \
+ system/vendor/firmware/gss.b10 \
+ system/vendor/firmware/gss.b11 \
+ system/vendor/firmware/gss.mdt \
+ system/vendor/firmware/keymaster/keymaster.b00 \
+ system/vendor/firmware/keymaster/keymaster.b01 \
+ system/vendor/firmware/keymaster/keymaster.b02 \
+ system/vendor/firmware/keymaster/keymaster.b03 \
+ system/vendor/firmware/keymaster/keymaster.mdt \
+ system/vendor/firmware/q6.b00 \
+ system/vendor/firmware/q6.b01 \
+ system/vendor/firmware/q6.b03 \
+ system/vendor/firmware/q6.b04 \
+ system/vendor/firmware/q6.b05 \
+ system/vendor/firmware/q6.b06 \
+ system/vendor/firmware/q6.mdt \
+ system/vendor/firmware/tzapps.b00 \
+ system/vendor/firmware/tzapps.b01 \
+ system/vendor/firmware/tzapps.b02 \
+ system/vendor/firmware/tzapps.b03 \
+ system/vendor/firmware/tzapps.mdt \
+ system/vendor/firmware/wcnss.b00 \
+ system/vendor/firmware/wcnss.b01 \
+ system/vendor/firmware/wcnss.b02 \
+ system/vendor/firmware/wcnss.b04 \
+ system/vendor/firmware/wcnss.b05 \
+ system/vendor/firmware/wcnss.mdt \
+ system/vendor/lib/libdrmdecrypt.so \
+ system/vendor/lib/libgemini.so \
+ system/vendor/lib/libgeofence.so \
+ system/vendor/lib/libimage-jpeg-enc-omx-comp.so \
+ system/vendor/lib/libimage-omx-common.so \
+ system/vendor/lib/libizat_core.so \
+ system/vendor/lib/libloc_api_v02.so \
+ system/vendor/lib/libloc_ds_api.so \
+ system/vendor/lib/libmmcamera2_c2d_module.so \
+ system/vendor/lib/libmmcamera2_cpp_module.so \
+ system/vendor/lib/libmmcamera2_iface_modules.so \
+ system/vendor/lib/libmmcamera2_imglib_modules.so \
+ system/vendor/lib/libmmcamera2_isp_modules.so \
+ system/vendor/lib/libmmcamera2_pproc_modules.so \
+ system/vendor/lib/libmmcamera2_sensor_modules.so \
+ system/vendor/lib/libmmcamera2_stats_modules.so \
+ system/vendor/lib/libmmcamera2_vpe_module.so \
+ system/vendor/lib/libmmcamera2_wnr_module.so \
+ system/vendor/lib/libmmcamera_faceproc.so \
+ system/vendor/lib/libmmcamera_imglib.so \
+ system/vendor/lib/libmmipl.so \
+ system/vendor/lib/libmmjpeg.so \
+ system/vendor/lib/libmmqjpeg_codec.so \
+ system/vendor/lib/libmmstillomx.so \
+ system/vendor/lib/liboemcamera.so \
+ system/vendor/lib/libqomx_jpegenc.so \
+ "
+ ;;
diff --git a/self-extractors/files-by-owner.sh b/self-extractors/files-by-owner.sh
new file mode 100755
index 0000000..77c5e63
--- /dev/null
+++ b/self-extractors/files-by-owner.sh
@@ -0,0 +1,95 @@
+#!/bin/sh
+
+# Copyright 2013 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.
+
+rm -f extract-lists.txt
+cat ../vendor_owner_info.txt |
+cut -d : -f 2 |
+sort -u |
+grep -v google |
+while read target_owner
+do
+cat > $target_owner/staging/device-partial.mk << EOF
+# Copyright 2013 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.
+
+EOF
+echo -n "# " >> $target_owner/staging/device-partial.mk
+case $target_owner in
+asus)
+echo -n Asus >> $target_owner/staging/device-partial.mk
+;;
+broadcom)
+echo -n Broadcom >> $target_owner/staging/device-partial.mk
+;;
+qcom)
+echo -n Qualcomm >> $target_owner/staging/device-partial.mk
+;;
+esac
+echo " blob(s) necessary for Deb hardware" >> $target_owner/staging/device-partial.mk
+echo "PRODUCT_COPY_FILES := \\" >> $target_owner/staging/device-partial.mk
+
+echo " $target_owner)" >> extract-lists.txt
+echo " TO_EXTRACT=\"\\" >> extract-lists.txt
+
+
+cat ../proprietary-blobs.txt |
+grep ^/ |
+cut -b 2- |
+sort |
+while read file
+do
+
+auto_owner=$(grep ^$file: ../vendor_owner_info.txt | cut -d : -f 2)
+if test $file = system/bin/mm-qcamera-app -o $file = system/lib/hw/camera.deb.so -o $file = system/lib/hw/gps.msm8960.so -o $file = system/lib/libgps.utils.so -o $file = system/lib/libloc_adapter.so -o $file = system/lib/libloc_eng.so -o $file = system/lib/libmmcamera_interface.so -o $file = system/lib/libmmjpeg_interface.so -o $file = system/lib/libqomx_core.so
+then
+auto_owner=qcom
+fi
+
+if test "$auto_owner" = "" -a $file != system/etc/firmware/tzapps.b00 -a $file != system/etc/firmware/tzapps.b01 -a $file != system/etc/firmware/tzapps.b02 -a $file != system/etc/firmware/tzapps.b03 -a $file != system/etc/firmware/tzapps.mdt -a $file != system/etc/firmware/wcd9310/wcd9310_anc.bin -a $file != system/etc/firmware/wcd9310/wcd9310_mbhc.bin
+then
+echo $file has no known owner
+fi
+
+if test "$auto_owner" = "$target_owner"
+then
+if test $file != system/lib/libacdbloader.so -a $file != system/vendor/firmware/tzapps.mdt
+then
+echo " vendor/$target_owner/deb/proprietary/$(basename $file):$file:$target_owner \\" >> $target_owner/staging/device-partial.mk
+fi
+echo " $file \\" >> extract-lists.txt
+fi
+done
+
+echo >> $target_owner/staging/device-partial.mk
+if test $target_owner = qcom
+then
+echo PRODUCT_PACKAGES := libacdbloader tzapps.mdt >> $target_owner/staging/device-partial.mk
+fi
+
+echo " \"" >> extract-lists.txt
+echo " ;;" >> extract-lists.txt
+done
diff --git a/self-extractors/generate-packages.sh b/self-extractors/generate-packages.sh
new file mode 100755
index 0000000..a4c065b
--- /dev/null
+++ b/self-extractors/generate-packages.sh
@@ -0,0 +1,284 @@
+#!/bin/sh
+
+# Copyright 2013 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.
+
+# start jb-mr2-dev
+# 700272 = JSR67
+# 703372 = JSR71
+# 704765 = JSR72
+# 708191 = JSR74
+# 711747 = JSR78
+# 713896 = JSR78B
+# 719009 = JSR82
+# 725949 = JSR88
+# 728843 = JSS01
+# 730471 = JSS02B
+# 740015 = JSS11F
+# 741000 = JSS11I
+# 741250 = JSS15
+# 746990 = JSS15H
+# 748502 = JSS15I
+# 748593 = JSS15J
+# 750418 = JSS15K
+# end jb-mr2-dev
+BRANCH=klp-dev
+if test $BRANCH = klp-dev
+then
+ ZIP=razorg-ota-937116
+ BUILD=kot49h
+fi # klp-dev
+ROOTDEVICE=deb
+DEVICE=deb
+MANUFACTURER=asus
+
+for COMPANY in asus broadcom qcom
+do
+ echo Processing files from $COMPANY
+ rm -rf tmp
+ FILEDIR=tmp/vendor/$COMPANY/$DEVICE/proprietary
+ mkdir -p $FILEDIR
+ mkdir -p tmp/vendor/$MANUFACTURER/$ROOTDEVICE
+ case $COMPANY in
+ asus)
+ TO_EXTRACT="\
+ system/etc/apns-conf.xml \
+ system/lib/libacdbdata.so \
+ system/lib/libAKM.so \
+ "
+ ;;
+ broadcom)
+ TO_EXTRACT="\
+ system/vendor/firmware/bcm2079x-b5_firmware.ncd \
+ system/vendor/firmware/bcm2079x-b5_pre_firmware.ncd \
+ "
+ ;;
+ qcom)
+ TO_EXTRACT="\
+ system/bin/ATFWD-daemon \
+ system/bin/bridgemgrd \
+ system/bin/btnvtool \
+ system/bin/diag_klog \
+ system/bin/diag_mdlog \
+ system/bin/ds_fmc_appd \
+ system/bin/efsks \
+ system/bin/hci_qcomm_init \
+ system/bin/irsc_util \
+ system/bin/ks \
+ system/bin/mm-qcamera-app \
+ system/bin/mm-qcamera-daemon \
+ system/bin/mm-qjpeg-enc-test \
+ system/bin/mm-qomx-ienc-test \
+ system/bin/mpdecision \
+ system/bin/netmgrd \
+ system/bin/nl_listener \
+ system/bin/port-bridge \
+ system/bin/qcks \
+ system/bin/qmuxd \
+ system/bin/qseecomd \
+ system/bin/radish \
+ system/bin/rmt_storage \
+ system/bin/sensors.qcom \
+ system/bin/thermald \
+ system/bin/usbhub \
+ system/bin/usbhub_init \
+ system/etc/firmware/vidc_1080p.fw \
+ system/etc/firmware/vidc.b00 \
+ system/etc/firmware/vidc.b01 \
+ system/etc/firmware/vidc.b02 \
+ system/etc/firmware/vidc.b03 \
+ system/etc/firmware/vidcfw.elf \
+ system/etc/firmware/vidc.mdt \
+ system/etc/gps.conf \
+ system/vendor/lib/egl/eglsubAndroid.so \
+ system/vendor/lib/egl/libEGL_adreno.so \
+ system/vendor/lib/egl/libGLESv1_CM_adreno.so \
+ system/vendor/lib/egl/libGLESv2_adreno.so \
+ system/vendor/lib/egl/libplayback_adreno.so \
+ system/vendor/lib/egl/libq3dtools_adreno.so \
+ system/lib/hw/flp.msm8960.so \
+ system/lib/hw/gps.msm8960.so \
+ system/lib/hw/sensors.msm8960.so \
+ system/lib/libacdbloader.so \
+ system/vendor/lib/libadreno_utils.so \
+ system/lib/libaudcal.so \
+ system/lib/libaudioalsa.so \
+ system/vendor/lib/libC2D2.so \
+ system/vendor/lib/libc2d30-a3xx.so \
+ system/vendor/lib/libc2d30.so \
+ system/vendor/lib/libCB.so \
+ system/lib/libchromatix_ov5693_common.so \
+ system/lib/libchromatix_ov5693_default_video.so \
+ system/lib/libchromatix_ov5693_preview.so \
+ system/lib/libCommandSvc.so \
+ system/lib/libconfigdb.so \
+ system/lib/libcsd-client.so \
+ system/lib/libdiag.so \
+ system/lib/libdrmdiag.so \
+ system/lib/libdrmfs.so \
+ system/lib/libdrmtime.so \
+ system/lib/libdsi_netctrl.so \
+ system/lib/libdsprofile.so \
+ system/lib/libdss.so \
+ system/lib/libdsucsd.so \
+ system/lib/libdsutils.so \
+ system/lib/libDxHdcp.so \
+ system/lib/libgps.utils.so \
+ system/vendor/lib/libgsl.so \
+ system/lib/libI420colorconvert.so \
+ system/lib/libidl.so \
+ system/vendor/lib/libllvm-qcom.so \
+ system/lib/libloc_core.so \
+ system/lib/libloc_eng.so \
+ system/lib/libmm-abl.so \
+ system/lib/libmmcamera2_stats_algorithm.so \
+ system/lib/libmmcamera_image_stab.so \
+ system/lib/libmmcamera_mi1040.so \
+ system/lib/libmmcamera_ov5693.so \
+ system/lib/libmm-color-convertor.so \
+ system/lib/libnetmgr.so \
+ system/lib/liboemcrypto.so \
+ system/lib/libqcci_legacy.so \
+ system/lib/libqdi.so \
+ system/lib/libqdp.so \
+ system/lib/libqmi_cci.so \
+ system/lib/libqmi_client_qmux.so \
+ system/lib/libqmi_common_so.so \
+ system/lib/libqmi_csi.so \
+ system/lib/libqmi_csvt_srvc.so \
+ system/lib/libqmi_encdec.so \
+ system/lib/libqmiservices.so \
+ system/lib/libqmi.so \
+ system/lib/libQSEEComAPI.so \
+ system/lib/libril-qc-qmi-1.so \
+ system/lib/libril-qcril-hook-oem.so \
+ system/vendor/lib/librs_adreno_sha1.so \
+ system/vendor/lib/librs_adreno.so \
+ system/vendor/lib/libRSDriver_adreno.so \
+ system/vendor/lib/libsc-a3xx.so \
+ system/lib/libsensor1.so \
+ system/lib/libsensor_reg.so \
+ system/lib/libsensor_user_cal.so \
+ system/lib/libstagefright_hdcp.so \
+ system/lib/libxml.so \
+ system/vendor/firmware/a300_pfp.fw \
+ system/vendor/firmware/a300_pm4.fw \
+ system/vendor/firmware/discretix/dxhdcp2.b00 \
+ system/vendor/firmware/discretix/dxhdcp2.b01 \
+ system/vendor/firmware/discretix/dxhdcp2.b02 \
+ system/vendor/firmware/discretix/dxhdcp2.b03 \
+ system/vendor/firmware/discretix/dxhdcp2.mdt \
+ system/vendor/firmware/dsps.b00 \
+ system/vendor/firmware/dsps.b01 \
+ system/vendor/firmware/dsps.b02 \
+ system/vendor/firmware/dsps.b03 \
+ system/vendor/firmware/dsps.b04 \
+ system/vendor/firmware/dsps.b05 \
+ system/vendor/firmware/dsps.mdt \
+ system/vendor/firmware/gss.b00 \
+ system/vendor/firmware/gss.b01 \
+ system/vendor/firmware/gss.b02 \
+ system/vendor/firmware/gss.b03 \
+ system/vendor/firmware/gss.b04 \
+ system/vendor/firmware/gss.b05 \
+ system/vendor/firmware/gss.b06 \
+ system/vendor/firmware/gss.b07 \
+ system/vendor/firmware/gss.b08 \
+ system/vendor/firmware/gss.b09 \
+ system/vendor/firmware/gss.b10 \
+ system/vendor/firmware/gss.b11 \
+ system/vendor/firmware/gss.mdt \
+ system/vendor/firmware/keymaster/keymaster.b00 \
+ system/vendor/firmware/keymaster/keymaster.b01 \
+ system/vendor/firmware/keymaster/keymaster.b02 \
+ system/vendor/firmware/keymaster/keymaster.b03 \
+ system/vendor/firmware/keymaster/keymaster.mdt \
+ system/vendor/firmware/q6.b00 \
+ system/vendor/firmware/q6.b01 \
+ system/vendor/firmware/q6.b03 \
+ system/vendor/firmware/q6.b04 \
+ system/vendor/firmware/q6.b05 \
+ system/vendor/firmware/q6.b06 \
+ system/vendor/firmware/q6.mdt \
+ system/vendor/firmware/tzapps.b00 \
+ system/vendor/firmware/tzapps.b01 \
+ system/vendor/firmware/tzapps.b02 \
+ system/vendor/firmware/tzapps.b03 \
+ system/vendor/firmware/tzapps.mdt \
+ system/vendor/firmware/wcnss.b00 \
+ system/vendor/firmware/wcnss.b01 \
+ system/vendor/firmware/wcnss.b02 \
+ system/vendor/firmware/wcnss.b04 \
+ system/vendor/firmware/wcnss.b05 \
+ system/vendor/firmware/wcnss.mdt \
+ system/vendor/lib/libdrmdecrypt.so \
+ system/vendor/lib/libgemini.so \
+ system/vendor/lib/libgeofence.so \
+ system/vendor/lib/libimage-jpeg-enc-omx-comp.so \
+ system/vendor/lib/libimage-omx-common.so \
+ system/vendor/lib/libizat_core.so \
+ system/vendor/lib/libloc_api_v02.so \
+ system/vendor/lib/libloc_ds_api.so \
+ system/vendor/lib/libmmcamera2_c2d_module.so \
+ system/vendor/lib/libmmcamera2_cpp_module.so \
+ system/vendor/lib/libmmcamera2_iface_modules.so \
+ system/vendor/lib/libmmcamera2_imglib_modules.so \
+ system/vendor/lib/libmmcamera2_isp_modules.so \
+ system/vendor/lib/libmmcamera2_pproc_modules.so \
+ system/vendor/lib/libmmcamera2_sensor_modules.so \
+ system/vendor/lib/libmmcamera2_stats_modules.so \
+ system/vendor/lib/libmmcamera2_vpe_module.so \
+ system/vendor/lib/libmmcamera2_wnr_module.so \
+ system/vendor/lib/libmmcamera_faceproc.so \
+ system/vendor/lib/libmmcamera_imglib.so \
+ system/vendor/lib/libmmipl.so \
+ system/vendor/lib/libmmjpeg.so \
+ system/vendor/lib/libmmqjpeg_codec.so \
+ system/vendor/lib/libmmstillomx.so \
+ system/vendor/lib/liboemcamera.so \
+ system/vendor/lib/libqomx_jpegenc.so \
+ "
+ ;;
+ esac
+ echo \ \ Extracting files from OTA package
+ for ONE_FILE in $TO_EXTRACT
+ do
+ echo \ \ \ \ Extracting $ONE_FILE
+ unzip -j -o $ZIP $ONE_FILE -d $FILEDIR > /dev/null || echo \ \ \ \ Error extracting $ONE_FILE
+ if test $ONE_FILE = system/vendor/bin/gpsd -o $ONE_FILE = system/vendor/bin/pvrsrvinit -o $ONE_FILE = system/bin/fRom
+ then
+ chmod a+x $FILEDIR/$(basename $ONE_FILE) || echo \ \ \ \ Error chmoding $ONE_FILE
+ fi
+ done
+ echo \ \ Setting up $COMPANY-specific makefiles
+ cp -R $COMPANY/staging/* tmp/vendor/$COMPANY/$DEVICE || echo \ \ \ \ Error copying makefiles
+ echo \ \ Setting up shared makefiles
+ cp -R root/* tmp/vendor/$MANUFACTURER/$ROOTDEVICE || echo \ \ \ \ Error copying makefiles
+ echo \ \ Generating self-extracting script
+ SCRIPT=extract-$COMPANY-$DEVICE.sh
+ cat PROLOGUE > tmp/$SCRIPT || echo \ \ \ \ Error generating script
+ cat $COMPANY/COPYRIGHT >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
+ cat PART1 >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
+ cat $COMPANY/LICENSE >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
+ cat PART2 >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
+ echo tail -n +$(expr 2 + $(cat PROLOGUE $COMPANY/COPYRIGHT PART1 $COMPANY/LICENSE PART2 PART3 | wc -l)) \$0 \| tar zxv >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
+ cat PART3 >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
+ (cd tmp ; tar zc --owner=root --group=root vendor/ >> $SCRIPT || echo \ \ \ \ Error generating embedded tgz)
+ chmod a+x tmp/$SCRIPT || echo \ \ \ \ Error generating script
+ ARCHIVE=$COMPANY-$DEVICE-$BUILD-$(md5sum < tmp/$SCRIPT | cut -b -8 | tr -d \\n).tgz
+ rm -f $ARCHIVE
+ echo \ \ Generating final archive
+ (cd tmp ; tar --owner=root --group=root -z -c -f ../$ARCHIVE $SCRIPT || echo \ \ \ \ Error archiving script)
+ rm -rf tmp
+done
diff --git a/self-extractors/qcom/COPYRIGHT b/self-extractors/qcom/COPYRIGHT
new file mode 100644
index 0000000..0adeb31
--- /dev/null
+++ b/self-extractors/qcom/COPYRIGHT
@@ -0,0 +1 @@
+# (C) Qualcomm Technologies, Inc.
diff --git a/self-extractors/qcom/LICENSE b/self-extractors/qcom/LICENSE
new file mode 100644
index 0000000..cef517c
--- /dev/null
+++ b/self-extractors/qcom/LICENSE
@@ -0,0 +1,264 @@
+THIS DEVELOPER SOFTWARE LICENSE AGREEMENT (THE "AGREEMENT") IS A LEGALLY
+BINDING AGREEMENT BETWEEN Qualcomm Technologies, Inc. ("LICENSOR") AND
+YOU OR THE LEGAL ENTITY YOU REPRESENT ("You" or its possessive, "Your"). BY
+TYPING "I ACCEPT" WHERE INDICATED YOU ACKNOWLEDGE THAT YOU HAVE READ THIS
+AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.
+IF YOU DO NOT AGREE TO THESE TERMS YOU MUST DISCONTINUE THE INSTALLATION
+PROCESS AND YOU SHALL NOT USE THE SOFTWARE OR RETAIN ANY COPIES OF THE
+SOFTWARE OR DOCUMENTATION. ANY USE OR POSSESSION OF THE SOFTWARE BY YOU IS
+SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT. IF THE
+SOFTWARE IS INSTALLED ON A COMPUTER OWNED BY A CORPORATION OR OTHER LEGAL
+ENTITY, THEN YOU REPRESENT AND WARRANT THAT YOU HAVE THE AUTHORITY TO BIND
+SUCH ENTITY TO THE TERMS AND CONDITIONS OF THIS AGREEMENT.
+
+ 1. Special Definitions
+
+ a. The term "Android" means the open source mobile platform, software
+ stack, operating system, middleware, application programming
+ interfaces and mobile applications under the trade-name "Android"
+ distributed at Android.com.
+
+ b. The term "Android Applications" means a software application or
+ open-source contribution developed by You, designed to operate with
+ Android that does not contain or incorporate any of the Software.
+
+ c. The term "Authorized Android Enabled Device" means only the device
+ identified on the site from which You downloaded the Software.
+ The term "Software" means the Licensor's proprietary software and
+ libraries in object code form, designed for use on the Authorized
+ Android Enabled Device.
+
+ d. The term "Authorized Android Enabled Device Software" means a
+ packaged build for Authorized Android Enabled Devices, consisting
+ of files suitable for installation on an Authorized Android Enabled
+ Device using a mechanism such as fastboot mode or recovery mode.
+
+ 2. License Grant
+
+ a. Subject to the terms of this Agreement, Licensor hereby grants to
+ You, free of charge, a non-exclusive, non-sublicensable,
+ non-transferable, limited copyright license, during the term of
+ this Agreement, to download, install and use the Software
+ internally in machine-readable (i.e., object code) form and the
+ Documentation for non-commercial use on an Authorized Android
+ Enabled Device and non-commercial redistribution for academic
+ purposes only of a reasonable number of copies of the Authorized
+ Android Enabled Device Software (the "Limited Purpose"). You may
+ grant your end users the right to use the Software for
+ non-commercial purposes on an Authorized Android Enabled Device.
+ The license to the Software granted to You hereunder is solely for
+ the Limited Purpose set forth in this section, and the Software
+ shall not be used for any other purpose.
+
+ 3. Restrictions
+
+ a. Retention of Rights. The entire right, title and interest in the
+ Software shall remain with Licensor and, unless specified in
+ writing hereunder, no rights are granted to any of the Software.
+ Except for the right to use the Software for the Limited Purpose,
+ the delivery of the Software to You does not convey to You any
+ intellectual property rights in the Software, including, but not
+ limited to any rights under any patent, trademark, copyright, or
+ trade secret. Neither the delivery of the Software to You nor any
+ terms set forth herein shall be construed to grant to You, either
+ expressly, by implication or by way of estoppel, any license under
+ any patents or other intellectual property rights covering or
+ relating to any other product or invention or any combination of
+ the Software with any other product. Any rights not expressly
+ granted to You herein are reserved by Licensor.
+
+ b. No Commercialization or Distribution of the Software and
+ Documentation. Except as expressly provided in Section 2 of this
+ Agreement, You shall have no right to (i) copy, disclose,
+ distribute, publically perform, publically display, transfer,
+ alter, modify, translate, disassemble, decompile, reverse engineer,
+ or adapt the Software and Documentation, or any portion thereof, or
+ create any derivative works based thereon; (ii) rent, lease,
+ assign, sublicense, resell, disclose or otherwise transfer the
+ Software and Documentation in whole or in part to any third party
+ (iii) use the Software and Documentation except for the Limited
+ Purpose, (iv) remove or alter any of the copyright or proprietary
+ notices contained in any of the Software and Documentation. For the
+ purposes of clarity, nothing in this Agreement prohibits You from
+ making and distributing Android Applications under commercial or
+ non-commercial terms, provided that You shall not contain,
+ incorporate, and/or compile the Software or any of its derivative
+ works, in whole or in part, into Your Android Applications and/or
+ any software/devices created by You or by third parties acting on
+ Your behalf. You and any such third party shall comply with all of
+ the terms and conditions of this Agreement.
+
+ c. No Reverse Engineering. Except for any portions of the Software
+ provided to You in source code format and except for any third
+ party code distributed with the Software that is licensed under
+ contrary terms, You will not reverse engineer, disassemble,
+ decompile, or translate the Software, or otherwise attempt to
+ derive the source code version of the Software, except if and to
+ the extent expressly permitted under any applicable law.
+
+ d. Third Party Software. You agree that Android may contain third
+ party software. You agree that you may not distribute such third
+ party software for any purpose without appropriate licenses from
+ the applicable third party or parties.
+
+ e. No Transfer or Assignment. You shall not assign any of its rights
+ or obligations under this Agreement. Any attempted assignment in
+ contravention of this Section shall be void.
+
+ f. Licensor shall retain all title, ownership and Intellectual
+ Property Rights in and to the Software and any derivative thereof.
+ "Intellectual Property Rights" shall mean all patent, copyright,
+ trade secret, trademark and other proprietary and intellectual
+ property rights, including moral rights.
+
+ g. Neither this Agreement, nor any act by Licensor or its Affiliates
+ persuant to this Agreement or relating to the Software (including,
+ without limitation, the provision by Licensor or its Affiliates of
+ the Software) shall provide to You any license or any other rights
+ whatsoever under any patents, trademarks, trade secrets, copyrights
+ or any other intellectual property rights of Licensor or its
+ Affiliates, except for the copyrights expressly set forth in this
+ Agreement. You understand and agree that:
+
+ h. Neither this Agreement, nor delivery of the Software alone or in
+ combination with any Licensor ASIC grants you any right to
+ practice, or any other right at all with respect to, any patent of
+ Licensor or its Affiliates, and
+
+ i. A separating license agreement from Qualcomm Incorporated is needed
+ to use or practice any patent of Licensor or its Affiliates.
+
+ j. You agree not to contend in any context that, as a result of the
+ provision or use of this software, either Licensor or Affiliate has
+ any obligation to extend, or Licensor or any other party has
+ obtained any right to, any license, whether express or implied,
+ with respect to any patent of Licensor or its Affiliates for any
+ purpose. For the purposes of this agreement, "Affiliate" means
+ (i) any corporation or any other legal entity that owns, directly
+ or indirectly, more than fifty percent (50%) of the shares, equity
+ interest or other securities of any entity entitled to vote for
+ election of directors (or other managing authority), or (ii) any
+ corporation or any other legal entity fifty percent (50%) or more
+ of whose shares, equity interest, or other securities entitled to
+ vote for election of directors (or other managing authority) is
+ owned or controlled by an entity, either directly or indirectly.
+
+ 4. Indemnity
+
+ a. You agree to indemnify and hold harmless Licensor, Google, and
+ their officers, directors, customers, employees and successors and
+ assigns (each an "Indemnified Party") against any and all claims,
+ demands, causes of action, losses, liabilities, damages, costs and
+ expenses, incurred by the Indemnified Party (including but not
+ limited to costs of defense, investigation and reasonable
+ attorney's fees) arising out of, resulting from or related to
+ (i) any software, products, documentation, content, materials or
+ derivative works created or developed by You using the Software
+ which causes an infringement of any patent, copyright, trademark,
+ trade secret, or other property, publicity or privacy rights of any
+ third parties arising in any jurisdiction anywhere in the world,
+ (ii) the download, distribution, installation, storage, execution,
+ use or transfer of such software, products, documentation, content,
+ materials or derivative works by any person or entity, and/or
+ (iii) any breach of this Agreement by You. If requested by an
+ Indemnified Party, You agree to defend such Indemnified Party in
+ connection with any third party claims, demands, or causes of
+ action resulting from, arising out of or in connection with any of
+ the foregoing.
+
+ 5. Limitation of Liability
+
+ a. TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAWS, UNDER NO
+ CIRCUMSTANCES, INCLUDING WITHOUT LIMITATION NEGLIGENCE, SHALL
+ LICENSOR, GOOGLE, THEIR AFFILIATES AND/OR ITS DIRECTORS, OFFICERS,
+ EMPLOYEES OR AGENTS BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
+ SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT
+ LIMITED TO DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
+ INTERRUPTION, LOSS OF BUSINESS INFORMATION AND THE LIKE) ARISING
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ANY DOWNLOAD,
+ INSTALLATION OR USE OF, OR INABILITY TO USE, THE SOFTWARE, EVEN IF
+ LICENSOR OR GOOGLE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
+ EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
+ THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
+ IN NO EVENT SHALL LICENSOR'S OR GOOGLE'S TOTAL AGGREGATE LIABILITY
+ TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
+ ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
+ INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
+ (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
+ DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
+ THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
+ AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
+ PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
+ PARTIES.
+
+ 6. No Warranty
+
+ a. LICENSOR AND GOOGLE MAKE NO WARRANTIES, EXPRESS OR IMPLIED, WITH
+ RESPECT TO THE SOFTWARE AND DOCUMENTATION PROVIDED UNDER THIS
+ AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST
+ INFRINGEMENT, OR ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF
+ TRADE USAGE OR OUT OF A COURSE OF DEALING OR COURSE OF PERFORMANCE.
+ NOTHING CONTAINED IN THIS AGREEMENT SHALL BE CONSTRUED AS A
+ WARRANTY OR REPRESENTATION BY LICENSOR (I) AS TO THE VALIDITY OR
+ SCOPE OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT
+ AND (II) THAT ANY MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT
+ OF PATENTS, COPYRIGHTS OR OTHER INTELLECTUAL PROPERTY RIGHTS OF
+ OTHERS, AND IT SHALL BE THE SOLE RESPONSIBILITY OF YOU TO MAKE SUCH
+ DETERMINATION AS IS NECESSARY WITH RESPECT TO THE ACQUISITION OF
+ LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF THIRD
+ PARTIES. LICENSOR AND GOOGLE SHALL NOT HAVE ANY OBLIGATION TO
+ PROVIDE ANY TECHNICAL SUPPORT OF THE SOFTWARE UNDER THIS AGREEMENT.
+
+ 7. Term and Termination
+
+ a. This Agreement shall be effective on the date You accept this
+ Agreement and shall remain in effect until terminated as provided
+ herein. You may terminate the Agreement at any time by deleting and
+ destroying all copies of the Software and all related information
+ in Your possession or control. This Agreement terminates
+ immediately and automatically, with or without notice, if You fail
+ to comply with any provision hereof. Additionally, Licensor may at
+ any time terminate this Agreement, without cause, upon notice to
+ You. Upon termination You must delete or destroy all copies of the
+ Software in Your possession, and the license granted to You in this
+ Agreement shall terminate. Sections 3, 4, 5, 6 and 8 shall survive
+ the termination of this Agreement.
+
+ 8. Miscellaneous
+
+ a. Governing Law. This Agreement is governed and interpreted in
+ accordance with the laws of the State of California without giving
+ effect to its conflict of laws provisions. The United Nations
+ Convention on Contracts for the International Sale of Goods is
+ expressly disclaimed and shall not apply. Any claim arising out of
+ or related to this Agreement must be brought exclusively in a
+ federal or state court located in Santa Clara County, California
+ and You consent to the jurisdiction and venue of such courts.
+
+ b. Waiver and Severability. The failure of either party to require
+ performance by the other party of any provision of this Agreement
+ shall not affect the full right to require such performance at any
+ time thereafter; nor shall the waiver by either party of a breach
+ of any provision of this Agreement be taken or held to be a waiver
+ of the provision itself. Severability. If any provision of this
+ Agreement is unenforceable or invalid under any applicable law or
+ is so held by applicable court decision, such unenforceability or
+ invalidity shall not render this Agreement unenforceable or invalid
+ as a whole, and such provision shall be changed and interpreted so
+ as to best accomplish the objectives of such unenforceable or
+ invalid provision within the limits of applicable law or
+ applicable court decisions.
+
+ c. Amendment and Modification. This Agreement and any of its terms and
+ provisions may only be amended, modified, supplemented or waived in
+ a writing signed by both parties hereto.
+
+ d. Compliance with Laws. You shall comply with all applicable laws,
+ rules, and regulations in connection with its activities under this
+ Agreement.
+
+ e. Entire Agreement. This Agreement completely and exclusively states
+ the agreement between You and Licensor regarding this subject
+ matter.
diff --git a/self-extractors/qcom/staging/BoardConfigPartial.mk b/self-extractors/qcom/staging/BoardConfigPartial.mk
new file mode 100644
index 0000000..317c4e6
--- /dev/null
+++ b/self-extractors/qcom/staging/BoardConfigPartial.mk
@@ -0,0 +1,13 @@
+# Copyright 2013 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.
diff --git a/self-extractors/qcom/staging/device-partial.mk b/self-extractors/qcom/staging/device-partial.mk
new file mode 100644
index 0000000..dbf4264
--- /dev/null
+++ b/self-extractors/qcom/staging/device-partial.mk
@@ -0,0 +1,198 @@
+# Copyright 2013 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.
+
+# Qualcomm blob(s) necessary for Deb hardware
+PRODUCT_COPY_FILES := \
+ vendor/qcom/deb/proprietary/ATFWD-daemon:system/bin/ATFWD-daemon:qcom \
+ vendor/qcom/deb/proprietary/bridgemgrd:system/bin/bridgemgrd:qcom \
+ vendor/qcom/deb/proprietary/btnvtool:system/bin/btnvtool:qcom \
+ vendor/qcom/deb/proprietary/diag_klog:system/bin/diag_klog:qcom \
+ vendor/qcom/deb/proprietary/diag_mdlog:system/bin/diag_mdlog:qcom \
+ vendor/qcom/deb/proprietary/ds_fmc_appd:system/bin/ds_fmc_appd:qcom \
+ vendor/qcom/deb/proprietary/efsks:system/bin/efsks:qcom \
+ vendor/qcom/deb/proprietary/hci_qcomm_init:system/bin/hci_qcomm_init:qcom \
+ vendor/qcom/deb/proprietary/irsc_util:system/bin/irsc_util:qcom \
+ vendor/qcom/deb/proprietary/ks:system/bin/ks:qcom \
+ vendor/qcom/deb/proprietary/mm-qcamera-app:system/bin/mm-qcamera-app:qcom \
+ vendor/qcom/deb/proprietary/mm-qcamera-daemon:system/bin/mm-qcamera-daemon:qcom \
+ vendor/qcom/deb/proprietary/mm-qjpeg-enc-test:system/bin/mm-qjpeg-enc-test:qcom \
+ vendor/qcom/deb/proprietary/mm-qomx-ienc-test:system/bin/mm-qomx-ienc-test:qcom \
+ vendor/qcom/deb/proprietary/mpdecision:system/bin/mpdecision:qcom \
+ vendor/qcom/deb/proprietary/netmgrd:system/bin/netmgrd:qcom \
+ vendor/qcom/deb/proprietary/nl_listener:system/bin/nl_listener:qcom \
+ vendor/qcom/deb/proprietary/port-bridge:system/bin/port-bridge:qcom \
+ vendor/qcom/deb/proprietary/qcks:system/bin/qcks:qcom \
+ vendor/qcom/deb/proprietary/qmuxd:system/bin/qmuxd:qcom \
+ vendor/qcom/deb/proprietary/qseecomd:system/bin/qseecomd:qcom \
+ vendor/qcom/deb/proprietary/radish:system/bin/radish:qcom \
+ vendor/qcom/deb/proprietary/rmt_storage:system/bin/rmt_storage:qcom \
+ vendor/qcom/deb/proprietary/sensors.qcom:system/bin/sensors.qcom:qcom \
+ vendor/qcom/deb/proprietary/thermald:system/bin/thermald:qcom \
+ vendor/qcom/deb/proprietary/usbhub:system/bin/usbhub:qcom \
+ vendor/qcom/deb/proprietary/usbhub_init:system/bin/usbhub_init:qcom \
+ vendor/qcom/deb/proprietary/vidc_1080p.fw:system/etc/firmware/vidc_1080p.fw:qcom \
+ vendor/qcom/deb/proprietary/vidc.b00:system/etc/firmware/vidc.b00:qcom \
+ vendor/qcom/deb/proprietary/vidc.b01:system/etc/firmware/vidc.b01:qcom \
+ vendor/qcom/deb/proprietary/vidc.b02:system/etc/firmware/vidc.b02:qcom \
+ vendor/qcom/deb/proprietary/vidc.b03:system/etc/firmware/vidc.b03:qcom \
+ vendor/qcom/deb/proprietary/vidcfw.elf:system/etc/firmware/vidcfw.elf:qcom \
+ vendor/qcom/deb/proprietary/vidc.mdt:system/etc/firmware/vidc.mdt:qcom \
+ vendor/qcom/deb/proprietary/gps.conf:system/etc/gps.conf:qcom \
+ vendor/qcom/deb/proprietary/eglsubAndroid.so:system/vendor/lib/egl/eglsubAndroid.so:qcom \
+ vendor/qcom/deb/proprietary/libEGL_adreno.so:system/vendor/lib/egl/libEGL_adreno.so:qcom \
+ vendor/qcom/deb/proprietary/libGLESv1_CM_adreno.so:system/vendor/lib/egl/libGLESv1_CM_adreno.so:qcom \
+ vendor/qcom/deb/proprietary/libGLESv2_adreno.so:system/vendor/lib/egl/libGLESv2_adreno.so:qcom \
+ vendor/qcom/deb/proprietary/libplayback_adreno.so:system/vendor/lib/egl/libplayback_adreno.so:qcom \
+ vendor/qcom/deb/proprietary/libq3dtools_adreno.so:system/vendor/lib/egl/libq3dtools_adreno.so:qcom \
+ vendor/qcom/deb/proprietary/flp.msm8960.so:system/lib/hw/flp.msm8960.so:qcom \
+ vendor/qcom/deb/proprietary/gps.msm8960.so:system/lib/hw/gps.msm8960.so:qcom \
+ vendor/qcom/deb/proprietary/sensors.msm8960.so:system/lib/hw/sensors.msm8960.so:qcom \
+ vendor/qcom/deb/proprietary/libadreno_utils.so:system/vendor/lib/libadreno_utils.so:qcom \
+ vendor/qcom/deb/proprietary/libaudcal.so:system/lib/libaudcal.so:qcom \
+ vendor/qcom/deb/proprietary/libaudioalsa.so:system/lib/libaudioalsa.so:qcom \
+ vendor/qcom/deb/proprietary/libC2D2.so:system/vendor/lib/libC2D2.so:qcom \
+ vendor/qcom/deb/proprietary/libc2d30-a3xx.so:system/vendor/lib/libc2d30-a3xx.so:qcom \
+ vendor/qcom/deb/proprietary/libc2d30.so:system/vendor/lib/libc2d30.so:qcom \
+ vendor/qcom/deb/proprietary/libCB.so:system/vendor/lib/libCB.so:qcom \
+ vendor/qcom/deb/proprietary/libchromatix_ov5693_common.so:system/lib/libchromatix_ov5693_common.so:qcom \
+ vendor/qcom/deb/proprietary/libchromatix_ov5693_default_video.so:system/lib/libchromatix_ov5693_default_video.so:qcom \
+ vendor/qcom/deb/proprietary/libchromatix_ov5693_preview.so:system/lib/libchromatix_ov5693_preview.so:qcom \
+ vendor/qcom/deb/proprietary/libCommandSvc.so:system/lib/libCommandSvc.so:qcom \
+ vendor/qcom/deb/proprietary/libconfigdb.so:system/lib/libconfigdb.so:qcom \
+ vendor/qcom/deb/proprietary/libcsd-client.so:system/lib/libcsd-client.so:qcom \
+ vendor/qcom/deb/proprietary/libdiag.so:system/lib/libdiag.so:qcom \
+ vendor/qcom/deb/proprietary/libdrmdiag.so:system/lib/libdrmdiag.so:qcom \
+ vendor/qcom/deb/proprietary/libdrmfs.so:system/lib/libdrmfs.so:qcom \
+ vendor/qcom/deb/proprietary/libdrmtime.so:system/lib/libdrmtime.so:qcom \
+ vendor/qcom/deb/proprietary/libdsi_netctrl.so:system/lib/libdsi_netctrl.so:qcom \
+ vendor/qcom/deb/proprietary/libdsprofile.so:system/lib/libdsprofile.so:qcom \
+ vendor/qcom/deb/proprietary/libdss.so:system/lib/libdss.so:qcom \
+ vendor/qcom/deb/proprietary/libdsucsd.so:system/lib/libdsucsd.so:qcom \
+ vendor/qcom/deb/proprietary/libdsutils.so:system/lib/libdsutils.so:qcom \
+ vendor/qcom/deb/proprietary/libDxHdcp.so:system/lib/libDxHdcp.so:qcom \
+ vendor/qcom/deb/proprietary/libgps.utils.so:system/lib/libgps.utils.so:qcom \
+ vendor/qcom/deb/proprietary/libgsl.so:system/vendor/lib/libgsl.so:qcom \
+ vendor/qcom/deb/proprietary/libI420colorconvert.so:system/lib/libI420colorconvert.so:qcom \
+ vendor/qcom/deb/proprietary/libidl.so:system/lib/libidl.so:qcom \
+ vendor/qcom/deb/proprietary/libllvm-qcom.so:system/vendor/lib/libllvm-qcom.so:qcom \
+ vendor/qcom/deb/proprietary/libloc_core.so:system/lib/libloc_core.so:qcom \
+ vendor/qcom/deb/proprietary/libloc_eng.so:system/lib/libloc_eng.so:qcom \
+ vendor/qcom/deb/proprietary/libmm-abl.so:system/lib/libmm-abl.so:qcom \
+ vendor/qcom/deb/proprietary/libmmcamera2_stats_algorithm.so:system/lib/libmmcamera2_stats_algorithm.so:qcom \
+ vendor/qcom/deb/proprietary/libmmcamera_image_stab.so:system/lib/libmmcamera_image_stab.so:qcom \
+ vendor/qcom/deb/proprietary/libmmcamera_mi1040.so:system/lib/libmmcamera_mi1040.so:qcom \
+ vendor/qcom/deb/proprietary/libmmcamera_ov5693.so:system/lib/libmmcamera_ov5693.so:qcom \
+ vendor/qcom/deb/proprietary/libmm-color-convertor.so:system/lib/libmm-color-convertor.so:qcom \
+ vendor/qcom/deb/proprietary/libnetmgr.so:system/lib/libnetmgr.so:qcom \
+ vendor/qcom/deb/proprietary/liboemcrypto.so:system/lib/liboemcrypto.so:qcom \
+ vendor/qcom/deb/proprietary/libqcci_legacy.so:system/lib/libqcci_legacy.so:qcom \
+ vendor/qcom/deb/proprietary/libqdi.so:system/lib/libqdi.so:qcom \
+ vendor/qcom/deb/proprietary/libqdp.so:system/lib/libqdp.so:qcom \
+ vendor/qcom/deb/proprietary/libqmi_cci.so:system/lib/libqmi_cci.so:qcom \
+ vendor/qcom/deb/proprietary/libqmi_client_qmux.so:system/lib/libqmi_client_qmux.so:qcom \
+ vendor/qcom/deb/proprietary/libqmi_common_so.so:system/lib/libqmi_common_so.so:qcom \
+ vendor/qcom/deb/proprietary/libqmi_csi.so:system/lib/libqmi_csi.so:qcom \
+ vendor/qcom/deb/proprietary/libqmi_csvt_srvc.so:system/lib/libqmi_csvt_srvc.so:qcom \
+ vendor/qcom/deb/proprietary/libqmi_encdec.so:system/lib/libqmi_encdec.so:qcom \
+ vendor/qcom/deb/proprietary/libqmiservices.so:system/lib/libqmiservices.so:qcom \
+ vendor/qcom/deb/proprietary/libqmi.so:system/lib/libqmi.so:qcom \
+ vendor/qcom/deb/proprietary/libQSEEComAPI.so:system/lib/libQSEEComAPI.so:qcom \
+ vendor/qcom/deb/proprietary/libril-qc-qmi-1.so:system/lib/libril-qc-qmi-1.so:qcom \
+ vendor/qcom/deb/proprietary/libril-qcril-hook-oem.so:system/lib/libril-qcril-hook-oem.so:qcom \
+ vendor/qcom/deb/proprietary/librs_adreno_sha1.so:system/vendor/lib/librs_adreno_sha1.so:qcom \
+ vendor/qcom/deb/proprietary/librs_adreno.so:system/vendor/lib/librs_adreno.so:qcom \
+ vendor/qcom/deb/proprietary/libRSDriver_adreno.so:system/vendor/lib/libRSDriver_adreno.so:qcom \
+ vendor/qcom/deb/proprietary/libsc-a3xx.so:system/vendor/lib/libsc-a3xx.so:qcom \
+ vendor/qcom/deb/proprietary/libsensor1.so:system/lib/libsensor1.so:qcom \
+ vendor/qcom/deb/proprietary/libsensor_reg.so:system/lib/libsensor_reg.so:qcom \
+ vendor/qcom/deb/proprietary/libsensor_user_cal.so:system/lib/libsensor_user_cal.so:qcom \
+ vendor/qcom/deb/proprietary/libstagefright_hdcp.so:system/lib/libstagefright_hdcp.so:qcom \
+ vendor/qcom/deb/proprietary/libxml.so:system/lib/libxml.so:qcom \
+ vendor/qcom/deb/proprietary/a300_pfp.fw:system/vendor/firmware/a300_pfp.fw:qcom \
+ vendor/qcom/deb/proprietary/a300_pm4.fw:system/vendor/firmware/a300_pm4.fw:qcom \
+ vendor/qcom/deb/proprietary/dxhdcp2.b00:system/vendor/firmware/discretix/dxhdcp2.b00:qcom \
+ vendor/qcom/deb/proprietary/dxhdcp2.b01:system/vendor/firmware/discretix/dxhdcp2.b01:qcom \
+ vendor/qcom/deb/proprietary/dxhdcp2.b02:system/vendor/firmware/discretix/dxhdcp2.b02:qcom \
+ vendor/qcom/deb/proprietary/dxhdcp2.b03:system/vendor/firmware/discretix/dxhdcp2.b03:qcom \
+ vendor/qcom/deb/proprietary/dxhdcp2.mdt:system/vendor/firmware/discretix/dxhdcp2.mdt:qcom \
+ vendor/qcom/deb/proprietary/dsps.b00:system/vendor/firmware/dsps.b00:qcom \
+ vendor/qcom/deb/proprietary/dsps.b01:system/vendor/firmware/dsps.b01:qcom \
+ vendor/qcom/deb/proprietary/dsps.b02:system/vendor/firmware/dsps.b02:qcom \
+ vendor/qcom/deb/proprietary/dsps.b03:system/vendor/firmware/dsps.b03:qcom \
+ vendor/qcom/deb/proprietary/dsps.b04:system/vendor/firmware/dsps.b04:qcom \
+ vendor/qcom/deb/proprietary/dsps.b05:system/vendor/firmware/dsps.b05:qcom \
+ vendor/qcom/deb/proprietary/dsps.mdt:system/vendor/firmware/dsps.mdt:qcom \
+ vendor/qcom/deb/proprietary/gss.b00:system/vendor/firmware/gss.b00:qcom \
+ vendor/qcom/deb/proprietary/gss.b01:system/vendor/firmware/gss.b01:qcom \
+ vendor/qcom/deb/proprietary/gss.b02:system/vendor/firmware/gss.b02:qcom \
+ vendor/qcom/deb/proprietary/gss.b03:system/vendor/firmware/gss.b03:qcom \
+ vendor/qcom/deb/proprietary/gss.b04:system/vendor/firmware/gss.b04:qcom \
+ vendor/qcom/deb/proprietary/gss.b05:system/vendor/firmware/gss.b05:qcom \
+ vendor/qcom/deb/proprietary/gss.b06:system/vendor/firmware/gss.b06:qcom \
+ vendor/qcom/deb/proprietary/gss.b07:system/vendor/firmware/gss.b07:qcom \
+ vendor/qcom/deb/proprietary/gss.b08:system/vendor/firmware/gss.b08:qcom \
+ vendor/qcom/deb/proprietary/gss.b09:system/vendor/firmware/gss.b09:qcom \
+ vendor/qcom/deb/proprietary/gss.b10:system/vendor/firmware/gss.b10:qcom \
+ vendor/qcom/deb/proprietary/gss.b11:system/vendor/firmware/gss.b11:qcom \
+ vendor/qcom/deb/proprietary/gss.mdt:system/vendor/firmware/gss.mdt:qcom \
+ vendor/qcom/deb/proprietary/keymaster.b00:system/vendor/firmware/keymaster/keymaster.b00:qcom \
+ vendor/qcom/deb/proprietary/keymaster.b01:system/vendor/firmware/keymaster/keymaster.b01:qcom \
+ vendor/qcom/deb/proprietary/keymaster.b02:system/vendor/firmware/keymaster/keymaster.b02:qcom \
+ vendor/qcom/deb/proprietary/keymaster.b03:system/vendor/firmware/keymaster/keymaster.b03:qcom \
+ vendor/qcom/deb/proprietary/keymaster.mdt:system/vendor/firmware/keymaster/keymaster.mdt:qcom \
+ vendor/qcom/deb/proprietary/q6.b00:system/vendor/firmware/q6.b00:qcom \
+ vendor/qcom/deb/proprietary/q6.b01:system/vendor/firmware/q6.b01:qcom \
+ vendor/qcom/deb/proprietary/q6.b03:system/vendor/firmware/q6.b03:qcom \
+ vendor/qcom/deb/proprietary/q6.b04:system/vendor/firmware/q6.b04:qcom \
+ vendor/qcom/deb/proprietary/q6.b05:system/vendor/firmware/q6.b05:qcom \
+ vendor/qcom/deb/proprietary/q6.b06:system/vendor/firmware/q6.b06:qcom \
+ vendor/qcom/deb/proprietary/q6.mdt:system/vendor/firmware/q6.mdt:qcom \
+ vendor/qcom/deb/proprietary/tzapps.b00:system/vendor/firmware/tzapps.b00:qcom \
+ vendor/qcom/deb/proprietary/tzapps.b01:system/vendor/firmware/tzapps.b01:qcom \
+ vendor/qcom/deb/proprietary/tzapps.b02:system/vendor/firmware/tzapps.b02:qcom \
+ vendor/qcom/deb/proprietary/tzapps.b03:system/vendor/firmware/tzapps.b03:qcom \
+ vendor/qcom/deb/proprietary/wcnss.b00:system/vendor/firmware/wcnss.b00:qcom \
+ vendor/qcom/deb/proprietary/wcnss.b01:system/vendor/firmware/wcnss.b01:qcom \
+ vendor/qcom/deb/proprietary/wcnss.b02:system/vendor/firmware/wcnss.b02:qcom \
+ vendor/qcom/deb/proprietary/wcnss.b04:system/vendor/firmware/wcnss.b04:qcom \
+ vendor/qcom/deb/proprietary/wcnss.b05:system/vendor/firmware/wcnss.b05:qcom \
+ vendor/qcom/deb/proprietary/wcnss.mdt:system/vendor/firmware/wcnss.mdt:qcom \
+ vendor/qcom/deb/proprietary/libdrmdecrypt.so:system/vendor/lib/libdrmdecrypt.so:qcom \
+ vendor/qcom/deb/proprietary/libgemini.so:system/vendor/lib/libgemini.so:qcom \
+ vendor/qcom/deb/proprietary/libgeofence.so:system/vendor/lib/libgeofence.so:qcom \
+ vendor/qcom/deb/proprietary/libimage-jpeg-enc-omx-comp.so:system/vendor/lib/libimage-jpeg-enc-omx-comp.so:qcom \
+ vendor/qcom/deb/proprietary/libimage-omx-common.so:system/vendor/lib/libimage-omx-common.so:qcom \
+ vendor/qcom/deb/proprietary/libizat_core.so:system/vendor/lib/libizat_core.so:qcom \
+ vendor/qcom/deb/proprietary/libloc_api_v02.so:system/vendor/lib/libloc_api_v02.so:qcom \
+ vendor/qcom/deb/proprietary/libloc_ds_api.so:system/vendor/lib/libloc_ds_api.so:qcom \
+ vendor/qcom/deb/proprietary/libmmcamera2_c2d_module.so:system/vendor/lib/libmmcamera2_c2d_module.so:qcom \
+ vendor/qcom/deb/proprietary/libmmcamera2_cpp_module.so:system/vendor/lib/libmmcamera2_cpp_module.so:qcom \
+ vendor/qcom/deb/proprietary/libmmcamera2_iface_modules.so:system/vendor/lib/libmmcamera2_iface_modules.so:qcom \
+ vendor/qcom/deb/proprietary/libmmcamera2_imglib_modules.so:system/vendor/lib/libmmcamera2_imglib_modules.so:qcom \
+ vendor/qcom/deb/proprietary/libmmcamera2_isp_modules.so:system/vendor/lib/libmmcamera2_isp_modules.so:qcom \
+ vendor/qcom/deb/proprietary/libmmcamera2_pproc_modules.so:system/vendor/lib/libmmcamera2_pproc_modules.so:qcom \
+ vendor/qcom/deb/proprietary/libmmcamera2_sensor_modules.so:system/vendor/lib/libmmcamera2_sensor_modules.so:qcom \
+ vendor/qcom/deb/proprietary/libmmcamera2_stats_modules.so:system/vendor/lib/libmmcamera2_stats_modules.so:qcom \
+ vendor/qcom/deb/proprietary/libmmcamera2_vpe_module.so:system/vendor/lib/libmmcamera2_vpe_module.so:qcom \
+ vendor/qcom/deb/proprietary/libmmcamera2_wnr_module.so:system/vendor/lib/libmmcamera2_wnr_module.so:qcom \
+ vendor/qcom/deb/proprietary/libmmcamera_faceproc.so:system/vendor/lib/libmmcamera_faceproc.so:qcom \
+ vendor/qcom/deb/proprietary/libmmcamera_imglib.so:system/vendor/lib/libmmcamera_imglib.so:qcom \
+ vendor/qcom/deb/proprietary/libmmipl.so:system/vendor/lib/libmmipl.so:qcom \
+ vendor/qcom/deb/proprietary/libmmjpeg.so:system/vendor/lib/libmmjpeg.so:qcom \
+ vendor/qcom/deb/proprietary/libmmqjpeg_codec.so:system/vendor/lib/libmmqjpeg_codec.so:qcom \
+ vendor/qcom/deb/proprietary/libmmstillomx.so:system/vendor/lib/libmmstillomx.so:qcom \
+ vendor/qcom/deb/proprietary/liboemcamera.so:system/vendor/lib/liboemcamera.so:qcom \
+ vendor/qcom/deb/proprietary/libqomx_jpegenc.so:system/vendor/lib/libqomx_jpegenc.so:qcom \
+
+PRODUCT_PACKAGES := libacdbloader tzapps.mdt
diff --git a/self-extractors/qcom/staging/proprietary/Android.mk b/self-extractors/qcom/staging/proprietary/Android.mk
new file mode 100644
index 0000000..6f88bc7
--- /dev/null
+++ b/self-extractors/qcom/staging/proprietary/Android.mk
@@ -0,0 +1,55 @@
+# Copyright 2013 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)
+
+ifeq ($(TARGET_DEVICE),deb)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libacdbloader
+LOCAL_SRC_FILES := libacdbloader.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := qcom
+
+# Create symbolic link because user space can access persist directory,
+# while kernel ALSA drivers can only access the /system/etc/firmware directory
+LOCAL_POST_INSTALL_CMD := \
+ mkdir -p $(TARGET_OUT_ETC)/firmware/wcd9310; \
+ ln -sf /data/misc/audio/wcd9310_anc.bin \
+ $(TARGET_OUT_ETC)/firmware/wcd9310/wcd9310_anc.bin; \
+ ln -sf /data/misc/audio/mbhc.bin \
+ $(TARGET_OUT_ETC)/firmware/wcd9310/wcd9310_mbhc.bin
+
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := tzapps.mdt
+LOCAL_MODULE_OWNER := qcom
+LOCAL_SRC_FILES := tzapps.mdt
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/firmware
+LOCAL_POST_INSTALL_CMD := \
+ mkdir -p $(TARGET_OUT)/etc/firmware/; \
+ ln -sf /system/vendor/firmware/tzapps.b00 $(TARGET_OUT)/etc/firmware/tzapps.b00; \
+ ln -sf /system/vendor/firmware/tzapps.b01 $(TARGET_OUT)/etc/firmware/tzapps.b01; \
+ ln -sf /system/vendor/firmware/tzapps.b02 $(TARGET_OUT)/etc/firmware/tzapps.b02; \
+ ln -sf /system/vendor/firmware/tzapps.b03 $(TARGET_OUT)/etc/firmware/tzapps.b03; \
+ ln -sf /system/vendor/firmware/tzapps.mdt $(TARGET_OUT)/etc/firmware/tzapps.mdt;
+include $(BUILD_PREBUILT)
+
+endif
diff --git a/self-extractors/root/BoardConfigVendor.mk b/self-extractors/root/BoardConfigVendor.mk
new file mode 100644
index 0000000..619da87
--- /dev/null
+++ b/self-extractors/root/BoardConfigVendor.mk
@@ -0,0 +1,19 @@
+# Copyright 2013 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_STEM := deb/BoardConfigPartial.mk
+
+-include vendor/asus/$(LOCAL_STEM)
+-include vendor/broadcom/$(LOCAL_STEM)
+-include vendor/qcom/$(LOCAL_STEM)
diff --git a/self-extractors/root/device-vendor.mk b/self-extractors/root/device-vendor.mk
new file mode 100644
index 0000000..16e8d6c
--- /dev/null
+++ b/self-extractors/root/device-vendor.mk
@@ -0,0 +1,19 @@
+# Copyright 2013 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_STEM := deb/device-partial.mk
+
+$(call inherit-product-if-exists, vendor/asus/$(LOCAL_STEM))
+$(call inherit-product-if-exists, vendor/broadcom/$(LOCAL_STEM))
+$(call inherit-product-if-exists, vendor/qcom/$(LOCAL_STEM))
diff --git a/system.prop b/system.prop
index 0f4150a..51fd357 100644
--- a/system.prop
+++ b/system.prop
@@ -1,12 +1,11 @@
-# Telephony
-rild.libpath=/system/lib/libril-qc-qmi-1.so
-# Preferred network type - LTE, WCDMA, GSM
+#
+#set prefer network type
+#LTE, GSM, WCDMA(9)
+#
ro.telephony.default_network=9
-ro.telephony.get_imsi_from_sim=true
telephony.lteOnGsmDevice=1
telephony.lteOnCdmaDevice=1
+ro.telephony.get_imsi_from_sim=true
DEVICE_PROVISIONED=1
-# Do not power down SIM card when modem is sent to Low Power Mode.
-persist.radio.apm_sim_not_pwdn=1
-# Display Traditional Chinese/Simplified Chinese carriers name
+#Display Traditional Chinese/Simplified Chinese carriers name
persist.radio.use_cc_names=true
diff --git a/vendor_owner_info.txt b/vendor_owner_info.txt
new file mode 100644
index 0000000..61f3efd
--- /dev/null
+++ b/vendor_owner_info.txt
@@ -0,0 +1,199 @@
+system/etc/apns-conf.xml:asus
+root/adb_keys:google
+system/bin/ATFWD-daemon:qcom
+system/app/AsusDebugger.apk:asus
+system/app/VZ_SDM.apk:asus
+system/etc/DxHDCP.cfg:qcom
+system/vendor/firmware/bcm2079x-b5_firmware.ncd:broadcom
+system/vendor/firmware/bcm2079x-b5_pre_firmware.ncd:broadcom
+system/bin/bridgemgrd:qcom
+system/bin/btnvtool:qcom
+system/bin/diag_klog:qcom
+system/bin/diag_mdlog:qcom
+system/bin/ds_fmc_appd:qcom
+system/vendor/firmware/dsps.b00:qcom
+system/vendor/firmware/dsps.b01:qcom
+system/vendor/firmware/dsps.b02:qcom
+system/vendor/firmware/dsps.b03:qcom
+system/vendor/firmware/dsps.b04:qcom
+system/vendor/firmware/dsps.b05:qcom
+system/vendor/firmware/dsps.mdt:qcom
+system/vendor/firmware/discretix/dxhdcp2.b00:qcom
+system/vendor/firmware/discretix/dxhdcp2.b01:qcom
+system/vendor/firmware/discretix/dxhdcp2.b02:qcom
+system/vendor/firmware/discretix/dxhdcp2.b03:qcom
+system/vendor/firmware/discretix/dxhdcp2.mdt:qcom
+system/bin/efsks:qcom
+system/vendor/firmware/gss.b00:qcom
+system/vendor/firmware/gss.b01:qcom
+system/vendor/firmware/gss.b02:qcom
+system/vendor/firmware/gss.b03:qcom
+system/vendor/firmware/gss.b04:qcom
+system/vendor/firmware/gss.b05:qcom
+system/vendor/firmware/gss.b06:qcom
+system/vendor/firmware/gss.b07:qcom
+system/vendor/firmware/gss.b08:qcom
+system/vendor/firmware/gss.b09:qcom
+system/vendor/firmware/gss.b10:qcom
+system/vendor/firmware/gss.b11:qcom
+system/vendor/firmware/gss.mdt:qcom
+system/vendor/firmware/keymaster/keymaster.b00:qcom
+system/vendor/firmware/keymaster/keymaster.b01:qcom
+system/vendor/firmware/keymaster/keymaster.b02:qcom
+system/vendor/firmware/keymaster/keymaster.b03:qcom
+system/vendor/firmware/keymaster/keymaster.mdt:qcom
+system/bin/hci_qcomm_init:qcom
+system/bin/irsc_util:qcom
+system/bin/ks:qcom
+system/etc/gps.conf:qcom
+system/vendor/lib/egl/libEGL_adreno.so:qcom
+system/vendor/lib/egl/libGLESv1_CM_adreno.so:qcom
+system/vendor/lib/egl/libGLESv2_adreno.so:qcom
+system/vendor/lib/egl/libplayback_adreno.so:qcom
+system/vendor/lib/egl/libq3dtools_adreno.so:qcom
+system/lib/libAKM.so:asus
+system/vendor/lib/libCB.so:qcom
+system/lib/libCommandSvc.so:qcom
+system/lib/libDxHdcp.so:qcom
+system/lib/libI420colorconvert.so:qcom
+system/lib/libQSEEComAPI.so:qcom
+system/vendor/lib/libRSDriver_adreno.so:qcom
+system/lib/libacdbdata.so:asus
+system/lib/libacdbloader.so:qcom
+system/vendor/lib/libadreno_utils.so:qcom
+system/lib/libaudcal.so:qcom
+system/lib/libaudioalsa.so:qcom
+system/vendor/lib/libc2d30-a3xx.so:qcom
+system/vendor/lib/libc2d30.so:qcom
+system/lib/libchromatix_ov5693_common.so:qcom
+system/lib/libchromatix_ov5693_default_video.so:qcom
+system/lib/libchromatix_ov5693_preview.so:qcom
+system/lib/libconfigdb.so:qcom
+system/lib/libcsd-client.so:qcom
+system/lib/libdiag.so:qcom
+system/vendor/lib/libdrmdecrypt.so:qcom
+system/lib/libdrmdiag.so:qcom
+system/lib/libdrmfs.so:qcom
+system/lib/libdrmtime.so:qcom
+system/lib/libdsi_netctrl.so:qcom
+system/lib/libdsprofile.so:qcom
+system/lib/libdss.so:qcom
+system/lib/libdsucsd.so:qcom
+system/lib/libdsutils.so:qcom
+system/vendor/lib/libgemini.so:qcom
+system/vendor/lib/libgeofence.so:qcom
+system/vendor/lib/libimage-jpeg-enc-omx-comp.so:qcom
+system/vendor/lib/libimage-omx-common.so:qcom
+system/vendor/lib/libizat_core.so:qcom
+system/vendor/lib/libloc_api_v02.so:qcom
+system/vendor/lib/libloc_ds_api.so:qcom
+system/lib/libloc_api_v02.so:qcom
+system/lib/libloc_core.so:qcom
+system/lib/libmm-abl.so:qcom
+system/lib/libmm-abl-oem.so:qcom
+system/lib/libmm-color-convertor.so:qcom
+system/vendor/lib/libmmcamera2_iface_modules.so:qcom
+system/vendor/lib/libmmcamera2_imglib_modules.so:qcom
+system/vendor/lib/libmmcamera2_isp_modules.so:qcom
+system/vendor/lib/libmmcamera2_pproc_modules.so:qcom
+system/vendor/lib/libmmcamera2_sensor_modules.so:qcom
+system/lib/libmmcamera2_stats_algorithm.so:qcom
+system/vendor/lib/libmmcamera2_stats_modules.so:qcom
+system/vendor/lib/libmmcamera_faceproc.so:qcom
+system/lib/libmmcamera_image_stab.so:qcom
+system/lib/libmmcamera_mi1040.so:qcom
+system/lib/libmmcamera_ov5693.so:qcom
+system/vendor/lib/libmmipl.so:qcom
+system/vendor/lib/libmmjpeg.so:qcom
+system/vendor/lib/libmmqjpeg_codec.so:qcom
+system/vendor/lib/libmmstillomx.so:qcom
+system/lib/libnetmgr.so:qcom
+system/vendor/lib/liboemcamera.so:qcom
+system/lib/liboemcrypto.so:qcom
+system/vendor/lib/librs_adreno_sha1.so:qcom
+system/vendor/lib/librs_adreno.so:qcom
+system/lib/libqcci_legacy.so:qcom
+system/lib/libqdi.so:qcom
+system/lib/libqdp.so:qcom
+system/lib/libqmi.so:qcom
+system/lib/libqmi_cci.so:qcom
+system/lib/libqmi_client_qmux.so:qcom
+system/lib/libqmi_common_so.so:qcom
+system/lib/libqmi_csi.so:qcom
+system/lib/libqmi_csvt_srvc.so:qcom
+system/lib/libqmi_encdec.so:qcom
+system/lib/libqmiservices.so:qcom
+system/vendor/lib/libqomx_jpegenc.so:qcom
+system/lib/libril-qc-qmi-1.so:qcom
+system/lib/libril-qcril-hook-oem.so:qcom
+system/lib/libsensor1.so:qcom
+system/lib/libsensor_user_cal.so:qcom
+system/lib/libstagefright_hdcp.so:qcom
+system/bin/mm-pp-daemon:qcom
+system/bin/mm-qcamera-daemon:qcom
+system/bin/mm-qjpeg-enc-test:qcom
+system/bin/mm-qomx-ienc-test:qcom
+system/bin/mpdecision:qcom
+system/bin/netmgrd:qcom
+system/bin/nl_listener:qcom
+system/bin/port-bridge:qcom
+system/vendor/firmware/q6.b00:qcom
+system/vendor/firmware/q6.b01:qcom
+system/vendor/firmware/q6.b03:qcom
+system/vendor/firmware/q6.b04:qcom
+system/vendor/firmware/q6.b05:qcom
+system/vendor/firmware/q6.b06:qcom
+system/vendor/firmware/q6.mdt:qcom
+system/bin/qcks:qcom
+fake_packages/qcom_8x64_gpu_libs-timestamp:qcom
+system/bin/qmuxd:qcom
+system/bin/qseecomd:qcom
+system/bin/radish:qcom
+system/bin/rmt_storage:qcom
+system/lib/hw/flp.msm8960.so:qcom
+system/lib/hw/sensors.msm8960.so:qcom
+system/bin/sensors.qcom:qcom
+system/bin/thermald:qcom
+system/vendor/firmware/tzapps.b00:qcom
+system/vendor/firmware/tzapps.b01:qcom
+system/vendor/firmware/tzapps.b02:qcom
+system/vendor/firmware/tzapps.b03:qcom
+system/vendor/firmware/tzapps.mdt:qcom
+system/bin/usbhub:qcom
+system/bin/usbhub_init:qcom
+system/etc/firmware/vidc.b00:qcom
+system/etc/firmware/vidc.b01:qcom
+system/etc/firmware/vidc.b02:qcom
+system/etc/firmware/vidc.b03:qcom
+system/etc/firmware/vidc.mdt:qcom
+system/etc/firmware/vidc_1080p.fw:qcom
+system/etc/firmware/vidcfw.elf:qcom
+system/vendor/firmware/wcnss.b00:qcom
+system/vendor/firmware/wcnss.b01:qcom
+system/vendor/firmware/wcnss.b02:qcom
+system/vendor/firmware/wcnss.b04:qcom
+system/vendor/firmware/wcnss.b05:qcom
+system/vendor/firmware/wcnss.mdt:qcom
+system/vendor/firmware/a300_pfp.fw:qcom
+system/vendor/firmware/a300_pm4.fw:qcom
+system/etc/debugger.conf:asus
+system/lib/egl/eglsubAndroid.so:qcom
+system/vendor/lib/libC2D2.so:qcom
+system/lib/egl/libEGL_adreno200.so:qcom
+system/lib/egl/libGLESv1_CM_adreno200.so:qcom
+system/lib/egl/libGLESv2_adreno200.so:qcom
+system/lib/libc2d2_a3xx.so:qcom
+system/lib/libdebugger_jni.so:asus
+system/vendor/lib/libgsl.so:qcom
+system/vendor/lib/libllvm-qcom.so:qcom
+system/lib/egl/libq3dtools_adreno200.so:qcom
+system/vendor/lib/libsc-a3xx.so:qcom
+system/lib/libgeofence.so:qcom
+system/lib/libidl.so:qcom
+system/vendor/lib/libmmcamera2_c2d_module.so:qcom
+system/vendor/lib/libmmcamera2_cpp_module.so:qcom
+system/vendor/lib/libmmcamera2_vpe_module.so:qcom
+system/vendor/lib/libmmcamera2_wnr_module.so:qcom
+system/vendor/lib/libmmcamera_imglib.so:qcom
+system/lib/libsensor_reg.so:qcom
+system/lib/libxml.so:qcom