The android-mainline kernel doesn't provide the scheduler vendor hooks,
and therefore the pixel drivers don't expose anything below
/proc/vendor_sched/. This causes powerpower-libperfmgr to emit *a lot*
of warnings to logcat regarding failures to write to nodes below
/proc/vendor_sched/.
As a solution, provide a -mainline version of powerhint.json for the
two platforms supported by android-mainline.
The new files are based on revision f56bbd1bfb
("disable vendor idle
balancer") of powerhint.json and have all nodes and actions referring
to /proc/vendor_sched/ removed using the following jq commands:
for f in powerhint-oriole.json powerhint-raven.json ; do \
fdst="$(basename "${f}" .json)-mainline.json"
names=$(jq '."Nodes"[] | select(."Path" | startswith("/proc/vendor_sched/")).Name' "${f}" \
| tr '\n' ' ' \
| sed -e 's|" "|", "|g')
jq '. | del( ."Actions"[] | select(."Node"==('"${names}"')))' "${f}" > "${fdst}"
jq '. | del( ."Nodes"[] | select(."Path" | startswith("/proc/vendor_sched/")) )' "${fdst}" > "${fdst}2"
mv "${fdst}2" "${fdst}"
done
The -mainline version will be picked based on a boot property set by
the mainline kernel.
Bug: 265961701
Test: adb shell -nT getprop vendor.powerhal.config
adb logcat -b all -D 'libperfmgr:V powerhal-libperfmgr:V *:S'
m libperfmgr_test \
&& adb push \
out/target/product/oriole/data/nativetest64/libperfmgr_test/libperfmgr_test \
/data/libperfmgr_test \
&& adb shell /data/libperfmgr_test
Change-Id: Ice07444e38194e5fcf2127e935afdd4d29ff8e87
Signed-off-by: André Draszik <draszik@google.com>
58 lines
2.1 KiB
Text
58 lines
2.1 KiB
Text
# Raven specific init.rc
|
|
import /vendor/etc/init/hw/init.gs101.rc
|
|
import /vendor/etc/init/hw/init.raviole.rc
|
|
|
|
on init
|
|
# logbuffer
|
|
chown system system /dev/logbuffer_5-0057
|
|
# nvmem dump
|
|
chown system system /sys/bus/nvmem/devices/5-00500/nvmem
|
|
|
|
# Power Stats HAL
|
|
chown system system /sys/devices/platform/10d30000.spi/spi_master/spi10/spi10.0/uwb/power_stats
|
|
|
|
on init && property:ro.boot.vh_sched_available=0
|
|
setprop vendor.powerhal.config powerhint-mainline.json
|
|
|
|
on fs
|
|
# Face
|
|
exec_background - system shell -- /vendor/bin/trusty_apploader /vendor/firmware/faceauth.app
|
|
|
|
on property:vendor.mfgapi.touchpanel.permission=1
|
|
chmod 0600 /sys/devices/virtual/sec/tsp/cmd
|
|
chown system system /sys/devices/virtual/sec/tsp/cmd
|
|
|
|
# Toggle glove_mode according to touch_sensitivity_mode
|
|
on property:persist.vendor.touch_sensitivity_mode=0 && property:sys.boot_completed=1
|
|
write /sys/devices/virtual/sec/tsp/cmd "glove_mode,0"
|
|
|
|
on property:persist.vendor.touch_sensitivity_mode=1 && property:sys.boot_completed=1
|
|
write /sys/devices/virtual/sec/tsp/cmd "glove_mode,1"
|
|
|
|
# Display
|
|
on property:graphics.display.kernel_idle_timer.enabled=true
|
|
# Enable aggressive idle mode switching
|
|
write /sys/devices/platform/exynos-drm/primary-panel/panel_idle "1"
|
|
|
|
on property:graphics.display.kernel_idle_timer.enabled=false
|
|
write /sys/devices/platform/exynos-drm/primary-panel/panel_idle "0"
|
|
|
|
# Thermal
|
|
on late-init && property:ro.boot.hardware.revision=PROTO1.0
|
|
setprop vendor.disable.usb.overheat.mitigation.control 1
|
|
|
|
on late-init && property:ro.boot.hardware.revision=PROTO1.1
|
|
setprop vendor.disable.usb.overheat.mitigation.control 1
|
|
|
|
on late-init && property:ro.boot.hardware.revision=EVT1.0
|
|
setprop vendor.disable.usb.overheat.mitigation.control 1
|
|
|
|
# Bluetooth
|
|
on post-fs-data
|
|
chown bluetooth system /proc/bluetooth/timesync
|
|
|
|
# For Japan sku, always enforce camera shutter sound
|
|
# Since this property is read by the audio server in system service,
|
|
# it should be written by the system init.
|
|
on property:ro.boot.hardware.sku=GF5KQ
|
|
setprop audio.camerasound.force true
|