Merge Android 24Q2 Release (ab/11526283) to aosp-main-future
Bug: 337098550 Merged-In: Iac265af75b5fbb9bf6b34448ff3d2d4413ae3959 Change-Id: I59d25be35974c9b6ae5140fbe02a0e457de59845
This commit is contained in:
commit
1c48c9f6e4
21 changed files with 173 additions and 105 deletions
|
@ -93,7 +93,7 @@
|
|||
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
|
||||
channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
|
||||
</mixPort>
|
||||
<mixPort name="incall capture" role="sink">
|
||||
<mixPort name="incall capture" role="sink" maxActiveCount="2" maxOpenCount="2">
|
||||
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||
samplingRates="48000"
|
||||
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
|
||||
|
|
|
@ -92,7 +92,7 @@
|
|||
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
|
||||
channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
|
||||
</mixPort>
|
||||
<mixPort name="incall capture" role="sink">
|
||||
<mixPort name="incall capture" role="sink" maxActiveCount="2" maxOpenCount="2">
|
||||
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||
samplingRates="48000"
|
||||
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
|
||||
|
|
|
@ -88,7 +88,7 @@
|
|||
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
|
||||
channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
|
||||
</mixPort>
|
||||
<mixPort name="incall capture" role="sink">
|
||||
<mixPort name="incall capture" role="sink" maxActiveCount="2" maxOpenCount="2">
|
||||
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||
samplingRates="48000"
|
||||
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
|
||||
|
|
|
@ -93,7 +93,7 @@
|
|||
samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"
|
||||
channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO"/>
|
||||
</mixPort>
|
||||
<mixPort name="incall capture" role="sink">
|
||||
<mixPort name="incall capture" role="sink" maxActiveCount="2" maxOpenCount="2">
|
||||
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
|
||||
samplingRates="48000"
|
||||
channelMasks="AUDIO_CHANNEL_IN_MONO"/>
|
||||
|
|
|
@ -18,6 +18,7 @@ on fs
|
|||
chown system system /sys/class/backlight/panel1-backlight/dimming_on
|
||||
chown system system /sys/class/backlight/panel1-backlight/hbm_mode
|
||||
chown system system /sys/class/backlight/panel1-backlight/local_hbm_mode
|
||||
chown system system /sys/class/backlight/panel1-backlight/allow_wakeup_by_state_change
|
||||
chown system system /sys/devices/platform/exynos-drm/secondary-panel/gamma
|
||||
chown system system /sys/devices/platform/exynos-drm/secondary-panel/min_vrefresh
|
||||
chown system system /sys/devices/platform/exynos-drm/secondary-panel/idle_delay_ms
|
||||
|
|
|
@ -21,6 +21,15 @@ TARGET_KERNEL_DIR ?= device/google/felix-kernel
|
|||
TARGET_BOARD_KERNEL_HEADERS := device/google/felix-kernel/kernel-headers
|
||||
TARGET_RECOVERY_DEFAULT_ROTATION := ROTATION_RIGHT
|
||||
|
||||
ifdef RELEASE_GOOGLE_FELIX_KERNEL_VERSION
|
||||
TARGET_LINUX_KERNEL_VERSION := $(RELEASE_GOOGLE_FELIX_KERNEL_VERSION)
|
||||
endif
|
||||
|
||||
ifdef RELEASE_GOOGLE_FELIX_KERNEL_DIR
|
||||
TARGET_KERNEL_DIR := $(RELEASE_GOOGLE_FELIX_KERNEL_DIR)
|
||||
TARGET_BOARD_KERNEL_HEADERS := $(RELEASE_GOOGLE_FELIX_KERNEL_DIR)/kernel-headers
|
||||
endif
|
||||
|
||||
$(call inherit-product-if-exists, vendor/google_devices/felix/prebuilts/device-vendor-felix.mk)
|
||||
$(call inherit-product-if-exists, vendor/google_devices/gs201/prebuilts/device-vendor.mk)
|
||||
$(call inherit-product-if-exists, vendor/google_devices/gs201/proprietary/device-vendor.mk)
|
||||
|
@ -211,7 +220,7 @@ PRODUCT_SOONG_NAMESPACES += \
|
|||
|
||||
# Increment the SVN for any official public releases
|
||||
PRODUCT_VENDOR_PROPERTIES += \
|
||||
ro.vendor.build.svn=37
|
||||
ro.vendor.build.svn=43
|
||||
|
||||
# Vibrator HAL
|
||||
PRODUCT_VENDOR_PROPERTIES +=\
|
||||
|
@ -257,7 +266,7 @@ PRODUCT_PACKAGES += \
|
|||
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/felix/prebuilts
|
||||
ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
|
||||
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/felix/prebuilts/trusty/24Q1
|
||||
else ifneq (,$(filter AP2%,$(RELEASE_PLATFORM_VERSION)))
|
||||
else ifneq (,$(filter AP2% AP3%,$(RELEASE_PLATFORM_VERSION)))
|
||||
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/felix/prebuilts/trusty/24Q2
|
||||
else
|
||||
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/felix/prebuilts/trusty/trunk
|
||||
|
@ -395,3 +404,12 @@ PRODUCT_VENDOR_PROPERTIES += \
|
|||
PRODUCT_PRODUCT_PROPERTIES += \
|
||||
ro.quick_start.oem_id=00e0 \
|
||||
ro.quick_start.device_id=felix
|
||||
|
||||
# Set support hide display cutout feature
|
||||
PRODUCT_PRODUCT_PROPERTIES += \
|
||||
ro.support_hide_display_cutout=true
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
NoCutoutOverlay \
|
||||
AvoidAppsInCutoutOverlay
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ BOARD_KERNEL_CMDLINE += swiotlb=noforce
|
|||
RELEASE_GOOGLE_PRODUCT_RADIO_DIR := $(RELEASE_GOOGLE_FELIX_RADIO_DIR)
|
||||
ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
|
||||
RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q1
|
||||
else ifneq (,$(filter AP2%,$(RELEASE_PLATFORM_VERSION)))
|
||||
else ifneq (,$(filter AP2% AP3%,$(RELEASE_PLATFORM_VERSION)))
|
||||
RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q2
|
||||
else
|
||||
RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/trunk
|
||||
|
|
|
@ -78,8 +78,17 @@
|
|||
m 589.2,66.53 a 49.5,49.5 0 0 1 -49.5,49.5 49.5,49.5 0 0 1 -49.5,-49.5 49.5,49.5 0 0 1 49.5,-49.5 49.5,49.5 0 0 1 49.5,49.5 z
|
||||
</string>
|
||||
|
||||
<!-- Camera 0 is the front camera -->
|
||||
<!-- 1 is the logical id of the front camera -->
|
||||
<string translatable="false" name="config_protectedCameraId">1</string>
|
||||
<!-- 5 is the physical id of the outer screen front camera -->
|
||||
<string translatable="false" name="config_protectedPhysicalCameraId">5</string>
|
||||
|
||||
<!-- The properties of the face auth front camera in pixels -->
|
||||
<integer-array name="config_face_auth_props">
|
||||
<item>540</item> <!-- sensorLocationX -->
|
||||
<item>66</item> <!-- sensorLocationY -->
|
||||
<item>50</item> <!--sensorRadius -->
|
||||
</integer-array>
|
||||
|
||||
<!-- Comma-separated list of packages to exclude from camera protection. In our case,
|
||||
ignore the gaze detection package -->
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
CpLppeUseAgnssLocForEmptyDbh="true"
|
||||
CpLppHighAccuracyShapeMode="1"
|
||||
ReAidingOnHotStart="false"
|
||||
ReAidingIntervalSec="1200"
|
||||
ReAidingIntervalSec="3600"
|
||||
RuntimeSwLteFilterEnable="true"
|
||||
PpsDevice="/sys/class/pps/pps0/assert_elapsed"
|
||||
SensorsMask="0x244"
|
||||
|
@ -93,6 +93,8 @@
|
|||
MinGpsWeekNumber="2216"
|
||||
OnChipAccMask="50"
|
||||
EnableB1C="false"
|
||||
|
||||
RTICacheTimeoutSec="3600"
|
||||
/>
|
||||
|
||||
<gll_features
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
CpLppeUseAgnssLocForEmptyDbh="true"
|
||||
CpLppHighAccuracyShapeMode="1"
|
||||
ReAidingOnHotStart="false"
|
||||
ReAidingIntervalSec="1200"
|
||||
ReAidingIntervalSec="3600"
|
||||
RuntimeSwLteFilterEnable="true"
|
||||
PpsDevice="/sys/class/pps/pps0/assert_elapsed"
|
||||
SensorsMask="0x244"
|
||||
|
@ -92,6 +92,8 @@
|
|||
MinGpsWeekNumber="2216"
|
||||
OnChipAccMask="50"
|
||||
EnableB1C="false"
|
||||
|
||||
RTICacheTimeoutSec="3600"
|
||||
/>
|
||||
|
||||
<gll_features
|
||||
|
|
|
@ -8,7 +8,7 @@ NFC_DEBUG_ENABLED=0
|
|||
|
||||
###############################################################################
|
||||
# Vendor specific mode to enable FW (RF & SWP) traces.
|
||||
STNFC_FW_DEBUG_ENABLED=0
|
||||
STNFC_FW_DEBUG_ENABLED=1
|
||||
|
||||
###############################################################################
|
||||
# File used for NFA storage
|
||||
|
|
|
@ -784,6 +784,17 @@
|
|||
"Type": "DoHint",
|
||||
"Value": "LAUNCH_EXTEND"
|
||||
},
|
||||
{
|
||||
"PowerHint": "LAUNCH",
|
||||
"Type": "DoHint",
|
||||
"Value": "LAUNCH_PMU"
|
||||
},
|
||||
{
|
||||
"PowerHint": "LAUNCH_PMU",
|
||||
"Node": "PMU_POLL",
|
||||
"Duration": 3000,
|
||||
"Value": "0"
|
||||
},
|
||||
{
|
||||
"PowerHint": "LAUNCH_EXTEND",
|
||||
"Node": "CPUBigClusterMaxFreq",
|
||||
|
@ -939,6 +950,12 @@
|
|||
"Duration": 1000,
|
||||
"Value": "4-7"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_LAUNCH",
|
||||
"Node": "PMU_POLL",
|
||||
"Duration": 1000,
|
||||
"Value": "0"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_LAUNCH_EXTENDED",
|
||||
"Node": "CPUBigClusterMaxFreq",
|
||||
|
@ -963,6 +980,12 @@
|
|||
"Duration": 2000,
|
||||
"Value": "0"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_LAUNCH_EXTENDED",
|
||||
"Node": "PMU_POLL",
|
||||
"Duration": 2000,
|
||||
"Value": "0"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_THERMAL_CPU_THROTTLE",
|
||||
"Node": "CPUBigClusterMaxFreq",
|
||||
|
@ -984,21 +1007,33 @@
|
|||
{
|
||||
"PowerHint": "CAMERA_CAPTURE_CPU_THROTTLE",
|
||||
"Node": "CPUBigClusterMaxFreq",
|
||||
"Duration": 1000,
|
||||
"Duration": 2500,
|
||||
"Value": "1826000"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_CAPTURE_CPU_THROTTLE",
|
||||
"Node": "CPUMidClusterMaxFreq",
|
||||
"Duration": 1000,
|
||||
"Duration": 2500,
|
||||
"Value": "1491000"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_CAPTURE_CPU_THROTTLE",
|
||||
"Node": "CPULittleClusterMaxFreq",
|
||||
"Duration": 1000,
|
||||
"Duration": 2500,
|
||||
"Value": "1401000"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_CAPTURE_CPU_THROTTLE",
|
||||
"Node": "PMU_POLL",
|
||||
"Duration": 2500,
|
||||
"Value": "0"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_CAPTURE_CPU_THROTTLE",
|
||||
"Node": "EM_Profile",
|
||||
"Duration": 2500,
|
||||
"Value": "default"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_SHOT",
|
||||
"Node": "MemFreq",
|
||||
|
@ -1467,12 +1502,6 @@
|
|||
"Duration": 0,
|
||||
"Value": "1"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_STREAMING_STANDARD",
|
||||
"Node": "CDPreferIdle",
|
||||
"Duration": 0,
|
||||
"Value": "0"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_STREAMING_STANDARD",
|
||||
"Node": "PMU_POLL",
|
||||
|
|
|
@ -38,6 +38,12 @@ using aidl::android::hardware::power::stats::PowerStatsEnergyConsumer;
|
|||
|
||||
void addDisplay(std::shared_ptr<PowerStats> p) {
|
||||
// Add display residency stats for inner display
|
||||
struct stat primaryBuffer;
|
||||
if (!stat("/sys/class/drm/card0/device/primary-panel/time_in_state", &primaryBuffer)) {
|
||||
// time_in_state exists
|
||||
addDisplayMrrByEntity(p, "Inner Display", "/sys/class/drm/card0/device/primary-panel/");
|
||||
} else {
|
||||
// time_in_state doesn't exist
|
||||
std::vector<std::string> inner_states = {
|
||||
"Off",
|
||||
"LP: 1840x2208@1",
|
||||
|
@ -53,8 +59,15 @@ void addDisplay(std::shared_ptr<PowerStats> p) {
|
|||
"Inner Display",
|
||||
"/sys/class/backlight/panel0-backlight/state",
|
||||
inner_states));
|
||||
}
|
||||
|
||||
// Add display residency stats for outer display
|
||||
struct stat secondaryBuffer;
|
||||
if (!stat("/sys/class/drm/card0/device/secondary-panel/time_in_state", &secondaryBuffer)) {
|
||||
// time_in_state exists
|
||||
addDisplayMrrByEntity(p, "Outer Display", "/sys/class/drm/card0/device/secondary-panel/");
|
||||
} else {
|
||||
// time_in_state doesn't exist
|
||||
std::vector<std::string> outer_states = {
|
||||
"Off",
|
||||
"LP: 1080x2092@30",
|
||||
|
@ -68,6 +81,7 @@ void addDisplay(std::shared_ptr<PowerStats> p) {
|
|||
"Outer Display",
|
||||
"/sys/class/backlight/panel1-backlight/state",
|
||||
outer_states));
|
||||
}
|
||||
|
||||
// Add display energy consumer
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(
|
||||
|
@ -142,15 +156,7 @@ void addGPU(std::shared_ptr<PowerStats> p) {
|
|||
}
|
||||
|
||||
std::string getNfcPath() {
|
||||
struct stat buffer;
|
||||
int size = 128;
|
||||
char path[size];
|
||||
for (int i = 0; i < 10; i++) {
|
||||
std::snprintf(path, size,
|
||||
"/sys/devices/platform/10970000.hsi2c/i2c-%d/i2c-st21nfc/power_stats", i);
|
||||
if (!stat(path, &buffer)) break;
|
||||
}
|
||||
return std::string(path);
|
||||
return std::string("/sys/devices/platform/10970000.hsi2c/i2c-8/8-0008/power_stats");
|
||||
}
|
||||
|
||||
int main() {
|
||||
|
|
|
@ -32,4 +32,5 @@
|
|||
<item>103</item>
|
||||
<item>103</item>
|
||||
</integer-array>
|
||||
<bool name="nfc_observe_mode_supported">true</bool>
|
||||
</resources>
|
||||
|
|
|
@ -167,4 +167,12 @@
|
|||
regulatory approval (for example, FCC pre-approval is required according to "594280 D01
|
||||
Software Configuration Control v02r01").-->
|
||||
<bool translatable="false" name ="config_wifiUpdateCountryCodeFromScanResultGeneric">true</bool>
|
||||
|
||||
<!-- Boolean indicating performing a partial initial scan is enabled -->
|
||||
<bool translatable="false" name="config_wifiEnablePartialInitialScan">true</bool>
|
||||
|
||||
<!-- Configure the max number of new channels to add into the initial partial scan list per network.
|
||||
If equals to 0, it means there's no limit on the max number of channels to include per network.-->
|
||||
<integer translatable="false" name="config_wifiInitialPartialScanMaxNewChannelsPerNetwork">3</integer>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
system_ext/lib64/libmediaadaptor.so \
|
||||
system_ext/priv-app/ShannonRcs/ShannonRcs.apk \
|
||||
system_ext/priv-app/ShannonIms/ShannonIms.apk \
|
||||
system_ext/priv-app/PixelQualifiedNetworksService/PixelQualifiedNetworksService.apk \
|
||||
system_ext/priv-app/UwbVendorService/UwbVendorService.apk \
|
||||
"
|
||||
;;
|
||||
|
|
|
@ -22,22 +22,6 @@ ifneq ($(filter felix,$(TARGET_DEVICE)),)
|
|||
endif
|
||||
|
||||
ifneq ($(filter felix,$(TARGET_DEVICE)),)
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
|
||||
LOCAL_MODULE := PixelQualifiedNetworksService
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_BUILT_MODULE_STEM := package.apk
|
||||
LOCAL_SYSTEM_EXT_MODULE := true
|
||||
LOCAL_PRIVILEGED_MODULE := true
|
||||
LOCAL_MODULE_OWNER := samsung
|
||||
LOCAL_MODULE_CLASS := APPS
|
||||
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
|
||||
LOCAL_CERTIFICATE := platform
|
||||
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
|
||||
LOCAL_LICENSE_CONDITIONS := notice
|
||||
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../COPYRIGHT $(LOCAL_PATH)/../LICENSE
|
||||
include $(BUILD_PREBUILT)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
|
||||
LOCAL_MODULE := ShannonIms
|
||||
|
|
|
@ -17,7 +17,6 @@ PRODUCT_SOONG_NAMESPACES += \
|
|||
|
||||
# AOSP packages required by the blobs
|
||||
PRODUCT_PACKAGES := \
|
||||
PixelQualifiedNetworksService \
|
||||
ShannonIms \
|
||||
ShannonRcs \
|
||||
UwbVendorService \
|
||||
|
|
|
@ -110,7 +110,7 @@ class HwApi : public Vibrator::HwApi, private HwApiBase {
|
|||
return true;
|
||||
}
|
||||
bool setFFEffect(int fd, struct ff_effect *effect, uint16_t timeoutMs) override {
|
||||
if (((*effect).replay.length != timeoutMs) || (ioctl(fd, EVIOCSFF, effect) < 0)) {
|
||||
if (ioctl(fd, EVIOCSFF, effect) < 0) {
|
||||
ALOGE("setFFEffect fail");
|
||||
return false;
|
||||
} else {
|
||||
|
|
|
@ -363,7 +363,8 @@ Vibrator::Vibrator(std::unique_ptr<HwApi> hwApiDefault, std::unique_ptr<HwCal> h
|
|||
mFfEffects[effectIndex] = {
|
||||
.type = FF_PERIODIC,
|
||||
.id = -1,
|
||||
.replay.length = static_cast<uint16_t>(mEffectDurations[effectIndex]),
|
||||
// Length == 0 to allow firmware control of the duration
|
||||
.replay.length = 0,
|
||||
.u.periodic.waveform = FF_CUSTOM,
|
||||
.u.periodic.custom_data = new int16_t[2]{RAM_WVFRM_BANK, effectIndex},
|
||||
.u.periodic.custom_len = FF_CUSTOM_DATA_LEN,
|
||||
|
@ -371,9 +372,11 @@ Vibrator::Vibrator(std::unique_ptr<HwApi> hwApiDefault, std::unique_ptr<HwCal> h
|
|||
// Bypass the waveform update due to different input name
|
||||
if ((strstr(inputEventName, "cs40l26") != nullptr) ||
|
||||
(strstr(inputEventName, "cs40l26_dual_input") != nullptr)) {
|
||||
// Let the firmware control the playback duration to avoid
|
||||
// cutting any effect that is played short
|
||||
if (!mHwApiDef->setFFEffect(
|
||||
mInputFd, &mFfEffects[effectIndex],
|
||||
static_cast<uint16_t>(mFfEffects[effectIndex].replay.length))) {
|
||||
mEffectDurations[effectIndex])) {
|
||||
ALOGE("Failed upload effect %d (%d): %s", effectIndex, errno, strerror(errno));
|
||||
}
|
||||
}
|
||||
|
@ -403,7 +406,8 @@ Vibrator::Vibrator(std::unique_ptr<HwApi> hwApiDefault, std::unique_ptr<HwCal> h
|
|||
mFfEffectsDual[effectIndex] = {
|
||||
.type = FF_PERIODIC,
|
||||
.id = -1,
|
||||
.replay.length = static_cast<uint16_t>(mEffectDurations[effectIndex]),
|
||||
// Length == 0 to allow firmware control of the duration
|
||||
.replay.length = 0,
|
||||
.u.periodic.waveform = FF_CUSTOM,
|
||||
.u.periodic.custom_data = new int16_t[2]{RAM_WVFRM_BANK, effectIndex},
|
||||
.u.periodic.custom_len = FF_CUSTOM_DATA_LEN,
|
||||
|
@ -411,9 +415,11 @@ Vibrator::Vibrator(std::unique_ptr<HwApi> hwApiDefault, std::unique_ptr<HwCal> h
|
|||
// Bypass the waveform update due to different input name
|
||||
if ((strstr(inputEventName, "cs40l26") != nullptr) ||
|
||||
(strstr(inputEventName, "cs40l26_dual_input") != nullptr)) {
|
||||
// Let the firmware control the playback duration to avoid
|
||||
// cutting any effect that is played short
|
||||
if (!mHwApiDual->setFFEffect(
|
||||
mInputFdDual, &mFfEffectsDual[effectIndex],
|
||||
static_cast<uint16_t>(mFfEffectsDual[effectIndex].replay.length))) {
|
||||
mEffectDurations[effectIndex])) {
|
||||
ALOGE("Failed upload flip's effect %d (%d): %s", effectIndex, errno,
|
||||
strerror(errno));
|
||||
}
|
||||
|
@ -795,9 +801,10 @@ ndk::ScopedAStatus Vibrator::compose(const std::vector<CompositeEffect> &composi
|
|||
if (header_count == dspmem_chunk_bytes(ch)) {
|
||||
return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
|
||||
} else {
|
||||
mFfEffects[WAVEFORM_COMPOSE].replay.length = totalDuration;
|
||||
// Composition duration should be 0 to allow firmware to play the whole effect
|
||||
mFfEffects[WAVEFORM_COMPOSE].replay.length = 0;
|
||||
if (mIsDual) {
|
||||
mFfEffectsDual[WAVEFORM_COMPOSE].replay.length = totalDuration;
|
||||
mFfEffectsDual[WAVEFORM_COMPOSE].replay.length = 0;
|
||||
}
|
||||
return performEffect(WAVEFORM_MAX_INDEX /*ignored*/, VOLTAGE_SCALE_MAX /*ignored*/, ch,
|
||||
callback);
|
||||
|
@ -1501,9 +1508,10 @@ ndk::ScopedAStatus Vibrator::getCompoundDetails(Effect effect, EffectStrength st
|
|||
}
|
||||
|
||||
*outTimeMs = timeMs;
|
||||
mFfEffects[WAVEFORM_COMPOSE].replay.length = static_cast<uint16_t>(timeMs);
|
||||
// Compositions should have 0 duration
|
||||
mFfEffects[WAVEFORM_COMPOSE].replay.length = 0;
|
||||
if (mIsDual) {
|
||||
mFfEffectsDual[WAVEFORM_COMPOSE].replay.length = static_cast<uint16_t>(timeMs);
|
||||
mFfEffectsDual[WAVEFORM_COMPOSE].replay.length = 0;
|
||||
}
|
||||
|
||||
return ndk::ScopedAStatus::ok();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
on property:vendor.all.modules.ready=1
|
||||
wait /sys/bus/i2c/devices/i2c-cs40l26a/calibration/redc_cal_time_ms
|
||||
wait /sys/bus/i2c/devices/15-0043/calibration/redc_cal_time_ms
|
||||
|
||||
mkdir /mnt/vendor/persist/haptics 0770 system system
|
||||
chmod 770 /mnt/vendor/persist/haptics
|
||||
|
@ -9,26 +9,28 @@ on property:vendor.all.modules.ready=1
|
|||
chown system system /mnt/vendor/persist/haptics/cs40l26.cal
|
||||
chown system system /mnt/vendor/persist/haptics/cs40l26_dual.cal
|
||||
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a/calibration/f0_stored
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a-dual/calibration/f0_stored
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a/calibration/q_stored
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a-dual/calibration/q_stored
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a/calibration/redc_stored
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a-dual/calibration/redc_stored
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a/default/vibe_state
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a-dual/default/vibe_state
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a/default/num_waves
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a-dual/default/num_waves
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a/default/f0_offset
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a-dual/default/f0_offset
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a/default/owt_free_space
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a-dual/default/owt_free_space
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a/default/f0_comp_enable
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a-dual/default/f0_comp_enable
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a/default/redc_comp_enable
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a-dual/default/redc_comp_enable
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a/default/delay_before_stop_playback_us
|
||||
chown system system /sys/bus/i2c/devices/i2c-cs40l26a-dual/default/delay_before_stop_playback_us
|
||||
chown system system /sys/bus/i2c/devices/15-0043/calibration/f0_stored
|
||||
chown system system /sys/bus/i2c/devices/15-0043/calibration/q_stored
|
||||
chown system system /sys/bus/i2c/devices/15-0043/calibration/redc_stored
|
||||
chown system system /sys/bus/i2c/devices/15-0043/default/vibe_state
|
||||
chown system system /sys/bus/i2c/devices/15-0043/default/num_waves
|
||||
chown system system /sys/bus/i2c/devices/15-0043/default/f0_offset
|
||||
chown system system /sys/bus/i2c/devices/15-0043/default/owt_free_space
|
||||
chown system system /sys/bus/i2c/devices/15-0043/default/f0_comp_enable
|
||||
chown system system /sys/bus/i2c/devices/15-0043/default/redc_comp_enable
|
||||
chown system system /sys/bus/i2c/devices/15-0043/default/delay_before_stop_playback_us
|
||||
|
||||
chown system system /sys/bus/i2c/devices/15-0042/calibration/f0_stored
|
||||
chown system system /sys/bus/i2c/devices/15-0042/calibration/q_stored
|
||||
chown system system /sys/bus/i2c/devices/15-0042/calibration/redc_stored
|
||||
chown system system /sys/bus/i2c/devices/15-0042/default/vibe_state
|
||||
chown system system /sys/bus/i2c/devices/15-0042/default/num_waves
|
||||
chown system system /sys/bus/i2c/devices/15-0042/default/f0_offset
|
||||
chown system system /sys/bus/i2c/devices/15-0042/default/owt_free_space
|
||||
chown system system /sys/bus/i2c/devices/15-0042/default/f0_comp_enable
|
||||
chown system system /sys/bus/i2c/devices/15-0042/default/redc_comp_enable
|
||||
chown system system /sys/bus/i2c/devices/15-0042/default/delay_before_stop_playback_us
|
||||
|
||||
chown system system /dev/gpiochip44
|
||||
|
||||
enable vendor.vibrator.cs40l26
|
||||
|
@ -46,8 +48,8 @@ service vendor.vibrator.cs40l26 /vendor/bin/hw/android.hardware.vibrator-service
|
|||
setenv CALIBRATION_FILEPATH /mnt/vendor/persist/haptics/cs40l26.cal
|
||||
setenv CALIBRATION_FILEPATH_DUAL /mnt/vendor/persist/haptics/cs40l26_dual.cal
|
||||
|
||||
setenv HWAPI_PATH_PREFIX /sys/bus/i2c/devices/i2c-cs40l26a/
|
||||
setenv HWAPI_PATH_PREFIX_DUAL /sys/bus/i2c/devices/i2c-cs40l26a-dual/
|
||||
setenv HWAPI_PATH_PREFIX /sys/bus/i2c/devices/15-0043/
|
||||
setenv HWAPI_PATH_PREFIX_DUAL /sys/bus/i2c/devices/15-0042/
|
||||
setenv HWAPI_DEBUG_PATHS "
|
||||
calibration/f0_stored
|
||||
calibration/redc_stored
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue