Set sys.usb.ffs.aio_compat.
am: f91eab2f09

Change-Id: I8e8c742ff9ff30e5bb678568f2e344d0c4d8b168
diff --git a/BoardConfig.mk b/BoardConfig.mk
index 53c7f31..5aa9f3b 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -159,6 +159,9 @@
 # Testing related defines
 BOARD_PERFSETUP_SCRIPT := platform_testing/scripts/perf-setup/bullhead-setup.sh
 
+DEVICE_MANIFEST_FILE := device/lge/bullhead/manifest.xml
+DEVICE_MATRIX_FILE := device/lge/bullhead/compatibility_matrix.xml
+
 ifeq ($(TARGET_PRODUCT),aosp_bullhead_svelte)
 BOARD_KERNEL_CMDLINE += mem=1024M maxcpus=2
 MALLOC_SVELTE := true
diff --git a/apns-full-conf.xml b/apns-full-conf.xml
index ae71b05..1ce9b64 100644
--- a/apns-full-conf.xml
+++ b/apns-full-conf.xml
@@ -984,7 +984,7 @@
       mnc="01"
       apn="internet.ch.upcmobile.com"
       type="default,supl"
-      mvno_match_data="75636832"
+      mvno_match_data="75636831"
       mvno_type="gid"
   />
 
@@ -996,7 +996,7 @@
       mmsproxy="062.179.127.018"
       mmsport="8080"
       type="mms"
-      mvno_match_data="75636832"
+      mvno_match_data="75636831"
       mvno_type="gid"
   />
 
@@ -2742,7 +2742,7 @@
   <apn carrier="Internet"
       mcc="222"
       mnc="01"
-      apn="internet.windmobile.ca"
+      apn="internet.freedommobile.ca"
       type="default,supl"
       protocol="IPV4V6"
       mvno_match_data="FFFFFF00"
@@ -2752,8 +2752,8 @@
   <apn carrier="MMS"
       mcc="222"
       mnc="01"
-      apn="mms.windmobile.ca"
-      mmsc="http://mms.windmobile.ca"
+      apn="mms.freedommobile.ca"
+      mmsc="http://mms.freedommobile.ca"
       mmsproxy="74.115.197.70"
       mmsport="8080"
       type="mms"
@@ -2955,7 +2955,7 @@
   <apn carrier="Internet"
       mcc="222"
       mnc="88"
-      apn="internet.windmobile.ca"
+      apn="internet.freedommobile.ca"
       type="default,supl"
       protocol="IPV4V6"
       mvno_match_data="FFFFFF00"
@@ -2965,8 +2965,8 @@
   <apn carrier="MMS"
       mcc="222"
       mnc="88"
-      apn="mms.windmobile.ca"
-      mmsc="http://mms.windmobile.ca"
+      apn="mms.freedommobile.ca"
+      mmsc="http://mms.freedommobile.ca"
       mmsproxy="74.115.197.70"
       mmsport="8080"
       type="mms"
@@ -3218,7 +3218,7 @@
       mnc="53"
       apn="internet.ch.upcmobile.com"
       type="default,supl"
-      mvno_match_data="75636832"
+      mvno_match_data="75636831"
       mvno_type="gid"
   />
 
@@ -3230,7 +3230,7 @@
       mmsproxy="062.179.127.018"
       mmsport="8080"
       type="mms"
-      mvno_match_data="75636832"
+      mvno_match_data="75636831"
       mvno_type="gid"
   />
 
@@ -5066,7 +5066,7 @@
       apn="internet"
       type="default,supl"
       protocol="IPV4V6"
-      roaming_protocol="IPV4"
+      roaming_protocol="IP"
   />
 
   <apn carrier="DNA MMS"
@@ -5121,6 +5121,7 @@
       mnc="05"
       apn="internet.saunalahti"
       type="default,supl"
+      protocol="IPV4V6"
       mvno_match_data="2440541"
       mvno_type="imsi"
   />
@@ -5162,7 +5163,7 @@
       apn="internet"
       type="default,supl"
       protocol="IPV4V6"
-      roaming_protocol="IPV4"
+      roaming_protocol="IP"
   />
 
   <apn carrier="DNA MMS"
@@ -7207,7 +7208,7 @@
   <apn carrier="Internet"
       mcc="302"
       mnc="490"
-      apn="internet.windmobile.ca"
+      apn="internet.freedommobile.ca"
       type="default,supl"
       protocol="IPV4V6"
   />
@@ -7215,8 +7216,8 @@
   <apn carrier="MMS"
       mcc="302"
       mnc="490"
-      apn="mms.windmobile.ca"
-      mmsc="http://mms.windmobile.ca"
+      apn="mms.freedommobile.ca"
+      mmsc="http://mms.freedommobile.ca"
       mmsproxy="74.115.197.70"
       mmsport="8080"
       type="mms"
@@ -7254,6 +7255,16 @@
       mmsc="http://mms.bell.ca/mms/wapenc"
   />
 
+  <apn carrier="Virgin Mobile"
+      mcc="302"
+      mnc="610"
+      apn="pda.bell.ca"
+      type="default,mms,supl"
+      mmsc="http://mms.bell.ca/mms/wapenc"
+      mvno_match_data="3E"
+      mvno_type="gid"
+  />
+
   <apn carrier="MTS"
       mcc="302"
       mnc="660"
@@ -12555,36 +12566,12 @@
   <apn carrier="U.S. Cellular"
       mcc="311"
       mnc="220"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      authtype="3"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="6"
-      mtu="1422"
-  />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="220"
       apn="usccinternet"
       mmsc="http://mmsc1.uscc.net/mmsc/MMS"
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
-      mtu="1422"
-  />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="220"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
 
@@ -12596,21 +12583,10 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
 
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="221"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
-  />
-
   <!-- bearer 4, 5, 6, 7, 8, 12 -->
   <apn carrier="U.S. Cellular"
       mcc="311"
@@ -12639,49 +12615,13 @@
 
   <apn carrier="U.S. Cellular"
       mcc="311"
-      mnc="221"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      authtype="3"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
-      mtu="1422"
-  />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="221"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      authtype="3"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
-      mtu="1422"
-  />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
       mnc="222"
       apn="usccinternet"
       mmsc="http://mmsc1.uscc.net/mmsc/MMS"
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
-      mtu="1422"
-  />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="222"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
 
@@ -12706,21 +12646,11 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
 
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="223"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
-      mtu="1422"
-  />
+
 
   <!-- bearer 4, 5, 6, 7, 8, 12 -->
   <apn carrier="U.S. Cellular"
@@ -12743,19 +12673,7 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
-      mtu="1422"
-  />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="224"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
 
@@ -12794,23 +12712,9 @@
       carrier_enabled="true"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="225"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      carrier_enabled="true"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
-      mtu="1422"
-  />
-
   <apn carrier="U.S. Cellular"
       mcc="311"
       mnc="226"
@@ -12819,19 +12723,7 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
-      mtu="1422"
-  />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="226"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
 
@@ -12856,19 +12748,7 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
-      mtu="1422"
-  />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="227"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
 
@@ -12893,19 +12773,7 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
-      mtu="1422"
-  />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="228"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
 
@@ -12930,22 +12798,10 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="229"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
-      mtu="1422"
-  />
-
+ 
   <!-- bearer 4, 5, 6, 7, 8, 12 -->
   <apn carrier="U.S. Cellular"
       mcc="311"
@@ -14235,22 +14091,9 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="580"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
-      mtu="1422"
-  />
-
   <apn carrier="U.S. Cellular"
       mcc="311"
       mnc="581"
@@ -14259,19 +14102,7 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
-      mtu="1422"
-  />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="581"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
 
@@ -14296,22 +14127,9 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="582"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
-      mtu="1422"
-  />
-
   <!-- bearer 4, 5, 6, 7, 8, 12 -->
   <apn carrier="U.S. Cellular"
       mcc="311"
@@ -14333,22 +14151,9 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="583"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
-      mtu="1422"
-  />
-
   <!-- bearer 4, 5, 6, 7, 8, 12 -->
   <apn carrier="U.S. Cellular"
       mcc="311"
@@ -14370,22 +14175,9 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="584"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
-      mtu="1422"
-  />
-
   <!-- bearer 4, 5, 6, 7, 8, 12 -->
   <apn carrier="U.S. Cellular"
       mcc="311"
@@ -14407,22 +14199,9 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="585"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
-      mtu="1422"
-  />
-
   <!-- bearer 4, 5, 6, 7, 8, 12 -->
   <apn carrier="U.S. Cellular"
       mcc="311"
@@ -14444,22 +14223,9 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="586"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
-      mtu="1422"
-  />
-
   <!-- bearer 4, 5, 6, 7, 8, 12 -->
   <apn carrier="U.S. Cellular"
       mcc="311"
@@ -14481,22 +14247,9 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="587"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
-      mtu="1422"
-  />
-
   <!-- bearer 4, 5, 6, 7, 8, 12 -->
   <apn carrier="U.S. Cellular"
       mcc="311"
@@ -14518,22 +14271,9 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="588"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
-      mtu="1422"
-  />
-
   <!-- bearer 4, 5, 6, 7, 8, 12 -->
   <apn carrier="U.S. Cellular"
       mcc="311"
@@ -14555,22 +14295,9 @@
       type="default,mms,dun,hipri,fota"
       protocol="IPV4V6"
       roaming_protocol="IPV4V6"
-      bearer_bitmask="13"
+      bearer_bitmask="13|14"
       mtu="1422"
   />
-
-  <apn carrier="U.S. Cellular"
-      mcc="311"
-      mnc="589"
-      apn="usccinternet"
-      mmsc="http://mmsc1.uscc.net/mmsc/MMS"
-      type="default,mms,dun,hipri,fota"
-      protocol="IPV4V6"
-      roaming_protocol="IPV4V6"
-      bearer_bitmask="14"
-      mtu="1422"
-  />
-
   <!-- bearer 4, 5, 6, 7, 8, 12 -->
   <apn carrier="U.S. Cellular"
       mcc="311"
@@ -30613,7 +30340,7 @@
       mvno_match_data='CELULAR'
   />
 
-  <apn carrier="Movistar WAP"
+  <apn carrier="Movistar INTERNET"
       mcc="722"
       mnc="07"
       apn="wap.gprs.unifon.com.ar"
@@ -30621,16 +30348,8 @@
       password="wap"
       authtype="1"
       type="default,supl"
-  />
-
-  <apn carrier="Argentina:Movistar:INTERNET"
-      mcc="722"
-      mnc="07"
-      apn="internet.gprs.unifon.com.ar"
-      type="dun"
-      user="internet"
-      password="internet"
-      authtype="1"
+      protocol="IPV4V6"
+      roaming_protocol="IPV4V6"
   />
 
   <apn carrier="Movistar MMS"
@@ -30644,6 +30363,8 @@
       mmsc="http://mms.movistar.com.ar"
       authtype="1"
       type="mms"
+      protocol="IPV4V6"
+      roaming_protocol="IPV4V6"
   />
 
   <apn carrier="Claro AR"
@@ -30678,34 +30399,34 @@
       apn="mms"
       user="mms"
       password="mms"
-      mmsproxy="172.25.7.31"
+      mmsproxy="172.025.007.031"
       mmsport="8080"
       mmsc="http://mms.personal.com"
       authtype="1"
       type="mms"
   />
 
-  <apn carrier="Nuestro MMS"
-      mcc='722'
-      mnc='36'
-      apn='mms.nuestro.com.ar'
-      user='mms'
-      password='mms'
-      authtype='0'
-      mmsc='http://mms.nuestro.com.ar'
-      mmsproxy='172.16.0.20'
-      mmsport='8080'
-      type='mms'
+  <apn carrier="Personal Datos"
+      mcc="722"
+      mnc="36"
+      apn="datos.personal.com"
+      user="datos"
+      password="datos"
+      authtype="1"
+      type="default,supl"
   />
 
-  <apn carrier="Nuestro Internet"
-      mcc='722'
-      mnc='36'
-      apn='gprs.nuestro.com.ar'
-      user='gprs'
-      password='gprs'
-      authtype='0'
-      type='default'
+  <apn carrier="Personal MMS"
+      mcc="722"
+      mnc="36"
+      apn="mms"
+      user="mms"
+      password="mms"
+      mmsproxy="172.025.007.031"
+      mmsport="8080"
+      mmsc="http://mms.personal.com"
+      authtype="1"
+      type="mms"
   />
 
   <apn carrier='Argentina:Personal :Datos'
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp
index 18a11ed..05c0c41 100644
--- a/camera/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp
@@ -1892,6 +1892,7 @@
                 newStream->max_buffers = MAX_INFLIGHT_REPROCESS_REQUESTS;
             } else {
                 ALOGE("%s: Error, Unknown stream type", __func__);
+                pthread_mutex_unlock(&mMutex);
                 return -EINVAL;
             }
 
@@ -3701,6 +3702,7 @@
             if(ADD_SET_PARAM_ENTRY_TO_BATCH(mParameters,
                 CAM_INTF_META_FRAME_NUMBER, request->frame_number)) {
                 ALOGE("%s: Failed to set the frame number in the parameters", __func__);
+                pthread_mutex_unlock(&mMutex);
                 return BAD_VALUE;
             }
         }
diff --git a/compatibility_matrix.xml b/compatibility_matrix.xml
new file mode 100644
index 0000000..3082485
--- /dev/null
+++ b/compatibility_matrix.xml
@@ -0,0 +1,59 @@
+<compatibility-matrix version="1.0" type="device">
+    <hal format="hidl" optional="false">
+        <name>android.frameworks.schedulerservice</name>
+        <version>1.0</version>
+        <interface>
+            <name>ISchedulingPolicyService</name>
+            <instance>default</instance>
+        </interface>
+    </hal>
+    <hal format="hidl" optional="false">
+        <name>android.frameworks.sensorservice</name>
+        <version>1.0</version>
+        <interface>
+            <name>ISensorManager</name>
+            <instance>default</instance>
+        </interface>
+    </hal>
+    <hal format="hidl" optional="false">
+        <name>android.hidl.allocator</name>
+        <version>1.0</version>
+        <interface>
+            <name>IAllocator</name>
+            <instance>ashmem</instance>
+        </interface>
+    </hal>
+    <hal format="hidl" optional="false">
+        <name>android.hidl.manager</name>
+        <version>1.0</version>
+        <interface>
+            <name>IServiceManager</name>
+            <instance>default</instance>
+        </interface>
+    </hal>
+    <hal format="hidl" optional="false">
+        <name>android.hidl.memory</name>
+        <version>1.0</version>
+        <interface>
+            <name>IMapper</name>
+            <instance>ashmem</instance>
+        </interface>
+    </hal>
+    <hal format="hidl" optional="false">
+        <name>android.hidl.token</name>
+        <version>1.0</version>
+        <interface>
+            <name>ITokenManager</name>
+            <instance>default</instance>
+        </interface>
+    </hal>
+    <hal format="hidl" optional="false">
+        <name>android.system.wifi.keystore</name>
+        <version>1.0</version>
+        <interface>
+            <name>IKeystore</name>
+            <instance>default</instance>
+        </interface>
+    </hal>
+
+</compatibility-matrix>
diff --git a/device.mk b/device.mk
index d47acd3..c42ed2b 100644
--- a/device.mk
+++ b/device.mk
@@ -50,10 +50,6 @@
     device/lge/bullhead/init.bullhead.nanohub.rc:root/init.bullhead.sensorhub.rc
 endif
 
-# Vendor Interface Manifest
-PRODUCT_COPY_FILES += \
-    device/lge/bullhead/manifest.xml:vendor/manifest.xml
-
 PRODUCT_COPY_FILES += \
     frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
     frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \
@@ -106,6 +102,7 @@
     frameworks/native/data/etc/android.hardware.location.gps.xml:system/etc/permissions/android.hardware.location.gps.xml \
     frameworks/native/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \
     frameworks/native/data/etc/android.hardware.wifi.direct.xml:system/etc/permissions/android.hardware.wifi.direct.xml \
+    frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:system/etc/permissions/android.hardware.wifi.passpoint.xml \
     frameworks/native/data/etc/android.hardware.sensor.proximity.xml:system/etc/permissions/android.hardware.sensor.proximity.xml \
     frameworks/native/data/etc/android.hardware.sensor.light.xml:system/etc/permissions/android.hardware.sensor.light.xml \
     frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:system/etc/permissions/android.hardware.sensor.gyroscope.xml \
@@ -253,6 +250,7 @@
 
 # NFC packages
 PRODUCT_PACKAGES += \
+    libnfc-nci \
     NfcNci \
     Tag \
     android.hardware.nfc@1.0-impl \
diff --git a/dumpstate/DumpstateDevice.cpp b/dumpstate/DumpstateDevice.cpp
index e349679..7ce66a1 100644
--- a/dumpstate/DumpstateDevice.cpp
+++ b/dumpstate/DumpstateDevice.cpp
@@ -34,7 +34,7 @@
 
 // Methods from ::android::hardware::dumpstate::V1_0::IDumpstateDevice follow.
 Return<void> DumpstateDevice::dumpstateBoard(const hidl_handle& handle) {
-    if (handle->numFds < 1) {
+    if (handle == nullptr || handle->numFds < 1) {
         ALOGE("no FDs\n");
         return Void();
     }
diff --git a/init.bullhead.rc b/init.bullhead.rc
index f625ee1..425714a 100644
--- a/init.bullhead.rc
+++ b/init.bullhead.rc
@@ -276,6 +276,7 @@
     class core
     user root
     group system wakelock
+    shutdown critical
 
 service start_hci_filter /vendor/bin/wcnss_filter
     class late_start
diff --git a/init.bullhead.usb.rc b/init.bullhead.usb.rc
index 1aa4687..697f1da 100644
--- a/init.bullhead.usb.rc
+++ b/init.bullhead.usb.rc
@@ -28,9 +28,9 @@
 on post-fs
     mkdir /dev/usb-ffs 0775 shell shell
     mkdir /dev/usb-ffs/adb 0770 shell shell
-    mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
+    mount functionfs adb /dev/usb-ffs/adb noatime uid=2000,gid=2000,no_disconnect=1
     mkdir /dev/usb-ffs/mtp 0770 mtp mtp
-    mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
+    mount functionfs mtp /dev/usb-ffs/mtp noatime rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
     write /sys/module/g_android/parameters/mtp_rx_req_len 131072
     write /sys/module/g_android/parameters/mtp_tx_reqs 32
     setprop sys.usb.ffs.max_write 262144
diff --git a/media_codecs_performance.xml b/media_codecs_performance.xml
index 1feaab9..b9d1a90 100644
--- a/media_codecs_performance.xml
+++ b/media_codecs_performance.xml
@@ -17,20 +17,20 @@
 <MediaCodecs>
     <Encoders>
         <MediaCodec name="OMX.qcom.video.encoder.h263" type="video/3gpp" update="true">
-            <Limit name="measured-frame-rate-176x144" range="414-418" /> <!-- N=40 v95%=1.2 -->
+            <Limit name="measured-frame-rate-176x144" range="235-418" /> <!-- TWEAKED -->
             <Limit name="measured-frame-rate-352x288" range="231-245" /> <!-- N=40 v95%=1.2 -->
             <!-- measured 93%:57-64 med:59 FLAKY(30 - 122 < mx=133.9) WIDEN(30 - 134) -->
             <Limit name="measured-frame-rate-704x576" range="59-67" /> <!-- N=40 v93%=1.0 -->
         </MediaCodec>
         <MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" update="true">
             <Limit name="measured-frame-rate-320x240" range="251-251" /> <!-- N=40 v95%=1.3 -->
-            <Limit name="measured-frame-rate-720x480" range="69-70" /> <!-- N=40 v95%=1.1 -->
+            <Limit name="measured-frame-rate-720x480" range="69-86" /> <!-- TWEAKED -->
             <!-- measured 93%:38-67 med:44 SLOW -->
             <Limit name="measured-frame-rate-1280x720" range="43-51" /> <!-- N=40 v93%=1.3 -->
             <Limit name="measured-frame-rate-1920x1080" range="27-27" /> <!-- N=40 v95%=1.3 -->
         </MediaCodec>
         <MediaCodec name="OMX.qcom.video.encoder.mpeg4" type="video/mp4v-es" update="true">
-            <Limit name="measured-frame-rate-176x144" range="373-374" /> <!-- N=40 v95%=1.1 -->
+            <Limit name="measured-frame-rate-176x144" range="260-374" /> <!-- TWEAKED -->
             <Limit name="measured-frame-rate-352x288" range="201-201" /> <!-- N=40 v95%=1.1 -->
             <Limit name="measured-frame-rate-640x480" range="77-77" /> <!-- N=40 v95%=1.0 -->
         </MediaCodec>
@@ -48,8 +48,8 @@
             <Limit name="measured-frame-rate-320x240" range="161-185" /> <!-- N=40 v93%=1.3 -->
             <!-- measured 95%:45-72 med:48 SLOW -->
             <Limit name="measured-frame-rate-720x480" range="47-57" /> <!-- N=40 v95%=1.3 -->
-            <Limit name="measured-frame-rate-1280x720" range="20-20" /> <!-- N=40 v95%=1.3 -->
-            <Limit name="measured-frame-rate-1920x1080" range="10-11" /> <!-- N=40 v93%=1.2 -->
+            <Limit name="measured-frame-rate-1280x720" range="20-31" /> <!-- TWEAKED -->
+            <Limit name="measured-frame-rate-1920x1080" range="10-13" /> <!-- TWEAKED -->
         </MediaCodec>
         <MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true">
             <Limit name="measured-frame-rate-176x144" range="321-321" /> <!-- N=40 v95%=1.2 -->
@@ -114,7 +114,7 @@
         <MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
             <!-- measured 95%:383-730 med:397 SLOW -->
             <Limit name="measured-frame-rate-320x180" range="397-529" /> <!-- N=40 v95%=1.4 -->
-            <Limit name="measured-frame-rate-640x360" range="107-108" /> <!-- N=40 v95%=1.0 -->
+            <Limit name="measured-frame-rate-640x360" range="107-150" /> <!-- TWEAKED -->
             <Limit name="measured-frame-rate-1280x720" range="25-26" /> <!-- N=40 v95%=1.0 -->
             <Limit name="measured-frame-rate-1920x1080" range="10-10" /> <!-- N=40 v95%=1.0 -->
         </MediaCodec>
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index eba8d1b..bb0fc1f 100644
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -206,9 +206,6 @@
     <!-- Boolean indicating whether the wifi chipset has dual frequency band support -->
     <bool translatable="false" name="config_wifi_dual_band_support">true</bool>
 
-    <!-- Boolean indicating whether Hotspot 2.0/Passpoint and ANQP queries is enabled -->
-    <bool translatable="false" name="config_wifi_hotspot2_enabled">true</bool>
-
     <!-- Boolean indicating whether the wifi chipset has background scan support -->
     <bool translatable="false" name="config_wifi_background_scan_support">true</bool>
 
diff --git a/sensorhal/sensorlist.cpp b/sensorhal/sensorlist.cpp
index daf539e..8ced84a 100644
--- a/sensorhal/sensorlist.cpp
+++ b/sensorhal/sensorlist.cpp
@@ -26,7 +26,8 @@
 
 const float kMinSampleRateHzAccel = 6.250f;
 const float kMaxSampleRateHzAccel = 400.0f;
-extern const float kScaleAccel = (8.0f * 9.81f / 32768.0f);
+const float kAccelRangeG = 16.0f;
+extern const float kScaleAccel = (kAccelRangeG * 9.81f / 32768.0f);
 
 const float kMinSampleRateHzGyro = 6.250f;
 const float kMaxSampleRateHzGyro = 400.0f;
@@ -119,8 +120,8 @@
         kVersion,
         COMMS_SENSOR_ACCEL,
         SENSOR_TYPE_ACCELEROMETER,
-        GRAVITY_EARTH * 8.0f,                      // maxRange
-        GRAVITY_EARTH * 8.0f / 32768.0f,           // resolution
+        GRAVITY_EARTH * kAccelRangeG,              // maxRange
+        GRAVITY_EARTH * kAccelRangeG / 32768.0f,   // resolution
         0.0f,                                      // XXX power
         (int32_t)(1.0E6f / kMaxSampleRateHzAccel), // minDelay
         3000,                                      // XXX fifoReservedEventCount
@@ -515,8 +516,8 @@
         kVersion,
         COMMS_SENSOR_ACCEL_UNCALIBRATED,
         SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED,
-        GRAVITY_EARTH * 8.0f,                      // maxRange
-        GRAVITY_EARTH * 8.0f / 32768.0f,           // resolution
+        GRAVITY_EARTH * kAccelRangeG,              // maxRange
+        GRAVITY_EARTH * kAccelRangeG / 32768.0f,   // resolution
         0.0f,                                      // XXX power
         (int32_t)(1.0E6f / kMaxSampleRateHzAccel), // minDelay
         3000,                                      // XXX fifoReservedEventCount
diff --git a/sepolicy/rild.te b/sepolicy/rild.te
index 0d4f32f..14d1257 100644
--- a/sepolicy/rild.te
+++ b/sepolicy/rild.te
@@ -27,6 +27,10 @@
 # rild reads qcril.db linked to /system/etc/qcril.db
 allow rild radio_data_file:lnk_file read;
 
+# allow rild to access radio data file
+allow rild radio_data_file:dir rw_dir_perms;
+allow rild radio_data_file:file create_file_perms;
+
 userdebug_or_eng(`
   allow rild ssr_device:chr_file { open read };