fork from https://android.googlesource.com/kernel/msm