summaryrefslogtreecommitdiff
path: root/init.bullhead.rc
diff options
context:
space:
mode:
authorWei Wang <wvw@google.com>2016-11-21 17:58:09 -0800
committerWei Wang <wvw@google.com>2016-11-21 17:58:09 -0800
commit929ba306074d978ce1de50d6544ccd009fe0c97b (patch)
tree26aad7cafc6d89d523ff7ee4d09f0ebca1387966 /init.bullhead.rc
parent5c25a3da90ba5b4b6517c436e63efca69aa5174d (diff)
downloadbullhead-929ba306074d978ce1de50d6544ccd009fe0c97b.tar.gz
bullhead: Accelerate boot by paralleling device enable
Some QCOM devices require sysfs to trigger boot/init which are blocking the init process. [ 7.453205] init: Command 'write /sys/kernel/boot_adsp/boot 1' action=post-fs-data (/init.angler.rc:166) returned 0 took 271.936ms. This CL is to put those slow to start devices in a separate service and wait for the service to be done later on. Bug: 32712851 Test: On device Change-Id: Idd4e965f122cbc8421b443a41573d363112dfa50
Diffstat (limited to 'init.bullhead.rc')
-rw-r--r--init.bullhead.rc14
1 files changed, 12 insertions, 2 deletions
diff --git a/init.bullhead.rc b/init.bullhead.rc
index 61fd977..c3a6fd8 100644
--- a/init.bullhead.rc
+++ b/init.bullhead.rc
@@ -89,6 +89,9 @@ on early-boot
# Update dm-verity state and set partition.*.verified properties
verity_update_state
+ # Busy loop to wait for devices booted by devstart_sh just in case device not ready
+ exec - root root system -- /system/bin/init.qcom.devwait.sh
+
on boot
# execute script to set initial CPU settings
# don't run as a service to avoid race conditions
@@ -182,7 +185,10 @@ on post-fs
mkdir /persist/widevine 0770 drm system
start qseecomd
+ # Busy loop to wait for qseecomd started
exec - root root system -- /system/bin/init.bullhead.qseecomd.sh
+ # Start devices by sysfs trigger
+ start devstart_sh
on post-fs-data
# Mark the copy complete flag to not completed
@@ -191,8 +197,6 @@ on post-fs-data
chown radio radio /data/misc/radio/copy_complete
chmod 0660 /data/misc/radio/copy_complete
- write /sys/kernel/boot_adsp/boot 1
-
#Update touch firmware if required
write /sys/bus/i2c/devices/2-0020/check_fw 1
write /sys/devices/soc.0/f9924000.i2c/power/control on
@@ -431,3 +435,9 @@ service fingerprintd /system/bin/fingerprintd
user system
group system input
+service devstart_sh /system/bin/init.qcom.devstart.sh
+ class main
+ user root
+ group root system
+ disabled
+ oneshot