OSDN Git Service

Merge remote-tracking branch 'x86/nougat-x86' into oreo-x86
[android-x86/device-generic-common.git] / init.sh
diff --git a/init.sh b/init.sh
index 8d87f0c..8293126 100644 (file)
--- 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()
@@ -38,13 +66,10 @@ function init_hal_audio()
                VirtualBox*|Bochs*)
                        [ -d /proc/asound/card0 ] || modprobe snd-sb16 isapnp=0 irq=5
                        ;;
-               *)
+               TS10*)
+                       set_prop_if_empty hal.audio.out pcmC0D2p
                        ;;
        esac
-
-       if grep -qi "IntelHDMI" /proc/asound/card0/id; then
-               [ -d /proc/asound/card1 ] || set_property ro.hardware.audio.primary hdmi
-       fi
 }
 
 function init_hal_bluetooth()
@@ -150,18 +175,19 @@ function init_uvesafb()
 
 function init_hal_gralloc()
 {
+       [ "$VULKAN" = "1" ] && GRALLOC=gbm
+
        case "$(cat /proc/fb | head -1)" in
                *virtiodrmfb)
                        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
-                       set_prop_if_empty sleep.state none
                        ;;
                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
                        ;;
@@ -181,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
@@ -194,7 +234,7 @@ function init_hal_power()
 
        # TODO
        case "$PRODUCT" in
-               HP*Omni*|OEMB|Surface*3|T10*TA)
+               HP*Omni*|OEMB|Standard*PC*|Surface*3|T10*TA|VMware*)
                        set_prop_if_empty sleep.state none
                        ;;
                e-tab*Pro)
@@ -270,14 +310,20 @@ 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
                        ;;
@@ -379,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
@@ -437,6 +484,12 @@ function do_bootcomplete()
                Surface*Go)
                        echo on > /sys/devices/pci0000:00/0000:00:15.1/i2c_designware.1/power/control
                        ;;
+               VMware*)
+                       pm disable com.android.bluetooth
+                       ;;
+               X80*Power)
+                       set_property power.nonboot-cpu-off 1
+                       ;;
                *)
                        ;;
        esac