X-Git-Url: http://git.osdn.net/view?p=android-x86%2Fdevice-generic-common.git;a=blobdiff_plain;f=init.sh;h=f759a1c639c54ceb5e68761bb6cf76f809c655c9;hp=14d5d34f80d60f0bd411930912510d1620668b11;hb=6d50976748ebc61030a91582a885b38283a2e2d2;hpb=f776fd485a3b520181a27a48fd65d7c57e04b8d5 diff --git a/init.sh b/init.sh index 14d5d34..f759a1c 100644 --- a/init.sh +++ b/init.sh @@ -15,6 +15,13 @@ function set_prop_if_empty() [ -z "$(getprop $1)" ] && set_property "$1" "$2" } +function rmmod_if_exist() +{ + for m in $*; do + [ -d /sys/module/$m ] && rmmod $m + done +} + function init_misc() { # device information @@ -30,6 +37,27 @@ function init_misc() # enable sdcardfs if /data is not mounted on tmpfs or 9p mount | grep /data\ | grep -qE 'tmpfs|9p' [ $? -ne 0 ] && modprobe sdcardfs + + # remove wl if it's not used + local wifi + if [ -d /sys/class/net/wlan0 ]; then + wifi=$(basename `readlink /sys/class/net/wlan0/device/driver`) + [ "$wifi" != "wl" ] && rmmod_if_exist wl + fi + + # enable virt_wifi if needed + local eth=`getprop net.virt_wifi eth0` + if [ -d /sys/class/net/$eth -a "$VIRT_WIFI" != "0" ]; then + if [ -n "$wifi" -a "$VIRT_WIFI" = "1" ]; then + rmmod_if_exist iwlmvm $wifi + fi + if [ ! -d /sys/class/net/wlan0 ]; then + ifconfig $eth down + ip link set $eth name wifi_eth + ifconfig wifi_eth up + ip link add link wifi_eth name wlan0 type virt_wifi + fi + fi } function init_hal_audio() @@ -100,7 +128,14 @@ function init_hal_bluetooth() function init_hal_camera() { - return + case "$PRODUCT" in + e-tab*Pro) + set_prop_if_empty hal.camera.0 0,270 + set_prop_if_empty hal.camera.2 1,90 + ;; + *) + ;; + esac } function init_hal_gps() @@ -140,17 +175,19 @@ function init_uvesafb() function init_hal_gralloc() { + [ "$VULKAN" = "1" ] && GRALLOC=gbm + case "$(cat /proc/fb | head -1)" in - *virtiodrmfb) + *virtiodrmfb|*DRM*emulated) if [ "$HWACCEL" != "0" ]; then - set_property ro.hardware.hwcomposer drm - set_property ro.hardware.gralloc gbm + set_property ro.hardware.hwcomposer ${HWC:-drm} + set_property ro.hardware.gralloc ${GRALLOC:-gbm} set_property debug.drm.mode.force ${video:-1280x800} fi ;; 0*inteldrmfb|0*radeondrmfb|0*nouveaufb|0*svgadrmfb|0*amdgpudrmfb) if [ "$HWACCEL" != "0" ]; then - set_property ro.hardware.gralloc drm + set_property ro.hardware.gralloc ${GRALLOC:-drm} set_drm_mode fi ;; @@ -170,6 +207,20 @@ function init_hal_hwcomposer() return } +function init_hal_vulkan() +{ + case "$(cat /proc/fb | head -1)" in + 0*inteldrmfb) + set_property ro.hardware.vulkan android-x86 + ;; + 0*amdgpudrmfb) + set_property ro.hardware.vulkan radv + ;; + *) + ;; + esac +} + function init_hal_lights() { chown 1000.1000 /sys/class/backlight/*/brightness @@ -183,9 +234,12 @@ function init_hal_power() # TODO case "$PRODUCT" in - HP*Omni*|OEMB|Standard*PC*|Surface*3|T10*TA) + HP*Omni*|OEMB|Standard*PC*|Surface*3|T10*TA|VMware*) set_prop_if_empty sleep.state none ;; + e-tab*Pro) + set_prop_if_empty sleep.state force + ;; *) ;; esac @@ -256,18 +310,27 @@ function init_hal_sensors() modprobe hdaps hal_sensors=hdaps ;; + *LINX1010B*) + set_property ro.iio.accel.z.opt_scale -1 + ;& *i7Stylus*|*M80TA*) set_property ro.iio.accel.x.opt_scale -1 ;; - *ONDATablet*) + *LenovoMIIX320*|*ONDATablet*) set_property ro.iio.accel.order 102 set_property ro.iio.accel.x.opt_scale -1 set_property ro.iio.accel.y.opt_scale -1 ;; + *SP111-33*) + set_property ro.iio.accel.quirks no-trig + ;& *ST70416-6*) set_property ro.iio.accel.order 102 ;; - *T*0*TA*|*pnEZpad*) + *e-tabPro*|*pnEZpad*) + set_property ro.iio.accel.quirks no-trig + ;& + *T*0*TA*) set_property ro.iio.accel.y.opt_scale -1 ;; *) @@ -362,6 +425,7 @@ function do_init() init_hal_gps init_hal_gralloc init_hal_hwcomposer + init_hal_vulkan init_hal_lights init_hal_power init_hal_sensors @@ -423,6 +487,9 @@ function do_bootcomplete() VMware*) pm disable com.android.bluetooth ;; + X80*Power) + set_property power.nonboot-cpu-off 1 + ;; *) ;; esac