Compare commits

...
10 Commits
Author SHA1 Message Date
tmakin 03a97d2bc1 ack again
Change-Id: If55f4617e18459f7ee03418dd8ddba0dcd032462
2026-09-19 16:59:17 -05:00
tmakin 6d1ad8d1d6 [DNM] vendor vs
Change-Id: Ida996efa99cd775c8d7a09d8c84c635692aa9818
2026-07-28 10:32:55 -05:00
tmakin be7c7b18f3 more baylibre
Change-Id: Ib780ad0d65dda0010fdf2483fb7085bbe4695f82
2026-07-28 09:46:30 -05:00
tmakin e340d8fe81 dependencies: update for ACK
Change-Id: Ieed0188c28b20ac075a165626b0ec3fd7e364245
2026-07-28 09:44:48 -05:00
tmakin 5594c8ed4f [DNM] ACK stuff
Change-Id: I72adcaa0b01ccbf224a9b3e34d5143c24c9d4621
2026-07-27 23:53:48 -05:00
Aaron Kling 3eee2f1dac Support android common kernel
The lowest supported version is 6.12.

Change-Id: I4dbb7434853330abdfe8ebc21b52e5d67737ffca
2026-07-27 23:51:13 -05:00
tmakin 3697d9abe6 nx: support mainline nodes for thermal
Change-Id: I631f23d4f478dab4d9740fc824ed12628d29fe10
2026-07-27 23:51:13 -05:00
Nolen Johnson 043c11786c nx: sepolicy: Allow health_hal_default to access more JoyCon nodes
Change-Id: I34ac37b94f9f24506a1b0fad9aafa7930767a486
(cherry picked from commit 2e79d4e122d02d52d06aa2cda517c1357d021c74)
2026-01-17 04:47:27 +00:00
Nolen Johnson a09def5201 nx: sepolicy: Allow jc_setup to chown files
Change-Id: If6225006ff850d1f9141b81448aa61d54e478a4d
(cherry picked from commit 121876b992f3edbd7a79926ef6b9d19b86b9bfff)
2026-01-11 21:36:55 +00:00
Nolen Johnson 9b73b296a8 nx: devicesettings: Only show RSMouse onboarding notification if enabled
Change-Id: I11f175e22a107104a58200268edc0efff7c484b0
2026-01-11 02:50:28 -05:00
39 changed files with 297 additions and 1969 deletions

No files matched your search

+13 -8
View File
@@ -13,25 +13,30 @@
# limitations under the License.
INSTALLED_KERNEL_TARGET := $(PRODUCT_OUT)/kernel
KERNEL_OUT ?= $(PRODUCT_OUT)/obj/KERNEL_OBJ
DTB_SUBFOLDER := nvidia/
ifneq ($(TARGET_PREBUILT_KERNEL),)
DTB_PATH := $(dir $(TARGET_PREBUILT_KERNEL))
else ifneq ($(TARGET_KERNEL_PLATFORM_TARGET),)
DTB_PATH := $(abspath $(KERNEL_OUT))
endif
INSTALLED_DTBIMAGE_TARGET := $(PRODUCT_OUT)/install/nx-plat.dtimg
$(INSTALLED_DTBIMAGE_TARGET): $(INSTALLED_KERNEL_TARGET) | mkdtimg
echo -e ${CL_GRN}"Building nx DTImage"${CL_RST}
@mkdir -p $(PRODUCT_OUT)/install
$(HOST_OUT_EXECUTABLES)/mkdtimg create $@ --page_size=0x1000 \
$(KERNEL_OUT)/arch/arm64/boot/dts/tegra210-odin.dtb --id=0x4F44494E --rev=0xa00 \
$(KERNEL_OUT)/arch/arm64/boot/dts/tegra210b01-odin.dtb --id=0x4F44494E --rev=0xb01 \
$(KERNEL_OUT)/arch/arm64/boot/dts/tegra210b01-vali.dtb --id=0x56414C49 --rev=0xa00 \
$(KERNEL_OUT)/arch/arm64/boot/dts/tegra210b01-fric.dtb --id=0x46524947 --rev=0xa00
$(DTB_PATH)/tegra210-odin.dtb --id=0x4F44494E --rev=0xa00 \
$(DTB_PATH)/tegra210b01-odin.dtb --id=0x4F44494E --rev=0xb01 \
$(DTB_PATH)/tegra210b01-vali.dtb --id=0x56414C49 --rev=0xa00 \
$(DTB_PATH)/tegra210b01-fric.dtb --id=0x46524947 --rev=0xa00
ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DTBIMAGE_TARGET)
INSTALLED_RADIOIMAGE_TARGET += $(INSTALLED_DTBIMAGE_TARGET)
CEC_XML_SYMLINK := $(TARGET_OUT_VENDOR)/etc/permissions/android.hardware.hdmi.cec.xml
$(CEC_XML_SYMLINK): $(LOCAL_INSTALLED_MODULE)
$(hide) ln -sf /data/vendor/permissions/android.hardware.hdmi.cec.xml $@
#CEC_XML_SYMLINK := $(TARGET_OUT_VENDOR)/etc/permissions/android.hardware.hdmi.cec.xml
#$(CEC_XML_SYMLINK): $(LOCAL_INSTALLED_MODULE)
# $(hide) ln -sf /data/vendor/permissions/android.hardware.hdmi.cec.xml $@
ALL_DEFAULT_INSTALLED_MODULES += $(CEC_XML_SYMLINK)
+9 -23
View File
@@ -43,7 +43,7 @@ TARGET_OTA_ASSERT_DEVICE := nx,nx_tab
TARGET_BOARD_INFO_FILE := device/nintendo/nx/board-info.txt
# Manifest
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE += device/nintendo/nx/manifests/device_framework_matrix.xml
#DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE += device/nintendo/nx/manifests/device_framework_matrix.xml
# Bluetooth
TARGET_VENDOR_PROP += device/nintendo/nx/bluetooth.prop
@@ -55,20 +55,12 @@ WITH_LINEAGE_CHARGER := false
TARGET_SCREEN_DENSITY := 186
# Kernel Source
KERNEL_TOOLCHAIN := $(shell pwd)/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-gnu-9.3/bin
KERNEL_TOOLCHAIN_PREFIX := aarch64-buildroot-linux-gnu-
TARGET_KERNEL_CLANG_COMPILE := false
TARGET_KERNEL_SOURCE := kernel/nvidia/kernel-$(TARGET_KERNEL_VERSION)-nx
TARGET_KERNEL_CONFIG := tegra_android_defconfig
TARGET_KERNEL_ADDITIONAL_FLAGS := \
NV_BUILD_KERNEL_OPTIONS=$(TARGET_KERNEL_VERSION) \
HOSTCFLAGS="-fuse-ld=lld -Wno-unused-command-line-argument" \
CONFIG_EXFAT_FS=m
TARGET_KERNEL_EXT_MODULE_ROOT := kernel/nvidia
TARGET_KERNEL_EXT_MODULES := \
exfat:kbuild \
nvgpu/drivers/gpu/nvgpu:kbuild
ifeq ($(TARGET_PREBUILT_KERNEL),)
TARGET_KERNEL_PLATFORM_TARGET := tegra
TARGET_KERNEL_SOURCE := vendor/nvidia/$(TARGET_KERNEL_PLATFORM_TARGET)
BOARD_KERNEL_IMAGE_NAME := Image.gz
endif
BOARD_KERNEL_CMDLINE := firmware_class.path=/vendor/firmware cpufreq.default_governor=performance cma=512MB nouveau.atomic=1
include device/nintendo/nx/modules.mk
# Kernel Image Parameters
@@ -91,16 +83,10 @@ TARGET_RELEASETOOLS_EXTENSIONS := device/nintendo/nx/releasetools
VENDOR_SECURITY_PATCH := 2024-12-05
# SELinux
BOARD_VENDOR_SEPOLICY_DIRS += device/nintendo/nx/sepolicy/vendor
SELINUX_IGNORE_NEVERALLOWS := true
#SELINUX_IGNORE_NEVERALLOWS := true
# Include Joycond sepolicy if present
-include hardware/nintendo/joycond/joycond-sepolicy.mk
# Treble
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
BOARD_VNDK_VERSION := current
PRODUCT_FULL_TREBLE_OVERRIDE := true
#-include hardware/nintendo/joycond/joycond-sepolicy.mk
# Updater
AB_OTA_UPDATER := false
+7 -207
View File
@@ -9,48 +9,6 @@ test -n ${earlycon} || setenv earlycon 0
test -n ${r2p_action} || setenv r2p_action bootloader
test -n ${autoboot} || setenv autoboot 0
test -n ${autoboot_list} || setenv autoboot_list 0
test -n ${usb3_enable} || setenv usb3_enable 0
test -n ${4k60_disable} || setenv 4k60_disable 0
test -n ${dvfsb} || setenv dvfsb 0
test -n ${gpu_dvfsc} || setenv gpu_dvfsc 0
test -n ${limit_gpu_clk} || setenv limit_gpu_clk 0
test -n ${jc_rail_disable} || setenv jc_rail_disable 0
test -n ${cec_disable} || setenv cec_disable 0
test -n ${touch_skip_tuning} || setenv touch_skip_tuning 0
test -n ${bt_ertm_disable} || setenv bt_ertm_disable 0
test -n ${wifi_disable_vht80} || setenv wifi_disable_vht80 0
test -n ${alarms_disable} || setenv alarms_disable 0
test -n ${oc} || setenv oc 0
test -n ${ddr200_enable} || setenv ddr200_enable 0
# Built-in IMU.
test -n ${acc_cal_off_x} || setenv acc_cal_off_x 0x0
test -n ${acc_cal_off_y} || setenv acc_cal_off_y 0x0
test -n ${acc_cal_off_z} || setenv acc_cal_off_z 0x0
test -n ${acc_cal_scl_x} || setenv acc_cal_scl_x 0x0
test -n ${acc_cal_scl_y} || setenv acc_cal_scl_y 0x0
test -n ${acc_cal_scl_z} || setenv acc_cal_scl_z 0x0
test -n ${gyr_cal_off_x} || setenv gyr_cal_off_x 0x0
test -n ${gyr_cal_off_y} || setenv gyr_cal_off_y 0x0
test -n ${gyr_cal_off_z} || setenv gyr_cal_off_z 0x0
test -n ${gyr_cal_scl_x} || setenv gyr_cal_scl_x 0x0
test -n ${gyr_cal_scl_y} || setenv gyr_cal_scl_y 0x0
test -n ${gyr_cal_scl_z} || setenv gyr_cal_scl_z 0x0
# Lite Gamepad analog sticks calibration.
test -n ${lite_cal_lx_lof} || setenv lite_cal_lx_lof 0x0
test -n ${lite_cal_lx_cnt} || setenv lite_cal_lx_cnt 0x0
test -n ${lite_cal_lx_rof} || setenv lite_cal_lx_rof 0x0
test -n ${lite_cal_ly_dof} || setenv lite_cal_ly_dof 0x0
test -n ${lite_cal_ly_cnt} || setenv lite_cal_ly_cnt 0x0
test -n ${lite_cal_ly_uof} || setenv lite_cal_ly_uof 0x0
test -n ${lite_cal_rx_lof} || setenv lite_cal_rx_lof 0x0
test -n ${lite_cal_rx_cnt} || setenv lite_cal_rx_cnt 0x0
test -n ${lite_cal_rx_rof} || setenv lite_cal_rx_rof 0x0
test -n ${lite_cal_ry_dof} || setenv lite_cal_ry_dof 0x0
test -n ${lite_cal_ry_cnt} || setenv lite_cal_ry_cnt 0x0
test -n ${lite_cal_ry_uof} || setenv lite_cal_ry_uof 0x0
# Set logging params for each serial type.
setenv uarta "no_console_suspend console=ttyS0,115200,8n1 loglevel=8 androidboot.console=ttyS0"
@@ -221,184 +179,26 @@ if test ${bt_ertm_disable} = 1; then setenv bootargs_extra ${bootargs_extra} "bl
# Enable eMMC.
if test ${emmc} = 1; then
fdt set /sdhci@700b0600 status okay
fdt set /firmware/android boot_devices sdhci-tegra.3
fdt set /mmc@700b0600 status okay
fdt set /firmware/android boot_devices 700b0600.mmc
# Check if eMMC is initialized in 1-bit mode.
if test "${mmc_1bit}" = 1; then
echoe eMMC is initialized in 1-bit mode!
fdt set /sdhci@700b0600 bus-width <0x1>
fdt set /sdhci@700b0600 uhs-mask <0x7F>
fdt set /mmc@700b0600 bus-width <0x1>
fdt set /mmc@700b0600 uhs-mask <0x7F>
fi
else
fdt set /firmware/android boot_devices sdhci-tegra.0
fdt set /firmware/android boot_devices 700b0000.mmc
fi
# Check if SD is initialized in 1-bit mode.
if test "${sd_1bit}" = 1; then
echoe SD Card is initialized in 1-bit mode!
fdt set /sdhci@700b0000 bus-width <0x1>
fdt set /sdhci@700b0000 uhs-mask <0x7F>
fdt set /mmc@700b0600 bus-width <0x1>
fdt set /mmc@700b0600 uhs-mask <0x7F>
fi
# Check if SD DDR200 mode can be enabled.
mmc info manid
if test ${manid} = 1b; then
echo Samsung SD Card Detected
setenv ddr200_enable 1
fi
if test ${ddr200_enable} = 1; then
echoe SD DDR200 mode enabled
fdt set /sdhci@700b0000 enable-ddr200
fi
# Force PLLP for 408/204MHz Host/Card clock if set.
if test "${ddr200_mode}" = 2; then
echoe SD DDR200 PLLP enabled
fdt set /sdhci@700b0000 ddr200-clk-limit 210000000
fi
# Disable WiFi VHT80 bonding.
if test ${wifi_disable_vht80} = 1; then setenv bootargs_extra ${bootargs_extra} "brcmfmac.vht_mask=12"; fi
# Set calibration data.
if load mmc ${devnum}:${distro_bootpart} ${enviraddr} /switchroot/switch.cal; then
env import -t -r ${enviraddr} ${filesize}
if test ${sku} = 2; then
echo Sio Calibration set
fdt set /serial@70006200/sio sio-stick-cal-l <$lite_cal_lx_lof $lite_cal_lx_cnt $lite_cal_lx_rof $lite_cal_ly_dof $lite_cal_ly_cnt $lite_cal_ly_uof>
fdt set /serial@70006200/sio sio-stick-cal-r <$lite_cal_rx_lof $lite_cal_rx_cnt $lite_cal_rx_rof $lite_cal_ry_dof $lite_cal_ry_cnt $lite_cal_ry_uof>
fdt set /serial@70006200/sio sio-acc-cal <$acc_cal_off_x $acc_cal_off_y $acc_cal_off_z $acc_cal_scl_x $acc_cal_scl_y $acc_cal_scl_z>
fdt set /serial@70006200/sio sio-gyr-cal <$gyr_cal_off_x $gyr_cal_off_y $gyr_cal_off_z $gyr_cal_scl_x $gyr_cal_scl_y $gyr_cal_scl_z>
fi
fi
# Get display handle.
if test ${display_id} = f20; then echo Display is INN 6.2; fdt get value DHANDLE /host1x/dsi/panel-i-720p-6-2 phandle
elif test ${display_id} = f30; then echo Display is AUO 6.2; fdt get value DHANDLE /host1x/dsi/panel-a-720p-6-2 phandle
elif test ${display_id} = 10; then echo Display is JDI 6.2; fdt get value DHANDLE /host1x/dsi/panel-j-720p-6-2 phandle
elif test ${display_id} = 1020; then echo Display is INN 5.5; fdt get value DHANDLE /host1x/dsi/panel-i-720p-5-5 phandle
elif test ${display_id} = 1030; then echo Display is AUO 5.5; fdt get value DHANDLE /host1x/dsi/panel-a-720p-5-5 phandle
elif test ${display_id} = 1040; then echo Display is SHP 5.5; fdt get value DHANDLE /host1x/dsi/panel-s-720p-5-5 phandle
elif test ${display_id} = 2050; then echo Display is SAM 7.0
elif test ${display_id} = f83; then echo Display is Clone 6.2
elif test ${display_id} = B3; then echo Display is Clone 5.5
elif test ${display_id} = 0; then echo Display is Clone 5.5
else echoe Unknown Display ID: ${display_id}! Please report it!; fi
# Set active display handle.
if test -n "${DHANDLE}" -a ${sku} != 3; then echo Setting Display panel; fdt set /host1x/dsi nvidia,active-panel <$DHANDLE>; fi
# Disable USB3.
if test ${usb3_enable} = 0; then
echo USB3 disabled
fdt get value DHANDLE_USB2 /xusb_padctl@7009f000/pads/usb2/lanes/usb2-0 phandle
fdt set /xusb@70090000 phys <$DHANDLE_USB2>
fdt set /xusb@70090000 phy-names usb2-0
fdt set /xudc@700d0000 phys <$DHANDLE_USB2>
fdt set /xudc@700d0000 phy-names usb2
fdt set /xusb_padctl@7009f000 usb3-no-mapping-war <0x1>
fdt set /xusb_padctl@7009f000/ports/usb2-0 nvidia,usb3-port-fake <0xffffffff>
fdt set /xusb_padctl@7009f000/ports/usb3-0 status disabled
else
echoe USB3 enabled
fi
# Disable 4 DP lanes (4K@60) on Fric.
if test ${sku} = 3 -a ${4k60_disable} = 1 -a ${usb3_enable} != 0; then
echoe 4K60 disabled
fdt set /i2c@7000c000/bm92t@18 rohm,dp-lanes <2>
fi
# Set battery voltage limit via cell age for Vali.
if test ${sku} = 2 -a -n "${VLIM}"; then
echo VALI: voltage limits [${VLIM}, ${SOCLIM}]
if test "${VLIM}" != 1070; then
# Newer Vali. 4320 mV / 1664 mA.
fdt set /i2c@7000c000/battery-charger@6b/charger ti,charge-voltage-limit-millivolt <0x$VLIM>
fdt set /i2c@7000c000/battery-charger@6b/charger ti,charge-thermal-voltage-limit <0x$VLIM 0x$VLIM 0x$VLIM 0xFF0>
fdt set /i2c@7000c000/battery-gauge@36 maxim,kernel-maximum-soc <0x$SOCLIM>
else
# Old Vali. 4208 mV / 1536 mA. (Unreleased?)
fdt set /i2c@7000c000/battery-charger@6b/charger ti,charge-voltage-limit-millivolt <0x1070>
fdt set /i2c@7000c000/battery-charger@6b/charger ti,charge-thermal-voltage-limit <0x1070 0x1070 0x1070 0xF70>
fdt set /i2c@7000c000/battery-charger@6b/charger ti,fast-charge-current-limit-milliamp <0x600>
fdt set /i2c@7000c000/battery-charger@6b/charger ti,charge-current-limit <0x200 0x240 0x600 0x600>
fi
fi
# DVFS B-Side.
if test ${t210b01} = 1 -a ${dvfsb} = 1; then
echoe DVFS B-Side enabled
setenv bootargs_extra ${bootargs_extra} "speedo_tegra210.sku_id=0x83 speedo_tegra210.cspd_id=2 speedo_tegra210.sspd_id=2"
fdt set /cpufreq/cpu-scaling-data max-frequency <0x249348>
if test ${gpu_dvfsc} = 0; then
setenv bootargs_extra ${bootargs_extra} "speedo_tegra210.gspd_id=2"
fi
if test ${sku} = 2; then
# 2091 MHz CPU and 844 MHz GPU hard limit. Vali.
fdt set /cpufreq/cpu-scaling-data max-frequency <0x1FE7F8>
fdt set /dvfs nvidia,gpu-max-freq-khz <0xCE400>
fi
fi
# GPU DVFS C-Side.
if test ${t210b01} = 1 -a ${gpu_dvfsc} = 1; then
echoe DVFS C-Side GPU enabled
if test ${dvfsb} != 1; then
setenv bootargs_extra ${bootargs_extra} "speedo_tegra210.sku_id=0x83 speedo_tegra210.gspd_id=3"
else
setenv bootargs_extra ${bootargs_extra} "speedo_tegra210.gspd_id=3"
fi
fi
# Allow overclocking.
if test ${oc} = 1; then
echoe "CPU OC enabled"
setenv bootargs_extra ${bootargs_extra} "androidboot.oc=1"
fi
if test -n ${max_cpu_freq}; then
echoe "Max CPU freq applied: ${max_cpu_freq} KHz"
fdt set /cpufreq/cpu-scaling-data max-frequency <${max_cpu_freq}>
fi
if test -n ${max_gpu_freq}; then
echoe "Max GPU freq applied: ${max_gpu_freq} KHz"
fdt set /dvfs nvidia,gpu-max-freq-khz <${max_gpu_freq}>
fi
# Limit GPU clock.
if test ${t210b01} = 1 -a ${limit_gpu_clk} = 1; then
if test ${sku} != 2; then
# If not Vali set GPU hard limit to 1075 MHz.
echoe GPU clock limited
fdt set /dvfs nvidia,gpu-max-freq-khz <0x106800>
fi
fi
# Set pmic type if devboard.
if test ${t210b01} = 1 -a -n "${pmic_type}" -a ${pmic_type} = 1; then
echoe GPU 15A Regulator enabled
fdt set /i2c@7000d000/max77812@33 reg <0x31>
fdt set /i2c@7000d000/max77812@33/m3vout status disabled
fdt set /i2c@7000d000/fan53528@52 status okay
fdt set /dvfs nvidia,gpu-max-volt-mv <0x3B6>
fi
# Disable Wake up from RTC.
if test ${alarms_disable} = 1; then
echoe Wakeup Alarms disabled
fdt set /rtc nvidia,pmc-wakeup <0>
fdt set /pcie@1003000 nvidia,wake-gpio <0>
fdt set /brcmfmac@0 nvidia,pmc-wakeup <0>
fi
# Set serial number.
if test -n ${device_serial_restricted}; then fdt set / serial-number ${device_serial_restricted}; fi
+2 -29
View File
@@ -19,29 +19,6 @@ UBOOT_PATH := $(BUILD_TOP)/hardware/nintendo/u-boot
NX_BOOTFILES_PATH := $(BUILD_TOP)/device/nintendo/nx/bootfiles
NX_FIRMWARE_PATH := $(BUILD_TOP)/vendor/nintendo/nx/external/u-boot
ifneq ($(TARGET_TEGRA_UBOOT),prebuilt)
_uboot_bin := $(call intermediates-dir-for,$(LOCAL_MODULE_CLASS),$(LOCAL_MODULE))
_uboot_bin := $(_uboot_bin)/$(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX)
$(_uboot_bin): $(sort $(shell find -L $(UBOOT_PATH)))
@mkdir -p $(dir $@)
$(hide) +$(KERNEL_MAKE_CMD) $(KERNEL_CROSS_COMPILE) \
HOSTCC=$(TARGET_KERNEL_CLANG_PATH)/bin/clang HOSTLDFLAGS="-fuse-ld=lld" \
YACC=$(BUILD_TOOLS_BINS)/bin/bison LEX=$(BUILD_TOOLS_BINS)/bin/flex M4=$(BUILD_TOOLS_BINS)/bin/m4 \
-C $(UBOOT_PATH) O=$(dir $(_uboot_bin)) nx_defconfig
$(hide) +$(KERNEL_MAKE_CMD) $(KERNEL_CROSS_COMPILE) \
HOSTCC=$(TARGET_KERNEL_CLANG_PATH)/bin/clang HOSTLDFLAGS="-fuse-ld=lld" \
YACC=$(BUILD_TOOLS_BINS)/bin/bison LEX=$(BUILD_TOOLS_BINS)/bin/flex M4=$(BUILD_TOOLS_BINS)/bin/m4 \
-C $(UBOOT_PATH) O=$(dir $(_uboot_bin)) bl33.bin
@mv $(_uboot_bin)/bl33.bin $(_uboot_bin)
$(PRODUCT_OUT)/bl33.bin: $(_uboot_bin)
$(hide) cp $< $@
.PHONY: bl33
u-boot-dtb: $(PRODUCT_OUT)/bl33.bin
endif # TARGET_TEGRA_UBOOT
_uscript_input := $(abspath $(NX_BOOTFILES_PATH)/android_boot.txt)
_uscript_archive := $(call intermediates-dir-for,EXECUTABLES,boot.scr)/boot.scr
$(_uscript_archive): $(_uscript_input)
@@ -70,14 +47,10 @@ $(BUILT_TARGET_FILES_ZIPROOT)/IMAGES/boot.scr: $(BUILT_TARGET_FILES_ZIPROOT).zip
INSTALLED_RADIOIMAGE_TARGET += $(NX_BOOTFILES_PATH)/android.ini
INSTALLED_RADIOIMAGE_TARGET += $(NX_BOOTFILES_PATH)/bootlogo_android.bmp
INSTALLED_RADIOIMAGE_TARGET += $(NX_BOOTFILES_PATH)/icon_android_hue.bmp
ifneq ($(TARGET_TEGRA_UBOOT),prebuilt)
INSTALLED_RADIOIMAGE_TARGET += $(_uboot_bin)
else
INSTALLED_RADIOIMAGE_TARGET += $(NX_FIRMWARE_PATH)/bl33.bin
endif
INSTALLED_RADIOIMAGE_TARGET += $(PRODUCT_OUT)/boot.scr
INSTALLED_RADIOIMAGE_TARGET += $(PRODUCT_OUT)/bl31.bin
$(BUILT_TARGET_FILES_DIR): $(INSTALLED_RADIOIMAGE_TARGET)
endif # TARGET_DEVICE
-4
View File
@@ -1,4 +0,0 @@
filegroup {
name: "vnd_nx.txt",
srcs: ["vnd_nx.txt"],
}
-46
View File
@@ -1,46 +0,0 @@
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H
// SERVICE_CLASS:0x5A (Bit17 -Networking,Bit19 - Capturing,Bit20 -Object Transfer,Bit22 -Telephony)
// MAJOR CLASS: COMPUTER
// MINOR CLASS: TABLET
#define BTA_DM_COD {0x5A, 0x01, 0x10}
// SERVICE_CLASS:0x20 (Bit18 - Rendering)
// MAJOR CLASS: AUDIO/VIDEO
// MINOR CLASS: set top box
#define BTA_DM_COD_ATV {0x20, BTM_COD_MAJOR_AUDIO, BTM_COD_MINOR_SET_TOP_BOX}
#define BTIF_HF_WBS_PREFERRED TRUE
#define BTM_WBS_INCLUDED TRUE
#define BLE_VND_INCLUDED TRUE
#define BTSNOOP_MEM_BUFFER_SIZE (1024 * 1024)
#define DEBUG_FS_UART_PATH "/d/70006300.serial/tty_buffer_count"
// To sync with CONN TIMEOUT of pepper
#define BTM_BLE_CONN_TIMEOUT_DEF 1000
// Increase MAX GATT notification to 75
#define BTA_GATTC_NOTIF_REG_MAX 75
// Turn off BLE_PRIVACY_SPT. Remote reconnect fails often if this is enabled.
#define BLE_PRIVACY_SPT FALSE
#endif
-3
View File
@@ -1,3 +0,0 @@
BLUETOOTH_UART_DEVICE_PORT = "/dev/ttyTHS3"
FW_PATCHFILE_LOCATION = "/vendor/firmware/"
FW_PATCH_SETTLEMENT_DELAY_MS = 200
+32 -67
View File
@@ -16,26 +16,14 @@
TARGET_TEGRA_VARIANT ?= common
TARGET_TEGRA_BT ?= bcm
TARGET_TEGRA_CAMERA := rel-shield-r
TARGET_TEGRA_CEC := aosp
TARGET_TEGRA_CPL := none
TARGET_KERNEL_VERSION ?= 4.9
TARGET_TEGRA_KEYSTORE := software
TARGET_TEGRA_LIGHT ?= lineage
TARGET_TEGRA_MAN_LVL := 5
TARGET_TEGRA_MEMTRACK ?= rel-shield-r
TARGET_TEGRA_POWER := perfmgr
TARGET_TEGRA_SENSORS := iio
TARGET_TEGRA_SENSOR_FEATURES := accelerometer gyroscope light
TARGET_TEGRA_THERMAL ?= lineage
TARGET_TEGRA_UBOOT := prebuilt
TARGET_TEGRA_WIDEVINE ?= rel-shield-r
TARGET_TEGRA_WIFI ?= bcm
TARGET_TEGRA_WIREGUARD ?= compat
TARGET_KERNEL_VERSION ?= mainline
TARGET_LIGHT_HAL ?= tegra
TARGET_ATV_FORCE_1080_SCALING := false
PRODUCT_COPY_FILES += \
device/nintendo/nx/initfiles/ack.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/ack.rc
include device/nvidia/t210-common/t210.mk
# Properties
@@ -47,7 +35,7 @@ else
PRODUCT_CHARACTERISTICS := tablet
endif
PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := true
PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := false
$(call inherit-product, frameworks/native/build/tablet-7in-xhdpi-2048-dalvik-heap.mk)
@@ -77,9 +65,11 @@ PRODUCT_PACKAGES += \
init.sensors.nx.rc \
init.vali.rc
ifneq ($(TARGET_TEGRA_CPL),none)
ifeq ($(TARGET_POWER_HAL),perfmgr-lineage)
PRODUCT_PACKAGES += \
power.nx.rc
powerhint.nouveau.json \
powerhint.t210b01.json \
powerhint.t210b01.nouveau.json
endif
# Permissions
@@ -96,28 +86,25 @@ PRODUCT_COPY_FILES += \
endif
# Audio
PRODUCT_PACKAGES += \
audio_effects.xml \
audio_policy_configuration.xml \
nvaudio_conf.xml
# Bluetooth
$(call soong_config_set,brcm_libbt,bdroid_buildcfg_include_dir,device/nintendo/nx/comms)
$(call soong_config_set,brcm_libbt,custom_bt_config,//device/nintendo/nx:vnd_nx.txt)
ifeq ($(TARGET_AUDIO_HAL),baylibre)
PRODUCT_COPY_FILES += \
device/nvidia/tegra-common/audio/primary_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/primary_audio_policy_configuration.xml
endif
# CEC
PRODUCT_COPY_FILES := $(filter-out frameworks/native/data/etc/android.hardware.hdmi.cec.xml%android.hardware.hdmi.cec.xml,$(PRODUCT_COPY_FILES))
# PRODUCT_COPY_FILES := $(filter-out frameworks/native/data/etc/android.hardware.hdmi.cec.xml%android.hardware.hdmi.cec.xml,$(PRODUCT_COPY_FILES))
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.hdmi.cec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/staging/android.hardware.hdmi.cec.xml
# PRODUCT_COPY_FILES += \
# frameworks/native/data/etc/android.hardware.hdmi.cec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/staging/android.hardware.hdmi.cec.xml
PRODUCT_PACKAGES += \
nx_cec.rc \
cec_disable.xml
# PRODUCT_PACKAGES += \
# nx_cec.rc \
# cec_disable.xml
# Device Settings
PRODUCT_PACKAGES += \
DeviceSettingsNX
# TEMP
# PRODUCT_PACKAGES += \
# DeviceSettingsNX
# DocumentsUI
# We are the exception, being an ATV device with touch
@@ -138,13 +125,9 @@ PRODUCT_PACKAGES += \
excluded-input-devices.xml
# Joycons
PRODUCT_PACKAGES += \
android.hardware.nintendo.joycond-service \
jc_setup
# Kernel Modules
PRODUCT_PACKAGES += \
cypress-fmac-upstream
# PRODUCT_PACKAGES += \
# android.hardware.nintendo.joycond-service \
# jc_setup
# Keylayouts
PRODUCT_PACKAGES += \
@@ -152,44 +135,26 @@ PRODUCT_PACKAGES += \
# Loadable kernel modules
PRODUCT_PACKAGES += \
lkm_loader \
lkm_loader_target
lkm_loader
PRODUCT_COPY_FILES += \
device/nvidia/tegra-common/initfiles/init.lkm.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.lkm.rc
# Media config
PRODUCT_PACKAGES += \
media_codecs.xml \
media_codecs_performance.xml \
media_profiles_V1_0.xml \
enctune.conf
PRODUCT_COPY_FILES += \
device/nintendo/nx/initfiles/lkm.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/lkm.rc
# Partitions
$(call inherit-product, $(SRC_TARGET_DIR)/product/non_ab_device.mk)
# Power
PRODUCT_COPY_FILES += \
system/core/libprocessgroup/profiles/cgroups_28.json:$(TARGET_COPY_OUT_VENDOR)/etc/cgroups.json \
system/core/libprocessgroup/profiles/task_profiles_28.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json
# PHS
ifneq ($(TARGET_TEGRA_PHS),)
PRODUCT_PACKAGES += \
nvphsd.conf
endif
# Recovery
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += persist.vendor.recovery_update=true
# Shipping API
$(call inherit-product, $(SRC_TARGET_DIR)/product/product_launched_with_l.mk)
PRODUCT_SHIPPING_API_LEVEL := 37
# Thermal
ifneq ($(TARGET_TEGRA_THERMAL),)
PRODUCT_PACKAGES += \
thermalhal.nx.xml
endif
PRODUCT_COPY_FILES += \
device/nintendo/nx/thermal/thermalhal.nx.xml:$(TARGET_COPY_OUT_VENDOR)/etc/thermalhal.nx.xml
# WiFi
PRODUCT_PACKAGES += \
-48
View File
@@ -1,48 +0,0 @@
/*
* Copyright (C) 2023-2025 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
android_app {
name: "DeviceSettingsNX",
manifest: "AndroidManifest.xml",
srcs: [
"src/**/*.java",
],
resource_dirs: [
"res",
],
overrides: ["DeviceSettings"],
platform_apis: true,
certificate: "platform",
optimize: {
proguard_flags_files: ["proguard.flags"],
},
privileged: true,
privapp_allowlist: "org.lineageos.settings.device.xml",
static_libs: [
"androidx.preference_preference",
"androidx.appcompat_appcompat",
"androidx.leanback_leanback-preference",
"androidx.leanback_leanback",
"org.lineageos.settings.resources",
"org.lineageos.platform.internal",
"vendor.nvidia.hardware.graphics.display-V1.0-java",
"android.hardware.nintendo.joycond-V1-java",
],
}
@@ -31,6 +31,8 @@ import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationChannelCompat;
import androidx.core.app.NotificationManagerCompat;
import org.lineageos.settings.device.DisplaySettingsPrefsCommon;
public class BootCompletedReceiver extends BroadcastReceiver {
private static final String TAG = BootCompletedReceiver.class.getSimpleName();
private static final String SEEN_RSMOUSE_PROP = "persist.devicesettingsnx.hasseenrsmouse";
@@ -70,7 +72,8 @@ public class BootCompletedReceiver extends BroadcastReceiver {
DisplayUtils.setPanelColorMode(panelMode);
}
if (!SystemProperties.getBoolean(SEEN_RSMOUSE_PROP, false)) {
if (SystemProperties.getBoolean(DisplaySettingsPrefsCommon.JOYCOND_RSMOUSE_PROP, true) &&
!SystemProperties.getBoolean(SEEN_RSMOUSE_PROP, false)) {
NotificationChannelCompat channel = new NotificationChannelCompat.Builder(
CHANNEL_ID,
NotificationManagerCompat.IMPORTANCE_MAX
+11
View File
@@ -51,4 +51,15 @@ void vendor_load_properties()
ti.property_set("ro.product.vendor.model", ti.property_get("ro.product.model"));
ti.property_set("ro.product.vendor.manufacturer", ti.property_get("ro.product.manufacturer"));
}
if (ti.vendor_context()) {
std::string perfmgr_suffix;
if (ti.is_model("sif") || ti.is_model("modin") ||
ti.is_model("fric") || ti.is_model("vali"))
perfmgr_suffix += ".t210b01";
if (ti.property_get("ro.hardware.vulkan") == "nouveau")
perfmgr_suffix += ".nouveau";
ti.property_set("vendor.powerhal.config", "powerhint" + perfmgr_suffix + ".json");
}
}
-13
View File
@@ -77,19 +77,6 @@ prebuilt_etc {
sub_dir: "staging",
}
prebuilt_etc {
name: "power.nx.rc",
src: "power.nx.rc",
device_specific: true, // odm
}
cc_prebuilt_binary {
name: "lkm_loader_target",
srcs: ["lkm_loader_target.sh"],
stem: "lkm_loader_target.sh",
vendor: true,
}
cc_prebuilt_binary {
name: "jc_setup",
srcs: ["jc_setup.sh"],
+14
View File
@@ -0,0 +1,14 @@
on init
stop watchdogd
on early-init
write /sys/kernel/debug/bpmp/debug/clk/emc/min_rate 2133000000
on early-fs
wait /dev/dri/card0 10
# Override and disable watchdog
service watchdogd /system/bin/true
override
disabled
user root
+4 -4
View File
@@ -19,9 +19,9 @@ import /vendor/etc/init/hw/init.sensors.nx.rc
import /vendor/etc/init/hw/init.${ro.boot.hardware.sku}.rc
on init
setprop ro.surface_flinger.primary_display_orientation ORIENTATION_270
#setprop ro.surface_flinger.primary_display_orientation ORIENTATION_270
setprop ro.boot.secureos none
setprop vendor.powerhal.config powerhint.${ro.boot.hardware.sku}.json
#setprop vendor.powerhal.config powerhint.${ro.boot.hardware.sku}.json
on fs
mount_all /vendor/etc/fstab.nx
@@ -41,8 +41,8 @@ on post-fs-data
chown system system /sys/bus/platform/devices/tegradc.0/enable
# enable oc only if passed from bootloader (no userspace toggle)
on property:vold.post_fs_data_done=1 && property:ro.boot.oc=1
write /sys/kernel/tegra_cpufreq/overclock 1
#on property:vold.post_fs_data_done=1 && property:ro.boot.oc=1
# write /sys/kernel/tegra_cpufreq/overclock 1
on boot
write /sys/devices/system/cpu/cpufreq/schedutil/up_rate_limit_us 500
+1
View File
@@ -15,4 +15,5 @@
import init.recovery.usb.rc
on init
setprop ro.minui.pixel_format "BGRA_8888"
setprop ro.minui.default_rotation "ROTATION_LEFT"
+7 -7
View File
@@ -13,10 +13,10 @@
# limitations under the License.
# Override and disable cec HAL
service vendor.cec-hal-1-0 /vendor/bin/hw/android.hardware.tv.cec@1.0-service
override
interface android.hardware.tv.cec@1.0::IHdmiCec default
class hal
user system
group system
disabled
#service vendor.cec-hal-1-0 /vendor/bin/hw/android.hardware.tv.cec@1.0-service
# override
# interface android.hardware.tv.cec@1.0::IHdmiCec default
# class hal
# user system
# group system
# disabled
+2
View File
@@ -0,0 +1,2 @@
on fs
exec u:r:modprobe:s0 -- /system/bin/modprobe -a -d /system/lib/modules hci_uart.ko
-8
View File
@@ -1,8 +0,0 @@
#!/vendor/bin/sh
/vendor/bin/insmod /vendor/lib/modules/pci-tegra.ko
/vendor/bin/insmod /vendor/lib/modules/compat.ko
/vendor/bin/insmod /vendor/lib/modules/cy_cfg80211.ko
/vendor/bin/insmod /vendor/lib/modules/brcmutil.ko
/vendor/bin/insmod /vendor/lib/modules/brcmfmac.ko
-52
View File
@@ -1,52 +0,0 @@
# FORMAT:
# panelresolution=[xres]X[yres], such as panelresolution=1280X720
# powernode1 maxperf optimized maxbatterylife
# powernode2 maxperf optimized maxbatterylife
# ......
# powernoden maxperf optimized maxbatterylife
# panelresolution=[xres]X[yres], such as panelresolution=1920X1080
# powernode1 maxperf optimized maxbatterylife
# powernode2 maxperf optimized maxbatterylife
# ......
# powernoden maxperf optimized maxbatterylife
# ......
# ......
# panelresolution=[xres]X[yres], such as panelresolution=1920X1200
# powernode1 maxperf optimized maxbatterylife
# powernode2 maxperf optimized maxbatterylife
# ......
# powernoden maxperf optimized maxbatterylife
#
# NOTES:
# The panelresolution is the lcd panel resolution.
# No space should exist in panelresolution=[xres]X[yres].
# panelresolution=720X1280 equals with panelresolution=1280X720.
# For panelresolution=-1X-1, it should be the last set of power settings in this file.
# When your panel resolution is found in this file,
# it will use the set of power settings followed by your panel resolution.
# When your panel resolution is not found in this file, it will use the default power settings.
# The power settings followed by panelresolution=-1X-1 is the default power settings.
# powernode is the sysfs or variable we need to write and it is followed by three ints.
# maxperf, optimized, maxbatterylife are the three ints for different power modes.
#
# Default power mode: can be set to 0, 1, or 2
NV_DEFAULT_MODE 1
panelresolution=-1X-1
NV_FPSLIMIT 0 0 0
NV_MAX_CORES 0 0 0
NV_MIN_CORES 2 2 2
NV_MAX_FREQ 0 0 1428000
NV_MIN_FREQ 900000 0 0
NV_MAX_GPU_FREQ 0 0 768000
NV_MIN_GPU_FREQ 0 0 0
NV_HYPERVOLT_ALPHA 50 0 0
NV_APM_CPU_BOOST 5 0 0
NV_APM_GPU_BOOST 5 0 0
NV_APM_FRT_BOOST 5 0 0
NV_APM_PRETHROTTLE 0 1 1
NV_APM_FRT_MIN 20 15 15
NV_APM_LOADAPPFRT 0 1 1
NV_PBC_SYSPOWER_CAP 15000 11000 8500
NV_PBC_BATCURRENT_CAP 5000 5000 4100
NV_FAN_STATE_CAP 7 3 2
NV_FAN_STATE_MAP 80/110/150/200/255 80/110/150/200/255 80/110/150/200/255
+10 -34
View File
@@ -1,4 +1,8 @@
[
{
"type": "kernel",
"version": "mainline"
},
{
"repository": "android_device_nvidia_t210-common",
"target_path": "device/nvidia/t210-common"
@@ -7,34 +11,6 @@
"repository": "android_hardware_nintendo_arm-trusted-firmware",
"target_path": "hardware/nintendo/arm-trusted-firmware"
},
{
"repository": "android_hardware_nintendo_joycond",
"target_path": "hardware/nintendo/joycond"
},
{
"repository": "android_kernel_nvidia_cypress-fmac-upstream",
"target_path": "kernel/nvidia/cypress-fmac-upstream"
},
{
"repository": "android_kernel_nvidia_exfat",
"target_path": "kernel/nvidia/exfat"
},
{
"repository": "android_kernel_nvidia_kernel-nx",
"target_path": "kernel/nvidia/kernel-4.9-nx"
},
{
"repository": "android_kernel_nvidia_nvidia-nx",
"target_path": "kernel/nvidia/nvidia-nx"
},
{
"repository": "android_kernel_nvidia_nvgpu",
"target_path": "kernel/nvidia/nvgpu"
},
{
"repository": "android_kernel_nvidia_wireguard",
"target_path": "kernel/nvidia/wireguard"
},
{
"repository": "android_hardware_intel_sensors-iio",
"target_path": "hardware/intel/sensors-iio"
@@ -47,17 +23,17 @@
"repository": "android_hardware_nvidia_light",
"target_path": "hardware/nvidia/light"
},
{
"repository": "android_hardware_nvidia_platform_t210_nx",
"target_path": "hardware/nvidia/platform/t210/nx"
},
{
"repository": "android_hardware_nvidia_power",
"target_path": "hardware/nvidia/power"
},
{
"repository": "android_hardware_nvidia_thermal",
"target_path": "hardware/nvidia/thermal"
"repository": "android_kernel_nvidia_tegra-build",
"target_path": "kernel/platform/kernel-mainline/vendor/nvidia/tegra"
},
{
"repository": "android_external_libdisplay-info-upstream",
"target_path": "external/libdisplay-info-upstream"
},
{
"repository": "android_prebuilts_gcc_linux-x86_aarch64_aarch64-linux-gnu-9.3",
-2
View File
@@ -12,8 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
TARGET_TEGRA_POWER ?= lineage
# Boot Animation
TARGET_SCREEN_HEIGHT := 1920
TARGET_SCREEN_WIDTH := 1080
-57
View File
@@ -1,57 +0,0 @@
/*
* Copyright (C) 2024 The LineageOS 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.
*/
prebuilt_etc {
name: "audio_effects.xml",
src: "audio_effects.xml",
vendor: true,
}
prebuilt_etc {
name: "audio_policy_configuration.xml",
src: "audio_policy_configuration.xml",
vendor: true,
}
prebuilt_etc {
name: "nvaudio_conf.xml",
src: "nvaudio_conf.xml",
vendor: true,
}
prebuilt_etc {
name: "media_codecs.xml",
src: "media_codecs.xml",
device_specific: true, // odm
}
prebuilt_etc {
name: "media_codecs_performance.xml",
src: "media_codecs_performance.xml",
device_specific: true, // odm
}
prebuilt_etc {
name: "media_profiles_V1_0.xml",
src: "media_profiles_V1_0.xml",
vendor: true,
}
prebuilt_etc {
name: "enctune.conf",
src: "enctune.conf",
vendor: true,
}
-52
View File
@@ -1,52 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<audio_effects_conf version="2.0" xmlns="http://schemas.android.com/audio/audio_effects_conf/v2_0">
<!-- List of effect libraries to load.
Each library element must contain a "name" attribute and a "path" attribute giving the
name of a library .so file in /vendor/lib/soundfx on the target
-->
<libraries>
<library name="proxy" path="libeffectproxy.so"/>
<library name="sw_visualizer_lib" path="libvisualizer.so"/>
<library name="hw_visualizer_lib" path="libnvvisualizer.so"/>
<library name="bundle" path="libbundlewrapper.so"/>
<library name="reverb" path="libreverbwrapper.so"/>
<library name="downmix" path="libdownmix.so"/>
<library name="loudness_enhancer" path="libldnhncr.so"/>
<library name="preprocessing" path="libnvoicefx.so"/>
<library name="dynamics_processing" path="libdynproc.so"/>
</libraries>
<effects>
<effectProxy name="visualizer" library="proxy" uuid="ec7178ec-e5e1-4432-a3f4-4657e6795210">
<libsw library="sw_visualizer_lib" uuid="d069d9e0-8329-11df-9168-0002a5d5c51b"/>
<libhw library="hw_visualizer_lib" uuid="09f673c0-10bc-11e4-9589-0002a5d5c51b"/>
</effectProxy>
<effect name="bassboost" library="bundle" uuid="8631f300-72e2-11df-b57e-0002a5d5c51b"/>
<effect name="virtualizer" library="bundle" uuid="1d4033c0-8557-11df-9f2d-0002a5d5c51b"/>
<effect name="equalizer" library="bundle" uuid="ce772f20-847d-11df-bb17-0002a5d5c51b"/>
<effect name="volume" library="bundle" uuid="119341a0-8469-11df-81f9-0002a5d5c51b"/>
<effect name="reverb_env_aux" library="reverb" uuid="4a387fc0-8ab3-11df-8bad-0002a5d5c51b"/>
<effect name="reverb_env_ins" library="reverb" uuid="c7a511a0-a3bb-11df-860e-0002a5d5c51b"/>
<effect name="reverb_pre_aux" library="reverb" uuid="f29a1400-a3bb-11df-8ddc-0002a5d5c51b"/>
<effect name="reverb_pre_ins" library="reverb" uuid="172cdf00-a3bc-11df-a72f-0002a5d5c51b"/>
<effect name="downmix" library="downmix" uuid="93f04452-e4fe-41cc-91f9-e475b6d1d69f"/>
<effect name="loudness_enhancer" library="loudness_enhancer" uuid="fa415329-2034-4bea-b5dc-5b381c8d1e2c"/>
<effect name="dynamics_processing" library="dynamics_processing" uuid="e0e6539b-1781-7261-676f-6d7573696340"/>
<!-- agc is using nvoice lib for preprocessing which doesn't support it, so disabling agc -->
<!--effect name="agc" library="preprocessing" uuid="aa8130e0-66fc-11e0-bad0-0002a5d5c51b"/-->
<effect name="ns" library="preprocessing" uuid="c06c8400-8e06-11e0-9cb6-0002a5d5c51b"/>
</effects>
<preprocess>
<stream type="camcorder">
<!--apply effect="agc"/-->
<apply effect="ns"/>
</stream>
<stream type="mic">
<!--apply effect="agc"/-->
<apply effect="ns"/>
</stream>
<stream type="voice_communication">
<!--apply effect="agc"/-->
<apply effect="ns"/>
</stream>
</preprocess>
</audio_effects_conf>
-112
View File
@@ -1,112 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (C) 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Copyright (C) 2018-2019 NVIDIA Corporation. All rights reserved. -->
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
<!-- Global configuration Decalaration -->
<globalConfiguration speaker_drc_enabled="false"/>
<!-- Modules section:
There is one section per audio HW module present on the platform.
Each module section will contains two mandator y tags for audio HAL “halVersion” and “name”.
The module names are the same as in current .conf file:
“primary”, “A2DP”, “remote_submix”, “USB”
Each module will contain the following sections:
“devicePorts”: a list of device descriptors for all input and output devices accessible via this
module.
This contains both permanently attached devices and removable devices.
“mixPorts”: listing all output and input streams exposed by the audio HAL
“routes”: list of possible connections between input and output devices or between stream and
devices.
"route": is defined by an attribute:
-"type": <mux|mix> means all sources are mutual exclusive (mux) or can be mixed (mix)
-"sink": the sink involved in this route
-"sources": all the sources than can be connected to the sink via vis route
“attachedDevices”: permanently attached devices.
The attachedDevices section is a list of devices names. The names correspond to device names
defined in <devicePorts> section.
“defaultOutputDevice”: device to be used by default when no policy rule applies
-->
<modules>
<!-- Primary Audio HAL -->
<module name="primary" halVersion="3.0">
<attachedDevices>
<item>Speaker</item>
</attachedDevices>
<defaultOutputDevice>Speaker</defaultOutputDevice>
<!-- Primary HAL mixPorts and devicePorts -->
<xi:include href="/vendor/etc/primary_module_mixports.xml"/>
<xi:include href="/vendor/etc/primary_module_deviceports.xml"/>
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<!-- Playback routes -->
<route type="mix" sink="Speaker"
sources="primary_output"/>
<route type="mix" sink="Wired Headset"
sources="primary_output"/>
<route type="mix" sink="Wired Headphones"
sources="primary_output"/>
<route type="mix" sink="BT SCO"
sources="primary_output"/>
<route type="mix" sink="BT SCO Headset"
sources="primary_output"/>
<route type="mix" sink="BT SCO Car Kit"
sources="primary_output"/>
<route type="mix" sink="AUX Digital"
sources="primary_output,multichannel,passthrough,hra"/>
<route type="mix" sink="Digital Dock HS"
sources="primary_output"/>
<!-- Capture routes -->
<route type="mix" sink="primary_input"
sources="Wired Headset Mic,BT SCO Headset Mic,Digital Dock HS Mic,AudioIP-In"/>
</routes>
</module>
<!-- Usb Audio HAL -->
<xi:include href="/vendor/etc/usb_audio_policy_configuration.xml"/>
<!-- Remote Submix Audio HAL -->
<xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/>
<!-- Bluetooth Audio HAL -->
<xi:include href="/vendor/etc/bluetooth_audio_policy_configuration.xml"/>
<!-- MSD Audio HAL -->
<!-- <xi:include href="/vendor/etc/msd_audio_policy_configuration.xml"/> -->
</modules>
<!-- End of Modules section -->
<!-- Volume section -->
<xi:include href="/vendor/etc/audio_policy_volumes.xml"/>
<xi:include href="/vendor/etc/default_volume_tables.xml"/>
<!-- End of Volume section -->
<!-- Surround Sound configuration -->
<xi:include href="surround_sound_configuration_5_0.xml"/>
<!-- End of Surround Sound configuration -->
</audioPolicyConfiguration>
-45
View File
@@ -1,45 +0,0 @@
H264:
Settings_1080P
IMinQP 5
IMaxQP 30
PMinQP 10
PMaxQP 51
VBR 1
QualityLevel low
level 41
packettype 0
FrameSkip 0
IntraOnlyMode 0
UseConstrainedBP 0
SliceLevelEncode 0
END
Settings_720P
IMinQP 5
IMaxQP 30
PMinQP 10
PMaxQP 51
VBR 1
level 32
QualityLevel low
packettype 0
FrameSkip 0
IntraOnlyMode 0
UseConstrainedBP 0
SliceLevelEncode 0
END
Settings_Default
IMinQP 5
IMaxQP 30
PMinQP 10
PMaxQP 51
VBR 1
QualityLevel low
packettype 0
FrameSkip 0
IntraOnlyMode 0
UseConstrainedBP 0
SliceLevelEncode 0
END
-268
View File
@@ -1,268 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (C) 2012 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
<!DOCTYPE MediaCodecs [
<!ELEMENT MediaCodecs (Decoders,Encoders)>
<!ELEMENT Decoders (MediaCodec*)>
<!ELEMENT Encoders (MediaCodec*)>
<!ELEMENT MediaCodec (Type*,Quirk*)>
<!ATTLIST MediaCodec name CDATA #REQUIRED>
<!ATTLIST MediaCodec type CDATA>
<!ELEMENT Type EMPTY>
<!ATTLIST Type name CDATA #REQUIRED>
<!ELEMENT Quirk EMPTY>
<!ATTLIST Quirk name CDATA #REQUIRED>
]>
There's a simple and a complex syntax to declare the availability of a
media codec:
A codec that properly follows the OpenMax spec and therefore doesn't have any
quirks and that only supports a single content type can be declared like so:
<MediaCodec name="OMX.foo.bar" type="something/interesting" />
If a codec has quirks OR supports multiple content types, the following syntax
can be used:
<MediaCodec name="OMX.foo.bar" >
<Type name="something/interesting" />
<Type name="something/else" />
...
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="output-buffers-are-unreadable" />
</MediaCodec>
Only the three quirks included above are recognized at this point:
"requires-allocate-on-input-ports"
must be advertised if the component does not properly support specification
of input buffers using the OMX_UseBuffer(...) API but instead requires
OMX_AllocateBuffer to be used.
"requires-allocate-on-output-ports"
must be advertised if the component does not properly support specification
of output buffers using the OMX_UseBuffer(...) API but instead requires
OMX_AllocateBuffer to be used.
"output-buffers-are-unreadable"
must be advertised if the emitted output buffers of a decoder component
are not readable, i.e. use a custom format even though abusing one of
the official OMX colorspace constants.
Clients of such decoders will not be able to access the decoded data,
naturally making the component much less useful. The only use for
a component with this quirk is to render the output to the screen.
Audio decoders MUST NOT advertise this quirk.
Video decoders that advertise this quirk must be accompanied by a
corresponding color space converter for thumbnail extraction,
matching surfaceflinger support that can render the custom format to
a texture and possibly other code, so just DON'T USE THIS QUIRK.
-->
<MediaCodecs>
<Settings>
<Setting name="max-video-encoder-input-buffers" value="6" />
</Settings>
<Decoders>
<MediaCodec name="OMX.Nvidia.mp4.decode" type="video/mp4v-es" >
<Limit name="size" min="48x48" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="244800" />
<Limit name="bitrate" range="1-10000000" />
<Limit name="performance-point-1920x1080" value="240" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.Nvidia.h263.decode" type="video/3gpp" >
<Limit name="size" min="48x48" max="720x576" />
<Limit name="alignment" value="2x2" />
<Limit name="performance-point-1920x1080" value="240" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.Nvidia.h264.decode" type="video/avc" >
<Limit name="size" min="48x48" max="3840x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="2000000" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-3840x2160" value="60" />
<Feature name="adaptive-playback" />
</MediaCodec>
<!-- <MediaCodec name="OMX.Nvidia.h264.decode.secure" type="video/avc" >
<Limit name="size" min="48x48" max="3840x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="2000000" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-3840x2160" value="60" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
</MediaCodec> -->
<MediaCodec name="OMX.Nvidia.vp8.decode" type="video/x-vnd.on2.vp8" >
<Limit name="size" min="48x48" max="3840x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="783360" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-3840x2160" value="60" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.Nvidia.vp9.decode" type="video/x-vnd.on2.vp9" >
<Limit name="size" min="144x144" max="3840x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="2000000" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="performance-point-3840x2160" value="60" />
<Feature name="adaptive-playback" />
</MediaCodec>
<!-- <MediaCodec name="OMX.Nvidia.vp9.decode.secure" type="video/x-vnd.on2.vp9" >
<Limit name="size" min="144x144" max="3840x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="2000000" />
<Limit name="bitrate" range="1-120000000" />
<Feature name="adaptive-playback" />
<Limit name="performance-point-3840x2160" value="60" />
<Feature name="secure-playback" required="true" />
</MediaCodec> -->
<MediaCodec name="OMX.Nvidia.h265.decode" type="video/hevc" >
<Limit name="size" min="144x144" max="3840x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="2000000" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="performance-point-3840x2160" value="60" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.Nvidia.mpeg2v.decode" type="video/mpeg2" >
<Limit name="size" min="32x32" max="3840x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="2000000" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-3840x2160" value="60" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.Nvidia.mp2.decoder" type="audio/mpeg-L2" >
<Limit name="channel-count" max="6" />
<Limit name="sample-rate" ranges="16000,22050,24000,32000,44100,48000" />
<Limit name="bitrate" range="8000-384000" />
</MediaCodec>
<MediaCodec name="OMX.Nvidia.wma.decoder" type="audio/x-ms-wma" >
<Limit name="channel-count" max="6" />
<Limit name="sample-rate" ranges="16000,22050,24000,32000,44100,48000" />
<Limit name="bitrate" range="8000-384000" />
</MediaCodec>
<MediaCodec name="OMX.Nvidia.vc1.decode" >
<Type name="video/x-ms-wmv" >
<Limit name="size" min="32x32" max="3840x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="783360" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="performance-point-1920x1080" value="240" />
<Feature name="adaptive-playback" />
</Type>
<Type name="video/wvc1" >
<Limit name="size" min="32x32" max="3840x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="783360" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="performance-point-1920x1080" value="240" />
<Feature name="adaptive-playback" />
</Type>
</MediaCodec>
<MediaCodec name="OMX.Nvidia.mjpeg.decoder" type="video/x-motion-jpeg" >
<Limit name="block-size" value="16x16" />
<Limit name="performance-point-1920x1080" value="30" />
<Feature name="adaptive-playback" />
</MediaCodec>
<!-- <MediaCodec name="OMX.Nvidia.DOVI.decode" type="video/dolby-vision" >
<Limit name="size" min="144x144" max="3840x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="2000000" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="performance-point-3840x2160" value="60" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.Nvidia.DOVI.decode.secure" type="video/dolby-vision" >
<Limit name="size" min="144x144" max="3840x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="2000000" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="performance-point-3840x2160" value="60" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
</MediaCodec> -->
</Decoders>
<Encoders>
<MediaCodec name="OMX.Nvidia.h264.encoder" type="video/avc" >
<Limit name="size" min="48x48" max="3840x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="783360" />
<Limit name="bitrate" range="1-50000000" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-3840x2160" value="30" />
<Feature name="bitrate-modes" value="VBR,CBR" />
</MediaCodec>
<MediaCodec name="OMX.Nvidia.h265.encoder" >
<Type name="video/hevc" >
<Limit name="size" min="96x96" max="3840x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="783360" />
<Limit name="bitrate" range="1-50000000" />
<Limit name="quality" range="0-100" default="45" />
<Limit name="performance-point-3840x2160" value="30" />
<Feature name="bitrate-modes" value="VBR,CBR,CQ" />
</Type>
<Type name="image/vnd.android.heic" >
<Limit name="size" min="96x96" max="3840x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="783360" />
<Limit name="bitrate" range="1-50000000" />
<Limit name="quality" range="0-100" default="45" />
<Limit name="performance-point-3840x2160" value="30" />
<Feature name="bitrate-modes" value="VBR,CBR,CQ" />
</Type>
</MediaCodec>
<MediaCodec name="OMX.Nvidia.vp8.encoder" type="video/x-vnd.on2.vp8" >
<Limit name="size" min="48x48" max="3840x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="783360" />
<Limit name="bitrate" range="1-50000000" />
<Limit name="performance-point-3840x2160" value="30" />
<Feature name="bitrate-modes" value="VBR,CBR" />
</MediaCodec>
</Encoders>
</MediaCodecs>
-123
View File
@@ -1,123 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2015 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.
-->
<MediaCodecs>
<Encoders>
<MediaCodec name="OMX.Nvidia.h264.encoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="760-902" />
<Limit name="measured-frame-rate-720x480" range="280-387" />
<Limit name="measured-frame-rate-1280x720" range="130-192" />
<Limit name="measured-frame-rate-1920x1080" range="70-95" />
</MediaCodec>
<MediaCodec name="OMX.Nvidia.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="841-854" />
<Limit name="measured-frame-rate-640x360" range="363-421" />
<Limit name="measured-frame-rate-1280x720" range="114-145" />
</MediaCodec>
<MediaCodec name="OMX.Nvidia.h265.encoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="850-982" />
<Limit name="measured-frame-rate-720x480" range="300-364" />
<Limit name="measured-frame-rate-1280x720" range="135-171" />
<Limit name="measured-frame-rate-1920x1080" range="65-80" />
<Limit name="measured-frame-rate-3840x2160" range="18-22" />
</MediaCodec>
<MediaCodec name="OMX.google.h264.encoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="490-610" />
<Limit name="measured-frame-rate-720x480" range="170-200" />
<Limit name="measured-frame-rate-1280x720" range="88-112" />
<Limit name="measured-frame-rate-1920x1080" range="45-56" />
</MediaCodec>
<MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="643-656" />
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="689-754" />
</MediaCodec>
<MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="242-253" />
<Limit name="measured-frame-rate-640x360" range="114-116" />
<Limit name="measured-frame-rate-1280x720" range="35-36" />
<Limit name="measured-frame-rate-1920x1080" range="28-28" />
</MediaCodec>
</Encoders>
<Decoders>
<!-- <MediaCodec name="OMX.Nvidia.DOVI.decode" type="video/dolby-vision" update="true">
<Limit name="measured-frame-rate-352x288" range="2239-2239" />
<Limit name="measured-frame-rate-640x368" range="1950-1950" />
<Limit name="measured-frame-rate-1280x720" range="1030-1030" />
<Limit name="measured-frame-rate-1920x1088" range="409-589" />
</MediaCodec> -->
<MediaCodec name="OMX.Nvidia.h265.decode" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="2239-2239" />
<Limit name="measured-frame-rate-640x368" range="1950-1950" />
<Limit name="measured-frame-rate-1280x720" range="1030-1030" />
<Limit name="measured-frame-rate-1920x1088" range="409-589" />
</MediaCodec>
<MediaCodec name="OMX.Nvidia.h264.decode" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="2273-2273" />
<Limit name="measured-frame-rate-720x480" range="1413-1413" />
<Limit name="measured-frame-rate-1280x720" range="811-811" />
<Limit name="measured-frame-rate-1920x1088" range="346-346" />
</MediaCodec>
<MediaCodec name="OMX.Nvidia.h263.decode" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="2335-2335" />
<Limit name="measured-frame-rate-352x288" range="1492-1950" />
</MediaCodec>
<MediaCodec name="OMX.Nvidia.mp4.decode" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="2635-2635" />
<Limit name="measured-frame-rate-480x368" range="1738-1738" />
</MediaCodec>
<MediaCodec name="OMX.Nvidia.vp8.decode" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x192" range="2057-2057" />
<Limit name="measured-frame-rate-640x368" range="1438-1438" />
<Limit name="measured-frame-rate-1280x720" range="536-536" />
<Limit name="measured-frame-rate-1920x1088" range="300-339" />
</MediaCodec>
<MediaCodec name="OMX.Nvidia.vp9.decode" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x192" range="3400-3500" />
<Limit name="measured-frame-rate-640x368" range="1532-1532" />
<Limit name="measured-frame-rate-1280x720" range="643-643" />
<Limit name="measured-frame-rate-1920x1088" range="319-319" />
</MediaCodec>
<MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="782-782" />
<Limit name="measured-frame-rate-720x480" range="227-253" />
<Limit name="measured-frame-rate-1280x720" range="86-96" />
<Limit name="measured-frame-rate-1920x1080" range="64-71" />
</MediaCodec>
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="1122-1187" />
<Limit name="measured-frame-rate-352x288" range="720-820" />
</MediaCodec>
<MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="584-590" />
<Limit name="measured-frame-rate-640x360" range="306-319" />
<Limit name="measured-frame-rate-1280x720" range="120-140" />
<Limit name="measured-frame-rate-1920x1080" range="63-78" />
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="1140-1194" />
</MediaCodec>
<MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="990-1087" />
<Limit name="measured-frame-rate-640x360" range="324-351" />
<Limit name="measured-frame-rate-1280x720" range="67-76" />
<Limit name="measured-frame-rate-1920x1080" range="26-29" />
</MediaCodec>
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x180" range="682-753" />
<Limit name="measured-frame-rate-640x360" range="287-313" />
<Limit name="measured-frame-rate-1280x720" range="94-103" />
<Limit name="measured-frame-rate-1920x1080" range="52-57" />
</MediaCodec>
</Decoders>
</MediaCodecs>
-342
View File
@@ -1,342 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 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.
-->
<!DOCTYPE MediaSettings [
<!ELEMENT MediaSettings (CamcorderProfiles,
EncoderOutputFileFormat+,
VideoEncoderCap+,
AudioEncoderCap+,
VideoDecoderCap,
AudioDecoderCap)>
<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
<!ELEMENT EncoderProfile (Video, Audio)>
<!ATTLIST EncoderProfile quality (timelapse1080p|timelapse720p|timelapse480p|timelapsehigh|timelapselow|480p|qcif|high|low|1080p) #REQUIRED>
<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
<!ELEMENT Video EMPTY>
<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
<!ATTLIST Video bitRate CDATA #REQUIRED>
<!ATTLIST Video width CDATA #REQUIRED>
<!ATTLIST Video height CDATA #REQUIRED>
<!ATTLIST Video frameRate CDATA #REQUIRED>
<!ELEMENT Audio EMPTY>
<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
<!ATTLIST Audio bitRate CDATA #REQUIRED>
<!ATTLIST Audio sampleRate CDATA #REQUIRED>
<!ATTLIST Audio channels (1|2) #REQUIRED>
<!ELEMENT ImageEncoding EMPTY>
<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
<!ELEMENT ImageDecoding EMPTY>
<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
<!ELEMENT Camera EMPTY>
<!ATTLIST Camera previewFrameRate CDATA #REQUIRED>
<!ELEMENT EncoderOutputFileFormat EMPTY>
<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
<!ELEMENT VideoEncoderCap EMPTY>
<!ATTLIST VideoEncoderCap name (h264|h263|m4v) #REQUIRED>
<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
<!ELEMENT AudioEncoderCap EMPTY>
<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
<!ELEMENT VideoDecoderCap EMPTY>
<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
<!ELEMENT AudioDecoderCap EMPTY>
<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
]>
<!--
This file is used to declare the multimedia profiles and capabilities
on an android-powered device.
-->
<MediaSettings>
<!-- Each camcorder profile defines a set of predefined configuration parameters -->
<!-- USB Camera -->
<CamcorderProfiles cameraId="0">
<EncoderProfile quality="low" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="384000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="high" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="14000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="384000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="cif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="1536000"
width="352"
height="288"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="4000000"
width="640"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="8000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="14000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapselow" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="384000"
width="176"
height="144"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsehigh" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="14000000"
width="1920"
height="1080"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapseqcif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="384000"
width="176"
height="144"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsecif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="1536000"
width="352"
height="288"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="4000000"
width="640"
height="480"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="8000000"
width="1280"
height="720"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse1080p" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="14000000"
width="1920"
height="1080"
frameRate="30" />
<!--
The Audio part of the profile will not be used since time lapse mode
does not capture audio
-->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<ImageEncoding quality="90" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<EncoderOutputFileFormat name="3gp" />
<!--
If a codec is not enabled, it is invisible to the applications
In other words, the applications won't be able to use the codec
or query the capabilities of the codec at all if it is disabled
-->
<VideoEncoderCap name="h264" enabled="true"
minBitRate="64000" maxBitRate="20000000"
minFrameWidth="176" maxFrameWidth="1920"
minFrameHeight="144" maxFrameHeight="1080"
minFrameRate="30" maxFrameRate="30" />
<VideoEncoderCap name="h263" enabled="true"
minBitRate="64000" maxBitRate="1536000"
minFrameWidth="176" maxFrameWidth="352"
minFrameHeight="144" maxFrameHeight="288"
minFrameRate="30" maxFrameRate="30" />
<VideoEncoderCap name="m4v" enabled="true"
minBitRate="64000" maxBitRate="1536000"
minFrameWidth="176" maxFrameWidth="352"
minFrameHeight="144" maxFrameHeight="288"
minFrameRate="30" maxFrameRate="30" />
<AudioEncoderCap name="aac" enabled="true"
minBitRate="8000" maxBitRate="320000"
minSampleRate="8000" maxSampleRate="48000"
minChannels="1" maxChannels="2" />
<AudioEncoderCap name="amrwb" enabled="true"
minBitRate="6600" maxBitRate="23050"
minSampleRate="16000" maxSampleRate="16000"
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="amrnb" enabled="true"
minBitRate="4750" maxBitRate="12200"
minSampleRate="8000" maxSampleRate="8000"
minChannels="1" maxChannels="1" />
<VideoDecoderCap name="wmv" enabled="true"/>
<AudioDecoderCap name="wma" enabled="true"/>
</MediaSettings>
-239
View File
@@ -1,239 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<AudioConfigs version="2">
<card name="tegra-hda">
<pcm_config name ="hdmi-playback"
device_id="3"
rate="48000"
channels="2"
bps="16"
period_size="256"
period_count="8"
start_threshold="2047"
stop_threshold="4294967295"
silence_threshold="0"
silence_size="4294967295"
avail_min="1"
devices="hdmi"/>
<param name="HDMI HW Latency" val="50"/>
<param name="DP DEVICE ID" val="3"/>
</card>
<card name="Nintendo Switch APE">
<pcm_config name="music-playback"
device_id="0"
rate="48000"
channels="2"
bps="16"
period_size="1024"
period_count="4"
start_threshold="4095"
stop_threshold="4294967295"
silence_threshold="0"
silence_size="4294967295"
avail_min="1"
devices="speaker|headphone|headset"/>
<pcm_config name="fast-playback"
device_id="5"
rate="48000"
channels="2"
bps="16"
period_size="128"
period_count="2"
start_threshold="255"
stop_threshold="4294967295"
silence_threshold="0"
silence_size="4294967295"
avail_min="1"
devices="speaker|headphone|headset"/>
<pcm_config name="music-capture"
device_id="0"
rate="48000"
channels="2"
bps="16"
period_size="128"
period_count="4"
start_threshold="1"
stop_threshold="512"
silence_threshold="0"
avail_min="1"
devices="headset-mic"/>
<pcm_config name="fast-capture"
device_id="0"
rate="48000"
channels="2"
bps="16"
period_size="128"
period_count="4"
start_threshold="1"
stop_threshold="512"
silence_threshold="0"
avail_min="1"
devices="headset-mic"/>
<pcm_config name="bt-sco-playback"
device_id="1"
rate="8000"
channels="1"
bps="16"
period_size="128"
period_count="4"
start_threshold="511"
stop_threshold="512"
silence_threshold="0"
avail_min="1"
devices="bt-sco"/>
<pcm_config name="bt-sco-capture"
device_id="1"
rate="8000"
channels="1"
bps="16"
period_size="128"
period_count="4"
start_threshold="1"
stop_threshold="512"
silence_threshold="0"
avail_min="1"
devices="bt-sco-mic"/>
<pcm_config name="bt-sco-wb-playback"
device_id="1"
rate="16000"
channels="1"
bps="16"
period_size="256"
period_count="4"
start_threshold="1023"
stop_threshold="1024"
silence_threshold="0"
avail_min="1"
devices="bt-sco"/>
<pcm_config name="bt-sco-wb-capture"
device_id="1"
rate="16000"
channels="1"
bps="16"
period_size="256"
period_count="4"
start_threshold="1"
stop_threshold="1024"
silence_threshold="0"
avail_min="1"
devices="bt-sco-mic"/>
<param name="nvoice" val="0"/>
<param name="builtin speaker" val="1"/>
<param name="safe-routing" val="1"/>
<param name="spkprot-flag" val="CPU"/>
<ctl name="ADMAIF1 Mux" val="I2S1"/>
<ctl name="codec-x rate" val="None"/>
<!-- Boot ADSP -->
<ctl name="ADSP init" val="0"/>
<!-- Keep MIXER output ready for "adsp-spkprot" or "adsp-bypass" -->
<ctl name="ADMAIF1 Mux" val="I2S1"/>
<ctl name="I2S1 Mux" val="ADMAIF1"/>
<ctl name="I2S1 Sample Rate" val="48000"/>
<ctl name="x Stereo DAC MIXL DAC L1 Switch" val="0"/>
<ctl name="x Stereo DAC MIXR DAC R1 Switch" val="0"/>
<ctl name="x SPK MIXL DAC L1 Switch" val="0"/>
<ctl name="x SPK MIXR DAC R1 Switch" val="0"/>
<ctl name="x Speaker L Playback Switch" val="0"/>
<ctl name="x Speaker R Playback Switch" val="0"/>
<ctl name="x SPOL MIX SPKVOL L Switch" val="0"/>
<ctl name="x SPOR MIX SPKVOL R Switch" val="0"/>
<ctl name="x Speaker Playback Volume" val="0,0"/>
<ctl name="x ADC MIC Capture Volume" val="0 0"/>
<ctl name="x Speaker Channel Switch" val="0,0"/>
<ctl name="x ADC Capture Switch" val="0"/>
<ctl name="x ADC IF1 Data Switch" val="Normal"/>
<ctl name="x RECMIXL BST1 Switch" val="0"/>
<ctl name="x Stereo ADC MIXL ADC1 Switch" val="0"/>
<ctl name="x OUT MIXL DAC L1 Switch" val="0"/>
<ctl name="x OUT MIXR DAC R1 Switch" val="0"/>
<ctl name="x HPO MIX HPVOL Switch" val="0"/>
<ctl name="x HP L Playback Switch" val="0"/>
<ctl name="x HP R Playback Switch" val="0"/>
<ctl name="x HP Playback Volume" val="0,0"/>
<ctl name="x HP Channel Switch" val="0,0"/>
<!-- BT-SCO path -->
<ctl name="I2S2 Mux" val="ADMAIF2"/>
<ctl name="ADMAIF2 Mux" val="I2S2"/>
<path name="adsp-bypass">
<!-- No specifc controls now -->
</path>
<path name="rt5640-speaker">
<ctl name="x Stereo DAC MIXL DAC L1 Switch" val="1"/>
<ctl name="x Stereo DAC MIXR DAC R1 Switch" val="1"/>
<ctl name="x SPK MIXL DAC L1 Switch" val="1"/>
<ctl name="x SPK MIXR DAC R1 Switch" val="1"/>
<ctl name="x Speaker L Playback Switch" val="1"/>
<ctl name="x Speaker R Playback Switch" val="1"/>
<ctl name="x SPOL MIX SPKVOL L Switch" val="1"/>
<ctl name="x SPOR MIX SPKVOL R Switch" val="1"/>
<ctl name="x Speaker Playback Volume" val="30,30"/>
<ctl name="x Speaker Channel Switch" val="1,1"/>
</path>
<path name="rt5640-headphone">
<ctl name="x HPO MIX HPVOL Switch" val="1"/>
<ctl name="x HP L Playback Switch" val="1"/>
<ctl name="x HP R Playback Switch" val="1"/>
<ctl name="x Stereo DAC MIXL DAC L1 Switch" val="1"/>
<ctl name="x Stereo DAC MIXR DAC R1 Switch" val="1"/>
<ctl name="x HP Playback Volume" val="38,38"/>
<ctl name="x HP Channel Switch" val="1,1"/>
<ctl name="x OUT MIXR DAC R1 Switch" val="1"/>
<ctl name="x OUT MIXL DAC L1 Switch" val="1"/>
</path>
<path name="rt5640-headset">
<ctl name="x ADC MIC Capture Volume" val="47,0"/>
<ctl name="x ADC Capture Switch" val="1,0"/>
<ctl name="x Stereo ADC MIXL ADC1 Switch" val="1"/>
<ctl name="x RECMIXL BST1 Switch" val="1"/>
<ctl name="x IN1 Boost" val="5"/>
<ctl name="x ADC IF1 Data Switch" val="left copy to right"/>
</path>
<path name="speaker">
<path name="rt5640-speaker"/>
<path name="adsp-bypass"/>
</path>
<path name="headphone">
<path name="rt5640-headphone"/>
<path name="adsp-bypass"/>
</path>
<path name="headset">
<path name="headphone"/>
<path name="rt5640-headset"/>
</path>
<path name="headset-mic">
<path name="rt5640-headset"/>
<path name="adsp-bypass"/>
</path>
<path name="speaker-and-headphone">
<path name="speaker"/>
<path name="headphone"/>
</path>
<path name="speaker-and-headset">
<path name="speaker"/>
<path name="headset"/>
</path>
</card>
</AudioConfigs>
+134 -78
View File
@@ -14,98 +14,154 @@
# limitations under the License.
#
# Nvhost podgov
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
governor_pod_scaling
# Proprietary gpu driver
# Gpu driver
ifeq ($(TARGET_TEGRA_GPU),nvgpu)
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
governor_pod_scaling \
nvgpu
# Bluedroid power management
else
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
bluedroid_pm
nouveau
endif
# Tegra high speed serial
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
serial-tegra
# Usb Bluetooth
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
btusb
# Broadcom wifi
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
brcmfmac-wcc
# Tegra cec
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
tegra_cec
# Tegra hdmi audio
ifeq ($(TARGET_KERNEL_VERSION),6.12)
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
snd-hda-codec-hdmi
else
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
snd-hda-codec-tegrahdmi
endif
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
snd-hda-tegra
# Sound codec
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
snd-soc-rt5640
# Tegra audio processing engine
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
snd-soc-tegra210-alt-xbar \
snd-soc-tegra210-alt-admaif \
snd-soc-tegra210-alt-sfc \
snd-soc-tegra210-alt-i2s \
snd-soc-tegra210-alt-mixer \
snd-soc-tegra210-alt-afc \
snd-soc-tegra210-alt-adx \
snd-soc-tegra210-alt-amx \
snd-soc-tegra210-alt-dmic \
snd-soc-tegra210-alt-mvc \
snd-soc-tegra210-alt-ope \
snd-soc-tegra-machine-driver
# Userspace aes crypto access
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
tegra-cryptodev
# Input cpufreq boost
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
input-cfboost
# JoyCons
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
joycon-serdev
# Fan
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
pwm_fan
# Power Monitor
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
ina3221
# TV Tuners
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
videobuf-dvb \
lgdt3306a \
si2168 \
si2157 \
lgdt3305 \
tda18272 \
em28xx-dvb \
em28xx-rc \
cx25840 \
cx231xx-dvb
# FS
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
exfat
# USB Storage
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
usb-storage
# USB Modem
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
cdc-acm
tegra210-adma \
snd-soc-tegra210-ahub \
snd-soc-tegra210-sfc \
snd-soc-tegra210-i2s \
snd-soc-tegra210-mixer \
snd-soc-tegra210-amx \
snd-soc-tegra210-admaif \
snd-soc-tegra210-adx \
snd-soc-tegra210-dmic \
snd-soc-tegra210-mvc \
snd-soc-tegra210-ope \
snd-soc-tegra-audio-graph-card
# Nvidia Controllers
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
ozwpan \
hid-nvidia-blake \
hid-jarvis-remote
hid-nvidia-shield \
hid-nvidia-shield-oot
# Misc Controllers
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
hid-xinmo \
hid-betopff
# Copy to boot
BOOT_KERNEL_MODULES := \
system_heap.ko \
tegra30-devfreq.ko \
cpufreq-dt.ko \
tegra124-cpufreq.ko \
i2c-tegra.ko \
spi-tegra114.ko \
spi-tegra210-quad.ko \
bq24190_charger.ko \
rtc-tegra.ko \
gpio-tegra.ko \
max77620.ko \
gpio-max77620.ko \
pinctrl-max77620.ko \
max77620-regulator.ko \
max77812-regulator.ko \
max77620-restart.ko \
max17042_battery.ko \
tegra20-apb-dma.ko \
phy-tegra-xusb.ko \
xhci-tegra.ko \
tegra-xudc.ko \
usb-conn-gpio.ko \
pci-tegra.ko \
hwmon.ko \
pwm-tegra.ko \
pwm-fan.ko \
pwm-regulator.ko \
tegra-soctherm.ko \
cqhci.ko \
sdhci-tegra.ko \
mtd.ko \
spi-nor.ko \
mtd_blkdevs.ko \
mtdblock.ko \
host1x.ko \
drm_display_helper.ko \
drm_dp_aux_bus.ko \
tegra-aconnect.ko \
tegra-drm.ko \
panel-nx-dsi.ko \
pwm_bl.ko \
bm92txx.ko \
ftm4.ko
# Load in first stage boot
BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := \
system_heap \
tegra20-apb-dma \
i2c-tegra \
max77620 \
max77620-regulator \
gpio-tegra \
pwm-tegra \
pwm-regulator \
pinctrl-max77620 \
gpio-max77620 \
max77812-regulator \
tegra124-cpufreq \
spi-tegra114 \
spi-tegra210-quad \
bq24190_charger \
rtc-tegra \
xhci-tegra \
tegra-xudc \
usb-conn-gpio \
pci-tegra \
pwm-fan \
tegra-soctherm \
max77620-restart \
max17042_battery \
tegra-aconnect \
sdhci-tegra \
spi-nor \
mtdblock \
tegra-drm \
panel-nx-dsi \
pwm_bl \
tegra30-devfreq \
bm92txx \
ftm4
# Copy to recovery
BOARD_RECOVERY_RAMDISK_KERNEL_MODULES_LOAD := \
exfat \
hid-nvidia-blake \
hid-jarvis-remote \
usb-storage
RECOVERY_KERNEL_MODULES := \
$(BOOT_KERNEL_MODULES)
RECOVERY_KERNEL_MODULES := $(addsuffix .ko,$(BOARD_RECOVERY_RAMDISK_KERNEL_MODULES_LOAD))
# Load in recovery
BOARD_RECOVERY_KERNEL_MODULES_LOAD := \
$(BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD)
-21
View File
@@ -1,21 +0,0 @@
/*
* Copyright (C) 2024 The LineageOS 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.
*/
prebuilt_etc {
name: "nvphsd.conf",
src: "nvphsd.nx.conf",
device_specific: true, // odm
}
-34
View File
@@ -1,34 +0,0 @@
# Copyright (c) 2016-2018, NVIDIA CORPORATION. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of NVIDIA CORPORATION nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# T210 platform-specific configuration for NVIDIA's
# Power Hinting Service running under /usr/sbin/nvphsd.
#
cpu_fmax_at_vmin=918000
gpu_fmax_at_vmin=460000
# tbc, spincircle should be enabled/disabled in sync
# il should always be the last governor in the list
governor=boot,generic,camera,gpucompute,ui,force,tbc,spincircle,il
+8
View File
@@ -2,6 +2,12 @@
PRODUCT_PROPERTY_OVERRIDES += \
persist.sys.media.avsync=true
# Baylibre audio
ifeq ($(TARGET_AUDIO_HAL),baylibre)
PRODUCT_PROPERTY_OVERRIDES += \
ro.vendor.audio.primary.device=3
endif
# Charger
PRODUCT_SYSTEM_PROPERTY_OVERRIDES += \
persist.sys.NV_ECO.IF.CHARGING=false
@@ -15,11 +21,13 @@ PRODUCT_SYSTEM_EXT_PROPERTIES += \
atv.setup.bt_remote_pairing=false
# Graphics
ifneq ($(filter 4.9 5.10, $(TARGET_KERNEL_VERSION)),)
PRODUCT_PROPERTY_OVERRIDES += \
debug.sf.latch_unsignaled=1 \
ro.surface_flinger.force_hwc_copy_for_virtual_displays=true \
ro.surface_flinger.max_frame_buffer_acquired_buffers=3 \
ro.surface_flinger.max_virtual_display_dimension=4096
endif
# HWC
PRODUCT_PROPERTY_OVERRIDES += \
+2
View File
@@ -1,5 +1,7 @@
# Access to JoyCons
r_dir_file(hal_health_default, sysfs_hid)
r_dir_file(hal_health_default, sysfs_serial)
r_dir_file(hal_health_default, sysfs_uhid)
# Access to JoyCons - Reattached
r_dir_file(hal_health_default, sysfs)
+1
View File
@@ -9,6 +9,7 @@ allow jc_setup jc_setup_exec:file { execute_no_trans open };
init_daemon_domain(jc_setup)
# Allow jc_setup to utilize the tools it needs
allow jc_setup self:capability chown;
allow jc_setup vendor_shell_exec:file rx_file_perms;
not_full_treble(`allow jc_setup shell_exec:file rx_file_perms;')
-21
View File
@@ -1,21 +0,0 @@
/*
* Copyright (C) 2024 The LineageOS 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.
*/
prebuilt_etc {
name: "thermalhal.nx.xml",
src: "thermalhal.nx.xml",
vendor: true,
}
+4 -6
View File
@@ -16,22 +16,20 @@ Attributes for cooling
Attributes for cpu-usages
These must be part of 'cpu_usages' element node
cpus - number of cpus in the platform-->
<!-- TODO: port est changes from 4.9 -->
<thermalhal>
<thermal_devices>
<thermal_device>
<thermal-prop name="SKIN" type="DEVICE_TEMPERATURE_SKIN" sensor-label="thermal-fan-est" multiplier='0.001' />
</thermal_device>
<thermal_device>
<thermal-prop name="CPU" type="DEVICE_TEMPERATURE_CPU" sensor-label="CPU-therm" multiplier='0.001' />
<thermal-prop name="CPU" type="DEVICE_TEMPERATURE_CPU" sensor-label="cpu-thermal" multiplier='0.001' />
<thermal-prop cores='4' />
</thermal_device>
<thermal_device>
<thermal-prop name="GPU" type="DEVICE_TEMPERATURE_GPU" sensor-label="GPU-therm" multiplier='0.001' />
<thermal-prop name="GPU" type="DEVICE_TEMPERATURE_GPU" sensor-label="gpu-thermal" multiplier='0.001' />
</thermal_device>
</thermal_devices>
<cooling_devices>
<cooling_device>
<cooling-prop name="FAN" type="FAN_RPM" cooling-path="/sys/devices/pwm-fan/rpm_measured" />
<cooling-prop name="FAN" type="FAN_RPM" cooling-path="/sys/class/hwmon/hwmon0/rpm" />
</cooling_device>
</cooling_devices>
<cpu_usages cpus="4" />
+31
View File
@@ -0,0 +1,31 @@
# Copyright (C) 2026 The LineageOS 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 := device/nintendo/nx/vendor/linux-firmware
PRODUCT_SOONG_NAMESPACES += $(LOCAL_PATH)
COMMON_BCM_PATH := vendor/nvidia/common/rel-shield-r/bcm
NX_BCM_PATH := vendor/nintendo/nx/rel-shield-r/bcm
NX_BCM_EXTERNAL_PATH := vendor/nintendo/nx/external/bcm
PRODUCT_COPY_FILES += \
$(NX_BCM_PATH)/bcm4356/brcmfmac4356-pcie.clm_blob:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/brcmfmac4356-pcie.nvidia,odin.clm_blob \
$(NX_BCM_PATH)/bcm4356/brcmfmac4356-pcie.clm_blob:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/brcmfmac4356-pcie.nvidia,modin.clm_blob \
$(NX_BCM_PATH)/bcm4356/brcmfmac4356-pcie.clm_blob:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/brcmfmac4356-pcie.nvidia,vali.clm_blob \
$(NX_BCM_PATH)/bcm4356/brcmfmac4356-pcie.clm_blob:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/brcmfmac4356-pcie.nvidia,fric.clm_blob \
$(NX_BCM_EXTERNAL_PATH)/bcm4356/brcmfmac4356A3-pcie.txt:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/brcmfmac4356-pcie.nvidia,odin.txt \
$(NX_BCM_EXTERNAL_PATH)/bcm4356/brcmfmac4356A3-pcie.txt:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/brcmfmac4356-pcie.nvidia,modin.txt \
$(NX_BCM_EXTERNAL_PATH)/bcm4356/brcmfmac4356A3-pcie.txt:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/brcmfmac4356-pcie.nvidia,vali.txt \
$(NX_BCM_EXTERNAL_PATH)/bcm4356/brcmfmac4356A3-pcie.txt:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/brcmfmac4356-pcie.nvidia,fric.txt \
$(NX_BCM_EXTERNAL_PATH)/bcm4356/CYW4356A3_001.004.009.0092.0095.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/BCM4356A3.hcd
+1 -15
View File
@@ -14,6 +14,7 @@
include device/nvidia/t210-common/vendor/t210-by-flags.mk
include device/nvidia/tegra-common/vendor/common-by-flags.mk
include device/nintendo/nx/vendor/$(TARGET_TEGRA_FIRMWARE_BRANCH)/nx.mk
ATF_PATH := $(abspath hardware/nintendo/arm-trusted-firmware)
@@ -26,18 +27,3 @@ ATF_PARAMS += SDEI_SUPPORT=0
# Error reporting
ATF_PARAMS += CRASH_REPORTING=1 ENABLE_ASSERTIONS=1 LOG_LEVEL=0 PLAT_LOG_LEVEL_ASSERT=0
COMMON_BCM_PATH := vendor/nvidia/common/rel-shield-r/bcm
NX_BCM_PATH := vendor/nintendo/nx/rel-shield-r/bcm
NX_BCM_EXTERNAL_PATH := vendor/nintendo/nx/external/bcm
PRODUCT_COPY_FILES += \
$(NX_BCM_PATH)/bcm4356/brcmfmac4356-pcie.clm_blob:$(TARGET_COPY_OUT_VENDOR)/firmware/brcmfmac4356-pcie.clm_blob \
$(NX_BCM_EXTERNAL_PATH)/bcm4356/brcmfmac4356A3-pcie.txt:$(TARGET_COPY_OUT_VENDOR)/firmware/brcmfmac4356-pcie.nvidia,odin.txt \
$(NX_BCM_EXTERNAL_PATH)/bcm4356/brcmfmac4356A3-pcie.txt:$(TARGET_COPY_OUT_VENDOR)/firmware/brcmfmac4356-pcie.nvidia,modin.txt \
$(NX_BCM_EXTERNAL_PATH)/bcm4356/brcmfmac4356A3-pcie.txt:$(TARGET_COPY_OUT_VENDOR)/firmware/brcmfmac4356-pcie.nvidia,vali.txt \
$(NX_BCM_EXTERNAL_PATH)/bcm4356/brcmfmac4356A3-pcie.txt:$(TARGET_COPY_OUT_VENDOR)/firmware/brcmfmac4356-pcie.nvidia,fric.txt \
$(NX_BCM_EXTERNAL_PATH)/bcm4356/CYW4356A3_001.004.009.0092.0095.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/BCM4356A3.hcd
PRODUCT_COPY_FILES += \
$(COMMON_BCM_PATH)/bcm4356/brcmfmac4356-pcie.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/brcmfmac4356-pcie.bin