diff --git a/AndroidProducts.mk b/AndroidProducts.mk new file mode 100644 index 0000000..42fc949 --- /dev/null +++ b/AndroidProducts.mk @@ -0,0 +1,17 @@ +# +# 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 diff --git a/BoardConfig.mk b/BoardConfig.mk new file mode 100644 index 0000000..a89d2de --- /dev/null +++ b/BoardConfig.mk @@ -0,0 +1,30 @@ +# +# 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. +# + +TARGET_BOOTLOADER_BOARD_NAME := deb +TARGET_BOOTLOADER_NAME := deb +TARGET_BOARD_INFO_FILE := device/asus/deb/board-info.txt + +BOARD_LIB_DUMPSTATE := libdumpstate.deb + +# TARGET_RECOVERY_UI_LIB := librecovery_ui_deb + +TARGET_RELEASETOOLS_EXTENSIONS := device/asus/deb + +TARGET_RECOVERY_FSTAB = device/asus/deb/recovery.fstab + +-include vendor/asus/deb/BoardConfigVendor.mk +include device/asus/flo/BoardConfigCommon.mk diff --git a/CleanSpec.mk b/CleanSpec.mk new file mode 100644 index 0000000..2e761b3 --- /dev/null +++ b/CleanSpec.mk @@ -0,0 +1,48 @@ +# 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/*) diff --git a/aosp_deb.mk b/aosp_deb.mk new file mode 100644 index 0000000..6845af7 --- /dev/null +++ b/aosp_deb.mk @@ -0,0 +1,31 @@ +# +# 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 hardware-specific part of the product configuration +$(call inherit-product, device/asus/deb/device.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 := AOSP on Deb +PRODUCT_MANUFACTURER := ASUS +PRODUCT_RESTRICT_VENDOR_FILES := true diff --git a/board-info.txt b/board-info.txt new file mode 100644 index 0000000..c4ef752 --- /dev/null +++ b/board-info.txt @@ -0,0 +1 @@ +require board=msm8960|deb diff --git a/device.mk b/device.mk new file mode 100644 index 0000000..47b0936 --- /dev/null +++ b/device.mk @@ -0,0 +1,50 @@ +# +# 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. +# + +# rild +PRODUCT_PACKAGES := \ + rild \ + BasicSmsReceiver + +PRODUCT_COPY_FILES := \ + device/asus/deb/fstab.deb:root/fstab.flo \ + device/asus/deb/init.deb.rc:root/init.flo.rc + +PRODUCT_PACKAGES += \ + camera.deb + +#NFC +PRODUCT_PACKAGES += \ + nfc_nci.deb + +# Do not power down SIM card when modem is sent to Low Power Mode. +PRODUCT_PROPERTY_OVERRIDES += \ + persist.radio.apm_sim_not_pwdn=1 + +#Stop rild if non 3G SKU +PRODUCT_PACKAGES += \ + init.qcom.class_main.sh + +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ + rild.libpath=/system/lib/libril-qc-qmi-1.so + +# the actual meat of the device-specific product definition +$(call inherit-product, device/asus/flo/device-common.mk) + +# inherit from the non-open-source side, if present +$(call inherit-product-if-exists, vendor/asus/deb/device-vendor.mk) + +DEVICE_PACKAGE_OVERLAYS := device/asus/deb/overlay 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..f022421 --- /dev/null +++ b/dumpstate/dumpstate.c @@ -0,0 +1,35 @@ +/* + * 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 + +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(); +}; diff --git a/fstab.deb b/fstab.deb new file mode 100644 index 0000000..84cc7d0 --- /dev/null +++ b/fstab.deb @@ -0,0 +1,13 @@ +# Android fstab file. +# +# The filesystem that contains the filesystem checker binary (typically /system) cannot +# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK + +/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,barrier=1 wait +/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 noatime,nosuid,nodev,barrier=1,data=ordered wait,check +/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc wait,check,encryptable=/dev/block/platform/msm_sdcc.1/by-name/metadata +/dev/block/platform/msm_sdcc.1/by-name/persist /persist ext4 nosuid,nodev,barrier=1,data=ordered,nodelalloc wait +/dev/block/platform/msm_sdcc.1/by-name/radio /firmware vfat ro,uid=1000,gid=1000,fmask=0337,dmask=0227,iocharset=iso8859-1,shortname=mixed,errors=remount-ro wait +/dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/misc /misc emmc defaults defaults diff --git a/init.deb.rc b/init.deb.rc new file mode 100644 index 0000000..32eb036 --- /dev/null +++ b/init.deb.rc @@ -0,0 +1,461 @@ +# +# Copyright 2012 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +import init.flo.usb.rc + +on early-init + mount debugfs debugfs /sys/kernel/debug + symlink /data/tombstones /tombstones + +on init + # See storage config details at http://source.android.com/tech/storage/ + mkdir /mnt/shell/emulated 0700 shell shell + mkdir /storage/emulated 0555 root root + mkdir /storage/emulated/legacy 0555 root root + + export EXTERNAL_STORAGE /storage/emulated/legacy + export EMULATED_STORAGE_SOURCE /mnt/shell/emulated + export EMULATED_STORAGE_TARGET /storage/emulated + + # Support legacy paths + symlink /storage/emulated/legacy /sdcard + symlink /storage/emulated/legacy /mnt/sdcard + symlink /storage/emulated/legacy /storage/sdcard0 + +on init + # Set permissions for persist partition + mkdir /persist 0771 system system + mkdir /firmware 0771 system system + +on fs + mount_all ./fstab.flo + setprop ro.crypto.fuse_sdcard true + write /sys/kernel/boot_adsp/boot 1 + +on early-boot + # set RLIMIT_MEMLOCK to 64MB + setrlimit 8 67108864 67108864 + +on boot + #Create QMUX deamon socket area + mkdir /dev/socket/qmux_radio 0770 radio radio + chmod 2770 /dev/socket/qmux_radio + mkdir /dev/socket/qmux_audio 0770 media audio + chmod 2770 /dev/socket/qmux_audio + mkdir /dev/socket/qmux_bluetooth 0770 bluetooth net_bt_stack + chmod 2770 /dev/socket/qmux_bluetooth + mkdir /dev/socket/qmux_gps 0770 gps gps + chmod 2770 /dev/socket/qmux_gps + + # Allow QMUX daemon to assign port open wait time + chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait + + #Remove SUID bit for iproute2 ip tool + chmod 0755 /system/bin/ip + + #port-bridge + chmod 0660 /dev/smd0 + chown system system /dev/smd0 + + chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state + + # create symlink for fb1 as HDMI + symlink /dev/graphics/fb1 /dev/graphics/hdmi + + # Remove write permissions to video related nodes + chmod 0664 /sys/devices/virtual/graphics/fb1/hpd + chmod 0664 /sys/devices/virtual/graphics/fb1/video_mode + chmod 0664 /sys/devices/virtual/graphics/fb1/format_3d + + # Change owner and group for media server and surface flinger + chown system system /sys/devices/virtual/graphics/fb1/format_3d + chown system system /sys/devices/virtual/graphics/fb1/hpd + + #For bridgemgr daemon to inform the USB driver of the correct transport + chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport + + chmod 660 /dev/rtc0 + chown system system /dev/rtc0 + + chown root system /proc/net/ip_conntrack + + # Enable DEBUG_SUSPEND, DEBUG_EXIT_SUSPEND, and DEBUG_WAKEUP + write /sys/module/wakelock/parameters/debug_mask 7 + + #To allow interfaces to get v6 address when tethering is enabled + write /proc/sys/net/ipv6/conf/rmnet0/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet1/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet2/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet3/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet4/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet5/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet6/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet7/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio0/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio1/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio2/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio3/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio4/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio5/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio6/accept_ra 2 + write /proc/sys/net/ipv6/conf/rmnet_sdio7/accept_ra 2 + + +# NFC: create data/nfc for nv storage + mkdir /data/nfc 770 nfc nfc + mkdir /data/nfc/param 770 nfc nfc + +# Assign TCP buffer thresholds to be ceiling value of technology maximums +# Increased technology maximums should be reflected here. + write /proc/sys/net/core/rmem_max 1220608 + write /proc/sys/net/core/wmem_max 1220608 + +# msm specific files that need to be created on /data +on post-fs-data + mkdir /data/media 0770 media_rw media_rw + + # Create the directories used by the Wireless subsystem + mkdir /data/misc/wifi 0770 wifi wifi + mkdir /data/misc/wifi/sockets 0770 wifi wifi + mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi + mkdir /data/misc/dhcp 0770 dhcp dhcp + + chown system system /dev/wcnss_wlan + write 1 /sys/module/wcnss_ssr_8960/parameters/enable_riva_ssr + + mkdir /data/tombstones 0771 system system + mkdir /tombstones/modem 0771 system system + mkdir /tombstones/lpass 0771 system system + mkdir /tombstones/wcnss 0771 system system + mkdir /tombstones/dsps 0771 system system + mkdir /tombstones/mdm 0771 system system + +# to observe dnsmasq.leases file for dhcp information of soft ap. + chown dhcp system /data/misc/dhcp + + # Create directory used by audio subsystem + mkdir /data/misc/audio 0770 audio audio + + # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections + # We chown/chmod /persist again so because mount is run as root + defaults + chown system system /persist + chmod 0664 /sys/devices/platform/msm_sdcc.1/polling + chmod 0664 /sys/devices/platform/msm_sdcc.2/polling + chmod 0664 /sys/devices/platform/msm_sdcc.3/polling + chmod 0664 /sys/devices/platform/msm_sdcc.4/polling + + # Chown polling nodes as needed from UI running on system server + chown system system /sys/devices/platform/msm_sdcc.1/polling + chown system system /sys/devices/platform/msm_sdcc.2/polling + chown system system /sys/devices/platform/msm_sdcc.3/polling + chown system system /sys/devices/platform/msm_sdcc.4/polling + + #Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant + mkdir /data/system 0775 system system + #symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant + + #Create directory used by sensor subsystem(dsps) + mkdir /data/system/sensors + chmod 665 /data/system/sensors + write /data/system/sensors/settings 1 + chmod 660 /data/system/sensors/settings + + # AKM setting data + mkdir /data/misc/sensors + chmod 775 /data/misc/sensors + + mkdir /persist/sensors + chmod 775 /persist/sensors + + # Modify from 777 (for camera calibration) to 775 + chmod 775 /persist/camera_calibration + + #Provide the access to hostapd.conf only to root and group + chmod 0660 /data/hostapd/hostapd.conf + + # Enable the setgid bit on the directory + mkdir /data/audio 0770 media audio + chmod 2770 /data/audio + + # kickstart + mkdir /data/qcks 0770 system system + chown system /dev/block/platform/msm_sdcc.1/by-name + + setprop vold.post_fs_data_done 1 + + rm /data/local/tmp/adreno_config.txt + + # White LED + chown system system /sys/class/leds/white/device/lock + chown system system /sys/class/leds/white/brightness + chown system system /sys/class/leds/white/device/grpfreq + chown system system /sys/class/leds/white/device/grppwm + chown system system /sys/class/leds/white/device/blink + + # communicate with mpdecision and thermald + mkdir /dev/socket/mpdecision 0770 system system + chmod 2770 /dev/socket/mpdecision + + # adjust vibrator amplitude + write /sys/class/timed_output/vibrator/amp 70 + + # Enable Power modes and set the CPU Freq Sampling rates + write /sys/module/rpm_resources/enable_low_power/L2_cache 1 + write /sys/module/rpm_resources/enable_low_power/pxo 1 + write /sys/module/rpm_resources/enable_low_power/vdd_dig 1 + write /sys/module/rpm_resources/enable_low_power/vdd_mem 1 + write /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu2/power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu3/power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled 1 + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "ondemand" + write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "ondemand" + write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "ondemand" + write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor "ondemand" + write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold 90 + write /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate 50000 + write /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy 1 + write /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor 4 + write /sys/devices/system/cpu/cpufreq/ondemand/down_differential 10 + write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core 60 + write /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core 3 + write /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq 918000 + write /sys/devices/system/cpu/cpufreq/ondemand/sync_freq 1026000 + write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load 80 + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 384000 + write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 384000 + write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 384000 + write /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 384000 + write /sys/devices/system/cpu/cpu1/online 1 + write /sys/devices/system/cpu/cpu2/online 1 + write /sys/devices/system/cpu/cpu3/online 1 + +on charger + # Enable Power modes and set the CPU Freq Sampling rates + write /sys/module/rpm_resources/enable_low_power/L2_cache 1 + write /sys/module/rpm_resources/enable_low_power/pxo 1 + write /sys/module/rpm_resources/enable_low_power/vdd_dig 1 + write /sys/module/rpm_resources/enable_low_power/vdd_mem 1 + write /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu2/power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu3/power_collapse/suspend_enabled 1 + write /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled 1 + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "powersave" + write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "powersave" + write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "powersave" + write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor "powersave" + write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold 90 + write /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate 50000 + write /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy 1 + write /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor 4 + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 384000 + write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 384000 + write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 384000 + write /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 384000 + +on property:init.svc.wpa_supplicant=stopped + stop dhcpcd + +service irsc_util /system/bin/logwrapper /system/bin/irsc_util "/etc/sec_config" + class main + user root + oneshot + +service rmt_storage /system/bin/rmt_storage + class main + user root + +service hciattach /system/bin/sh /system/etc/init.flo.bt.sh + class late_start + user bluetooth + group qcom_oncrpc bluetooth net_bt_admin system net_bt_stack + disabled + oneshot + +on property:bluetooth.hciattach=true + start hciattach + +on property:bluetooth.hciattach=false + setprop bluetooth.status off + +service bridgemgrd /system/bin/bridgemgrd + class main + user radio + group radio + +# QMUX must be in multiple groups to support external process connections +service qmuxd /system/bin/qmuxd + class main + user radio + group radio audio bluetooth gps net_bt_stack + +service ks_checker /system/bin/sh /system/etc/kickstart_checker.sh + class core + oneshot + +service kickstart /system/bin/qcks -i /firmware/image/ -r /data/tombstones/mdm/ + class core + user system + group system + disabled + oneshot + +service asus-dbug-d /data/data/com.asus.debugger/files/asus-debugger-d + class late_start + disabled + +on property:gsm.radio.kickstart=on + start kickstart + setprop gsm.radio.kickstart running + +on property:gsm.radio.kickstart=off + stop kickstart + +on property:ril.asus_debugger_running=1 + start asus-dbug-d + +service netmgrd /system/bin/netmgrd + class main + +service sensors /system/bin/sensors.qcom + class late_start + user root + group root + +service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \ + -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ + -I/system/etc/wifi/wpa_supplicant_overlay.conf \ + -e/data/misc/wifi/entropy.bin + # we will start as root and wpa_supplicant will switch to user wifi + # after setting up the capabilities required for WEXT + # user wifi + # group wifi inet keystore + class main + socket wpa_wlan0 dgram 660 wifi wifi + disabled + oneshot + +service p2p_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \ + -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \ + -I/system/etc/wifi/p2p_supplicant_overlay.conf -N \ + -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ + -I/system/etc/wifi/wpa_supplicant_overlay.conf \ + -e/data/misc/wifi/entropy.bin -puse_p2p_group_interface=1 +# we will start as root and wpa_supplicant will switch to user wifi +# after setting up the capabilities required for WEXT +# user wifi +# group wifi inet keystore + class main + socket wpa_wlan0 dgram 660 wifi wifi + disabled + oneshot + +service dhcpcd_wlan0 /system/bin/dhcpcd -aABDKL + class main + disabled + oneshot + +service dhcpcd_p2p /system/bin/dhcpcd -aABKL + class main + disabled + oneshot + +service iprenew_wlan0 /system/bin/dhcpcd -n + class main + disabled + oneshot + +service iprenew_p2p /system/bin/dhcpcd -n + class main + disabled + oneshot + +service dhcpcd_bt-pan /system/bin/dhcpcd -ABKL + class main + disabled + oneshot + +service iprenew_bt-pan /system/bin/dhcpcd -n + class main + disabled + oneshot + +on property:ro.data.large_tcp_window_size=true + # Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB) + write /proc/sys/net/ipv4/tcp_adv_win_scale 1 + +service charger /charger + class charger + +# virtual sdcard daemon running as media_rw (1023) +service sdcard /system/bin/sdcard /data/media /mnt/shell/emulated 1023 1023 + class late_start + +# Binding fuse mount point to /storage/emulated/legacy +on property:init.svc.sdcard=running + wait /mnt/shell/emulated/0 + mount none /mnt/shell/emulated/0 /storage/emulated/legacy bind + +service thermald /system/bin/thermald + class main + +service mpdecision /system/bin/mpdecision --no_sleep --avg_comp + class main + +service ppd /system/bin/mm-pp-daemon -s + class late_start + user system + socket pps stream 0660 system system graphics + group system graphics + +service qcamerasvr /system/bin/mm-qcamera-daemon + class late_start + user camera + group camera system inet input + +service wcnss_init /system/bin/sh /system/etc/init.flo.wifi.sh + class main + user system + group system wifi + oneshot + +service bdAddrLoader /system/bin/bdAddrLoader -f /persist/bluetooth/.bdaddr -h -x + class main + user bluetooth + group system bluetooth net_bt_stack + oneshot + +# bugreport is triggered by holding down volume down, volume up and power +service bugreport /system/bin/dumpstate -d -p -B \ + -o /data/data/com.android.shell/files/bugreports/bugreport + class main + disabled + oneshot + keycodes 114 115 116 + +service qseecomd /system/bin/qseecomd + class late_start + user system + group system + +service diag_mdlog /system/bin/logwrapper /system/bin/diag_mdlog -s 100 + class late_start + disabled + +on property:init.svc.surfaceflinger=stopped + stop ppd diff --git a/kernel-headers/media/msm_cam_sensor.h b/kernel-headers/media/msm_cam_sensor.h new file mode 100644 index 0000000..1a76179 --- /dev/null +++ b/kernel-headers/media/msm_cam_sensor.h @@ -0,0 +1,569 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#include +#include +#include +/* 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; + } cfg; +}; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +struct csid_cfg_data { + enum csid_cfg_type_t cfgtype; + union { + uint32_t csid_version; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + struct msm_camera_csid_params *csid_params; + } cfg; +}; +struct csiphy_cfg_data { +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + enum csiphy_cfg_type_t cfgtype; + union { + struct msm_camera_csiphy_params *csiphy_params; + struct msm_camera_csi_lane_params *csi_lane_params; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + } cfg; +}; +enum eeprom_cfg_type_t { + CFG_EEPROM_GET_INFO, +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + 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; +}; +struct eeprom_read_t { +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + uint8_t *dbuffer; + uint16_t num_bytes; +}; +struct eeprom_write_t { +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + uint8_t *dbuffer; + uint16_t num_bytes; +}; +struct msm_eeprom_cfg_data { +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + enum eeprom_cfg_type_t cfgtype; + uint8_t is_supported; + union { + char eeprom_name[MAX_SENSOR_NAME]; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + struct eeprom_get_t get_data; + struct eeprom_read_t read_data; + struct eeprom_write_t write_data; + } cfg; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +}; +enum msm_sensor_cfg_type_t { + CFG_SET_SLAVE_INFO, + CFG_WRITE_I2C_ARRAY, +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + CFG_WRITE_I2C_SEQ_ARRAY, + CFG_POWER_UP, + CFG_POWER_DOWN, + CFG_SET_STOP_STREAM_SETTING, +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + CFG_GET_SENSOR_INFO, + CFG_GET_SENSOR_INIT_PARAMS, + CFG_SET_INIT_SETTING, + CFG_SET_RESOLUTION, +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + CFG_SET_STOP_STREAM, + CFG_SET_START_STREAM, + CFG_SET_EFFECT, + CFG_SET_WB, +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + CFG_SET_EXPOSURE_COMPENSATION, +}; +enum msm_actuator_cfg_type_t { + CFG_GET_ACTUATOR_INFO, +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + CFG_SET_ACTUATOR_INFO, + CFG_SET_DEFAULT_FOCUS, + CFG_MOVE_FOCUS, + CFG_ACTUATOR_POWERDOWN, +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +}; +enum actuator_type { + ACTUATOR_VCM, + ACTUATOR_PIEZO, +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +}; +enum msm_actuator_data_type { + MSM_ACTUATOR_BYTE_DATA = 1, + MSM_ACTUATOR_WORD_DATA, +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +}; +enum msm_actuator_addr_type { + MSM_ACTUATOR_BYTE_ADDR = 1, + MSM_ACTUATOR_WORD_ADDR, +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +}; +struct reg_settings_t { + uint16_t reg_addr; + uint16_t reg_data; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +}; +struct region_params_t { + uint16_t step_bound[2]; + uint16_t code_per_step; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +}; +struct damping_params_t { + uint32_t damping_step; + uint32_t damping_delay; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + uint32_t hw_params; +}; +struct msm_actuator_move_params_t { + int8_t dir; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + int8_t sign_dir; + int16_t dest_step_pos; + int32_t num_steps; + struct damping_params_t *ringing_params; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +}; +struct msm_actuator_tuning_params_t { + int16_t initial_code; + uint16_t pwd_step; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + uint16_t region_size; + uint32_t total_steps; + struct region_params_t *region_params; +}; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +struct msm_actuator_params_t { + enum actuator_type act_type; + uint8_t reg_tbl_size; + uint16_t data_size; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + 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; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + struct msm_actuator_reg_params_t *reg_tbl_params; + struct reg_settings_t *init_settings; +}; +struct msm_actuator_set_info_t { +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + struct msm_actuator_params_t actuator_params; + struct msm_actuator_tuning_params_t af_tuning_params; +}; +struct msm_actuator_get_info_t { +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + uint32_t focal_length_num; + uint32_t focal_length_den; + uint32_t f_number_num; + uint32_t f_number_den; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + uint32_t f_pix_num; + uint32_t f_pix_den; + uint32_t total_f_dist_num; + uint32_t total_f_dist_den; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + uint32_t hor_view_angle_num; + uint32_t hor_view_angle_den; + uint32_t ver_view_angle_num; + uint32_t ver_view_angle_den; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +}; +enum af_camera_name { + ACTUATOR_MAIN_CAM_0, + ACTUATOR_MAIN_CAM_1, +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + ACTUATOR_MAIN_CAM_2, + ACTUATOR_MAIN_CAM_3, + ACTUATOR_MAIN_CAM_4, + ACTUATOR_MAIN_CAM_5, +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + ACTUATOR_WEB_CAM_0, + ACTUATOR_WEB_CAM_1, + ACTUATOR_WEB_CAM_2, +}; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define CAMERA_EFFECT_OFF 0 +#define CAMERA_EFFECT_MONO 1 +#define CAMERA_EFFECT_NEGATIVE 2 +#define CAMERA_EFFECT_SOLARIZE 3 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define CAMERA_EFFECT_SEPIA 4 +#define CAMERA_EFFECT_POSTERIZE 5 +#define CAMERA_EFFECT_WHITEBOARD 6 +#define CAMERA_EFFECT_BLACKBOARD 7 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define CAMERA_EFFECT_AQUA 8 +#define CAMERA_EFFECT_EMBOSS 9 +#define CAMERA_EFFECT_SKETCH 10 +#define CAMERA_EFFECT_NEON 11 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define CAMERA_EFFECT_MAX 12 +#define YUV_CAMERA_WB_AUTO 0 +#define YUV_CAMERA_WB_CUSTOM 1 +#define YUV_CAMERA_WB_INCANDESCENT 2 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define YUV_CAMERA_WB_FLUORESCENT 3 +#define YUV_CAMERA_WB_DAYLIGHT 4 +#define YUV_CAMERA_WB_CLOUDY_DAYLIGHT 5 +#define YUV_CAMERA_WB_TWILIGHT 6 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define YUV_CAMERA_WB_SHADE 7 +#define CAMERA_EXPOSURE_COMPENSATION_LV0 12 +#define CAMERA_EXPOSURE_COMPENSATION_LV1 6 +#define CAMERA_EXPOSURE_COMPENSATION_LV2 0 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define CAMERA_EXPOSURE_COMPENSATION_LV3 -6 +#define CAMERA_EXPOSURE_COMPENSATION_LV4 -12 +struct msm_actuator_cfg_data { + int cfgtype; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + uint8_t is_af_supported; + union { + struct msm_actuator_move_params_t move; + struct msm_actuator_set_info_t set_info; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + 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; + uint16_t reg_addr; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + uint16_t hw_shift; + uint16_t data_shift; +}; +enum msm_camera_led_config_t { +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + MSM_CAMERA_LED_OFF, + MSM_CAMERA_LED_LOW, + MSM_CAMERA_LED_HIGH, + MSM_CAMERA_LED_INIT, +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + MSM_CAMERA_LED_RELEASE, +}; +struct msm_camera_led_cfg_t { + enum msm_camera_led_config_t cfgtype; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +}; +#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) +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#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) +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#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') +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + 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 +#include +/* 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 +#include +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#include +#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 +#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 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#include +#include +#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 100755 index 0000000..fe56e25 --- /dev/null +++ b/original-kernel-headers/media/msm_cam_sensor.h @@ -0,0 +1,535 @@ +#ifndef _UAPI_MEDIA_MSM_CAM_SENSOR_H +#define _UAPI_MEDIA_MSM_CAM_SENSOR_H + +#ifdef MSM_CAMERA_BIONIC +#include +#endif +#include +#include +#include + +#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; + } 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_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_DAYLIGHT 4 +#define YUV_CAMERA_WB_CLOUDY_DAYLIGHT 5 +#define YUV_CAMERA_WB_TWILIGHT 6 +#define YUV_CAMERA_WB_SHADE 7 + +#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 + +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 +#include + +#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 +#include +#include + +#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 + +#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 +#endif +#include +#include + +/* 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/overlay/frameworks/base/core/res/res/values-af/config.xml b/overlay/frameworks/base/core/res/res/values-af/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-af/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-am/config.xml b/overlay/frameworks/base/core/res/res/values-am/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-am/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-ar/config.xml b/overlay/frameworks/base/core/res/res/values-ar/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-ar/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-be/config.xml b/overlay/frameworks/base/core/res/res/values-be/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-be/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-bg/config.xml b/overlay/frameworks/base/core/res/res/values-bg/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-bg/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-ca/config.xml b/overlay/frameworks/base/core/res/res/values-ca/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-ca/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-cs/config.xml b/overlay/frameworks/base/core/res/res/values-cs/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-cs/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-da/config.xml b/overlay/frameworks/base/core/res/res/values-da/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-da/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-de/config.xml b/overlay/frameworks/base/core/res/res/values-de/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-de/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-el/config.xml b/overlay/frameworks/base/core/res/res/values-el/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-el/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-en-rGB/config.xml b/overlay/frameworks/base/core/res/res/values-en-rGB/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-en-rGB/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-es-rUS/config.xml b/overlay/frameworks/base/core/res/res/values-es-rUS/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-es-rUS/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-es/config.xml b/overlay/frameworks/base/core/res/res/values-es/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-es/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-et/config.xml b/overlay/frameworks/base/core/res/res/values-et/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-et/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-fa/config.xml b/overlay/frameworks/base/core/res/res/values-fa/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-fa/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-fi/config.xml b/overlay/frameworks/base/core/res/res/values-fi/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-fi/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-fr/config.xml b/overlay/frameworks/base/core/res/res/values-fr/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-fr/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-hi/config.xml b/overlay/frameworks/base/core/res/res/values-hi/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-hi/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-hr/config.xml b/overlay/frameworks/base/core/res/res/values-hr/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-hr/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-hu/config.xml b/overlay/frameworks/base/core/res/res/values-hu/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-hu/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-in/config.xml b/overlay/frameworks/base/core/res/res/values-in/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-in/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-it/config.xml b/overlay/frameworks/base/core/res/res/values-it/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-it/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-iw/config.xml b/overlay/frameworks/base/core/res/res/values-iw/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-iw/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-ja/config.xml b/overlay/frameworks/base/core/res/res/values-ja/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-ja/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-ko/config.xml b/overlay/frameworks/base/core/res/res/values-ko/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-ko/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-lt/config.xml b/overlay/frameworks/base/core/res/res/values-lt/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-lt/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-lv/config.xml b/overlay/frameworks/base/core/res/res/values-lv/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-lv/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-mcc208-mnc01/config.xml b/overlay/frameworks/base/core/res/res/values-mcc208-mnc01/config.xml new file mode 100644 index 0000000..760fdf9 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-mcc208-mnc01/config.xml @@ -0,0 +1,38 @@ + + + + + + + + + + 1 + 4 + + + + Orange Internet,orange.fr,,,orange,orange,,,,,208,01,,DUN" + + diff --git a/overlay/frameworks/base/core/res/res/values-mcc214-mnc01/config.xml b/overlay/frameworks/base/core/res/res/values-mcc214-mnc01/config.xml new file mode 100644 index 0000000..a38a544 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-mcc214-mnc01/config.xml @@ -0,0 +1,38 @@ + + + + + + + + + + 1 + 4 + + + + INTERNET,airtelnet.es,,,vodafone,vodafone,,,,,214,01,,DUN" + + diff --git a/overlay/frameworks/base/core/res/res/values-mcc214-mnc03/config.xml b/overlay/frameworks/base/core/res/res/values-mcc214-mnc03/config.xml new file mode 100644 index 0000000..68acd06 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-mcc214-mnc03/config.xml @@ -0,0 +1,38 @@ + + + + + + + + + + 1 + 4 + + + + Orange Internet PC,internet,,,orange,orange,,,,,214,03,,DUN" + + diff --git a/overlay/frameworks/base/core/res/res/values-ms/config.xml b/overlay/frameworks/base/core/res/res/values-ms/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-ms/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-nb/config.xml b/overlay/frameworks/base/core/res/res/values-nb/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-nb/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-nl/config.xml b/overlay/frameworks/base/core/res/res/values-nl/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-nl/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-pl/config.xml b/overlay/frameworks/base/core/res/res/values-pl/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-pl/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-pt-rPT/config.xml b/overlay/frameworks/base/core/res/res/values-pt-rPT/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-pt-rPT/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-pt/config.xml b/overlay/frameworks/base/core/res/res/values-pt/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-pt/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-ro/config.xml b/overlay/frameworks/base/core/res/res/values-ro/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-ro/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-ru/config.xml b/overlay/frameworks/base/core/res/res/values-ru/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-ru/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-sk/config.xml b/overlay/frameworks/base/core/res/res/values-sk/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-sk/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-sl/config.xml b/overlay/frameworks/base/core/res/res/values-sl/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-sl/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-sr/config.xml b/overlay/frameworks/base/core/res/res/values-sr/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-sr/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-sv/config.xml b/overlay/frameworks/base/core/res/res/values-sv/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-sv/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-sw/config.xml b/overlay/frameworks/base/core/res/res/values-sw/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-sw/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-th/config.xml b/overlay/frameworks/base/core/res/res/values-th/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-th/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-tl/config.xml b/overlay/frameworks/base/core/res/res/values-tl/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-tl/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-tr/config.xml b/overlay/frameworks/base/core/res/res/values-tr/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-tr/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-uk/config.xml b/overlay/frameworks/base/core/res/res/values-uk/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-uk/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-vi/config.xml b/overlay/frameworks/base/core/res/res/values-vi/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-vi/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-zh-rCN/config.xml b/overlay/frameworks/base/core/res/res/values-zh-rCN/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-zh-rCN/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-zh-rTW/config.xml b/overlay/frameworks/base/core/res/res/values-zh-rTW/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-zh-rTW/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values-zu/config.xml b/overlay/frameworks/base/core/res/res/values-zu/config.xml new file mode 100644 index 0000000..c9598c4 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values-zu/config.xml @@ -0,0 +1,25 @@ + + + + + + "/dev/bus/usb/001" + + diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml new file mode 100644 index 0000000..c849fcd --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -0,0 +1,266 @@ + + + + + + + false + + + #ffffffff + + + 1000 + + + 9000 + + + true + + + true + + + + 5 + 15 + 50 + 100 + 200 + 400 + 1000 + 2000 + 3000 + 5000 + 10000 + 30000 + + + + + 11 + 18 + 27 + 38 + 48 + 55 + 64 + 74 + 120 + 164 + 225 + 255 + 255 + + + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 5 + + + 87 + + + 5 + + + 9000 + + + + "usb\\d" + + + + + "wlan0" + "softap.*" + + + + + "bt-pan" + + + + + + 0 + 1 + 5 + 7 + + + + true + + + true + + + false + + + true + + + + + + + "wifi,1,1,1,-1,true" + "mobile,0,0,0,-1,true" + "mobile_mms,2,0,2,60000,true" + "mobile_supl,3,0,2,60000,true" + "mobile_dun,4,0,2,60000,true" + "mobile_hipri,5,0,3,60000,true" + "mobile_fota,10,0,2,60000,true" + "mobile_ims,11,0,2,60000,true" + "mobile_cbs,12,0,2,60000,true" + "bluetooth,7,7,2,-1,true" + + + + false + + + false + + + + + "1,1" + "0,1" + "7,1" + + + + + 0 + 7 + 10 + + + + + 7 + + + + + 5 + + + + + true + + + true + + + 600 + + false + + + + /dev/bus/usb/001 + + + + 6 + + true + + + 35mm + + + false + + + rmnet_usb0 + + + 8 + + + true + + diff --git a/overlay/frameworks/base/core/res/res/xml/power_profile.xml b/overlay/frameworks/base/core/res/res/xml/power_profile.xml new file mode 100644 index 0000000..2ddce57 --- /dev/null +++ b/overlay/frameworks/base/core/res/res/xml/power_profile.xml @@ -0,0 +1,76 @@ + + + + + 0 + 42.4 + 211.6 + 66.2 + 0.7 + 3.16 + 62.09 + 52.1 + 0.1 + 0.1 + 59.7 + 185.6 + + 122.68 + + + 1.7 + 2.4 + + + + 384000 + 486000 + 594000 + 702000 + 810000 + 918000 + 1026000 + 1134000 + 1242000 + 1350000 + 1458000 + 1512000 + + + 3.5 + 35.33 + + + 92.6 + 108.6 + 118.8 + 121.4 + 127.3 + 133.1 + 173.3 + 209.5 + 216.5 + 228.5 + 236.0 + 239.7 + + + 2100 + diff --git a/overlay/frameworks/base/core/res/res/xml/storage_list.xml b/overlay/frameworks/base/core/res/res/xml/storage_list.xml new file mode 100644 index 0000000..344fe1e --- /dev/null +++ b/overlay/frameworks/base/core/res/res/xml/storage_list.xml @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml new file mode 100644 index 0000000..4bb77d7 --- /dev/null +++ b/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml @@ -0,0 +1,26 @@ + + + + + 30000 + + true + + 87 + diff --git a/overlay/frameworks/base/packages/SystemUI/res/values/config.xml b/overlay/frameworks/base/packages/SystemUI/res/values/config.xml new file mode 100644 index 0000000..bf2577e --- /dev/null +++ b/overlay/frameworks/base/packages/SystemUI/res/values/config.xml @@ -0,0 +1,31 @@ + + + + + + + + true + + + 7 + + diff --git a/overlay/packages/apps/Launcher2/res/values/config.xml b/overlay/packages/apps/Launcher2/res/values/config.xml new file mode 100644 index 0000000..3b82809 --- /dev/null +++ b/overlay/packages/apps/Launcher2/res/values/config.xml @@ -0,0 +1,3 @@ + + true + diff --git a/overlay/packages/apps/Nfc/res/values/provisioning.xml b/overlay/packages/apps/Nfc/res/values/provisioning.xml new file mode 100644 index 0000000..1ca59e3 --- /dev/null +++ b/overlay/packages/apps/Nfc/res/values/provisioning.xml @@ -0,0 +1,28 @@ + + + + + + + true + + + + application/vnd.com.google.android.nfcprovision + + diff --git a/overlay/packages/apps/Settings/res/values/bools.xml b/overlay/packages/apps/Settings/res/values/bools.xml new file mode 100644 index 0000000..2538661 --- /dev/null +++ b/overlay/packages/apps/Settings/res/values/bools.xml @@ -0,0 +1,24 @@ + + + + + + true + + + true + + diff --git a/proprietary-blobs.txt b/proprietary-blobs.txt new file mode 100644 index 0000000..346671f --- /dev/null +++ b/proprietary-blobs.txt @@ -0,0 +1,200 @@ +# 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. + +# This file is generated by device/common/generate-blob-lists.sh - DO NOT EDIT + +/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-pp-daemon +/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/apns-conf.xml +/system/etc/DxHDCP.cfg +/system/etc/firmware/tzapps.b00 +/system/etc/firmware/tzapps.b01 +/system/etc/firmware/tzapps.b02 +/system/etc/firmware/tzapps.b03 +/system/etc/firmware/tzapps.mdt +/system/etc/firmware/vidc.b00 +/system/etc/firmware/vidc.b01 +/system/etc/firmware/vidc.b02 +/system/etc/firmware/vidc.b03 +/system/etc/firmware/vidc.mdt +/system/etc/firmware/vidcfw.elf +/system/etc/firmware/vidc_1080p.fw +/system/etc/firmware/wcd9310/wcd9310_anc.bin +/system/etc/firmware/wcd9310/wcd9310_mbhc.bin +/system/lib/egl/eglsubAndroid.so +/system/lib/egl/libEGL_adreno200.so +/system/lib/egl/libGLESv1_CM_adreno200.so +/system/lib/egl/libGLESv2_adreno200.so +/system/lib/egl/libq3dtools_adreno200.so +/system/lib/hw/camera.deb.so +/system/lib/hw/gps.msm8960.so +/system/lib/hw/sensors.msm8960.so +/system/lib/libacdbdata.so +/system/lib/libacdbloader.so +/system/lib/libAKM.so +/system/lib/libaudcal.so +/system/lib/libaudioalsa.so +/system/lib/libC2D2.so +/system/lib/libc2d2_a3xx.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/libgeofence.so +/system/lib/libgps.utils.so +/system/lib/libgsl.so +/system/lib/libI420colorconvert.so +/system/lib/libidl.so +/system/lib/libllvm-a3xx.so +/system/lib/libloc_adapter.so +/system/lib/libloc_api_v02.so +/system/lib/libloc_eng.so +/system/lib/libmm-abl-oem.so +/system/lib/libmm-abl.so +/system/lib/libmm-color-convertor.so +/system/lib/libmmcamera2_stats_algorithm.so +/system/lib/libmmcamera_image_stab.so +/system/lib/libmmcamera_interface.so +/system/lib/libmmcamera_mi1040.so +/system/lib/libmmcamera_ov5693.so +/system/lib/libmmjpeg_interface.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.so +/system/lib/libqmiservices.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/libqomx_core.so +/system/lib/libQSEEComAPI.so +/system/lib/libril-qc-qmi-1.so +/system/lib/libril-qcril-hook-oem.so +/system/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/bcm2079x-b5_firmware.ncd +/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/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/libimage-jpeg-enc-omx-comp.so +/system/vendor/lib/libimage-omx-common.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/recovery.fstab b/recovery.fstab new file mode 100644 index 0000000..b72959d --- /dev/null +++ b/recovery.fstab @@ -0,0 +1,18 @@ +/dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/misc /misc emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/radio /radio emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/sbl1 /sbl1 emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/sbl2 /sbl2 emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/sbl3 /sbl3 emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/tz /tz emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/rpm /rpm emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/aboot /aboot emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/sbl2b /sbl2b emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/sbl3b /sbl3b emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/tzb /tzb emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/rpmb /rpmb emmc defaults defaults +/dev/block/platform/msm_sdcc.1/by-name/abootb /abootb emmc defaults defaults diff --git a/recovery/Android.mk b/recovery/Android.mk new file mode 100644 index 0000000..53651dc --- /dev/null +++ b/recovery/Android.mk @@ -0,0 +1,13 @@ +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE_TAGS := eng +LOCAL_C_INCLUDES += bootable/recovery +LOCAL_SRC_FILES := recovery_ui.cpp + +# should match TARGET_RECOVERY_UI_LIB set in BoardConfig.mk +LOCAL_MODULE := librecovery_ui_deb + +include $(BUILD_STATIC_LIBRARY) + +include $(CLEAR_VARS) diff --git a/recovery/recovery_ui.cpp b/recovery/recovery_ui.cpp new file mode 100644 index 0000000..ba6bab0 --- /dev/null +++ b/recovery/recovery_ui.cpp @@ -0,0 +1,110 @@ +/* + * Copyright 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include + +#include "common.h" +#include "device.h" +#include "screen_ui.h" + +const char* HEADERS[] = { "Volume up/down to move highlight;", + "power button to select.", + "", + NULL }; + +const char* ITEMS[] = { "reboot system now", + "apply update from ADB", + "wipe data/factory reset", + "wipe cache partition", + NULL }; + +class DebUI : public ScreenRecoveryUI +{ +public: + DebUI() : + consecutive_power_keys(0) { + } + + virtual KeyAction CheckKey(int key) { + if (IsKeyPressed(KEY_POWER) && key == KEY_VOLUMEUP) { + return TOGGLE; + } + if (key == KEY_POWER) { + ++consecutive_power_keys; + if (consecutive_power_keys >= 7) { + return REBOOT; + } + } else { + consecutive_power_keys = 0; + } + return ENQUEUE; + } + +private: + int consecutive_power_keys; +}; + +class DebDevice : public Device +{ +public: + DebDevice() : + ui(new DebUI) { + } + + RecoveryUI* GetUI() { return ui; } + + int HandleMenuKey(int key_code, int visible) { + if (visible) { + switch (key_code) { + case KEY_DOWN: + case KEY_VOLUMEDOWN: + return kHighlightDown; + + case KEY_UP: + case KEY_VOLUMEUP: + return kHighlightUp; + + case KEY_POWER: + return kInvokeItem; + } + } + + return kNoAction; + } + + BuiltinAction InvokeMenuItem(int menu_position) { + switch (menu_position) { + case 0: return REBOOT; + case 1: return APPLY_ADB_SIDELOAD; + case 2: return WIPE_DATA; + case 3: return WIPE_CACHE; + default: return NO_ACTION; + } + } + + const char* const* GetMenuHeaders() { return HEADERS; } + const char* const* GetMenuItems() { return ITEMS; } + +private: + RecoveryUI* ui; +}; + +Device* make_device() { + return new DebDevice; +} diff --git a/releasetools.py b/releasetools.py new file mode 100644 index 0000000..ffb1baf --- /dev/null +++ b/releasetools.py @@ -0,0 +1,197 @@ +import common +import struct + +def FindRadio(zipfile): + try: + return zipfile.read("RADIO/radio.img") + except KeyError: + return None + + +def FullOTA_InstallEnd(info): + try: + bootloader_img = info.input_zip.read("RADIO/bootloader.img") + except KeyError: + print "no bootloader.img in target_files; skipping install" + else: + WriteBootloader(info, bootloader_img) + + radio_img = FindRadio(info.input_zip) + if radio_img: + WriteRadio(info, radio_img) + else: + print "no radio.img in target_files; skipping install" + + +def IncrementalOTA_VerifyEnd(info): + target_radio_img = FindRadio(info.target_zip) + source_radio_img = FindRadio(info.source_zip) + if not target_radio_img or not source_radio_img: return + if source_radio_img != target_radio_img: + info.script.CacheFreeSpaceCheck(len(source_radio_img)) + radio_type, radio_device = common.GetTypeAndDevice("/radio", info.info_dict) + info.script.PatchCheck("%s:%s:%d:%s:%d:%s" % ( + radio_type, radio_device, + len(source_radio_img), common.sha1(source_radio_img).hexdigest(), + len(target_radio_img), common.sha1(target_radio_img).hexdigest())) + + +def IncrementalOTA_InstallEnd(info): + try: + target_bootloader_img = info.target_zip.read("RADIO/bootloader.img") + try: + source_bootloader_img = info.source_zip.read("RADIO/bootloader.img") + except KeyError: + source_bootloader_img = None + + if source_bootloader_img == target_bootloader_img: + print "bootloader unchanged; skipping" + else: + WriteBootloader(info, target_bootloader_img) + except KeyError: + print "no bootloader.img in target target_files; skipping install" + + tf = FindRadio(info.target_zip) + if not tf: + # failed to read TARGET radio image: don't include any radio in update. + print "no radio.img in target target_files; skipping install" + else: + tf = common.File("radio.img", tf) + + sf = FindRadio(info.source_zip) + if not sf: + # failed to read SOURCE radio image: include the whole target + # radio image. + WriteRadio(info, tf.data) + else: + sf = common.File("radio.img", sf) + + if tf.sha1 == sf.sha1: + print "radio image unchanged; skipping" + else: + diff = common.Difference(tf, sf, diff_program="bsdiff") + common.ComputeDifferences([diff]) + _, _, d = diff.GetPatch() + if d is None or len(d) > tf.size * common.OPTIONS.patch_threshold: + # computing difference failed, or difference is nearly as + # big as the target: simply send the target. + WriteRadio(info, tf.data) + else: + common.ZipWriteStr(info.output_zip, "radio.img.p", d) + info.script.Print("Patching radio...") + radio_type, radio_device = common.GetTypeAndDevice( + "/radio", info.info_dict) + info.script.ApplyPatch( + "%s:%s:%d:%s:%d:%s" % (radio_type, radio_device, + sf.size, sf.sha1, tf.size, tf.sha1), + "-", tf.size, tf.sha1, sf.sha1, "radio.img.p") + + +def WriteRadio(info, radio_img): + info.script.Print("Writing radio...") + common.ZipWriteStr(info.output_zip, "radio.img", radio_img) + _, device = common.GetTypeAndDevice("/radio", info.info_dict) + info.script.AppendExtra( + 'package_extract_file("radio.img", "%s");' % (device,)) + + +# /* msm8960 bootloader.img format */ +# +# #define BOOTLDR_MAGIC "BOOTLDR!" +# #define BOOTLDR_MAGIC_SIZE 8 +# +# struct bootloader_images_header { +# char magic[BOOTLDR_MAGIC_SIZE]; +# unsigned int num_images; +# unsigned int start_offset; +# unsigned int bootldr_size; +# struct { +# char name[64]; +# unsigned int size; +# } img_info[]; +# }; + +def WriteBootloader(info, bootloader): + info.script.Print("Writing bootloader...") + + # bootloader.img contains 6 separate images. Each goes to its own + # partition; we write all 6 for development devices but skip one for + # release devices.. There are backup partitions of all but the + # special one that we also write. The special one is "sbl1", which + # does not have a backup, so we don't update it on release devices.. + + + header_fmt = "<8sIII" + header_size = struct.calcsize(header_fmt) + magic, num_images, start_offset, bootloader_size = struct.unpack( + header_fmt, bootloader[:header_size]) + assert magic == "BOOTLDR!", "bootloader.img bad magic value" + + img_info_fmt = "<64sI" + img_info_size = struct.calcsize(img_info_fmt) + + imgs = [struct.unpack(img_info_fmt, + bootloader[header_size+i*img_info_size: + header_size+(i+1)*img_info_size]) + for i in range(num_images)] + + total = 0 + p = start_offset + img_dict = {} + for name, size in imgs: + img_dict[trunc_to_null(name)] = p, size + p += size + assert p - start_offset == bootloader_size, "bootloader.img corrupted" + imgs = img_dict + + common.ZipWriteStr(info.output_zip, "bootloader-flag.txt", + "updating-bootloader" + "\0" * 13) + common.ZipWriteStr(info.output_zip, "bootloader-flag-clear.txt", "\0" * 32) + + _, misc_device = common.GetTypeAndDevice("/misc", info.info_dict) + + info.script.AppendExtra( + 'package_extract_file("bootloader-flag.txt", "%s");' % + (misc_device,)) + + # flashing sbl1 is somewhat dangerous because if we die while doing + # it the device can't boot. Do it for development devices but not + # release devices. + fp = info.info_dict["build.prop"]["ro.build.fingerprint"] + if "release-keys" in fp: + to_flash = "sbl2 sbl3 tz rpm aboot".split() + else: + to_flash = "sbl1 sbl2 sbl3 tz rpm aboot".split() + + # Write the images to separate files in the OTA package + for i in to_flash: + try: + _, device = common.GetTypeAndDevice("/"+i, info.info_dict) + except KeyError: + print "skipping flash of %s; not in recovery.fstab" % (i,) + continue + common.ZipWriteStr(info.output_zip, "bootloader.%s.img" % (i,), + bootloader[imgs[i][0]:imgs[i][0]+imgs[i][1]]) + + info.script.AppendExtra('package_extract_file("bootloader.%s.img", "%s");' % + (i, device)) + + info.script.AppendExtra( + 'package_extract_file("bootloader-flag-clear.txt", "%s");' % + (misc_device,)) + + try: + # there is no "sbl1b" partition + for i in "sbl2 sbl3 tz rpm aboot".split(): + _, device = common.GetTypeAndDevice("/"+i+"b", info.info_dict) + info.script.AppendExtra( + 'package_extract_file("bootloader.%s.img", "%s");' % (i, device)) + except KeyError: + pass + + +def trunc_to_null(s): + if '\0' in s: + return s[:s.index('\0')] + else: + return s diff --git a/system.prop b/system.prop new file mode 100644 index 0000000..937fbb7 --- /dev/null +++ b/system.prop @@ -0,0 +1,5 @@ +# +#set prefer network type +#LTE, GSM, WCDMA(9) +# +ro.telephony.default_network=9 diff --git a/vendorsetup.sh b/vendorsetup.sh new file mode 100644 index 0000000..723c22a --- /dev/null +++ b/vendorsetup.sh @@ -0,0 +1,17 @@ +# +# 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. +# + +add_lunch_combo aosp_deb-userdebug