diff --git a/boot/fixup.dat b/boot/fixup.dat
index fd4d0f9c79fe..a46f22a0a114 100644
Binary files a/boot/fixup.dat and b/boot/fixup.dat differ
diff --git a/boot/fixup_cd.dat b/boot/fixup_cd.dat
index a30899bf3981..1dbbc124adb4 100644
Binary files a/boot/fixup_cd.dat and b/boot/fixup_cd.dat differ
diff --git a/boot/fixup_db.dat b/boot/fixup_db.dat
index 7f015296ec93..86bad57b7281 100644
Binary files a/boot/fixup_db.dat and b/boot/fixup_db.dat differ
diff --git a/boot/fixup_x.dat b/boot/fixup_x.dat
index be92e7f710d2..8c576d171875 100644
Binary files a/boot/fixup_x.dat and b/boot/fixup_x.dat differ
diff --git a/boot/kernel.img b/boot/kernel.img
index 2d10f465bbdb..3981878f07c5 100644
Binary files a/boot/kernel.img and b/boot/kernel.img differ
diff --git a/boot/kernel7.img b/boot/kernel7.img
index 74f90fa919da..a980d4fe901d 100644
Binary files a/boot/kernel7.img and b/boot/kernel7.img differ
diff --git a/boot/overlays/README b/boot/overlays/README
index 42a58764284a..db4a77b2a5e3 100644
--- a/boot/overlays/README
+++ b/boot/overlays/README
@@ -284,6 +284,17 @@ Params: speed Display SPI bus speed
ledgpio GPIO used to control backlight
+Name: i2c-gpio
+Info: Adds support for software i2c controller on gpio pins
+Load: dtoverlay=i2c-gpio,
+Params: i2c_gpio_sda GPIO used for I2C data (default "23")
+
+ i2c_gpio_scl GPIO used for I2C clock (default "24")
+
+ i2c_gpio_delay_us Clock delay in microseconds
+ (default "2" = ~100kHz)
+
+
Name: i2c-rtc
Info: Adds support for a number of I2C Real Time Clock devices
Load: dtoverlay=i2c-rtc,
@@ -425,6 +436,28 @@ Params: speed Display SPI bus speed
xohms Touchpanel sensitivity (X-plate resistance)
+Name: pitft28-capacitive
+Info: Adafruit PiTFT 2.8" capacitive touch screen
+Load: dtoverlay=pitft28-capacitive,=
+Params: speed Display SPI bus speed
+
+ rotate Display rotation {0,90,180,270}
+
+ fps Delay between frame updates
+
+ debug Debug output level {0-7}
+
+ touch-sizex Touchscreen size x (default 240)
+
+ touch-sizey Touchscreen size y (default 320)
+
+ touch-invx Touchscreen inverted x axis
+
+ touch-invy Touchscreen inverted y axis
+
+ touch-swapxy Touchscreen swapped x y axis
+
+
Name: pitft28-resistive
Info: Adafruit PiTFT 2.8" resistive touch screen
Load: dtoverlay=pitft28-resistive,=
diff --git a/boot/overlays/i2c-gpio-overlay.dtb b/boot/overlays/i2c-gpio-overlay.dtb
new file mode 100644
index 000000000000..56a013619812
Binary files /dev/null and b/boot/overlays/i2c-gpio-overlay.dtb differ
diff --git a/boot/overlays/pitft28-capacitive-overlay.dtb b/boot/overlays/pitft28-capacitive-overlay.dtb
new file mode 100644
index 000000000000..3b7a5c154342
Binary files /dev/null and b/boot/overlays/pitft28-capacitive-overlay.dtb differ
diff --git a/boot/start.elf b/boot/start.elf
index 8f184093509a..2ccc517dc695 100644
Binary files a/boot/start.elf and b/boot/start.elf differ
diff --git a/boot/start_cd.elf b/boot/start_cd.elf
index e723b1763beb..36a69ed40c60 100644
Binary files a/boot/start_cd.elf and b/boot/start_cd.elf differ
diff --git a/boot/start_db.elf b/boot/start_db.elf
index 3d9e1b2cfe54..1c0393420dcb 100644
Binary files a/boot/start_db.elf and b/boot/start_db.elf differ
diff --git a/boot/start_x.elf b/boot/start_x.elf
index 58dd83696989..b7227a05c2a7 100644
Binary files a/boot/start_x.elf and b/boot/start_x.elf differ
diff --git a/extra/Module.symvers b/extra/Module.symvers
index e8ee40a05bb2..e3f8df7c5934 100644
--- a/extra/Module.symvers
+++ b/extra/Module.symvers
@@ -517,7 +517,7 @@
0x5fc4b749 rhashtable_destroy vmlinux EXPORT_SYMBOL_GPL
0x149c7752 param_ops_uint vmlinux EXPORT_SYMBOL
0xb674df57 udp_push_pending_frames vmlinux EXPORT_SYMBOL
-0x6a246690 hidinput_connect vmlinux EXPORT_SYMBOL_GPL
+0x00000000 hidinput_connect vmlinux EXPORT_SYMBOL_GPL
0x30966ca8 nfs_access_zap_cache vmlinux EXPORT_SYMBOL_GPL
0x68012ace __platform_driver_probe vmlinux EXPORT_SYMBOL_GPL
0xd7442057 bt_info net/bluetooth/bluetooth EXPORT_SYMBOL
@@ -974,7 +974,7 @@
0xf9a482f9 msleep vmlinux EXPORT_SYMBOL
0xf63688bc uart_get_divisor vmlinux EXPORT_SYMBOL
0x8064ca11 pinctrl_utils_add_map_mux vmlinux EXPORT_SYMBOL_GPL
-0xa21acf07 hidinput_calc_abs_res vmlinux EXPORT_SYMBOL_GPL
+0x00000000 hidinput_calc_abs_res vmlinux EXPORT_SYMBOL_GPL
0x6fe3d8cf ktime_add_safe vmlinux EXPORT_SYMBOL_GPL
0xb3d6f131 v4l2_event_subdev_unsubscribe drivers/media/v4l2-core/videodev EXPORT_SYMBOL_GPL
0x33f93f07 param_set_ullong vmlinux EXPORT_SYMBOL
@@ -2062,7 +2062,7 @@
0xcd63cd50 usb_serial_suspend drivers/usb/serial/usbserial EXPORT_SYMBOL
0xcfce8937 videobuf_queue_vmalloc_init drivers/media/v4l2-core/videobuf-vmalloc EXPORT_SYMBOL_GPL
0x2b90cdaa mempool_create vmlinux EXPORT_SYMBOL
-0x86d670f8 hidinput_find_field vmlinux EXPORT_SYMBOL_GPL
+0x00000000 hidinput_find_field vmlinux EXPORT_SYMBOL_GPL
0x57231f45 ring_buffer_record_on vmlinux EXPORT_SYMBOL_GPL
0xb0db3f94 scsi_remove_target vmlinux EXPORT_SYMBOL
0x6ab4ec85 page_cache_async_readahead vmlinux EXPORT_SYMBOL_GPL
@@ -2606,7 +2606,7 @@
0xce45a6f1 raid6_gfexi lib/raid6/raid6_pq EXPORT_SYMBOL
0xa916750c qtree_entry_unused fs/quota/quota_tree EXPORT_SYMBOL
0x5c8bde7a pinctrl_utils_add_map_configs vmlinux EXPORT_SYMBOL_GPL
-0x2bf978c9 hidinput_disconnect vmlinux EXPORT_SYMBOL_GPL
+0x00000000 hidinput_disconnect vmlinux EXPORT_SYMBOL_GPL
0x9ade4f3b __sb_start_write vmlinux EXPORT_SYMBOL
0x386b89ba cfg80211_cqm_txe_notify net/wireless/cfg80211 EXPORT_SYMBOL
0xcc1fb551 baswap net/bluetooth/bluetooth EXPORT_SYMBOL
@@ -7594,7 +7594,7 @@
0xb077e70a clk_unprepare vmlinux EXPORT_SYMBOL_GPL
0x347682ce snmp_fold_field64 vmlinux EXPORT_SYMBOL_GPL
0x7eafd3e6 spi_register_master vmlinux EXPORT_SYMBOL_GPL
-0x563a5f99 hidinput_get_led_field vmlinux EXPORT_SYMBOL_GPL
+0x00000000 hidinput_get_led_field vmlinux EXPORT_SYMBOL_GPL
0x87925ca6 kstrtoint_from_user vmlinux EXPORT_SYMBOL
0x149b0a72 percpu_ida_for_each_free vmlinux EXPORT_SYMBOL_GPL
0x44d17954 sdio_f0_readb vmlinux EXPORT_SYMBOL_GPL
@@ -8312,7 +8312,7 @@
0x6f952308 skb_dequeue_tail vmlinux EXPORT_SYMBOL
0x91014e00 nfs_do_submount vmlinux EXPORT_SYMBOL_GPL
0xd9aa5963 reservation_object_test_signaled_rcu vmlinux EXPORT_SYMBOL_GPL
-0xafaca701 hidinput_count_leds vmlinux EXPORT_SYMBOL_GPL
+0x00000000 hidinput_count_leds vmlinux EXPORT_SYMBOL_GPL
0x630671aa gro_find_complete_by_type vmlinux EXPORT_SYMBOL
0x8f7de48c input_ff_erase vmlinux EXPORT_SYMBOL_GPL
0x18c7cc6d pwm_config vmlinux EXPORT_SYMBOL_GPL
@@ -9167,7 +9167,7 @@
0x94e1afe8 __getblk_gfp vmlinux EXPORT_SYMBOL
0x89f7c91e inet_sendmsg vmlinux EXPORT_SYMBOL
0x8628fe6c __tcf_hash_release vmlinux EXPORT_SYMBOL
-0x37fe36f3 hidinput_report_event vmlinux EXPORT_SYMBOL_GPL
+0x00000000 hidinput_report_event vmlinux EXPORT_SYMBOL_GPL
0x8a991884 crypto_alg_sem vmlinux EXPORT_SYMBOL_GPL
0x2e6bb3c7 elevator_alloc vmlinux EXPORT_SYMBOL
0x37e0cee8 bcm2708_i2s_set_gpio sound/soc/bcm/snd-soc-bcm2708-i2s EXPORT_SYMBOL
diff --git a/extra/System.map b/extra/System.map
index 9710ca4eedae..c55acdf139ee 100644
--- a/extra/System.map
+++ b/extra/System.map
@@ -49152,7 +49152,7 @@ c081902c T __initramfs_start
c081902c t __irf_start
c081902c T __security_initcall_end
c081902c T __security_initcall_start
-c08190b2 t __irf_end
+c08190b1 t __irf_end
c08190b8 T __initramfs_size
c081a000 D __data_loc
c081a000 D __init_end
diff --git a/extra/System7.map b/extra/System7.map
index 76c206dec2dc..6a5c00fa4d5a 100644
--- a/extra/System7.map
+++ b/extra/System7.map
@@ -50028,7 +50028,7 @@
807d6438 t __irf_start
807d6438 T __security_initcall_end
807d6438 T __security_initcall_start
-807d64be t __irf_end
+807d64bd t __irf_end
807d64c0 T __initramfs_size
807d7000 D __per_cpu_load
807d7000 D __per_cpu_start
diff --git a/extra/git_hash b/extra/git_hash
index f0a34697134e..1cab85d5bbe4 100644
--- a/extra/git_hash
+++ b/extra/git_hash
@@ -1 +1 @@
-3782f2ad42c08f4d32f64138f8be7341afc380f5
+0aa6fa69a7874060590c8cb4fabdb9a222501a08
diff --git a/extra/uname_string b/extra/uname_string
index af6dc8206750..49d2f99a553d 100644
--- a/extra/uname_string
+++ b/extra/uname_string
@@ -1 +1 @@
-Linux version 4.1.12+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #824 PREEMPT Wed Oct 28 16:39:49 GMT 2015
+Linux version 4.1.12+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #825 PREEMPT Fri Nov 6 17:53:21 GMT 2015
diff --git a/extra/uname_string7 b/extra/uname_string7
index fbae5cec355c..1bfe24d98b64 100644
--- a/extra/uname_string7
+++ b/extra/uname_string7
@@ -1 +1 @@
-Linux version 4.1.12-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #824 SMP PREEMPT Wed Oct 28 16:46:35 GMT 2015
+Linux version 4.1.12-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #825 SMP PREEMPT Fri Nov 6 18:36:38 GMT 2015
diff --git a/hardfp/opt/vc/bin/containers_check_frame_int b/hardfp/opt/vc/bin/containers_check_frame_int
index 6fa42e3dada2..3e66fb9d514f 100755
Binary files a/hardfp/opt/vc/bin/containers_check_frame_int and b/hardfp/opt/vc/bin/containers_check_frame_int differ
diff --git a/hardfp/opt/vc/bin/containers_datagram_receiver b/hardfp/opt/vc/bin/containers_datagram_receiver
index 122f66aebef5..96b2cc970e52 100755
Binary files a/hardfp/opt/vc/bin/containers_datagram_receiver and b/hardfp/opt/vc/bin/containers_datagram_receiver differ
diff --git a/hardfp/opt/vc/bin/containers_datagram_sender b/hardfp/opt/vc/bin/containers_datagram_sender
index 34c1b8d46b16..ab9592c55423 100755
Binary files a/hardfp/opt/vc/bin/containers_datagram_sender and b/hardfp/opt/vc/bin/containers_datagram_sender differ
diff --git a/hardfp/opt/vc/bin/containers_dump_pktfile b/hardfp/opt/vc/bin/containers_dump_pktfile
index c1e5a22a81f1..5533bb8f45fa 100755
Binary files a/hardfp/opt/vc/bin/containers_dump_pktfile and b/hardfp/opt/vc/bin/containers_dump_pktfile differ
diff --git a/hardfp/opt/vc/bin/containers_rtp_decoder b/hardfp/opt/vc/bin/containers_rtp_decoder
index c14b21050b97..7ae1464b9dac 100755
Binary files a/hardfp/opt/vc/bin/containers_rtp_decoder and b/hardfp/opt/vc/bin/containers_rtp_decoder differ
diff --git a/hardfp/opt/vc/bin/containers_stream_client b/hardfp/opt/vc/bin/containers_stream_client
index c5d8609e03da..d50695fade1c 100755
Binary files a/hardfp/opt/vc/bin/containers_stream_client and b/hardfp/opt/vc/bin/containers_stream_client differ
diff --git a/hardfp/opt/vc/bin/containers_stream_server b/hardfp/opt/vc/bin/containers_stream_server
index 3a2d14d377b4..1680490f4956 100755
Binary files a/hardfp/opt/vc/bin/containers_stream_server and b/hardfp/opt/vc/bin/containers_stream_server differ
diff --git a/hardfp/opt/vc/bin/containers_test b/hardfp/opt/vc/bin/containers_test
index 8b2e741ed2b7..fbf52d83da34 100755
Binary files a/hardfp/opt/vc/bin/containers_test and b/hardfp/opt/vc/bin/containers_test differ
diff --git a/hardfp/opt/vc/bin/containers_test_bits b/hardfp/opt/vc/bin/containers_test_bits
index 82f8a905ce05..7f7a38cd3910 100755
Binary files a/hardfp/opt/vc/bin/containers_test_bits and b/hardfp/opt/vc/bin/containers_test_bits differ
diff --git a/hardfp/opt/vc/bin/containers_test_uri b/hardfp/opt/vc/bin/containers_test_uri
index 78b70236ea25..5ed3de64e80e 100755
Binary files a/hardfp/opt/vc/bin/containers_test_uri and b/hardfp/opt/vc/bin/containers_test_uri differ
diff --git a/hardfp/opt/vc/bin/containers_uri_pipe b/hardfp/opt/vc/bin/containers_uri_pipe
index b02d41bf16f4..8959b028cb04 100755
Binary files a/hardfp/opt/vc/bin/containers_uri_pipe and b/hardfp/opt/vc/bin/containers_uri_pipe differ
diff --git a/hardfp/opt/vc/bin/mmal_vc_diag b/hardfp/opt/vc/bin/mmal_vc_diag
index 55a8ddc3ae0f..9ff541a472d7 100755
Binary files a/hardfp/opt/vc/bin/mmal_vc_diag and b/hardfp/opt/vc/bin/mmal_vc_diag differ
diff --git a/hardfp/opt/vc/bin/raspistill b/hardfp/opt/vc/bin/raspistill
index a7145e098dbb..d1c50412201d 100755
Binary files a/hardfp/opt/vc/bin/raspistill and b/hardfp/opt/vc/bin/raspistill differ
diff --git a/hardfp/opt/vc/bin/raspivid b/hardfp/opt/vc/bin/raspivid
index 673927642b3a..e6ad9efde567 100755
Binary files a/hardfp/opt/vc/bin/raspivid and b/hardfp/opt/vc/bin/raspivid differ
diff --git a/hardfp/opt/vc/bin/raspividyuv b/hardfp/opt/vc/bin/raspividyuv
index ebf2215b3702..debeb43ce334 100755
Binary files a/hardfp/opt/vc/bin/raspividyuv and b/hardfp/opt/vc/bin/raspividyuv differ
diff --git a/hardfp/opt/vc/bin/raspiyuv b/hardfp/opt/vc/bin/raspiyuv
index 49f06feb2ef5..c6ff1d827119 100755
Binary files a/hardfp/opt/vc/bin/raspiyuv and b/hardfp/opt/vc/bin/raspiyuv differ
diff --git a/hardfp/opt/vc/bin/tvservice b/hardfp/opt/vc/bin/tvservice
index b791255d631b..adf501c0a57c 100755
Binary files a/hardfp/opt/vc/bin/tvservice and b/hardfp/opt/vc/bin/tvservice differ
diff --git a/hardfp/opt/vc/bin/vcgencmd b/hardfp/opt/vc/bin/vcgencmd
index 56db280da1cd..9201da64f922 100755
Binary files a/hardfp/opt/vc/bin/vcgencmd and b/hardfp/opt/vc/bin/vcgencmd differ
diff --git a/hardfp/opt/vc/bin/vchiq_test b/hardfp/opt/vc/bin/vchiq_test
index 313f04ce524c..58532a00b5df 100755
Binary files a/hardfp/opt/vc/bin/vchiq_test and b/hardfp/opt/vc/bin/vchiq_test differ
diff --git a/hardfp/opt/vc/bin/vcsmem b/hardfp/opt/vc/bin/vcsmem
index ce3919005573..6a9c91285794 100755
Binary files a/hardfp/opt/vc/bin/vcsmem and b/hardfp/opt/vc/bin/vcsmem differ
diff --git a/hardfp/opt/vc/include/interface/vmcs_host/vc_vchi_audioserv_defs.h b/hardfp/opt/vc/include/interface/vmcs_host/vc_vchi_audioserv_defs.h
index 47fd0f5e1994..21b5d64f3cd7 100644
--- a/hardfp/opt/vc/include/interface/vmcs_host/vc_vchi_audioserv_defs.h
+++ b/hardfp/opt/vc/include/interface/vmcs_host/vc_vchi_audioserv_defs.h
@@ -29,7 +29,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define _VC_AUDIO_DEFS_H_
#define VC_AUDIOSERV_MIN_VER 1
-#define VC_AUDIOSERV_VER 2
+#define VC_AUDIOSERV_VER 3
// FourCC code used for VCHI connection
#define VC_AUDIO_SERVER_NAME MAKE_FOURCC("AUDS")
@@ -50,6 +50,7 @@ typedef enum
VC_AUDIO_MSG_TYPE_START, // start output (i.e. resume)
VC_AUDIO_MSG_TYPE_STOP, // stop output (i.e. pause)
VC_AUDIO_MSG_TYPE_WRITE, // write samples
+ VC_AUDIO_MSG_TYPE_LATENCY, // request latency in cycles
VC_AUDIO_MSG_TYPE_MAX
} VC_AUDIO_MSG_TYPE;
@@ -73,6 +74,7 @@ typedef struct
uint32_t channels;
uint32_t samplerate;
uint32_t bps;
+ uint32_t channelmap;
} VC_AUDIO_CONFIG_T;
@@ -108,6 +110,12 @@ typedef struct
uint32_t draining;
} VC_AUDIO_STOP_T;
+// audio
+typedef struct
+{
+ uint32_t dummy;
+
+} VC_AUDIO_LATENCY_T;
// configure the write audio samples
typedef struct
@@ -147,6 +155,7 @@ typedef struct
VC_AUDIO_START_T start;
VC_AUDIO_STOP_T stop;
VC_AUDIO_WRITE_T write;
+ VC_AUDIO_LATENCY_T latency;
VC_AUDIO_RESULT_T result;
VC_AUDIO_COMPLETE_T complete;
} u;
diff --git a/hardfp/opt/vc/lib/libEGL.so b/hardfp/opt/vc/lib/libEGL.so
index 59b28b31bc83..9dcbd03f4a51 100644
Binary files a/hardfp/opt/vc/lib/libEGL.so and b/hardfp/opt/vc/lib/libEGL.so differ
diff --git a/hardfp/opt/vc/lib/libEGL_static.a b/hardfp/opt/vc/lib/libEGL_static.a
index a621501acc84..a02cd3b167ba 100644
Binary files a/hardfp/opt/vc/lib/libEGL_static.a and b/hardfp/opt/vc/lib/libEGL_static.a differ
diff --git a/hardfp/opt/vc/lib/libGLESv2.so b/hardfp/opt/vc/lib/libGLESv2.so
index f2f1256d7168..49ccf04ad473 100644
Binary files a/hardfp/opt/vc/lib/libGLESv2.so and b/hardfp/opt/vc/lib/libGLESv2.so differ
diff --git a/hardfp/opt/vc/lib/libGLESv2_static.a b/hardfp/opt/vc/lib/libGLESv2_static.a
index abd2e08248fe..3dd7b7d69f4e 100644
Binary files a/hardfp/opt/vc/lib/libGLESv2_static.a and b/hardfp/opt/vc/lib/libGLESv2_static.a differ
diff --git a/hardfp/opt/vc/lib/libbcm_host.so b/hardfp/opt/vc/lib/libbcm_host.so
index 0ce4060de332..81acd618a25d 100644
Binary files a/hardfp/opt/vc/lib/libbcm_host.so and b/hardfp/opt/vc/lib/libbcm_host.so differ
diff --git a/hardfp/opt/vc/lib/libcontainers.so b/hardfp/opt/vc/lib/libcontainers.so
index 96ab3c45f892..e62133879895 100644
Binary files a/hardfp/opt/vc/lib/libcontainers.so and b/hardfp/opt/vc/lib/libcontainers.so differ
diff --git a/hardfp/opt/vc/lib/libdebug_sym_static.a b/hardfp/opt/vc/lib/libdebug_sym_static.a
index 10625ad6d029..e506ea1c130a 100644
Binary files a/hardfp/opt/vc/lib/libdebug_sym_static.a and b/hardfp/opt/vc/lib/libdebug_sym_static.a differ
diff --git a/hardfp/opt/vc/lib/libkhrn_client.a b/hardfp/opt/vc/lib/libkhrn_client.a
index b87db55de67a..7c066489008c 100644
Binary files a/hardfp/opt/vc/lib/libkhrn_client.a and b/hardfp/opt/vc/lib/libkhrn_client.a differ
diff --git a/hardfp/opt/vc/lib/libkhrn_static.a b/hardfp/opt/vc/lib/libkhrn_static.a
index 74710ed61696..9182c1c9379e 100644
Binary files a/hardfp/opt/vc/lib/libkhrn_static.a and b/hardfp/opt/vc/lib/libkhrn_static.a differ
diff --git a/hardfp/opt/vc/lib/libmmal.so b/hardfp/opt/vc/lib/libmmal.so
index 21a888dd4c99..7ccaae8e2d16 100644
Binary files a/hardfp/opt/vc/lib/libmmal.so and b/hardfp/opt/vc/lib/libmmal.so differ
diff --git a/hardfp/opt/vc/lib/libmmal_vc_client.so b/hardfp/opt/vc/lib/libmmal_vc_client.so
index 85b269ddbd45..fe63ce2f0bf9 100644
Binary files a/hardfp/opt/vc/lib/libmmal_vc_client.so and b/hardfp/opt/vc/lib/libmmal_vc_client.so differ
diff --git a/hardfp/opt/vc/lib/libopenmaxil.so b/hardfp/opt/vc/lib/libopenmaxil.so
index 77fa767cea49..46da0c873324 100644
Binary files a/hardfp/opt/vc/lib/libopenmaxil.so and b/hardfp/opt/vc/lib/libopenmaxil.so differ
diff --git a/hardfp/opt/vc/lib/libvcfiled_check.a b/hardfp/opt/vc/lib/libvcfiled_check.a
index fa0ec19ee858..164bc55308b5 100644
Binary files a/hardfp/opt/vc/lib/libvcfiled_check.a and b/hardfp/opt/vc/lib/libvcfiled_check.a differ
diff --git a/hardfp/opt/vc/lib/libvchiq_arm.so b/hardfp/opt/vc/lib/libvchiq_arm.so
index 7fc2a4b99557..49e67ef343b0 100644
Binary files a/hardfp/opt/vc/lib/libvchiq_arm.so and b/hardfp/opt/vc/lib/libvchiq_arm.so differ
diff --git a/hardfp/opt/vc/lib/libvchostif.a b/hardfp/opt/vc/lib/libvchostif.a
index 71f09b5606f5..a75330a3b515 100644
Binary files a/hardfp/opt/vc/lib/libvchostif.a and b/hardfp/opt/vc/lib/libvchostif.a differ
diff --git a/hardfp/opt/vc/lib/libvcilcs.a b/hardfp/opt/vc/lib/libvcilcs.a
index bdf76d0edd65..124de9687c0e 100644
Binary files a/hardfp/opt/vc/lib/libvcilcs.a and b/hardfp/opt/vc/lib/libvcilcs.a differ
diff --git a/hardfp/opt/vc/lib/libvcos.so b/hardfp/opt/vc/lib/libvcos.so
index f58d75c5af5a..2f0a9606fb04 100644
Binary files a/hardfp/opt/vc/lib/libvcos.so and b/hardfp/opt/vc/lib/libvcos.so differ
diff --git a/hardfp/opt/vc/lib/libvmcs_rpc_client.a b/hardfp/opt/vc/lib/libvmcs_rpc_client.a
index e9a42b007cb3..3cc6d4bc0274 100644
Binary files a/hardfp/opt/vc/lib/libvmcs_rpc_client.a and b/hardfp/opt/vc/lib/libvmcs_rpc_client.a differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_asf.so b/hardfp/opt/vc/lib/plugins/reader_asf.so
index 1b9316e58b0b..2861530a307f 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_asf.so and b/hardfp/opt/vc/lib/plugins/reader_asf.so differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_avi.so b/hardfp/opt/vc/lib/plugins/reader_avi.so
index 02f982a7d22b..81f49046a77e 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_avi.so and b/hardfp/opt/vc/lib/plugins/reader_avi.so differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_binary.so b/hardfp/opt/vc/lib/plugins/reader_binary.so
index 66ccf043130c..64b40b8b9427 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_binary.so and b/hardfp/opt/vc/lib/plugins/reader_binary.so differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_flv.so b/hardfp/opt/vc/lib/plugins/reader_flv.so
index d06a1806d644..3488cefc0dd6 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_flv.so and b/hardfp/opt/vc/lib/plugins/reader_flv.so differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_metadata_id3.so b/hardfp/opt/vc/lib/plugins/reader_metadata_id3.so
index 9b415a7167a0..b28ab0de5fe9 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_metadata_id3.so and b/hardfp/opt/vc/lib/plugins/reader_metadata_id3.so differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_mkv.so b/hardfp/opt/vc/lib/plugins/reader_mkv.so
index ac9dda995ede..9e9afa6f734e 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_mkv.so and b/hardfp/opt/vc/lib/plugins/reader_mkv.so differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_mp4.so b/hardfp/opt/vc/lib/plugins/reader_mp4.so
index a6e51ff1283c..805c656755e7 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_mp4.so and b/hardfp/opt/vc/lib/plugins/reader_mp4.so differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_mpga.so b/hardfp/opt/vc/lib/plugins/reader_mpga.so
index 4e0c4a4bce55..24b427e3c301 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_mpga.so and b/hardfp/opt/vc/lib/plugins/reader_mpga.so differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_ps.so b/hardfp/opt/vc/lib/plugins/reader_ps.so
index e112c7135036..7c399f618d06 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_ps.so and b/hardfp/opt/vc/lib/plugins/reader_ps.so differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_qsynth.so b/hardfp/opt/vc/lib/plugins/reader_qsynth.so
index ae370f9abc37..2ae43d2ab6a0 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_qsynth.so and b/hardfp/opt/vc/lib/plugins/reader_qsynth.so differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_raw_video.so b/hardfp/opt/vc/lib/plugins/reader_raw_video.so
index 49eac7fcc6f0..628753f1262c 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_raw_video.so and b/hardfp/opt/vc/lib/plugins/reader_raw_video.so differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_rcv.so b/hardfp/opt/vc/lib/plugins/reader_rcv.so
index 79e16bb26a95..711b62600064 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_rcv.so and b/hardfp/opt/vc/lib/plugins/reader_rcv.so differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_rtp.so b/hardfp/opt/vc/lib/plugins/reader_rtp.so
index 87cb144236dd..aeced2754b8e 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_rtp.so and b/hardfp/opt/vc/lib/plugins/reader_rtp.so differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_rtsp.so b/hardfp/opt/vc/lib/plugins/reader_rtsp.so
index c5887a6f13ad..f9ef62fdc092 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_rtsp.so and b/hardfp/opt/vc/lib/plugins/reader_rtsp.so differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_rv9.so b/hardfp/opt/vc/lib/plugins/reader_rv9.so
index 7c4ee33ff2f4..f23fe8618ec4 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_rv9.so and b/hardfp/opt/vc/lib/plugins/reader_rv9.so differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_simple.so b/hardfp/opt/vc/lib/plugins/reader_simple.so
index 6804fec8e74b..4125d4d18402 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_simple.so and b/hardfp/opt/vc/lib/plugins/reader_simple.so differ
diff --git a/hardfp/opt/vc/lib/plugins/reader_wav.so b/hardfp/opt/vc/lib/plugins/reader_wav.so
index c88e9ade4884..b1e53ae5e009 100644
Binary files a/hardfp/opt/vc/lib/plugins/reader_wav.so and b/hardfp/opt/vc/lib/plugins/reader_wav.so differ
diff --git a/hardfp/opt/vc/lib/plugins/writer_avi.so b/hardfp/opt/vc/lib/plugins/writer_avi.so
index 607b7db316ad..4749268d9941 100644
Binary files a/hardfp/opt/vc/lib/plugins/writer_avi.so and b/hardfp/opt/vc/lib/plugins/writer_avi.so differ
diff --git a/hardfp/opt/vc/lib/plugins/writer_binary.so b/hardfp/opt/vc/lib/plugins/writer_binary.so
index 85e9a6acc597..cd2598df6190 100644
Binary files a/hardfp/opt/vc/lib/plugins/writer_binary.so and b/hardfp/opt/vc/lib/plugins/writer_binary.so differ
diff --git a/hardfp/opt/vc/lib/plugins/writer_dummy.so b/hardfp/opt/vc/lib/plugins/writer_dummy.so
index 80fd20b838d3..7fd7801fbbc2 100644
Binary files a/hardfp/opt/vc/lib/plugins/writer_dummy.so and b/hardfp/opt/vc/lib/plugins/writer_dummy.so differ
diff --git a/hardfp/opt/vc/lib/plugins/writer_mp4.so b/hardfp/opt/vc/lib/plugins/writer_mp4.so
index b5902d3b3ae6..cde644a613c4 100644
Binary files a/hardfp/opt/vc/lib/plugins/writer_mp4.so and b/hardfp/opt/vc/lib/plugins/writer_mp4.so differ
diff --git a/hardfp/opt/vc/lib/plugins/writer_raw_video.so b/hardfp/opt/vc/lib/plugins/writer_raw_video.so
index dd58364ba8fc..999a06643359 100644
Binary files a/hardfp/opt/vc/lib/plugins/writer_raw_video.so and b/hardfp/opt/vc/lib/plugins/writer_raw_video.so differ
diff --git a/hardfp/opt/vc/lib/plugins/writer_simple.so b/hardfp/opt/vc/lib/plugins/writer_simple.so
index e3044bb5e9a9..cce1b92ff8c1 100644
Binary files a/hardfp/opt/vc/lib/plugins/writer_simple.so and b/hardfp/opt/vc/lib/plugins/writer_simple.so differ
diff --git a/hardfp/opt/vc/sbin/vcfiled b/hardfp/opt/vc/sbin/vcfiled
index f327cc7dca7a..662e949a52ae 100755
Binary files a/hardfp/opt/vc/sbin/vcfiled and b/hardfp/opt/vc/sbin/vcfiled differ
diff --git a/modules/4.1.12+/kernel/drivers/hid/hid-multitouch.ko b/modules/4.1.12+/kernel/drivers/hid/hid-multitouch.ko
index d71d66229971..768f78d9337d 100644
Binary files a/modules/4.1.12+/kernel/drivers/hid/hid-multitouch.ko and b/modules/4.1.12+/kernel/drivers/hid/hid-multitouch.ko differ
diff --git a/modules/4.1.12+/kernel/drivers/hid/wacom.ko b/modules/4.1.12+/kernel/drivers/hid/wacom.ko
index e9c385479087..cb0645a1e944 100644
Binary files a/modules/4.1.12+/kernel/drivers/hid/wacom.ko and b/modules/4.1.12+/kernel/drivers/hid/wacom.ko differ
diff --git a/modules/4.1.12+/kernel/drivers/i2c/busses/i2c-gpio.ko b/modules/4.1.12+/kernel/drivers/i2c/busses/i2c-gpio.ko
new file mode 100644
index 000000000000..caca2149195d
Binary files /dev/null and b/modules/4.1.12+/kernel/drivers/i2c/busses/i2c-gpio.ko differ
diff --git a/modules/4.1.12+/kernel/drivers/iio/adc/mcp320x.ko b/modules/4.1.12+/kernel/drivers/iio/adc/mcp320x.ko
new file mode 100644
index 000000000000..28f69ae6750f
Binary files /dev/null and b/modules/4.1.12+/kernel/drivers/iio/adc/mcp320x.ko differ
diff --git a/modules/4.1.12+/kernel/drivers/input/touchscreen/rpi-ft5406.ko b/modules/4.1.12+/kernel/drivers/input/touchscreen/rpi-ft5406.ko
index 4e3bccec6970..4e72899b7eda 100644
Binary files a/modules/4.1.12+/kernel/drivers/input/touchscreen/rpi-ft5406.ko and b/modules/4.1.12+/kernel/drivers/input/touchscreen/rpi-ft5406.ko differ
diff --git a/modules/4.1.12+/kernel/kernel/configs.ko b/modules/4.1.12+/kernel/kernel/configs.ko
index c06122b54a73..38081a9a83a8 100644
Binary files a/modules/4.1.12+/kernel/kernel/configs.ko and b/modules/4.1.12+/kernel/kernel/configs.ko differ
diff --git a/modules/4.1.12+/modules.alias b/modules/4.1.12+/modules.alias
index 173bc7ebbd74..2e3902dde1cc 100644
--- a/modules/4.1.12+/modules.alias
+++ b/modules/4.1.12+/modules.alias
@@ -5299,6 +5299,8 @@ alias i2c:s35390a rtc_s35390a
alias i2c:x1205 rtc_x1205
alias platform:bcm2708_i2c i2c_bcm2708
alias of:N*T*Cbrcm,bcm2708-i2c* i2c_bcm2708
+alias platform:i2c-gpio i2c_gpio
+alias of:N*T*Ci2c-gpio* i2c_gpio
alias i2c:msp3400 msp3400
alias i2c:cx25840 cx25840
alias i2c:gm7113c saa7115
@@ -7604,6 +7606,22 @@ alias sdio:c*v02DFd911B* btmrvl_sdio
alias sdio:c*v02DFd911A* btmrvl_sdio
alias sdio:c*v02DFd9105* btmrvl_sdio
alias platform:extcon-arizona extcon_arizona
+alias of:N*T*Cmcp3208* mcp320x
+alias of:N*T*Cmcp3204* mcp320x
+alias of:N*T*Cmcp3202* mcp320x
+alias of:N*T*Cmcp3201* mcp320x
+alias of:N*T*Cmcp3008* mcp320x
+alias of:N*T*Cmcp3004* mcp320x
+alias of:N*T*Cmcp3002* mcp320x
+alias of:N*T*Cmcp3001* mcp320x
+alias spi:mcp3208 mcp320x
+alias spi:mcp3204 mcp320x
+alias spi:mcp3202 mcp320x
+alias spi:mcp3201 mcp320x
+alias spi:mcp3008 mcp320x
+alias spi:mcp3004 mcp320x
+alias spi:mcp3002 mcp320x
+alias spi:mcp3001 mcp320x
alias of:N*T*Cdht11* dht11
alias sound-service-?-0 snd_mixer_oss
alias sound-service-?-12 snd_pcm_oss
diff --git a/modules/4.1.12+/modules.alias.bin b/modules/4.1.12+/modules.alias.bin
index b71765786feb..24a54c9178c6 100644
Binary files a/modules/4.1.12+/modules.alias.bin and b/modules/4.1.12+/modules.alias.bin differ
diff --git a/modules/4.1.12+/modules.dep b/modules/4.1.12+/modules.dep
index 40add8856799..d9ff58f00bde 100644
--- a/modules/4.1.12+/modules.dep
+++ b/modules/4.1.12+/modules.dep
@@ -423,6 +423,7 @@ kernel/drivers/rtc/rtc-s35390a.ko:
kernel/drivers/rtc/rtc-x1205.ko:
kernel/drivers/i2c/algos/i2c-algo-bit.ko:
kernel/drivers/i2c/busses/i2c-bcm2708.ko:
+kernel/drivers/i2c/busses/i2c-gpio.ko: kernel/drivers/i2c/algos/i2c-algo-bit.ko
kernel/drivers/i2c/i2c-dev.ko:
kernel/drivers/i2c/i2c-mux.ko:
kernel/drivers/media/i2c/msp3400.ko: kernel/drivers/media/v4l2-core/v4l2-common.ko kernel/drivers/media/v4l2-core/videodev.ko kernel/drivers/media/media.ko
@@ -1044,6 +1045,7 @@ kernel/drivers/ssb/ssb.ko:
kernel/drivers/bcma/bcma.ko:
kernel/drivers/extcon/extcon.ko:
kernel/drivers/extcon/extcon-arizona.ko: kernel/sound/soc/snd-soc-core.ko kernel/sound/core/snd-compress.ko kernel/sound/core/snd-pcm-dmaengine.ko kernel/drivers/extcon/extcon.ko kernel/sound/core/snd-pcm.ko kernel/sound/core/snd-timer.ko kernel/sound/core/snd.ko
+kernel/drivers/iio/adc/mcp320x.ko: kernel/drivers/iio/industrialio.ko
kernel/drivers/iio/humidity/dht11.ko: kernel/drivers/iio/industrialio.ko
kernel/drivers/iio/industrialio.ko:
kernel/drivers/iio/kfifo_buf.ko: kernel/drivers/iio/industrialio.ko
diff --git a/modules/4.1.12+/modules.dep.bin b/modules/4.1.12+/modules.dep.bin
index fd932032fb67..7e085b55578f 100644
Binary files a/modules/4.1.12+/modules.dep.bin and b/modules/4.1.12+/modules.dep.bin differ
diff --git a/modules/4.1.12+/modules.order b/modules/4.1.12+/modules.order
index e5f05865290a..167e278ae044 100644
--- a/modules/4.1.12+/modules.order
+++ b/modules/4.1.12+/modules.order
@@ -423,6 +423,7 @@ kernel/drivers/rtc/rtc-s35390a.ko
kernel/drivers/rtc/rtc-x1205.ko
kernel/drivers/i2c/algos/i2c-algo-bit.ko
kernel/drivers/i2c/busses/i2c-bcm2708.ko
+kernel/drivers/i2c/busses/i2c-gpio.ko
kernel/drivers/i2c/i2c-dev.ko
kernel/drivers/i2c/i2c-mux.ko
kernel/drivers/media/i2c/msp3400.ko
@@ -1044,6 +1045,7 @@ kernel/drivers/ssb/ssb.ko
kernel/drivers/bcma/bcma.ko
kernel/drivers/extcon/extcon.ko
kernel/drivers/extcon/extcon-arizona.ko
+kernel/drivers/iio/adc/mcp320x.ko
kernel/drivers/iio/humidity/dht11.ko
kernel/drivers/iio/industrialio.ko
kernel/drivers/iio/kfifo_buf.ko
diff --git a/modules/4.1.12+/modules.symbols.bin b/modules/4.1.12+/modules.symbols.bin
index 18b1d4019049..76cf769f1008 100644
Binary files a/modules/4.1.12+/modules.symbols.bin and b/modules/4.1.12+/modules.symbols.bin differ
diff --git a/modules/4.1.12-v7+/kernel/drivers/i2c/busses/i2c-gpio.ko b/modules/4.1.12-v7+/kernel/drivers/i2c/busses/i2c-gpio.ko
new file mode 100644
index 000000000000..8393f727e73a
Binary files /dev/null and b/modules/4.1.12-v7+/kernel/drivers/i2c/busses/i2c-gpio.ko differ
diff --git a/modules/4.1.12-v7+/kernel/drivers/iio/adc/mcp320x.ko b/modules/4.1.12-v7+/kernel/drivers/iio/adc/mcp320x.ko
new file mode 100644
index 000000000000..3a971dabc44c
Binary files /dev/null and b/modules/4.1.12-v7+/kernel/drivers/iio/adc/mcp320x.ko differ
diff --git a/modules/4.1.12-v7+/kernel/drivers/input/touchscreen/rpi-ft5406.ko b/modules/4.1.12-v7+/kernel/drivers/input/touchscreen/rpi-ft5406.ko
index da84b56c846d..22e73070fa4d 100644
Binary files a/modules/4.1.12-v7+/kernel/drivers/input/touchscreen/rpi-ft5406.ko and b/modules/4.1.12-v7+/kernel/drivers/input/touchscreen/rpi-ft5406.ko differ
diff --git a/modules/4.1.12-v7+/kernel/kernel/configs.ko b/modules/4.1.12-v7+/kernel/kernel/configs.ko
index c0b10c5437cf..0680cf63a0ce 100644
Binary files a/modules/4.1.12-v7+/kernel/kernel/configs.ko and b/modules/4.1.12-v7+/kernel/kernel/configs.ko differ
diff --git a/modules/4.1.12-v7+/modules.alias b/modules/4.1.12-v7+/modules.alias
index 97ede1f47619..426f04894e23 100644
--- a/modules/4.1.12-v7+/modules.alias
+++ b/modules/4.1.12-v7+/modules.alias
@@ -5305,6 +5305,8 @@ alias i2c:s35390a rtc_s35390a
alias i2c:x1205 rtc_x1205
alias platform:bcm2708_i2c i2c_bcm2708
alias of:N*T*Cbrcm,bcm2708-i2c* i2c_bcm2708
+alias platform:i2c-gpio i2c_gpio
+alias of:N*T*Ci2c-gpio* i2c_gpio
alias i2c:msp3400 msp3400
alias i2c:cx25840 cx25840
alias i2c:gm7113c saa7115
@@ -7610,6 +7612,22 @@ alias sdio:c*v02DFd911B* btmrvl_sdio
alias sdio:c*v02DFd911A* btmrvl_sdio
alias sdio:c*v02DFd9105* btmrvl_sdio
alias platform:extcon-arizona extcon_arizona
+alias of:N*T*Cmcp3208* mcp320x
+alias of:N*T*Cmcp3204* mcp320x
+alias of:N*T*Cmcp3202* mcp320x
+alias of:N*T*Cmcp3201* mcp320x
+alias of:N*T*Cmcp3008* mcp320x
+alias of:N*T*Cmcp3004* mcp320x
+alias of:N*T*Cmcp3002* mcp320x
+alias of:N*T*Cmcp3001* mcp320x
+alias spi:mcp3208 mcp320x
+alias spi:mcp3204 mcp320x
+alias spi:mcp3202 mcp320x
+alias spi:mcp3201 mcp320x
+alias spi:mcp3008 mcp320x
+alias spi:mcp3004 mcp320x
+alias spi:mcp3002 mcp320x
+alias spi:mcp3001 mcp320x
alias of:N*T*Cdht11* dht11
alias sound-service-?-0 snd_mixer_oss
alias sound-service-?-12 snd_pcm_oss
diff --git a/modules/4.1.12-v7+/modules.alias.bin b/modules/4.1.12-v7+/modules.alias.bin
index 84be8712617a..1110e270ffc3 100644
Binary files a/modules/4.1.12-v7+/modules.alias.bin and b/modules/4.1.12-v7+/modules.alias.bin differ
diff --git a/modules/4.1.12-v7+/modules.dep b/modules/4.1.12-v7+/modules.dep
index 6ef89a2e1611..958a3c92b7c3 100644
--- a/modules/4.1.12-v7+/modules.dep
+++ b/modules/4.1.12-v7+/modules.dep
@@ -427,6 +427,7 @@ kernel/drivers/rtc/rtc-s35390a.ko:
kernel/drivers/rtc/rtc-x1205.ko:
kernel/drivers/i2c/algos/i2c-algo-bit.ko:
kernel/drivers/i2c/busses/i2c-bcm2708.ko:
+kernel/drivers/i2c/busses/i2c-gpio.ko: kernel/drivers/i2c/algos/i2c-algo-bit.ko
kernel/drivers/i2c/i2c-dev.ko:
kernel/drivers/i2c/i2c-mux.ko:
kernel/drivers/media/i2c/msp3400.ko: kernel/drivers/media/v4l2-core/v4l2-common.ko kernel/drivers/media/v4l2-core/videodev.ko kernel/drivers/media/media.ko
@@ -1048,6 +1049,7 @@ kernel/drivers/ssb/ssb.ko:
kernel/drivers/bcma/bcma.ko:
kernel/drivers/extcon/extcon.ko:
kernel/drivers/extcon/extcon-arizona.ko: kernel/sound/soc/snd-soc-core.ko kernel/sound/core/snd-compress.ko kernel/sound/core/snd-pcm-dmaengine.ko kernel/drivers/extcon/extcon.ko kernel/sound/core/snd-pcm.ko kernel/sound/core/snd-timer.ko kernel/sound/core/snd.ko
+kernel/drivers/iio/adc/mcp320x.ko: kernel/drivers/iio/industrialio.ko
kernel/drivers/iio/humidity/dht11.ko: kernel/drivers/iio/industrialio.ko
kernel/drivers/iio/industrialio.ko:
kernel/drivers/iio/kfifo_buf.ko: kernel/drivers/iio/industrialio.ko
diff --git a/modules/4.1.12-v7+/modules.dep.bin b/modules/4.1.12-v7+/modules.dep.bin
index aafc9671ccdd..588203dcb30e 100644
Binary files a/modules/4.1.12-v7+/modules.dep.bin and b/modules/4.1.12-v7+/modules.dep.bin differ
diff --git a/modules/4.1.12-v7+/modules.order b/modules/4.1.12-v7+/modules.order
index 5712c1098dda..49cf42a5db0f 100644
--- a/modules/4.1.12-v7+/modules.order
+++ b/modules/4.1.12-v7+/modules.order
@@ -427,6 +427,7 @@ kernel/drivers/rtc/rtc-s35390a.ko
kernel/drivers/rtc/rtc-x1205.ko
kernel/drivers/i2c/algos/i2c-algo-bit.ko
kernel/drivers/i2c/busses/i2c-bcm2708.ko
+kernel/drivers/i2c/busses/i2c-gpio.ko
kernel/drivers/i2c/i2c-dev.ko
kernel/drivers/i2c/i2c-mux.ko
kernel/drivers/media/i2c/msp3400.ko
@@ -1048,6 +1049,7 @@ kernel/drivers/ssb/ssb.ko
kernel/drivers/bcma/bcma.ko
kernel/drivers/extcon/extcon.ko
kernel/drivers/extcon/extcon-arizona.ko
+kernel/drivers/iio/adc/mcp320x.ko
kernel/drivers/iio/humidity/dht11.ko
kernel/drivers/iio/industrialio.ko
kernel/drivers/iio/kfifo_buf.ko
diff --git a/modules/4.1.12-v7+/modules.symbols.bin b/modules/4.1.12-v7+/modules.symbols.bin
index 1fc959ece42f..40fb9ebce64e 100644
Binary files a/modules/4.1.12-v7+/modules.symbols.bin and b/modules/4.1.12-v7+/modules.symbols.bin differ
diff --git a/opt/vc/bin/mmal_vc_diag b/opt/vc/bin/mmal_vc_diag
index fdf131b7f521..e6a318573467 100755
Binary files a/opt/vc/bin/mmal_vc_diag and b/opt/vc/bin/mmal_vc_diag differ
diff --git a/opt/vc/bin/raspistill b/opt/vc/bin/raspistill
index 8cb4bfdd25c9..8e0202804e9e 100755
Binary files a/opt/vc/bin/raspistill and b/opt/vc/bin/raspistill differ
diff --git a/opt/vc/bin/raspivid b/opt/vc/bin/raspivid
index 6b79ecce810d..c658453c2c00 100755
Binary files a/opt/vc/bin/raspivid and b/opt/vc/bin/raspivid differ
diff --git a/opt/vc/bin/raspividyuv b/opt/vc/bin/raspividyuv
index 5385820204df..d041c1f2ab50 100755
Binary files a/opt/vc/bin/raspividyuv and b/opt/vc/bin/raspividyuv differ
diff --git a/opt/vc/bin/raspiyuv b/opt/vc/bin/raspiyuv
index c3d1e78c1e77..31314d39e146 100755
Binary files a/opt/vc/bin/raspiyuv and b/opt/vc/bin/raspiyuv differ
diff --git a/opt/vc/bin/tvservice b/opt/vc/bin/tvservice
index 15b2767d789a..982c3fe3dec8 100755
Binary files a/opt/vc/bin/tvservice and b/opt/vc/bin/tvservice differ
diff --git a/opt/vc/bin/vcgencmd b/opt/vc/bin/vcgencmd
index 3967fead1098..d17d5c6c5e90 100755
Binary files a/opt/vc/bin/vcgencmd and b/opt/vc/bin/vcgencmd differ
diff --git a/opt/vc/bin/vchiq_test b/opt/vc/bin/vchiq_test
index 6169045cea21..476cee5f008e 100755
Binary files a/opt/vc/bin/vchiq_test and b/opt/vc/bin/vchiq_test differ
diff --git a/opt/vc/bin/vcsmem b/opt/vc/bin/vcsmem
index 222f597a6a21..1dceafa08659 100755
Binary files a/opt/vc/bin/vcsmem and b/opt/vc/bin/vcsmem differ
diff --git a/opt/vc/include/interface/vmcs_host/vc_vchi_audioserv_defs.h b/opt/vc/include/interface/vmcs_host/vc_vchi_audioserv_defs.h
index 47fd0f5e1994..21b5d64f3cd7 100644
--- a/opt/vc/include/interface/vmcs_host/vc_vchi_audioserv_defs.h
+++ b/opt/vc/include/interface/vmcs_host/vc_vchi_audioserv_defs.h
@@ -29,7 +29,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define _VC_AUDIO_DEFS_H_
#define VC_AUDIOSERV_MIN_VER 1
-#define VC_AUDIOSERV_VER 2
+#define VC_AUDIOSERV_VER 3
// FourCC code used for VCHI connection
#define VC_AUDIO_SERVER_NAME MAKE_FOURCC("AUDS")
@@ -50,6 +50,7 @@ typedef enum
VC_AUDIO_MSG_TYPE_START, // start output (i.e. resume)
VC_AUDIO_MSG_TYPE_STOP, // stop output (i.e. pause)
VC_AUDIO_MSG_TYPE_WRITE, // write samples
+ VC_AUDIO_MSG_TYPE_LATENCY, // request latency in cycles
VC_AUDIO_MSG_TYPE_MAX
} VC_AUDIO_MSG_TYPE;
@@ -73,6 +74,7 @@ typedef struct
uint32_t channels;
uint32_t samplerate;
uint32_t bps;
+ uint32_t channelmap;
} VC_AUDIO_CONFIG_T;
@@ -108,6 +110,12 @@ typedef struct
uint32_t draining;
} VC_AUDIO_STOP_T;
+// audio
+typedef struct
+{
+ uint32_t dummy;
+
+} VC_AUDIO_LATENCY_T;
// configure the write audio samples
typedef struct
@@ -147,6 +155,7 @@ typedef struct
VC_AUDIO_START_T start;
VC_AUDIO_STOP_T stop;
VC_AUDIO_WRITE_T write;
+ VC_AUDIO_LATENCY_T latency;
VC_AUDIO_RESULT_T result;
VC_AUDIO_COMPLETE_T complete;
} u;
diff --git a/opt/vc/lib/libEGL.so b/opt/vc/lib/libEGL.so
index 58932236357e..a937e00c0370 100644
Binary files a/opt/vc/lib/libEGL.so and b/opt/vc/lib/libEGL.so differ
diff --git a/opt/vc/lib/libEGL_static.a b/opt/vc/lib/libEGL_static.a
index 1c7973efd46c..fa62dcf9a1e2 100644
Binary files a/opt/vc/lib/libEGL_static.a and b/opt/vc/lib/libEGL_static.a differ
diff --git a/opt/vc/lib/libGLESv2.so b/opt/vc/lib/libGLESv2.so
index 3b10bf8e3fba..697c7a4f019a 100644
Binary files a/opt/vc/lib/libGLESv2.so and b/opt/vc/lib/libGLESv2.so differ
diff --git a/opt/vc/lib/libGLESv2_static.a b/opt/vc/lib/libGLESv2_static.a
index d45c64474eb8..baef70361069 100644
Binary files a/opt/vc/lib/libGLESv2_static.a and b/opt/vc/lib/libGLESv2_static.a differ
diff --git a/opt/vc/lib/libbcm_host.so b/opt/vc/lib/libbcm_host.so
index 9790247133b8..cbfa2dedcad3 100644
Binary files a/opt/vc/lib/libbcm_host.so and b/opt/vc/lib/libbcm_host.so differ
diff --git a/opt/vc/lib/libdebug_sym_static.a b/opt/vc/lib/libdebug_sym_static.a
index 08a2d6f1e67d..887b81c21da2 100644
Binary files a/opt/vc/lib/libdebug_sym_static.a and b/opt/vc/lib/libdebug_sym_static.a differ
diff --git a/opt/vc/lib/libkhrn_client.a b/opt/vc/lib/libkhrn_client.a
index 928ed483ed20..81a85206193b 100644
Binary files a/opt/vc/lib/libkhrn_client.a and b/opt/vc/lib/libkhrn_client.a differ
diff --git a/opt/vc/lib/libkhrn_static.a b/opt/vc/lib/libkhrn_static.a
index d297384506ee..28e9d8c24c70 100644
Binary files a/opt/vc/lib/libkhrn_static.a and b/opt/vc/lib/libkhrn_static.a differ
diff --git a/opt/vc/lib/libmmal.so b/opt/vc/lib/libmmal.so
index 7db761c5832b..42f4d93a7bba 100644
Binary files a/opt/vc/lib/libmmal.so and b/opt/vc/lib/libmmal.so differ
diff --git a/opt/vc/lib/libmmal_vc_client.so b/opt/vc/lib/libmmal_vc_client.so
index 6e91f66cb5e0..4a72687d9216 100644
Binary files a/opt/vc/lib/libmmal_vc_client.so and b/opt/vc/lib/libmmal_vc_client.so differ
diff --git a/opt/vc/lib/libopenmaxil.so b/opt/vc/lib/libopenmaxil.so
index 9a776a83ce74..1e80430d572f 100644
Binary files a/opt/vc/lib/libopenmaxil.so and b/opt/vc/lib/libopenmaxil.so differ
diff --git a/opt/vc/lib/libvcfiled_check.a b/opt/vc/lib/libvcfiled_check.a
index 25d474451674..a85844671c7e 100644
Binary files a/opt/vc/lib/libvcfiled_check.a and b/opt/vc/lib/libvcfiled_check.a differ
diff --git a/opt/vc/lib/libvchiq_arm.so b/opt/vc/lib/libvchiq_arm.so
index bce3c9c3e856..c2a3b986132d 100644
Binary files a/opt/vc/lib/libvchiq_arm.so and b/opt/vc/lib/libvchiq_arm.so differ
diff --git a/opt/vc/lib/libvchostif.a b/opt/vc/lib/libvchostif.a
index 764a37cd1dd1..fc10ec8db31e 100644
Binary files a/opt/vc/lib/libvchostif.a and b/opt/vc/lib/libvchostif.a differ
diff --git a/opt/vc/lib/libvcilcs.a b/opt/vc/lib/libvcilcs.a
index 51da67f67364..16b6324adca3 100644
Binary files a/opt/vc/lib/libvcilcs.a and b/opt/vc/lib/libvcilcs.a differ
diff --git a/opt/vc/lib/libvmcs_rpc_client.a b/opt/vc/lib/libvmcs_rpc_client.a
index 01164ed369db..76c6a53a6e07 100644
Binary files a/opt/vc/lib/libvmcs_rpc_client.a and b/opt/vc/lib/libvmcs_rpc_client.a differ
diff --git a/opt/vc/sbin/vcfiled b/opt/vc/sbin/vcfiled
index 0387a2a74e76..3a3214414c41 100755
Binary files a/opt/vc/sbin/vcfiled and b/opt/vc/sbin/vcfiled differ