am 68a9f6d3: Merge "Allow init to rm /dev/diag"
* commit '68a9f6d3e326a80bd70efe8844cf1d18f2132052':
Allow init to rm /dev/diag
diff --git a/apns-full-conf.xml b/apns-full-conf.xml
index 457cc30..468bc24 100644
--- a/apns-full-conf.xml
+++ b/apns-full-conf.xml
@@ -695,6 +695,270 @@
mvno_type="spn"
/>
+ <apn carrier="UPC mobiel internet"
+ mcc="204"
+ mnc="08"
+ apn="internet.nl.upcmobile.com"
+ type="default,supl"
+ mvno_match_data="2040807500"
+ mvno_type="imsi"
+ protocol="IPV4V6"
+ />
+
+ <apn carrier="UPC MMS"
+ mcc="204"
+ mnc="08"
+ apn="mms.nl.upcmobile.com"
+ mmsc="http://mms.nl.upcmobile.com:8080/servlets/mms"
+ mmsproxy="62.179.127.18"
+ mmsport="8080"
+ type="mms"
+ mvno_match_data="2040807500"
+ mvno_type="imsi"
+ protocol="IPV4V6"
+ />
+
+ <apn carrier="UPC mobiel internet"
+ mcc="204"
+ mnc="08"
+ apn="internet.nl.upcmobile.com"
+ type="default,supl"
+ mvno_match_data="2040807501"
+ mvno_type="imsi"
+ protocol="IPV4V6"
+ />
+
+ <apn carrier="UPC MMS"
+ mcc="204"
+ mnc="08"
+ apn="mms.nl.upcmobile.com"
+ mmsc="http://mms.nl.upcmobile.com:8080/servlets/mms"
+ mmsproxy="62.179.127.18"
+ mmsport="8080"
+ type="mms"
+ mvno_match_data="2040807501"
+ mvno_type="imsi"
+ protocol="IPV4V6"
+ />
+
+ <apn carrier="UPC mobiel internet"
+ mcc="204"
+ mnc="08"
+ apn="internet.nl.upcmobile.com"
+ type="default,supl"
+ mvno_match_data="2040807502"
+ mvno_type="imsi"
+ protocol="IPV4V6"
+ />
+
+ <apn carrier="UPC MMS"
+ mcc="204"
+ mnc="08"
+ apn="mms.nl.upcmobile.com"
+ mmsc="http://mms.nl.upcmobile.com:8080/servlets/mms"
+ mmsproxy="62.179.127.18"
+ mmsport="8080"
+ type="mms"
+ mvno_match_data="2040807502"
+ mvno_type="imsi"
+ protocol="IPV4V6"
+ />
+
+ <apn carrier="UPC mobiel internet"
+ mcc="204"
+ mnc="08"
+ apn="internet.nl.upcmobile.com"
+ type="default,supl"
+ mvno_match_data="2040807503"
+ mvno_type="imsi"
+ protocol="IPV4V6"
+ />
+
+ <apn carrier="UPC MMS"
+ mcc="204"
+ mnc="08"
+ apn="mms.nl.upcmobile.com"
+ mmsc="http://mms.nl.upcmobile.com:8080/servlets/mms"
+ mmsproxy="62.179.127.18"
+ mmsport="8080"
+ type="mms"
+ mvno_match_data="2040807503"
+ mvno_type="imsi"
+ protocol="IPV4V6"
+ />
+
+ <apn carrier="UPC mobiel internet"
+ mcc="204"
+ mnc="08"
+ apn="internet.nl.upcmobile.com"
+ type="default,supl"
+ mvno_match_data="2040807504"
+ mvno_type="imsi"
+ protocol="IPV4V6"
+ />
+
+ <apn carrier="UPC MMS"
+ mcc="204"
+ mnc="08"
+ apn="mms.nl.upcmobile.com"
+ mmsc="http://mms.nl.upcmobile.com:8080/servlets/mms"
+ mmsproxy="62.179.127.18"
+ mmsport="8080"
+ type="mms"
+ mvno_match_data="2040807504"
+ mvno_type="imsi"
+ protocol="IPV4V6"
+ />
+
+ <apn carrier="upcnet"
+ mcc="204"
+ mnc="08"
+ apn="internet.ch.upcmobile.com"
+ type="default,supl"
+ mvno_match_data="2040807505"
+ mvno_type="imsi"
+ />
+
+ <apn carrier="upcmms"
+ mcc="204"
+ mnc="08"
+ apn="mms.ch.upcmobile.com"
+ mmsc="http://mms.ch.upcmobile.com:8080/servlets/mms"
+ mmsproxy="62.179.127.18"
+ mmsport="8080"
+ type="mms"
+ mvno_match_data="2040807505"
+ mvno_type="imsi"
+ />
+
+ <apn carrier="upcnet"
+ mcc="204"
+ mnc="08"
+ apn="internet.ch.upcmobile.com"
+ type="default,supl"
+ mvno_match_data="2040807506"
+ mvno_type="imsi"
+ />
+
+ <apn carrier="upcmms"
+ mcc="204"
+ mnc="08"
+ apn="mms.ch.upcmobile.com"
+ mmsc="http://mms.ch.upcmobile.com:8080/servlets/mms"
+ mmsproxy="62.179.127.18"
+ mmsport="8080"
+ type="mms"
+ mvno_match_data="2040807506"
+ mvno_type="imsi"
+ />
+
+ <apn carrier="upcnet"
+ mcc="204"
+ mnc="08"
+ apn="internet.ch.upcmobile.com"
+ type="default,supl"
+ mvno_match_data="2040807507"
+ mvno_type="imsi"
+ />
+
+ <apn carrier="upcmms"
+ mcc="204"
+ mnc="08"
+ apn="mms.ch.upcmobile.com"
+ mmsc="http://mms.ch.upcmobile.com:8080/servlets/mms"
+ mmsproxy="62.179.127.18"
+ mmsport="8080"
+ type="mms"
+ mvno_match_data="2040807507"
+ mvno_type="imsi"
+ />
+
+ <apn carrier="upcnet"
+ mcc="204"
+ mnc="08"
+ apn="internet.ch.upcmobile.com"
+ type="default,supl"
+ mvno_match_data="2040807508"
+ mvno_type="imsi"
+ />
+
+ <apn carrier="upcmms"
+ mcc="204"
+ mnc="08"
+ apn="mms.ch.upcmobile.com"
+ mmsc="http://mms.ch.upcmobile.com:8080/servlets/mms"
+ mmsproxy="62.179.127.18"
+ mmsport="8080"
+ type="mms"
+ mvno_match_data="2040807508"
+ mvno_type="imsi"
+ />
+
+ <apn carrier="upcnet"
+ mcc="204"
+ mnc="08"
+ apn="internet.ch.upcmobile.com"
+ type="default,supl"
+ mvno_match_data="2040807509"
+ mvno_type="imsi"
+ />
+
+ <apn carrier="upcmms"
+ mcc="204"
+ mnc="08"
+ apn="mms.ch.upcmobile.com"
+ mmsc="http://mms.ch.upcmobile.com:8080/servlets/mms"
+ mmsproxy="62.179.127.18"
+ mmsport="8080"
+ type="mms"
+ mvno_match_data="2040807509"
+ mvno_type="imsi"
+ />
+
+ <apn carrier="UPC mobiel internet"
+ mcc="204"
+ mnc="08"
+ apn="internet.nl.upcmobile.com"
+ type="default,supl"
+ mvno_match_data="204080751"
+ mvno_type="imsi"
+ protocol="IPV4V6"
+ />
+
+ <apn carrier="UPC MMS"
+ mcc="204"
+ mnc="08"
+ apn="mms.nl.upcmobile.com"
+ mmsc="http://mms.nl.upcmobile.com:8080/servlets/mms"
+ mmsproxy="62.179.127.18"
+ mmsport="8080"
+ type="mms"
+ mvno_match_data="204080751"
+ mvno_type="imsi"
+ protocol="IPV4V6"
+ />
+
+ <apn carrier="upcnet"
+ mcc="204"
+ mnc="08"
+ apn="internet.ch.upcmobile.com"
+ type="default,supl"
+ mvno_match_data="204080752"
+ mvno_type="imsi"
+ />
+
+ <apn carrier="upcmms"
+ mcc="204"
+ mnc="08"
+ apn="mms.ch.upcmobile.com"
+ mmsc="http://mms.ch.upcmobile.com:8080/servlets/mms"
+ mmsproxy="62.179.127.18"
+ mmsport="8080"
+ type="mms"
+ mvno_match_data="204080752"
+ mvno_type="imsi"
+ />
+
<apn carrier="Telfort Internet"
mcc="204"
mnc="12"
@@ -3000,6 +3264,27 @@
type="mms"
/>
+ <apn carrier="upcnet"
+ mcc="228"
+ mnc="53"
+ apn="internet.ch.upcmobile.com"
+ type="default,supl"
+ mvno_match_data="22853xxxxxxxxxx"
+ mvno_type="imsi"
+ />
+
+ <apn carrier="upcmms"
+ mcc="228"
+ mnc="53"
+ apn="mms.ch.upcmobile.com"
+ mmsc="http://mms.ch.upcmobile.com:8080/servlets/mms"
+ mmsproxy="62.179.127.18"
+ mmsport="8080"
+ type="mms"
+ mvno_match_data="22853xxxxxxxxxx"
+ mvno_type="imsi"
+ />
+
<apn carrier="T-Mobile CZ"
mcc="230"
mnc="01"
@@ -3279,10 +3564,10 @@
type="mms"
/>
- <apn carrier="yesss!"
+ <apn carrier="Internet"
mcc="232"
mnc="12"
- apn="web.yesss.at"
+ apn="webapn.at"
type="default,supl"
/>
@@ -6018,8 +6303,6 @@
user="vodafone"
password="vodafone"
authtype="1"
- proxy="iproxy.vodafone.pt"
- port="80"
mmsc="http://mms.vodafone.pt/servlets/mms"
mmsproxy="iproxy.vodafone.pt"
mmsport="80"
@@ -6034,39 +6317,6 @@
type="dun"
/>
- <apn carrier="ZON Internet"
- mcc="268"
- mnc="01"
- apn=""
- type="ia"
- mvno_match_data="ZON"
- mvno_type="spn"
- />
-
- <apn carrier="ZON Internet"
- mcc="268"
- mnc="01"
- apn="internet.zon.pt"
- type="default,supl"
- mvno_match_data="ZON"
- mvno_type="spn"
- />
-
- <apn carrier="ZON MMS"
- mcc="268"
- mnc="01"
- apn="vas.zon.pt"
- user="vas"
- password="vas"
- authtype="1"
- mmsc="http://mms/servlets/mms"
- mmsproxy="213.30.27.63"
- mmsport="8799"
- type="mms"
- mvno_match_data="ZON"
- mvno_type="spn"
- />
-
<apn carrier="PortalOptimus"
mcc="268"
mnc="03"
@@ -6746,7 +6996,7 @@
mvno_type="gid"
/>
- <apn carrier="PC mobile"
+ <apn carrier="Mobile Internet"
mcc="302"
mnc="220"
apn="sp.mb.com"
@@ -6758,15 +7008,6 @@
mvno_type="gid"
/>
- <apn carrier="Tethered Mobile Internet"
- mcc="302"
- mnc="220"
- apn="isp.mb.com"
- type="dun"
- mvno_type="gid"
- mvno_match_data="50"
- />
-
<apn carrier="Mobile Internet"
mcc="302"
mnc="220"
@@ -6779,24 +7020,6 @@
mvno_match_data="4D4F"
/>
- <apn carrier="Tethered Mobile Internet"
- mcc="302"
- mnc="220"
- apn="isp.mb.com"
- type="dun"
- mvno_type="gid"
- mvno_match_data="4D4F"
- />
-
- <apn carrier="TELUS ISP"
- mcc="302"
- mnc="220"
- apn="isp.telus.com"
- type="dun"
- mvno_type="gid"
- mvno_match_data="54"
- />
-
<apn carrier="TELUS"
mcc="302"
mnc="221"
@@ -6869,31 +7092,6 @@
type="default,supl"
/>
- <apn carrier="Fido Tethering"
- mcc="302"
- mnc="370"
- apn="ltedata.apn"
- type="dun"
- mvno_match_data="DD"
- mvno_type="gid"
- protocol="IPV4V6"
- roaming_protocol="IP"
- />
-
- <apn carrier="Fido Internet"
- mcc="302"
- mnc="370"
- apn="ltemobile.apn"
- type="default,mms,agps,supl,fota,hipri"
- mmsproxy="mmsproxy.fido.ca"
- mmsc="http://mms.fido.ca"
- mmsport="80"
- mvno_match_data="DD"
- mvno_type="gid"
- protocol="IPV4V6"
- roaming_protocol="IP"
- />
-
<apn carrier="MTS"
mcc="302"
mnc="370"
@@ -6908,17 +7106,6 @@
mvno_type="gid"
/>
- <apn carrier="MTS Tethering S"
- mcc="302"
- mnc="370"
- apn="internet.mts"
- type="dun"
- protocol="IPV4V6"
- roaming_protocol="IP"
- mvno_type="gid"
- mvno_match_data="2C"
- />
-
<apn carrier="Fido LTE"
mcc="302"
mnc="370"
@@ -6995,17 +7182,6 @@
mvno_type="gid"
/>
- <apn carrier="MTS Tethering"
- mcc="302"
- mnc="660"
- apn="internet.mts"
- type="dun"
- protocol="IPV4V6"
- roaming_protocol="IP"
- mvno_type="gid"
- mvno_match_data="2C"
- />
-
<apn carrier="Rogers LTE"
mcc="302"
mnc="720"
@@ -7034,28 +7210,6 @@
mvno_type="imsi"
/>
- <apn carrier="Chatr Tethering"
- mcc="302"
- mnc="720"
- apn="chatrisp.apn"
- type="dun"
- mvno_type="imsi"
- mvno_match_data="302720x94"
- protocol="IPV4V6"
- roaming_protocol="IP"
- />
-
- <apn carrier="Tbaytel Tethering"
- mcc="302"
- mnc="720"
- apn="ltedata.apn"
- type="dun"
- protocol="IPV4V6"
- roaming_protocol="IP"
- mvno_type="gid"
- mvno_match_data="BA"
- />
-
<apn carrier="Tbaytel Internet"
mnc="720"
mcc="302"
@@ -7070,17 +7224,6 @@
mvno_match_data="BA"
/>
- <apn carrier="Cityfone Tethering"
- mcc="302"
- mnc="720"
- apn="ltedata.apn"
- type="dun"
- protocol="IPV4V6"
- roaming_protocol="IP"
- mvno_type="spn"
- mvno_match_data="CITYFONE"
- />
-
<apn carrier="Cityfone Internet"
mnc="720"
mcc="302"
@@ -7095,31 +7238,6 @@
mvno_match_data="CITYFONE"
/>
- <apn carrier="Rogers Tethering"
- mcc="302"
- mnc="720"
- apn="ltedata.apn"
- type="dun"
- mvno_match_data="ROGERS"
- mvno_type="spn"
- protocol="IPV4V6"
- roaming_protocol="IP"
- />
-
- <apn carrier="Rogers Internet"
- mcc="302"
- mnc="720"
- apn="ltemobile.apn"
- type="default,mms,agps,supl,fota,hipri"
- mmsproxy="mmsproxy.rogers.com"
- mmsc="http://mms.gprs.rogers.com"
- mmsport="80"
- mvno_match_data="ROGERS"
- mvno_type="spn"
- protocol="IPV4V6"
- roaming_protocol="IP"
- />
-
<apn carrier="SaskTel"
mcc="302"
mnc="780"
@@ -8684,10 +8802,6 @@
type="default,supl"
/>
- <!-- Need two APNs for CDMA technologies: a default that is used normally -->
- <!-- and a second APN to be used when DUN is required. Even though the -->
- <!-- parameters appear the same, the profileID sent to the radio when requesting -->
- <!-- a DUN connection will be different -->
<!-- 1xRTT - CDMA -->
<apn carrier="Sprint"
mcc="310"
@@ -8699,16 +8813,6 @@
mmsport="80"
bearer="6"
/>
- <apn carrier="Sprint"
- mcc="310"
- mnc="120"
- apn="sprint"
- type="default,supl,mms,ims,cbs,dun"
- mmsc="http://mms.sprintpcs.com"
- mmsproxy="68.28.31.7"
- mmsport="80"
- bearer="6"
- />
<!-- EVDO_0 - CDMA -->
<apn carrier="Sprint"
@@ -8721,16 +8825,6 @@
mmsport="80"
bearer="7"
/>
- <apn carrier="Sprint"
- mcc="310"
- mnc="120"
- apn="sprint"
- type="default,supl,mms,ims,cbs,dun"
- mmsc="http://mms.sprintpcs.com"
- mmsproxy="68.28.31.7"
- mmsport="80"
- bearer="7"
- />
<!-- EVDO_A - CDMA -->
<apn carrier="Sprint"
@@ -8743,16 +8837,6 @@
mmsport="80"
bearer="8"
/>
- <apn carrier="Sprint"
- mcc="310"
- mnc="120"
- apn="sprint"
- type="default,supl,mms,ims,cbs,dun"
- mmsc="http://mms.sprintpcs.com"
- mmsproxy="68.28.31.7"
- mmsport="80"
- bearer="8"
- />
<!-- EVDO_B - CDMA -->
<apn carrier="Sprint"
@@ -8765,16 +8849,6 @@
mmsport="80"
bearer="12"
/>
- <apn carrier="Sprint"
- mcc="310"
- mnc="120"
- apn="sprint"
- type="default,supl,mms,ims,cbs,dun"
- mmsc="http://mms.sprintpcs.com"
- mmsproxy="68.28.31.7"
- mmsport="80"
- bearer="12"
- />
<!-- IS95A - CDMA -->
<apn carrier="Sprint"
@@ -8787,16 +8861,6 @@
mmsport="80"
bearer="4"
/>
- <apn carrier="Sprint"
- mcc="310"
- mnc="120"
- apn="sprint"
- type="default,supl,mms,ims,cbs,dun"
- mmsc="http://mms.sprintpcs.com"
- mmsproxy="68.28.31.7"
- mmsport="80"
- bearer="4"
- />
<!-- IS95B - CDMA -->
<apn carrier="Sprint"
@@ -8809,17 +8873,6 @@
mmsport="80"
bearer="5"
/>
- <apn carrier="Sprint"
- mcc="310"
- mnc="120"
- apn="sprint"
- type="default,supl,mms,ims,cbs,dun"
- mmsc="http://mms.sprintpcs.com"
- mmsproxy="68.28.31.7"
- mmsport="80"
- bearer="5"
- />
-
<!-- this APN will be deleted and replaced by a new ia APN by the HFA provisioning process.
This is just a bootstrap APN to enable HFA -->
@@ -25907,15 +25960,7 @@
mcc="419"
mnc="03"
apn="action.wataniya.com"
- type="default,supl"
- />
-
- <apn carrier="WAPAction"
- mcc="419"
- mnc="03"
- apn="wap.wataniya.com"
- proxy="194.126.53.64"
- port="8080"
+ authtype="0"
type="default,supl"
/>
@@ -25926,6 +25971,7 @@
mmsc="http://action.wataniya.com"
mmsproxy="194.126.53.64"
mmsport="8080"
+ authtype="0"
type="mms"
/>
@@ -26289,14 +26335,6 @@
type="default,supl"
/>
- <apn carrier="PC HOT mobile"
- mcc="425"
- mnc="07"
- apn="pc.hotm"
- type="dun"
- authtype="0"
- />
-
<apn carrier="MMS HOT mobile"
mcc="425"
mnc="07"
@@ -26949,12 +26987,12 @@
mcc="440"
mnc="20"
apn="plus.acs.jp"
- user="plusw6q9tattkmpk"
- password="msfbbam83bsdetxb"
- mmsproxy="andmms.plusacs.ne.jp"
+ user="ym"
+ password="ym"
+ mmsproxy="andmms.plus.acs.ne.jp"
mmsport="8080"
mmsc="http://mms-s"
- type="default,mms,supl"
+ type="default,mms,supl,hipri"
authtype="2"
/>
@@ -27286,7 +27324,7 @@
type="default,supl,mms"
/>
- <apn carrier="one2free"
+ <apn carrier="csl"
mcc="454"
mnc="00"
apn="mobile"
@@ -27300,7 +27338,7 @@
<apn carrier="NWMOBILE"
mcc="454"
mnc="00"
- apn="NWMOBILE"
+ apn="nwmobile"
mmsproxy="192.168.59.61"
mmsport="8080"
mmsc="http://192.168.58.171:8002"
@@ -27319,7 +27357,7 @@
type="default,supl,mms"
/>
- <apn carrier="one2free"
+ <apn carrier="csl"
mcc="454"
mnc="02"
apn="mobile"
@@ -27333,7 +27371,7 @@
<apn carrier="NWMOBILE"
mcc="454"
mnc="02"
- apn="NWMOBILE"
+ apn="nwmobile"
mmsproxy="192.168.59.61"
mmsport="8080"
mmsc="http://192.168.58.171:8002"
@@ -27400,7 +27438,7 @@
type="default,supl"
/>
- <apn carrier="one2free"
+ <apn carrier="csl"
mcc="454"
mnc="10"
apn="hkcsl"
@@ -27452,14 +27490,14 @@
type="default,supl,mms"
/>
- <apn carrier="PCCW-HKT"
+ <apn carrier="csl"
mcc="454"
mnc="16"
- apn="pccw"
- mmsc="http://3gmms.pccwmobile.com:8080/was"
+ apn="PCCW"
+ mmsc="http://mms.hkcsl.com:8080"
mmsproxy="10.140.14.10"
mmsport="8080"
- authtype="1"
+ authtype="3"
type="default,supl,mms"
/>
@@ -27485,7 +27523,7 @@
type="default,supl,mms"
/>
- <apn carrier="one2free"
+ <apn carrier="csl"
mcc="454"
mnc="18"
apn="mobile"
@@ -27499,7 +27537,7 @@
<apn carrier="NWMOBILE"
mcc="454"
mnc="18"
- apn="NWMOBILE"
+ apn="nwmobile"
mmsproxy="192.168.59.61"
mmsport="8080"
mmsc="http://192.168.58.171:8002"
@@ -27507,14 +27545,14 @@
type="default,supl,mms"
/>
- <apn carrier="PCCW-HKT"
+ <apn carrier="csl"
mcc="454"
mnc="19"
- apn="pccw"
- mmsc="http://3gmms.pccwmobile.com:8080/was"
+ apn="PCCW"
+ mmsc="http://mms.hkcsl.com:8080"
mmsproxy="10.140.14.10"
mmsport="8080"
- authtype="1"
+ authtype="3"
type="default,supl,mms"
/>
@@ -27857,13 +27895,6 @@
type="mms"
/>
- <apn carrier="VIBO-vibo"
- mcc="466"
- mnc="89"
- apn="vibo"
- type="default,supl"
- />
-
<apn carrier="T Star-internet"
mcc="466"
mnc="89"
@@ -27871,6 +27902,13 @@
type="default,supl"
/>
+ <apn carrier="VIBO-vibo"
+ mcc="466"
+ mnc="89"
+ apn="vibo"
+ type="default,supl"
+ />
+
<apn carrier="VIBOONE"
mcc="466"
mnc="89"
diff --git a/audio_policy.conf b/audio_policy.conf
index 6b815af..e9d431b 100644
--- a/audio_policy.conf
+++ b/audio_policy.conf
@@ -48,7 +48,7 @@
flags AUDIO_OUTPUT_FLAG_DIRECT
}
compress_offload {
- sampling_rates 8000|11025|16000|22050|32000|44100|48000
+ sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
channel_masks AUDIO_CHANNEL_OUT_MONO|AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_MP3|AUDIO_FORMAT_AAC_LC|AUDIO_FORMAT_AAC_HE_V1|AUDIO_FORMAT_AAC_HE_V2
devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE
@@ -112,8 +112,8 @@
inputs {
usb_device {
sampling_rates dynamic
- channel_masks AUDIO_CHANNEL_IN_STEREO
- formats AUDIO_FORMAT_PCM_16_BIT
+ channel_masks dynamic
+ formats dynamic
devices AUDIO_DEVICE_IN_USB_DEVICE
}
}
diff --git a/camera/QCamera2/HAL3/QCamera3Channel.cpp b/camera/QCamera2/HAL3/QCamera3Channel.cpp
index 2ef3fd3..4dc5a3b 100644
--- a/camera/QCamera2/HAL3/QCamera3Channel.cpp
+++ b/camera/QCamera2/HAL3/QCamera3Channel.cpp
@@ -241,6 +241,11 @@
return NO_INIT;
}
+ if(m_bIsActive) {
+ ALOGD("%s: Attempt to start active channel", __func__);
+ return rc;
+ }
+
for (int i = 0; i < m_numStreams; i++) {
if (mStreams[i] != NULL) {
mStreams[i]->start();
@@ -460,6 +465,7 @@
*==========================================================================*/
QCamera3RegularChannel::~QCamera3RegularChannel()
{
+ mMemory.unregisterBuffers();
}
/*===========================================================================
@@ -741,11 +747,6 @@
return &mMemory;
}
-void QCamera3RegularChannel::putStreamBufs()
-{
- mMemory.unregisterBuffers();
-}
-
int QCamera3RegularChannel::kMaxBuffers = 7;
QCamera3MetadataChannel::QCamera3MetadataChannel(uint32_t cam_handle,
@@ -1101,10 +1102,6 @@
}
m_postprocessor.stop();
- rc = m_postprocessor.deinit();
- if (rc != 0) {
- ALOGE("De-init Postprocessor failed");
- }
rc |= QCamera3Channel::stop();
return rc;
@@ -1113,6 +1110,11 @@
QCamera3PicChannel::~QCamera3PicChannel()
{
stop();
+
+ int32_t rc = m_postprocessor.deinit();
+ if (rc != 0) {
+ ALOGE("De-init Postprocessor failed");
+ }
}
int32_t QCamera3PicChannel::initialize()
diff --git a/camera/QCamera2/HAL3/QCamera3Channel.h b/camera/QCamera2/HAL3/QCamera3Channel.h
index a74650f..685cd39 100755
--- a/camera/QCamera2/HAL3/QCamera3Channel.h
+++ b/camera/QCamera2/HAL3/QCamera3Channel.h
@@ -139,7 +139,7 @@
QCamera3Stream *stream);
virtual QCamera3Memory *getStreamBufs(uint32_t len);
- virtual void putStreamBufs();
+ virtual void putStreamBufs() {};
mm_camera_buf_def_t* getInternalFormatBuffer(buffer_handle_t* buffer);
virtual int32_t registerBuffer(buffer_handle_t *buffer);
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp
index 639f26f..dd76459 100644
--- a/camera/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp
@@ -56,6 +56,7 @@
#define DATA_PTR(MEM_OBJ,INDEX) MEM_OBJ->getPtr( INDEX )
#define EMPTY_PIPELINE_DELAY 2
+#define CAM_MAX_SYNC_LATENCY 4
cam_capability_t *gCamCapability[MM_CAMERA_MAX_NUM_SENSORS];
const camera_metadata_t *gStaticMetadata[MM_CAMERA_MAX_NUM_SENSORS];
@@ -140,6 +141,7 @@
const QCamera3HardwareInterface::QCameraMap QCamera3HardwareInterface::FACEDETECT_MODES_MAP[] = {
{ ANDROID_STATISTICS_FACE_DETECT_MODE_OFF, CAM_FACE_DETECT_MODE_OFF },
+ { ANDROID_STATISTICS_FACE_DETECT_MODE_SIMPLE, CAM_FACE_DETECT_MODE_SIMPLE },
{ ANDROID_STATISTICS_FACE_DETECT_MODE_FULL, CAM_FACE_DETECT_MODE_FULL }
};
@@ -236,6 +238,7 @@
mParameters(NULL),
mPrevParameters(NULL),
mLoopBackResult(NULL),
+ mFlush(false),
mMinProcessedFrameDuration(0),
mMinJpegFrameDuration(0),
mMinRawFrameDuration(0),
@@ -1734,6 +1737,11 @@
mPendingRequestsList.push_back(pendingRequest);
+ if (mFlush) {
+ pthread_mutex_unlock(&mMutex);
+ return NO_ERROR;
+ }
+
// Notify metadata channel we receive a request
mMetadataChannel->request(NULL, frameNumber);
@@ -1882,6 +1890,10 @@
ALOGV("%s: Unblocking Process Capture Request", __func__);
+ pthread_mutex_lock(&mMutex);
+ mFlush = true;
+ pthread_mutex_unlock(&mMutex);
+
memset(&result, 0, sizeof(camera3_capture_result_t));
// Stop the Streams/Channels
@@ -2047,7 +2059,24 @@
mPendingBuffersMap.mPendingBufferList.clear();
ALOGV("%s: Cleared all the pending buffers ", __func__);
+ mFlush = false;
+
mFirstRequest = true;
+
+ // Start the Streams/Channels
+ if (mMetadataChannel) {
+ /* If content of mStreamInfo is not 0, there is metadata stream */
+ mMetadataChannel->start();
+ }
+ for (List<stream_info_t *>::iterator it = mStreamInfo.begin();
+ it != mStreamInfo.end(); it++) {
+ QCamera3Channel *channel = (QCamera3Channel *)(*it)->stream->priv;
+ channel->start();
+ }
+ if (mSupportChannel) {
+ mSupportChannel->start();
+ }
+
pthread_mutex_unlock(&mMutex);
return 0;
}
@@ -2141,31 +2170,25 @@
int32_t faceIds[MAX_ROI];
uint8_t faceScores[MAX_ROI];
int32_t faceRectangles[MAX_ROI * 4];
- int32_t faceLandmarks[MAX_ROI * 6];
- int j = 0, k = 0;
+ int j = 0;
for (int i = 0; i < numFaces; i++) {
faceIds[i] = faceDetectionInfo->faces[i].face_id;
faceScores[i] = faceDetectionInfo->faces[i].score;
convertToRegions(faceDetectionInfo->faces[i].face_boundary,
faceRectangles+j, -1);
- convertLandmarks(faceDetectionInfo->faces[i], faceLandmarks+k);
j+= 4;
- k+= 6;
}
if (numFaces <= 0) {
memset(faceIds, 0, sizeof(int32_t) * MAX_ROI);
memset(faceScores, 0, sizeof(uint8_t) * MAX_ROI);
memset(faceRectangles, 0, sizeof(int32_t) * MAX_ROI * 4);
- memset(faceLandmarks, 0, sizeof(int32_t) * MAX_ROI * 6);
}
camMetadata.update(ANDROID_STATISTICS_FACE_IDS, faceIds, numFaces);
camMetadata.update(ANDROID_STATISTICS_FACE_SCORES, faceScores, numFaces);
camMetadata.update(ANDROID_STATISTICS_FACE_RECTANGLES,
faceRectangles, numFaces*4);
- camMetadata.update(ANDROID_STATISTICS_FACE_LANDMARKS,
- faceLandmarks, numFaces*6);
break;
}
case CAM_INTF_META_COLOR_CORRECT_MODE:{
@@ -2405,6 +2428,10 @@
uint8_t fwk_faceDetectMode = (uint8_t)lookupFwkName(FACEDETECT_MODES_MAP,
sizeof(FACEDETECT_MODES_MAP)/sizeof(FACEDETECT_MODES_MAP[0]),
*faceDetectMode);
+ /* Downgrade to simple mode */
+ if (fwk_faceDetectMode == ANDROID_STATISTICS_FACE_DETECT_MODE_FULL) {
+ fwk_faceDetectMode = ANDROID_STATISTICS_FACE_DETECT_MODE_SIMPLE;
+ }
camMetadata.update(ANDROID_STATISTICS_FACE_DETECT_MODE, &fwk_faceDetectMode, 1);
break;
}
@@ -3537,7 +3564,7 @@
uint8_t availableFaceDetectModes[] = {
ANDROID_STATISTICS_FACE_DETECT_MODE_OFF,
- ANDROID_STATISTICS_FACE_DETECT_MODE_FULL };
+ ANDROID_STATISTICS_FACE_DETECT_MODE_SIMPLE };
staticInfo.update(ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES,
availableFaceDetectModes,
sizeof(availableFaceDetectModes));
@@ -3843,6 +3870,8 @@
available_capabilities[available_capabilities_count++] = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE;
available_capabilities[available_capabilities_count++] = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR;
available_capabilities[available_capabilities_count++] = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING;
+ available_capabilities[available_capabilities_count++] = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS;
+ available_capabilities[available_capabilities_count++] = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE;
if (facingBack) {
available_capabilities[available_capabilities_count++] = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW;
}
@@ -3859,7 +3888,7 @@
staticInfo.update(ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP,
io_format_map, 0);
- int32_t max_latency = (facingBack)? ANDROID_SYNC_MAX_LATENCY_PER_FRAME_CONTROL:ANDROID_SYNC_MAX_LATENCY_UNKNOWN;
+ int32_t max_latency = (facingBack)? ANDROID_SYNC_MAX_LATENCY_PER_FRAME_CONTROL:CAM_MAX_SYNC_LATENCY;
staticInfo.update(ANDROID_SYNC_MAX_LATENCY,
&max_latency,
1);
@@ -4650,7 +4679,7 @@
static const int32_t testpatternMode = ANDROID_SENSOR_TEST_PATTERN_MODE_OFF;
settings.update(ANDROID_SENSOR_TEST_PATTERN_MODE, &testpatternMode, 1);
- static const uint8_t faceDetectMode = ANDROID_STATISTICS_FACE_DETECT_MODE_FULL;
+ static const uint8_t faceDetectMode = ANDROID_STATISTICS_FACE_DETECT_MODE_OFF;
settings.update(ANDROID_STATISTICS_FACE_DETECT_MODE, &faceDetectMode, 1);
static const uint8_t histogramMode = ANDROID_STATISTICS_HISTOGRAM_MODE_OFF;
@@ -4711,7 +4740,7 @@
scaler_crop_region[3] = gCamCapability[mCameraId]->active_array_size.height;
settings.update(ANDROID_SCALER_CROP_REGION, scaler_crop_region, 4);
- static const uint8_t antibanding_mode = ANDROID_CONTROL_AE_ANTIBANDING_MODE_60HZ;
+ static const uint8_t antibanding_mode = ANDROID_CONTROL_AE_ANTIBANDING_MODE_AUTO;
settings.update(ANDROID_CONTROL_AE_ANTIBANDING_MODE, &antibanding_mode, 1);
static const uint8_t vs_mode = ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_OFF;
@@ -4781,10 +4810,6 @@
uint8_t blacklevel_lock = ANDROID_BLACK_LEVEL_LOCK_OFF;
settings.update(ANDROID_BLACK_LEVEL_LOCK, &blacklevel_lock, 1);
- /* face detect mode */
- uint8_t facedetect_mode = ANDROID_STATISTICS_FACE_DETECT_MODE_OFF;
- settings.update(ANDROID_STATISTICS_FACE_DETECT_MODE, &facedetect_mode, 1);
-
//special defaults for manual template
if (type == CAMERA3_TEMPLATE_MANUAL) {
static const uint8_t manualControlMode = ANDROID_CONTROL_MODE_OFF;
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.h b/camera/QCamera2/HAL3/QCamera3HWI.h
index 70244a7..2a5f7b4 100644
--- a/camera/QCamera2/HAL3/QCamera3HWI.h
+++ b/camera/QCamera2/HAL3/QCamera3HWI.h
@@ -274,6 +274,7 @@
int32_t mCurrentRequestId;
camera3_capture_result_t *mLoopBackResult;
nsecs_t mLoopBackTimestamp;
+ bool mFlush;
//mutex for serialized access to camera3_device_ops_t functions
pthread_mutex_t mMutex;
diff --git a/camera/QCamera2/HAL3/QCamera3PostProc.cpp b/camera/QCamera2/HAL3/QCamera3PostProc.cpp
index a529e04..d967516 100644
--- a/camera/QCamera2/HAL3/QCamera3PostProc.cpp
+++ b/camera/QCamera2/HAL3/QCamera3PostProc.cpp
@@ -227,6 +227,12 @@
{
m_dataProcTh.sendCmd(CAMERA_CMD_TYPE_STOP_DATA_PROC, TRUE, TRUE);
+ if (m_pReprocChannel != NULL) {
+ m_pReprocChannel->stop();
+ delete m_pReprocChannel;
+ m_pReprocChannel = NULL;
+ }
+
return NO_ERROR;
}
@@ -1027,6 +1033,15 @@
ALOGD("%s: start data proc", __func__);
is_active = TRUE;
needNewSess = TRUE;
+
+ pme->m_ongoingPPQ.init();
+ pme->m_inputJpegQ.init();
+ pme->m_inputPPQ.init();
+ pme->m_inputRawQ.init();
+ pme->m_inputMetaQ.init();
+ pme->m_ongoingJpegQ.init();
+ pme->m_jpegSettingsQ.init();
+
break;
case CAMERA_CMD_TYPE_STOP_DATA_PROC:
{
diff --git a/camera/QCamera2/HAL3/QCamera3Stream.cpp b/camera/QCamera2/HAL3/QCamera3Stream.cpp
index 793aa00..035329f 100644
--- a/camera/QCamera2/HAL3/QCamera3Stream.cpp
+++ b/camera/QCamera2/HAL3/QCamera3Stream.cpp
@@ -177,8 +177,7 @@
mStreamInfoBuf(NULL),
mStreamBufs(NULL),
mBufDefs(NULL),
- mChannel(channel),
- m_bActive(false)
+ mChannel(channel)
{
mMemVtbl.user_data = this;
mMemVtbl.get_bufs = get_bufs;
@@ -341,10 +340,9 @@
int32_t QCamera3Stream::start()
{
int32_t rc = 0;
+
+ mDataQ.init();
rc = mProcTh.launch(dataProcRoutine, this);
- if (rc == NO_ERROR) {
- m_bActive = true;
- }
return rc;
}
@@ -363,7 +361,6 @@
{
int32_t rc = 0;
rc = mProcTh.exit();
- m_bActive = false;
return rc;
}
@@ -383,8 +380,7 @@
{
ALOGV("%s: E\n", __func__);
int32_t rc;
- if (m_bActive) {
- mDataQ.enqueue((void *)frame);
+ if (mDataQ.enqueue((void *)frame)) {
rc = mProcTh.sendCmd(CAMERA_CMD_TYPE_DO_NEXT_JOB, FALSE, FALSE);
} else {
ALOGD("%s: Stream thread is not active, no ops here", __func__);
diff --git a/camera/QCamera2/HAL3/QCamera3Stream.h b/camera/QCamera2/HAL3/QCamera3Stream.h
index aab2a30..0187efb 100644
--- a/camera/QCamera2/HAL3/QCamera3Stream.h
+++ b/camera/QCamera2/HAL3/QCamera3Stream.h
@@ -107,7 +107,6 @@
cam_frame_len_offset_t mFrameLenOffset;
cam_padding_info_t mPaddingInfo;
QCamera3Channel *mChannel;
- bool m_bActive; // if stream mProcTh is active
static int32_t get_bufs(
cam_frame_len_offset_t *offset,
diff --git a/camera/QCamera2/stack/common/cam_types.h b/camera/QCamera2/stack/common/cam_types.h
index 6f039fb..dfd5c5c 100644
--- a/camera/QCamera2/stack/common/cam_types.h
+++ b/camera/QCamera2/stack/common/cam_types.h
@@ -36,7 +36,7 @@
#include <inttypes.h>
#include <media/msmb_camera.h>
-#define CAM_MAX_NUM_BUFS_PER_STREAM 24
+#define CAM_MAX_NUM_BUFS_PER_STREAM 64
#define MAX_METADATA_PAYLOAD_SIZE 1024
#define CEILING32(X) (((X) + 0x0001F) & 0xFFFFFFE0)
@@ -51,7 +51,7 @@
#define MAX_STREAM_NUM_IN_BUNDLE 4
#define MAX_NUM_STREAMS 8
#define MAX_TEST_PATTERN_CNT 8
-#define MAX_AVAILABLE_CAPABILITIES 4
+#define MAX_AVAILABLE_CAPABILITIES 6
#define GPS_PROCESSING_METHOD_SIZE 33
diff --git a/camera/QCamera2/util/QCameraQueue.cpp b/camera/QCamera2/util/QCameraQueue.cpp
index b4aac9c..d254169 100644
--- a/camera/QCamera2/util/QCameraQueue.cpp
+++ b/camera/QCamera2/util/QCameraQueue.cpp
@@ -51,6 +51,7 @@
m_size = 0;
m_dataFn = NULL;
m_userData = NULL;
+ m_active = true;
}
/*===========================================================================
@@ -71,6 +72,7 @@
m_size = 0;
m_dataFn = data_rel_fn;
m_userData = user_data;
+ m_active = true;
}
/*===========================================================================
@@ -89,6 +91,22 @@
}
/*===========================================================================
+ * FUNCTION : init
+ *
+ * DESCRIPTION: Put the queue to active state (ready to enqueue and dequeue)
+ *
+ * PARAMETERS : None
+ *
+ * RETURN : None
+ *==========================================================================*/
+void QCameraQueue::init()
+{
+ pthread_mutex_lock(&m_lock);
+ m_active = true;
+ pthread_mutex_unlock(&m_lock);
+}
+
+/*===========================================================================
* FUNCTION : isEmpty
*
* DESCRIPTION: return if the queue is empty or not
@@ -120,6 +138,7 @@
*==========================================================================*/
bool QCameraQueue::enqueue(void *data)
{
+ bool rc;
camera_q_node *node =
(camera_q_node *)malloc(sizeof(camera_q_node));
if (NULL == node) {
@@ -131,10 +150,16 @@
node->data = data;
pthread_mutex_lock(&m_lock);
- cam_list_add_tail_node(&node->list, &m_head.list);
- m_size++;
+ if (m_active) {
+ cam_list_add_tail_node(&node->list, &m_head.list);
+ m_size++;
+ rc = true;
+ } else {
+ free(node);
+ rc = false;
+ }
pthread_mutex_unlock(&m_lock);
- return true;
+ return rc;
}
/*===========================================================================
@@ -150,6 +175,7 @@
*==========================================================================*/
bool QCameraQueue::enqueueWithPriority(void *data)
{
+ bool rc;
camera_q_node *node =
(camera_q_node *)malloc(sizeof(camera_q_node));
if (NULL == node) {
@@ -161,16 +187,22 @@
node->data = data;
pthread_mutex_lock(&m_lock);
- struct cam_list *p_next = m_head.list.next;
+ if (m_active) {
+ struct cam_list *p_next = m_head.list.next;
- m_head.list.next = &node->list;
- p_next->prev = &node->list;
- node->list.next = p_next;
- node->list.prev = &m_head.list;
+ m_head.list.next = &node->list;
+ p_next->prev = &node->list;
+ node->list.next = p_next;
+ node->list.prev = &m_head.list;
- m_size++;
+ m_size++;
+ rc = true;
+ } else {
+ free(node);
+ rc = false;
+ }
pthread_mutex_unlock(&m_lock);
- return true;
+ return rc;
}
/*===========================================================================
@@ -192,16 +224,18 @@
struct cam_list *pos = NULL;
pthread_mutex_lock(&m_lock);
- head = &m_head.list;
- if (bFromHead) {
- pos = head->next;
- } else {
- pos = head->prev;
- }
- if (pos != head) {
- node = member_of(pos, camera_q_node, list);
- cam_list_del_node(&node->list);
- m_size--;
+ if (m_active) {
+ head = &m_head.list;
+ if (bFromHead) {
+ pos = head->next;
+ } else {
+ pos = head->prev;
+ }
+ if (pos != head) {
+ node = member_of(pos, camera_q_node, list);
+ cam_list_del_node(&node->list);
+ m_size--;
+ }
}
pthread_mutex_unlock(&m_lock);
@@ -229,25 +263,28 @@
struct cam_list *pos = NULL;
pthread_mutex_lock(&m_lock);
- head = &m_head.list;
- pos = head->next;
+ if (m_active) {
+ head = &m_head.list;
+ pos = head->next;
- while(pos != head) {
- node = member_of(pos, camera_q_node, list);
- pos = pos->next;
- cam_list_del_node(&node->list);
- m_size--;
+ while(pos != head) {
+ node = member_of(pos, camera_q_node, list);
+ pos = pos->next;
+ cam_list_del_node(&node->list);
+ m_size--;
- if (NULL != node->data) {
- if (m_dataFn) {
- m_dataFn(node->data, m_userData);
+ if (NULL != node->data) {
+ if (m_dataFn) {
+ m_dataFn(node->data, m_userData);
+ }
+ free(node->data);
}
- free(node->data);
- }
- free(node);
+ free(node);
+ }
+ m_size = 0;
+ m_active = false;
}
- m_size = 0;
pthread_mutex_unlock(&m_lock);
}
@@ -272,23 +309,25 @@
}
pthread_mutex_lock(&m_lock);
- head = &m_head.list;
- pos = head->next;
+ if (m_active) {
+ head = &m_head.list;
+ pos = head->next;
- while(pos != head) {
- node = member_of(pos, camera_q_node, list);
- pos = pos->next;
- if ( match(node->data, m_userData) ) {
- cam_list_del_node(&node->list);
- m_size--;
+ while(pos != head) {
+ node = member_of(pos, camera_q_node, list);
+ pos = pos->next;
+ if ( match(node->data, m_userData) ) {
+ cam_list_del_node(&node->list);
+ m_size--;
- if (NULL != node->data) {
- if (m_dataFn) {
- m_dataFn(node->data, m_userData);
+ if (NULL != node->data) {
+ if (m_dataFn) {
+ m_dataFn(node->data, m_userData);
+ }
+ free(node->data);
}
- free(node->data);
+ free(node);
}
- free(node);
}
}
pthread_mutex_unlock(&m_lock);
diff --git a/camera/QCamera2/util/QCameraQueue.h b/camera/QCamera2/util/QCameraQueue.h
index 6e2c759..c94e342 100644
--- a/camera/QCamera2/util/QCameraQueue.h
+++ b/camera/QCamera2/util/QCameraQueue.h
@@ -43,8 +43,11 @@
QCameraQueue();
QCameraQueue(release_data_fn data_rel_fn, void *user_data);
virtual ~QCameraQueue();
+ void init();
bool enqueue(void *data);
bool enqueueWithPriority(void *data);
+ /* This call will put queue into uninitialized state.
+ * Need to call init() in order to use the queue again */
void flush();
void flushNodes(match_fn match);
void* dequeue(bool bFromHead = true);
@@ -57,6 +60,7 @@
camera_q_node m_head; // dummy head
int m_size;
+ bool m_active;
pthread_mutex_t m_lock;
release_data_fn m_dataFn;
void * m_userData;
diff --git a/device.mk b/device.mk
index eff60d7..a7b6d3d 100644
--- a/device.mk
+++ b/device.mk
@@ -113,11 +113,7 @@
PRODUCT_COPY_FILES += \
device/lge/hammerhead/spn-conf.xml:system/etc/spn-conf.xml
-# This device is xhdpi. However the platform doesn't
-# currently contain all of the bitmaps at xhdpi density so
-# we do this little trick to fall back to the hdpi version
-# if the xhdpi doesn't exist.
-PRODUCT_AAPT_CONFIG := normal hdpi xhdpi xxhdpi
+PRODUCT_AAPT_CONFIG := normal
PRODUCT_AAPT_PREF_CONFIG := xxhdpi
PRODUCT_CHARACTERISTICS := nosdcard
@@ -277,6 +273,15 @@
ro.qti.sensors.smgr_mag_cal_en=true \
ro.qti.sensors.step_detector=true \
ro.qti.sensors.step_counter=true
+ ro.qti.sensors.tap=false \
+ ro.qti.sensors.facing=false \
+ ro.qti.sensors.tilt=false \
+ ro.qti.sensors.amd=false \
+ ro.qti.sensors.rmd=false \
+ ro.qti.sensors.vmd=false \
+ ro.qti.sensors.pedometer=false \
+ ro.qti.sensors.pam=false \
+ ro.qti.sdk.sensors.gestures=false
# Enable some debug messages by default
PRODUCT_PROPERTY_OVERRIDES += \
diff --git a/dumpstate/dumpstate.c b/dumpstate/dumpstate.c
index a33cf47..9c336dd 100644
--- a/dumpstate/dumpstate.c
+++ b/dumpstate/dumpstate.c
@@ -25,4 +25,5 @@
dump_file("SMD Log", "/d/ipc_logging/smd/log");
dump_file("SMD PKT Log", "/d/ipc_logging/smd_pkt/log");
dump_file("IPC Router Log", "/d/ipc_logging/ipc_router/log");
+ run_command("ION HEAPS", 5, SU_PATH, "root", "/system/bin/sh", "-c", "for f in $(ls /d/ion/*); do echo $f; cat $f; done", NULL);
};
diff --git a/kernel-headers/sound/compress_params.h b/kernel-headers/sound/compress_params.h
index f4e520c..adb147c 100644
--- a/kernel-headers/sound/compress_params.h
+++ b/kernel-headers/sound/compress_params.h
@@ -22,242 +22,267 @@
#define MAX_NUM_CODEC_DESCRIPTORS 32
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define MAX_NUM_BITRATES 32
+#define MAX_NUM_SAMPLE_RATES 32
#define MAX_NUM_FRAMES_PER_BUFFER 1
#define COMPRESSED_META_DATA_MODE 0x10
-#define META_DATA_LEN_BYTES 36
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define META_DATA_LEN_BYTES 36
#define Q6_AC3_DECODER 0x00010BF6
#define Q6_EAC3_DECODER 0x00010C3C
#define Q6_DTS 0x00010D88
-#define Q6_DTS_LBR 0x00010DBB
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define Q6_DTS_LBR 0x00010DBB
#define SND_AUDIOCODEC_PCM ((__u32) 0x00000001)
#define SND_AUDIOCODEC_MP3 ((__u32) 0x00000002)
#define SND_AUDIOCODEC_AMR ((__u32) 0x00000003)
-#define SND_AUDIOCODEC_AMRWB ((__u32) 0x00000004)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOCODEC_AMRWB ((__u32) 0x00000004)
#define SND_AUDIOCODEC_AMRWBPLUS ((__u32) 0x00000005)
#define SND_AUDIOCODEC_AAC ((__u32) 0x00000006)
#define SND_AUDIOCODEC_WMA ((__u32) 0x00000007)
-#define SND_AUDIOCODEC_REAL ((__u32) 0x00000008)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOCODEC_REAL ((__u32) 0x00000008)
#define SND_AUDIOCODEC_VORBIS ((__u32) 0x00000009)
#define SND_AUDIOCODEC_FLAC ((__u32) 0x0000000A)
#define SND_AUDIOCODEC_IEC61937 ((__u32) 0x0000000B)
-#define SND_AUDIOCODEC_G723_1 ((__u32) 0x0000000C)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOCODEC_G723_1 ((__u32) 0x0000000C)
#define SND_AUDIOCODEC_G729 ((__u32) 0x0000000D)
#define SND_AUDIOCODEC_AC3 ((__u32) 0x0000000E)
#define SND_AUDIOCODEC_DTS ((__u32) 0x0000000F)
-#define SND_AUDIOCODEC_AC3_PASS_THROUGH ((__u32) 0x00000010)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOCODEC_AC3_PASS_THROUGH ((__u32) 0x00000010)
#define SND_AUDIOCODEC_WMA_PRO ((__u32) 0x00000011)
#define SND_AUDIOCODEC_DTS_PASS_THROUGH ((__u32) 0x00000012)
#define SND_AUDIOCODEC_DTS_LBR ((__u32) 0x00000013)
-#define SND_AUDIOCODEC_DTS_TRANSCODE_LOOPBACK ((__u32) 0x00000014)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_DTS_TRANSCODE_LOOPBACK
+#define SND_AUDIOCODEC_DTS_TRANSCODE_LOOPBACK ((__u32) 0x00000014)
+#define SND_AUDIOCODEC_PASS_THROUGH ((__u32) 0x00000015)
+#define SND_AUDIOCODEC_MP2 ((__u32) 0x00000016)
+#define SND_AUDIOCODEC_DTS_LBR_PASS_THROUGH ((__u32) 0x00000017)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOCODEC_EAC3 ((__u32) 0x00000018)
+#define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_EAC3
#define SND_AUDIOPROFILE_PCM ((__u32) 0x00000001)
#define SND_AUDIOCHANMODE_MP3_MONO ((__u32) 0x00000001)
-#define SND_AUDIOCHANMODE_MP3_STEREO ((__u32) 0x00000002)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOCHANMODE_MP3_STEREO ((__u32) 0x00000002)
#define SND_AUDIOCHANMODE_MP3_JOINTSTEREO ((__u32) 0x00000004)
#define SND_AUDIOCHANMODE_MP3_DUAL ((__u32) 0x00000008)
#define SND_AUDIOPROFILE_AMR ((__u32) 0x00000001)
-#define SND_AUDIOMODE_AMR_DTX_OFF ((__u32) 0x00000001)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_AMR_DTX_OFF ((__u32) 0x00000001)
#define SND_AUDIOMODE_AMR_VAD1 ((__u32) 0x00000002)
#define SND_AUDIOMODE_AMR_VAD2 ((__u32) 0x00000004)
#define SND_AUDIOSTREAMFORMAT_UNDEFINED ((__u32) 0x00000000)
-#define SND_AUDIOSTREAMFORMAT_CONFORMANCE ((__u32) 0x00000001)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOSTREAMFORMAT_CONFORMANCE ((__u32) 0x00000001)
#define SND_AUDIOSTREAMFORMAT_IF1 ((__u32) 0x00000002)
#define SND_AUDIOSTREAMFORMAT_IF2 ((__u32) 0x00000004)
#define SND_AUDIOSTREAMFORMAT_FSF ((__u32) 0x00000008)
-#define SND_AUDIOSTREAMFORMAT_RTPPAYLOAD ((__u32) 0x00000010)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOSTREAMFORMAT_RTPPAYLOAD ((__u32) 0x00000010)
#define SND_AUDIOSTREAMFORMAT_ITU ((__u32) 0x00000020)
#define SND_AUDIOPROFILE_AMRWB ((__u32) 0x00000001)
#define SND_AUDIOMODE_AMRWB_DTX_OFF ((__u32) 0x00000001)
-#define SND_AUDIOMODE_AMRWB_VAD1 ((__u32) 0x00000002)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_AMRWB_VAD1 ((__u32) 0x00000002)
#define SND_AUDIOMODE_AMRWB_VAD2 ((__u32) 0x00000004)
#define SND_AUDIOPROFILE_AMRWBPLUS ((__u32) 0x00000001)
#define SND_AUDIOPROFILE_AAC ((__u32) 0x00000001)
-#define SND_AUDIOMODE_AAC_MAIN ((__u32) 0x00000001)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_AAC_MAIN ((__u32) 0x00000001)
#define SND_AUDIOMODE_AAC_LC ((__u32) 0x00000002)
#define SND_AUDIOMODE_AAC_SSR ((__u32) 0x00000004)
#define SND_AUDIOMODE_AAC_LTP ((__u32) 0x00000008)
-#define SND_AUDIOMODE_AAC_HE ((__u32) 0x00000010)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_AAC_HE ((__u32) 0x00000010)
#define SND_AUDIOMODE_AAC_SCALABLE ((__u32) 0x00000020)
#define SND_AUDIOMODE_AAC_ERLC ((__u32) 0x00000040)
#define SND_AUDIOMODE_AAC_LD ((__u32) 0x00000080)
-#define SND_AUDIOMODE_AAC_HE_PS ((__u32) 0x00000100)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_AAC_HE_PS ((__u32) 0x00000100)
#define SND_AUDIOMODE_AAC_HE_MPS ((__u32) 0x00000200)
#define SND_AUDIOSTREAMFORMAT_MP2ADTS ((__u32) 0x00000001)
#define SND_AUDIOSTREAMFORMAT_MP4ADTS ((__u32) 0x00000002)
-#define SND_AUDIOSTREAMFORMAT_MP4LOAS ((__u32) 0x00000004)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOSTREAMFORMAT_MP4LOAS ((__u32) 0x00000004)
#define SND_AUDIOSTREAMFORMAT_MP4LATM ((__u32) 0x00000008)
#define SND_AUDIOSTREAMFORMAT_ADIF ((__u32) 0x00000010)
#define SND_AUDIOSTREAMFORMAT_MP4FF ((__u32) 0x00000020)
-#define SND_AUDIOSTREAMFORMAT_RAW ((__u32) 0x00000040)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOSTREAMFORMAT_RAW ((__u32) 0x00000040)
#define SND_AUDIOPROFILE_WMA7 ((__u32) 0x00000001)
#define SND_AUDIOPROFILE_WMA8 ((__u32) 0x00000002)
#define SND_AUDIOPROFILE_WMA9 ((__u32) 0x00000004)
-#define SND_AUDIOPROFILE_WMA10 ((__u32) 0x00000008)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOPROFILE_WMA10 ((__u32) 0x00000008)
#define SND_AUDIOMODE_WMA_LEVEL1 ((__u32) 0x00000001)
#define SND_AUDIOMODE_WMA_LEVEL2 ((__u32) 0x00000002)
#define SND_AUDIOMODE_WMA_LEVEL3 ((__u32) 0x00000004)
-#define SND_AUDIOMODE_WMA_LEVEL4 ((__u32) 0x00000008)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_WMA_LEVEL4 ((__u32) 0x00000008)
#define SND_AUDIOMODE_WMAPRO_LEVELM0 ((__u32) 0x00000010)
#define SND_AUDIOMODE_WMAPRO_LEVELM1 ((__u32) 0x00000020)
#define SND_AUDIOMODE_WMAPRO_LEVELM2 ((__u32) 0x00000040)
-#define SND_AUDIOMODE_WMAPRO_LEVELM3 ((__u32) 0x00000080)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_WMAPRO_LEVELM3 ((__u32) 0x00000080)
#define SND_AUDIOSTREAMFORMAT_WMA_ASF ((__u32) 0x00000001)
#define SND_AUDIOSTREAMFORMAT_WMA_NOASF_HDR ((__u32) 0x00000002)
#define SND_AUDIOPROFILE_REALAUDIO ((__u32) 0x00000001)
-#define SND_AUDIOMODE_REALAUDIO_G2 ((__u32) 0x00000001)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_REALAUDIO_G2 ((__u32) 0x00000001)
#define SND_AUDIOMODE_REALAUDIO_8 ((__u32) 0x00000002)
#define SND_AUDIOMODE_REALAUDIO_10 ((__u32) 0x00000004)
#define SND_AUDIOMODE_REALAUDIO_SURROUND ((__u32) 0x00000008)
-#define SND_AUDIOPROFILE_VORBIS ((__u32) 0x00000001)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOPROFILE_VORBIS ((__u32) 0x00000001)
#define SND_AUDIOMODE_VORBIS ((__u32) 0x00000001)
#define SND_AUDIOPROFILE_FLAC ((__u32) 0x00000001)
#define SND_AUDIOMODE_FLAC_LEVEL0 ((__u32) 0x00000001)
-#define SND_AUDIOMODE_FLAC_LEVEL1 ((__u32) 0x00000002)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_FLAC_LEVEL1 ((__u32) 0x00000002)
#define SND_AUDIOMODE_FLAC_LEVEL2 ((__u32) 0x00000004)
#define SND_AUDIOMODE_FLAC_LEVEL3 ((__u32) 0x00000008)
#define SND_AUDIOMODE_FLAC_LEVEL4 ((__u32) 0x00000010)
-#define SND_AUDIOMODE_FLAC_LEVEL5 ((__u32) 0x00000020)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_FLAC_LEVEL5 ((__u32) 0x00000020)
#define SND_AUDIOMODE_FLAC_LEVEL6 ((__u32) 0x00000040)
#define SND_AUDIOMODE_FLAC_LEVEL7 ((__u32) 0x00000080)
#define SND_AUDIOMODE_FLAC_LEVEL8 ((__u32) 0x00000100)
-#define SND_AUDIOSTREAMFORMAT_FLAC ((__u32) 0x00000001)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOSTREAMFORMAT_FLAC ((__u32) 0x00000001)
#define SND_AUDIOSTREAMFORMAT_FLAC_OGG ((__u32) 0x00000002)
#define SND_AUDIOPROFILE_IEC61937 ((__u32) 0x00000001)
#define SND_AUDIOPROFILE_IEC61937_SPDIF ((__u32) 0x00000002)
-#define SND_AUDIOMODE_IEC_REF_STREAM_HEADER ((__u32) 0x00000000)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_IEC_REF_STREAM_HEADER ((__u32) 0x00000000)
#define SND_AUDIOMODE_IEC_LPCM ((__u32) 0x00000001)
#define SND_AUDIOMODE_IEC_AC3 ((__u32) 0x00000002)
#define SND_AUDIOMODE_IEC_MPEG1 ((__u32) 0x00000004)
-#define SND_AUDIOMODE_IEC_MP3 ((__u32) 0x00000008)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_IEC_MP3 ((__u32) 0x00000008)
#define SND_AUDIOMODE_IEC_MPEG2 ((__u32) 0x00000010)
#define SND_AUDIOMODE_IEC_AACLC ((__u32) 0x00000020)
#define SND_AUDIOMODE_IEC_DTS ((__u32) 0x00000040)
-#define SND_AUDIOMODE_IEC_ATRAC ((__u32) 0x00000080)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_IEC_ATRAC ((__u32) 0x00000080)
#define SND_AUDIOMODE_IEC_SACD ((__u32) 0x00000100)
#define SND_AUDIOMODE_IEC_EAC3 ((__u32) 0x00000200)
#define SND_AUDIOMODE_IEC_DTS_HD ((__u32) 0x00000400)
-#define SND_AUDIOMODE_IEC_MLP ((__u32) 0x00000800)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_IEC_MLP ((__u32) 0x00000800)
#define SND_AUDIOMODE_IEC_DST ((__u32) 0x00001000)
#define SND_AUDIOMODE_IEC_WMAPRO ((__u32) 0x00002000)
#define SND_AUDIOMODE_IEC_REF_CXT ((__u32) 0x00004000)
-#define SND_AUDIOMODE_IEC_HE_AAC ((__u32) 0x00008000)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_IEC_HE_AAC ((__u32) 0x00008000)
#define SND_AUDIOMODE_IEC_HE_AAC2 ((__u32) 0x00010000)
#define SND_AUDIOMODE_IEC_MPEG_SURROUND ((__u32) 0x00020000)
#define SND_AUDIOPROFILE_G723_1 ((__u32) 0x00000001)
-#define SND_AUDIOMODE_G723_1_ANNEX_A ((__u32) 0x00000001)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_G723_1_ANNEX_A ((__u32) 0x00000001)
#define SND_AUDIOMODE_G723_1_ANNEX_B ((__u32) 0x00000002)
#define SND_AUDIOMODE_G723_1_ANNEX_C ((__u32) 0x00000004)
#define SND_AUDIOPROFILE_G729 ((__u32) 0x00000001)
-#define SND_AUDIOMODE_G729_ANNEX_A ((__u32) 0x00000001)
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SND_AUDIOMODE_G729_ANNEX_A ((__u32) 0x00000001)
#define SND_AUDIOMODE_G729_ANNEX_B ((__u32) 0x00000002)
#define SND_RATECONTROLMODE_CONSTANTBITRATE ((__u32) 0x00000001)
#define SND_RATECONTROLMODE_VARIABLEBITRATE ((__u32) 0x00000002)
-struct snd_enc_wma {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct snd_enc_wma {
__u32 super_block_align;
__u32 bits_per_sample;
__u32 channelmask;
- __u32 encodeopt;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __u32 encodeopt;
__u32 encodeopt1;
__u32 encodeopt2;
};
-struct snd_enc_vorbis {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct snd_enc_vorbis {
__s32 quality;
__u32 managed;
__u32 max_bit_rate;
- __u32 min_bit_rate;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __u32 min_bit_rate;
__u32 downmix;
};
struct snd_enc_real {
- __u32 quant_bits;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __u32 quant_bits;
__u32 start_region;
__u32 num_regions;
};
-struct snd_enc_flac {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct snd_enc_flac {
__u32 num;
__u32 gain;
};
-struct snd_enc_generic {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct snd_enc_generic {
__u32 bw;
__s32 reserved[15];
};
-union snd_codec_options {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct snd_dec_dts {
+ __u32 modelIdLength;
+ __u8 *modelId;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct snd_dec_ddp {
+ __u32 params_length;
+ __u8 *params;
+ __u32 params_id[18];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __u32 params_value[18];
+};
+union snd_codec_options {
struct snd_enc_wma wma;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct snd_enc_vorbis vorbis;
struct snd_enc_real real;
struct snd_enc_flac flac;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct snd_enc_generic generic;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct snd_dec_dts dts;
+ struct snd_dec_ddp ddp;
};
struct snd_codec_desc {
- __u32 max_ch;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 sample_rates;
+ __u32 max_ch;
+ __u32 sample_rates[MAX_NUM_SAMPLE_RATES];
+ __u32 num_sample_rates;
__u32 bit_rate[MAX_NUM_BITRATES];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
__u32 num_bitrates;
__u32 rate_control;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
__u32 profiles;
__u32 modes;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
__u32 formats;
__u32 min_buffer;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
__u32 reserved[15];
};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct snd_codec {
__u32 id;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
__u32 ch_in;
__u32 ch_out;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
__u32 sample_rate;
__u32 bit_rate;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
__u32 rate_control;
__u32 profile;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
__u32 level;
__u32 ch_mode;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
__u32 format;
__u32 align;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __u32 transcode_dts;
+ struct snd_dec_dts dts;
union snd_codec_options options;
__u32 reserved[3];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/original-kernel-headers/sound/compress_params.h b/original-kernel-headers/sound/compress_params.h
index 866c0f9..71ada15 100644
--- a/original-kernel-headers/sound/compress_params.h
+++ b/original-kernel-headers/sound/compress_params.h
@@ -55,6 +55,7 @@
#define MAX_NUM_CODECS 32
#define MAX_NUM_CODEC_DESCRIPTORS 32
#define MAX_NUM_BITRATES 32
+#define MAX_NUM_SAMPLE_RATES 32
/* compressed TX */
#define MAX_NUM_FRAMES_PER_BUFFER 1
@@ -86,7 +87,11 @@
#define SND_AUDIOCODEC_DTS_PASS_THROUGH ((__u32) 0x00000012)
#define SND_AUDIOCODEC_DTS_LBR ((__u32) 0x00000013)
#define SND_AUDIOCODEC_DTS_TRANSCODE_LOOPBACK ((__u32) 0x00000014)
-#define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_DTS_TRANSCODE_LOOPBACK
+#define SND_AUDIOCODEC_PASS_THROUGH ((__u32) 0x00000015)
+#define SND_AUDIOCODEC_MP2 ((__u32) 0x00000016)
+#define SND_AUDIOCODEC_DTS_LBR_PASS_THROUGH ((__u32) 0x00000017)
+#define SND_AUDIOCODEC_EAC3 ((__u32) 0x00000018)
+#define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_EAC3
/*
* Profile and modes are listed with bit masks. This allows for a
@@ -332,18 +337,30 @@
__u32 bw; /* encoder bandwidth */
__s32 reserved[15];
};
-
+struct snd_dec_dts {
+ __u32 modelIdLength;
+ __u8 *modelId;
+};
+struct snd_dec_ddp {
+ __u32 params_length;
+ __u8 *params;
+ __u32 params_id[18];
+ __u32 params_value[18];
+};
union snd_codec_options {
struct snd_enc_wma wma;
struct snd_enc_vorbis vorbis;
struct snd_enc_real real;
struct snd_enc_flac flac;
struct snd_enc_generic generic;
+ struct snd_dec_dts dts;
+ struct snd_dec_ddp ddp;
};
/** struct snd_codec_desc - description of codec capabilities
* @max_ch: Maximum number of audio channels
- * @sample_rates: Sampling rates in Hz, use SNDRV_PCM_RATE_xxx for this
+ * @sample_rates: Sampling rates in Hz, use values like 48000 for this
+ * @num_sample_rates: Number of valid values in sample_rates array
* @bit_rate: Indexed array containing supported bit rates
* @num_bitrates: Number of valid values in bit_rate array
* @rate_control: value is specified by SND_RATECONTROLMODE defines.
@@ -365,7 +382,8 @@
struct snd_codec_desc {
__u32 max_ch;
- __u32 sample_rates;
+ __u32 sample_rates[MAX_NUM_SAMPLE_RATES];
+ __u32 num_sample_rates;
__u32 bit_rate[MAX_NUM_BITRATES];
__u32 num_bitrates;
__u32 rate_control;
@@ -383,7 +401,8 @@
* @ch_out: Number of output channels. In case of contradiction between
* this field and the channelMode field, the channelMode field
* overrides.
- * @sample_rate: Audio sample rate of input data
+ * @sample_rate: Audio sample rate of input data in Hz, use values like 48000
+ * for this.
* @bit_rate: Bitrate of encoded data. May be ignored by decoders
* @rate_control: Encoding rate control. See SND_RATECONTROLMODE defines.
* Encoders may rely on profiles for quality levels.
@@ -412,6 +431,8 @@
__u32 ch_mode;
__u32 format;
__u32 align;
+ __u32 transcode_dts;
+ struct snd_dec_dts dts;
union snd_codec_options options;
__u32 reserved[3];
};
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc260/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc260/config.xml
index d1d5c71..6edde35 100644
--- a/overlay/frameworks/base/core/res/res/values-mcc310-mnc260/config.xml
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc260/config.xml
@@ -37,6 +37,8 @@
TETHER_DUN_APN. Value is a comma separated series of strings:
"name,apn,proxy,port,username,password,server,mmsc,mmsproxy,mmsport,mcc,mnc,auth,type"
note that empty fields can be ommitted: "name,apn,,,,,,,,,310,260,,DUN" -->
- <string translatable="false" name="config_tether_apndata">T-Mobile Tethering,pcweb.tmobile.com,,,,,,,,,310,260,,DUN</string>
+ <string-array translatable="false" name="config_tether_apndata">
+ <item>T-Mobile Tethering,pcweb.tmobile.com,,,,,,,,,310,260,,DUN</item>
+ </string-array>
</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc530-mnc05/config.xml b/overlay/frameworks/base/core/res/res/values-mcc530-mnc05/config.xml
index 8bfac39..e04b2de 100644
--- a/overlay/frameworks/base/core/res/res/values-mcc530-mnc05/config.xml
+++ b/overlay/frameworks/base/core/res/res/values-mcc530-mnc05/config.xml
@@ -20,6 +20,10 @@
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. -->
<resources>
+ <!-- If this value is true, The mms content-disposition field is supported correctly.
+ If false, Content-disposition fragments are ignored -->
+ <bool name="config_mms_content_disposition_support">false</bool>
+
<!-- MMS user agent prolfile url -->
<string name="config_mms_user_agent_profile_url" translatable="false">http://gsm.lge.com/html/gsm/Nexus5-M6.xml</string>
</resources>
diff --git a/overlay/frameworks/base/packages/SystemUI/res/values-mcc260-mnc02/config.xml b/overlay/frameworks/base/packages/SystemUI/res/values-mcc260-mnc02/config.xml
deleted file mode 100644
index 2c8b820..0000000
--- a/overlay/frameworks/base/packages/SystemUI/res/values-mcc260-mnc02/config.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- These resources are around just to allow their values to be customized
- for different hardware and product builds. -->
-<resources>
- <!-- Should "4G" be shown instead of "LTE" when the network is NETWORK_TYPE_LTE? -->
- <bool name="config_show4GForLTE">true</bool>
-</resources>
-
diff --git a/overlay/frameworks/base/packages/SystemUI/res/values-mcc260-mnc03/config.xml b/overlay/frameworks/base/packages/SystemUI/res/values-mcc260-mnc03/config.xml
deleted file mode 100644
index 2c8b820..0000000
--- a/overlay/frameworks/base/packages/SystemUI/res/values-mcc260-mnc03/config.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- These resources are around just to allow their values to be customized
- for different hardware and product builds. -->
-<resources>
- <!-- Should "4G" be shown instead of "LTE" when the network is NETWORK_TYPE_LTE? -->
- <bool name="config_show4GForLTE">true</bool>
-</resources>
-
diff --git a/overlay/frameworks/base/packages/SystemUI/res/values-mcc262-mnc07/config.xml b/overlay/frameworks/base/packages/SystemUI/res/values-mcc262-mnc07/config.xml
deleted file mode 100644
index 2c8b820..0000000
--- a/overlay/frameworks/base/packages/SystemUI/res/values-mcc262-mnc07/config.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<!-- These resources are around just to allow their values to be customized
- for different hardware and product builds. -->
-<resources>
- <!-- Should "4G" be shown instead of "LTE" when the network is NETWORK_TYPE_LTE? -->
- <bool name="config_show4GForLTE">true</bool>
-</resources>
-
diff --git a/spn-conf.xml b/spn-conf.xml
index fe0b98d..f9f2443 100644
--- a/spn-conf.xml
+++ b/spn-conf.xml
@@ -22,8 +22,6 @@
<spnOverride numeric="40554" spn="airtel"/>
<spnOverride numeric="40555" spn="airtel"/>
<spnOverride numeric="40556" spn="airtel"/>
- <spnOverride numeric="42502" spn="Cellcom"/>
- <spnOverride numeric="42503" spn="Pelephone"/>
<spnOverride numeric="42507" spn="HOT mobile"/>
<spnOverride numeric="42508" spn="Golan Telecom"/>
<spnOverride numeric="42510" spn="Orange-IL"/>