123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #! /vendor/bin/sh
- #=============================================================================
- # Copyright (c) 2019-2021 Qualcomm Technologies, Inc.
- # All Rights Reserved.
- # Confidential and Proprietary - Qualcomm Technologies, Inc.
- #=============================================================================
- VENDOR_DIR="/vendor/lib/modules"
- VENDOR_DLKM_DIR="/vendor_dlkm/lib/modules"
- MODPROBE="/vendor/bin/modprobe"
- # vendor modules partition could be /vendor/lib/modules or /vendor_dlkm/lib/modules
- POSSIBLE_DIRS="${VENDOR_DLKM_DIR} ${VENDOR_DIR}"
- for dir in ${POSSIBLE_DIRS} ;
- do
- if [ ! -e ${dir}/modules.load ]; then
- continue
- fi
- if [ -e ${dir}/modules.blocklist ]; then
- blocklist_expr="$(sed -n -e 's/blocklist \(.*\)/\1/p' ${dir}/modules.blocklist | sed -e 's/-/_/g' -e 's/^/-e /')"
- else
- # Use pattern that won't be found in modules list so that all modules pass through grep below
- blocklist_expr="-e %"
- fi
- # Filter out modules in blocklist - we would see unnecessary errors otherwise
- load_modules=$(cat ${dir}/modules.load | grep -w -v ${blocklist_expr})
- first_module=$(echo ${load_modules} | cut -d " " -f1)
- other_modules=$(echo ${load_modules} | cut -d " " -f2-)
- if ! ${MODPROBE} -b -s -d ${dir} -a ${first_module} > /dev/null ; then
- continue
- fi
- # load modules individually in case one of them fails to init
- for module in ${other_modules}; do
- ( ${MODPROBE} -b -s -d ${dir} -a ${module} > /dev/null ) &
- done
- wait
- setprop vendor.all.modules.ready 1
- exit 0
- done
- exit 1
|