summaryrefslogtreecommitdiff
path: root/init/firmware_handler.cpp
AgeCommit message (Collapse)Author
2021-04-16ueventd: Allow pattern matching to find external firmware handlerSuchang Woo
Only the exact same devpath uevent can launch external handler specified in ueventd.rc. So, you should specify all possible devpaths, even firmware with different filenames on the same device. Pattern mactching can be used to simplify this. Test: atest CtsInitTestCases Signed-off-by: Suchang Woo <suchang.woo@samsung.com> Change-Id: If3b7a2cabb8055bf4b768d928f0fc0012da3c177
2020-09-21ueventd: change firmware location in apexesJooyung Han
To be consistent with other prebuilt modules within APEXes, the location for firmware files is switched from /apex/*/firmware to /apex/*/etc/firmware. Bug: 167942098 Test: loading vibrator firmware from vibrator apex(sunfish) Change-Id: Ia05735bf5a54482fded26525fa4a8f795dcfc029
2020-09-19ueventd: scans /apex/*/firmware for firmwaresJooyung Han
In addition to "firmware_directories", ueventd scans /apex/*/firmware/ directory as well to find firmware files. Bug: 167942098 Test: loading firmware from vibrator apex successfully. (sunfish) Change-Id: I90fc8f9ad843a08b1ca98a2be1b5d22c0c5954a3
2020-02-06Convert system/core to Result::ok()Bernie Innocenti
No functionality changes, this is a mechanical cleanup. Test: m Test: cd system/core && atest Change-Id: Ifdaa3ce1947ed578f656d5a446978726eb416c36
2019-09-12ueventd: allow using external firmware handlersTom Cherry
Userspace may want to load a different firmware than the one that the kernel requests in some cases, therefore this change adds the ability to ueventd to run an external handler that will determine the name of the file that should actually be loaded. Bug: 138352500 Test: unit tests Change-Id: Ic5da37268fd78109f83ae52d1b903bf7322a5ee5
2019-05-23ueventd: add more logging when firmware loading failsTom Cherry
Bug: 130131892 Test: boots Change-Id: I82ce0f72341bb44590177cedaa2e3a7990456c1d
2018-08-01ueventd: require opt-in for modalias handlingTom Cherry
Some devices have modules.alias and modules.dep for modprobe and other purposes but do not want to opt into ueventd auto loading their modules. Therefore we add a flag that can be added to ueventd configuration files to opt into this behavior. Bug: 111916071 Bug: 112048758 Test: check that modules are loaded with this opt-in Test: check that modules are not loaded without this opt-in Change-Id: Ifb281b273059b4671eea1ca5bc726c9e79f3adfb
2018-07-13ueventd: let scripts provide firmware directoriesTom Cherry
Since some vendors will have firmware in mount points in /mnt/vendor/..., we extend the ueventd script language to allow specifying the firmware directories. Also, move the existing 4 directories to ueventd.rc as a primary user of this mechanism. Bug: 111337229 Test: boot sailfish; firmwares load Change-Id: I0854b0b786ad761e40d2332312c637610432fce2
2017-12-04Allow firmware loading from ODM partitionAlin Jerpelea
ODM partition may contain firmware and we should allow firmware loading from this partition Test: firmware is loaded succesfully Change-Id: I7d327bc79a04d1a2dee0fd47407eb53f9d391665 Signed-off-by: Alin Jerpelea <alin.jerpelea@sonymobile.com>
2017-07-10Move Timer from init to libbaseTom Cherry
Test: boot bullhead Test: new libbase unit tests Change-Id: Ic398a1daa1fe92c10ea7bc1e6ac3f781cee9a5b5
2017-07-05ueventd: don't double fork firmware handlersTom Cherry
ueventd may be asked to handle firmware during the time critical coldboot process. If we double fork to avoid needing to reap the firmware handler, then we may add significant delay to this process, as the first child may not get scheduled quickly enough for waitpid() to complete without delay. Bug: 63081260 Test: boot bullhead and sailfish, check that firmwares are loaded, no zombie ueventd processes remain, and no new errors are shown Change-Id: I2bac3b1fbc3a58557a00326e491c104656db27ae
2017-06-23init: create android::init:: namespaceTom Cherry
With some small fixups along the way Test: Boot bullhead Test: init unit tests Change-Id: I7beaa473cfa9397f845f810557d1631b4a462d6a
2017-06-02ueventd: parallelize uevent handlingTom Cherry
fork() subprocesses to handle uevents in parallel. This reduces coldboot time on bullhead from ~446ms to ~230ms. This reduces coldboot time on sailfish from ~690ms to ~360ms. This reduces coldboot time on ryu from ~187ms to ~122ms. Bug: 33785894 Test: boot bullhead x40, observe no major differences in /dev and /sys Test: boot sailfish x40, observe no major differences in /dev and /sys Test: boot ryu x40, observe no major differences in /dev and /sys Test: boottime tests on bullhead and sailfish Test: init unit tests Change-Id: Ie2f63e000b8af78d187477d31fe109f20304d749
2017-05-25ueventd: Break devices.cpp into discrete classesTom Cherry
devices.cpp handles too many things for creating one class. This change breaks it up into various files and classes. * Parsing is moved to ueventd_parser.cpp * Reading from the uevent socket and Cold booting is moved to a UeventListener class, in uevent_listener.cpp * Firmware handling is moved to firmware_handler.cpp * The remaining contents form a DeviceHandler class within devices.cpp Bug: 33785894 Test: boot bullhead x40, observe no major differences in /dev and /sys Test: boot sailfish x40, observe no major differences in /dev and /sys Test: init unit tests Change-Id: I846a2e5995fbb344c7a8e349065c18a934fa6aba