am ef53876e: (-s ours) Reconcile with jb-mr0-release jb-release - do not merge

* commit 'ef53876e81367a2f10946bda35ff0e0f62fd5b56':
  tuna: prebuilt kernel (HSMMC1 suspend fix)
diff --git a/audio/audio_hw.c b/audio/audio_hw.c
index 74f2383..8ae519c 100644
--- a/audio/audio_hw.c
+++ b/audio/audio_hw.c
@@ -1142,7 +1142,7 @@
                 adev->devices &= ~AUDIO_DEVICE_OUT_SPEAKER;
             select_output_device(adev);
             start_call(adev);
-            adev_set_voice_volume(&adev->hw_device, adev->voice_volume);
+            ril_set_call_volume(&adev->ril, SOUND_TYPE_VOICE, adev->voice_volume);
             adev->in_call = 1;
         }
     } else {
@@ -1681,7 +1681,7 @@
     return HDMI_MULTI_PERIOD_SIZE * audio_stream_frame_size((struct audio_stream *)stream);
 }
 
-static uint32_t out_get_channels(const struct audio_stream *stream)
+static audio_channel_mask_t out_get_channels(const struct audio_stream *stream)
 {
     struct tuna_stream_out *out = (struct tuna_stream_out *)stream;
 
@@ -2240,7 +2240,7 @@
                                  popcount(in->main_channels));
 }
 
-static uint32_t in_get_channels(const struct audio_stream *stream)
+static audio_channel_mask_t in_get_channels(const struct audio_stream *stream)
 {
     struct tuna_stream_in *in = (struct tuna_stream_in *)stream;
 
@@ -3408,11 +3408,13 @@
 {
     struct tuna_audio_device *adev = (struct tuna_audio_device *)dev;
 
+    pthread_mutex_lock(&adev->lock);
     adev->voice_volume = volume;
 
     if (adev->mode == AUDIO_MODE_IN_CALL)
         ril_set_call_volume(&adev->ril, SOUND_TYPE_VOICE, volume);
 
+    pthread_mutex_unlock(&adev->lock);
     return 0;
 }
 
diff --git a/bthid.ko b/bthid.ko
new file mode 100644
index 0000000..a2d82a1
--- /dev/null
+++ b/bthid.ko
Binary files differ
diff --git a/device.mk b/device.mk
index 1e3c028..3c343a4 100644
--- a/device.mk
+++ b/device.mk
@@ -79,6 +79,9 @@
 PRODUCT_COPY_FILES += \
 	system/bluetooth/data/main.le.conf:system/etc/bluetooth/main.conf
 
+PRODUCT_COPY_FILES += \
+        device/samsung/tuna/bthid.ko:system/lib/modules/bthid.ko
+
 # Wifi
 ifneq ($(TARGET_PREBUILT_WIFI_MODULE),)
 PRODUCT_COPY_FILES += \
diff --git a/dumpstate/dumpstate.c b/dumpstate/dumpstate.c
index 2858b2c..61602e4 100644
--- a/dumpstate/dumpstate.c
+++ b/dumpstate/dumpstate.c
@@ -38,4 +38,5 @@
     dump_file("fsa9480 device_type", "/sys/bus/i2c/drivers/fsa9480/4-0025/device_type");
     dump_file("fsa9480 control", "/sys/bus/i2c/drivers/fsa9480/4-0025/control");
     dump_file("tiler 2x1 map", "/d/tiler/map/2x1");
+    dump_file("wlan", "/sys/module/bcmdhd/parameters/info_string");
 };
diff --git a/init.tuna.rc b/init.tuna.rc
index 070ab1d..bf91ed4 100755
--- a/init.tuna.rc
+++ b/init.tuna.rc
@@ -1,17 +1,21 @@
 import init.tuna.usb.rc
 
-on early-init
-	export EXTERNAL_STORAGE /storage/sdcard0
-	mkdir /storage 0050 system sdcard_r
-	mkdir /storage/sdcard0 0000 system system
-	# for backwards compatibility
-	symlink /storage/sdcard0 /sdcard
-	symlink /storage/sdcard0 /mnt/sdcard
+on init
+    mkdir /mnt/secure/sdcard0 0700 root root
+
+    export EXTERNAL_STORAGE /storage/sdcard0
+    mkdir /storage 0711 root root
+    mkdir /storage/sdcard0 0000 root root
+    symlink /storage/sdcard0 /sdcard
+    symlink /storage/sdcard0 /mnt/sdcard
+
+    # Save bugreports as owner
+    export BUGREPORT_WRITE_PATH /mnt/secure/sdcard0/0
+    export BUGREPORT_READ_PATH /storage/sdcard0
 
 on post-fs-data
-	# we will remap this as /storage/sdcard0 with the sdcard fuse tool
-	mkdir /data/media 0770 media_rw media_rw
-	chown media_rw media_rw /data/media
+    mkdir /data/media 0770 media_rw media_rw
+
 	mkdir /data/misc/wifi 0770 wifi wifi
 	mkdir /data/misc/wifi/sockets 0770 wifi wifi
 	mkdir /data/misc/dhcp 0770 dhcp dhcp
@@ -46,6 +50,11 @@
 	write /sys/bus/usb/devices/usb1/power/autosuspend_delay_ms 0
 	write /sys/bus/usb/devices/usb2/power/autosuspend_delay_ms 0
 
+# Start kernel driver (for BTHID)
+        insmod /system/lib/modules/bthid.ko
+        chmod 0660 /dev/bthid
+	 chown bluetooth bluetooth /dev/bthid
+
 on fs
 	mkdir /factory 0775 radio radio
 	mount_all /fstab.tuna
@@ -157,11 +166,9 @@
         group drmrpc
         oneshot
 
-# create virtual SD card at /storage/sdcard0, based on the /data/media directory
-# daemon will drop to user/group system/media_rw after initializing
-# underlying files in /data/media will be created with user and group media_rw (1023)
-service sdcard /system/bin/sdcard /data/media 1023 1023
-	class late_start
+# virtual sdcard daemon running as media_rw (1023)
+service sdcard /system/bin/sdcard /data/media /mnt/secure/sdcard0 1023 1023
+    class late_start
 
 service p2p_supplicant /system/bin/wpa_supplicant \
 	-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf -N \
diff --git a/kernel b/kernel
index a08cf49..94d37f0 100644
--- a/kernel
+++ b/kernel
Binary files differ
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index f85627b..2a08cac 100644
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -213,7 +213,7 @@
          bluetooth interfaces.  If the device doesn't want to support tethering over bluetooth this
          should be empty. -->
     <string-array translatable="false" name="config_tether_bluetooth_regexs">
-        <item>"bnep\\d"</item>
+        <item>"bt-pan"</item>
     </string-array>
 
     <!-- Array of ConnectivityManager.TYPE_xxxx values allowable for tethering -->
@@ -234,11 +234,9 @@
 
     <bool name="config_ui_enableFadingMarquee">false</bool>
 
-    <!-- Package name providing network location support. -->
-    <string name="config_networkLocationProviderPackageName" translatable="false">com.google.android.location</string>
-
-    <!-- Package name providing geocoder API support. -->
-    <string name="config_geocodeProviderPackageName" translatable="false">com.google.android.location</string>
+    <string-array name="config_overlay_locationProviderPackageNames" translatable="false">
+        <item>com.google.android.location</item>
+    </string-array>
 
     <!-- Is the notification LED intrusive? Used to decide if there should be a disable option -->
     <bool name="config_intrusiveNotificationLed">true</bool>
diff --git a/overlay/packages/apps/Settings/res/values-cs/arrays.xml b/overlay/packages/apps/Settings/res/values-cs/arrays.xml
index 266d10e..265da14 100644
--- a/overlay/packages/apps/Settings/res/values-cs/arrays.xml
+++ b/overlay/packages/apps/Settings/res/values-cs/arrays.xml
@@ -21,11 +21,11 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
   <string-array name="screen_timeout_entries">
-    <item msgid="5314770629356662739">"15 s."</item>
-    <item msgid="8672738773876256432">"30 s."</item>
-    <item msgid="465923292941002466">"1 min."</item>
-    <item msgid="7955177189296850016">"2 min."</item>
-    <item msgid="1244255986255344525">"5 min."</item>
-    <item msgid="294890536998091748">"10 min."</item>
+    <item msgid="5314770629356662739">"15 sekund"</item>
+    <item msgid="8672738773876256432">"30 sekund"</item>
+    <item msgid="465923292941002466">"1 minuta"</item>
+    <item msgid="7955177189296850016">"2 minuty"</item>
+    <item msgid="1244255986255344525">"5 minut"</item>
+    <item msgid="294890536998091748">"10 minut"</item>
   </string-array>
 </resources>
diff --git a/overlay/packages/apps/Settings/res/values-fa/arrays.xml b/overlay/packages/apps/Settings/res/values-fa/arrays.xml
index bf95ca8..71915a9 100644
--- a/overlay/packages/apps/Settings/res/values-fa/arrays.xml
+++ b/overlay/packages/apps/Settings/res/values-fa/arrays.xml
@@ -21,11 +21,11 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
   <string-array name="screen_timeout_entries">
-    <item msgid="5314770629356662739">"15 ثانیه"</item>
-    <item msgid="8672738773876256432">"30 ثانیه"</item>
-    <item msgid="465923292941002466">"1 دقیقه"</item>
-    <item msgid="7955177189296850016">"2 دقیقه"</item>
-    <item msgid="1244255986255344525">"5 دقیقه"</item>
-    <item msgid="294890536998091748">"10 دقیقه"</item>
+    <item msgid="5314770629356662739">"۱۵ ثانیه"</item>
+    <item msgid="8672738773876256432">"۳۰ ثانیه"</item>
+    <item msgid="465923292941002466">"۱ دقیقه"</item>
+    <item msgid="7955177189296850016">"۲ دقیقه"</item>
+    <item msgid="1244255986255344525">"۵ دقیقه"</item>
+    <item msgid="294890536998091748">"۱۰ دقیقه"</item>
   </string-array>
 </resources>
diff --git a/overlay/packages/apps/Settings/res/values-nb/arrays.xml b/overlay/packages/apps/Settings/res/values-nb/arrays.xml
index c5db781..a365905 100644
--- a/overlay/packages/apps/Settings/res/values-nb/arrays.xml
+++ b/overlay/packages/apps/Settings/res/values-nb/arrays.xml
@@ -23,9 +23,9 @@
   <string-array name="screen_timeout_entries">
     <item msgid="5314770629356662739">"15 sekunder"</item>
     <item msgid="8672738773876256432">"30 sekunder"</item>
-    <item msgid="465923292941002466">"Ett minutt"</item>
-    <item msgid="7955177189296850016">"To minutter"</item>
-    <item msgid="1244255986255344525">"Fem minutter"</item>
-    <item msgid="294890536998091748">"Ti minutter"</item>
+    <item msgid="465923292941002466">"1 minutt"</item>
+    <item msgid="7955177189296850016">"2 minutter"</item>
+    <item msgid="1244255986255344525">"5 minutter"</item>
+    <item msgid="294890536998091748">"10 minutter"</item>
   </string-array>
 </resources>
diff --git a/releasetools.py b/releasetools.py
index 056c7dc..b9dabdb 100644
--- a/releasetools.py
+++ b/releasetools.py
@@ -102,7 +102,7 @@
     if tf.sha1 == sf.sha1:
       print "radio image unchanged; skipping"
     else:
-      diff = common.Difference(tf, sf)
+      diff = common.Difference(tf, sf, diff_program="bsdiff")
       common.ComputeDifferences([diff])
       _, _, d = diff.GetPatch()
       if d is None or len(d) > tf.size * common.OPTIONS.patch_threshold: