Squashed commit of many changes from P4 kernel
Change-Id: Iea4fa968fe039afe59c03ea051cde42db7abdc31