diff --git a/packages/network/bluez/package.mk b/packages/network/bluez/package.mk
index a208a1d3f3..adc4424ec0 100644
--- a/packages/network/bluez/package.mk
+++ b/packages/network/bluez/package.mk
@@ -1,12 +1,13 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
+# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="bluez"
-PKG_VERSION="5.50"
-PKG_SHA256="c44b776660bf78e664e388b979da152976296e444dece833f3ddbd5be5a3b1b4"
+PKG_VERSION="5.51"
+PKG_SHA256="ebedfb359f62957940822f1d0b39fcee30422380e435608dad06bb3913d5ebba"
PKG_LICENSE="GPL"
PKG_SITE="http://www.bluez.org/"
-PKG_URL="https://git.kernel.org/pub/scm/bluetooth/bluez.git/snapshot/$PKG_NAME-$PKG_VERSION.tar.gz"
+PKG_URL="https://www.kernel.org/pub/linux/bluetooth/${PKG_NAME}-${PKG_VERSION}.tar.xz"
PKG_DEPENDS_TARGET="toolchain dbus glib readline systemd"
PKG_LONGDESC="Bluetooth Tools and System Daemons for Linux."
PKG_TOOLCHAIN="autotools"
diff --git a/packages/network/bluez/patches/bluez-01_add-obexd-policy.patch b/packages/network/bluez/patches/bluez-01_add-obexd-policy.patch
index 8afb641a1d..1517d65a3d 100644
--- a/packages/network/bluez/patches/bluez-01_add-obexd-policy.patch
+++ b/packages/network/bluez/patches/bluez-01_add-obexd-policy.patch
@@ -1,10 +1,11 @@
-diff -Naur bluez-5.29/src/bluetooth.conf bluez-5.29.patch/src/bluetooth.conf
---- bluez-5.29/src/bluetooth.conf 2015-03-11 11:01:57.000000000 +0100
-+++ bluez-5.29.patch/src/bluetooth.conf 2015-03-31 12:02:20.128341381 +0200
-@@ -22,20 +22,37 @@
-
+diff --git a/src/bluetooth.conf b/src/bluetooth.conf
+index 8a1e258..31b7542 100644
+--- a/src/bluetooth.conf
++++ b/src/bluetooth.conf
+@@ -20,10 +20,24 @@
+
+
+
+
@@ -20,21 +21,8 @@ diff -Naur bluez-5.29/src/bluetooth.conf bluez-5.29.patch/src/bluetooth.conf
+
-+
-
-
-+
-
-
-
-
-
-+
-
-
-
+
+
diff --git a/packages/network/bluez/patches/bluez-11_sixaxis-fix-PID-navigation-controller.patch b/packages/network/bluez/patches/bluez-11_sixaxis-fix-PID-navigation-controller.patch
index a2768cc551..eb3d6f1142 100644
--- a/packages/network/bluez/patches/bluez-11_sixaxis-fix-PID-navigation-controller.patch
+++ b/packages/network/bluez/patches/bluez-11_sixaxis-fix-PID-navigation-controller.patch
@@ -1,17 +1,23 @@
-From: Szymon Janc
-Subject: [PATCH 1/5] sixaxis: Fix PID for Navigation Controller
+From ccc0a0cba8a2fdb8cfb148276e7c9413a3e22dc8 Mon Sep 17 00:00:00 2001
+From: MilhouseVH
+Date: Thu, 19 Sep 2019 22:48:19 +0100
+Subject: [PATCH] sixaxis: Fix PID for Navigation Controller
+
Newsgroups: gmane.linux.bluez.kernel
Date: 2015-06-15 18:28:26 GMT (36 weeks, 4 days, 21 hours and 32 minutes ago)
Navigation Controller is using PID 0x042f over USB but PID 0x0268
(same as Dualshock 3) over BT.
---
- plugins/sixaxis.c | 17 +++++++++++++++--
- 1 file changed, 15 insertions(+), 2 deletions(-)
+ plugins/sixaxis.c | 8 +++++++-
+ profiles/input/sixaxis.h | 2 ++
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+diff --git a/plugins/sixaxis.c b/plugins/sixaxis.c
+index 939fed7..f6baea7 100644
--- a/plugins/sixaxis.c
+++ b/plugins/sixaxis.c
-@@ -363,7 +363,13 @@
+@@ -364,7 +364,13 @@ static bool setup_device(int fd, const char *sysfs_path,
info("sixaxis: setting up new device");
btd_device_device_set_name(device, cp->name);
@@ -23,12 +29,14 @@ Navigation Controller is using PID 0x042f over USB but PID 0x0268
+ else
+ btd_device_set_pnpid(device, cp->source, cp->vid, cp->pid, cp->version);
+
+ btd_device_set_trusted(device, false);
btd_device_set_temporary(device, true);
- closure = g_new0(struct authentication_closure, 1);
+diff --git a/profiles/input/sixaxis.h b/profiles/input/sixaxis.h
+index 8e6f3cc..321a918 100644
--- a/profiles/input/sixaxis.h
+++ b/profiles/input/sixaxis.h
-@@ -38,6 +38,7 @@
+@@ -38,6 +38,7 @@ struct cable_pairing {
uint16_t vid;
uint16_t pid;
uint16_t version;
@@ -36,7 +44,7 @@ Navigation Controller is using PID 0x042f over USB but PID 0x0268
CablePairingType type;
};
-@@ -59,6 +60,7 @@
+@@ -59,6 +60,7 @@ get_pairing(uint16_t vid, uint16_t pid)
.vid = 0x054c,
.pid = 0x042f,
.version = 0x0000,
@@ -44,5 +52,6 @@ Navigation Controller is using PID 0x042f over USB but PID 0x0268
.type = CABLE_PAIRING_SIXAXIS,
},
{
---
-2.1.4
+--
+2.7.4
+
diff --git a/packages/network/bluez/patches/bluez-20-sixaxis-autotrust.patch b/packages/network/bluez/patches/bluez-20-sixaxis-autotrust.patch
index a2ed445ba2..033a4dad48 100644
--- a/packages/network/bluez/patches/bluez-20-sixaxis-autotrust.patch
+++ b/packages/network/bluez/patches/bluez-20-sixaxis-autotrust.patch
@@ -1,10 +1,25 @@
+From 40c6e7c5a0d81a781c94e5a64661848018c1f8be Mon Sep 17 00:00:00 2001
+From: MilhouseVH
+Date: Thu, 19 Sep 2019 22:55:09 +0100
+Subject: [PATCH] sixaxis autotrust
+
+---
+ plugins/sixaxis.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/plugins/sixaxis.c b/plugins/sixaxis.c
+index f6baea7..c166304 100644
--- a/plugins/sixaxis.c
+++ b/plugins/sixaxis.c
-@@ -370,6 +370,7 @@
+@@ -371,7 +371,7 @@ static bool setup_device(int fd, const char *sysfs_path,
else
btd_device_set_pnpid(device, cp->source, cp->vid, cp->pid, cp->version);
+- btd_device_set_trusted(device, false);
+ btd_device_set_trusted(device, true);
btd_device_set_temporary(device, true);
closure = g_new0(struct authentication_closure, 1);
+--
+2.7.4
+
diff --git a/packages/network/bluez/patches/bluez-99-fix-kernel-5.2-rc1.patch b/packages/network/bluez/patches/bluez-99-fix-kernel-5.2-rc1.patch
deleted file mode 100644
index 7859c712c0..0000000000
--- a/packages/network/bluez/patches/bluez-99-fix-kernel-5.2-rc1.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 6291800ff8cd59b51411f904685db3ecb2e322ff Mon Sep 17 00:00:00 2001
-From: Bastien Nocera
-Date: Fri, 7 Jun 2019 07:51:33 +0000
-Subject: [PATCH] tools: Fix build after y2038 changes in glibc
-
-The 32-bit SIOCGSTAMP has been deprecated. Use the deprecated name
-to fix the build.
----
- tools/l2test.c | 6 +++++-
- tools/rctest.c | 6 +++++-
- 2 files changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/tools/l2test.c b/tools/l2test.c
-index 1819423..400ac4a 100644
---- a/tools/l2test.c
-+++ b/tools/l2test.c
-@@ -54,6 +54,10 @@
- #define BREDR_DEFAULT_PSM 0x1011
- #define LE_DEFAULT_PSM 0x0080
-
-+#ifndef SIOCGSTAMP_OLD
-+#define SIOCGSTAMP_OLD SIOCGSTAMP
-+#endif
-+
- /* Test modes */
- enum {
- SEND,
-@@ -906,7 +910,7 @@ static void recv_mode(int sk)
- if (timestamp) {
- struct timeval tv;
-
-- if (ioctl(sk, SIOCGSTAMP, &tv) < 0) {
-+ if (ioctl(sk, SIOCGSTAMP_OLD, &tv) < 0) {
- timestamp = 0;
- memset(ts, 0, sizeof(ts));
- } else {
-diff --git a/tools/rctest.c b/tools/rctest.c
-index 6d84e07..6a2bd55 100644
---- a/tools/rctest.c
-+++ b/tools/rctest.c
-@@ -49,6 +49,10 @@
-
- #include "src/shared/util.h"
-
-+#ifndef SIOCGSTAMP_OLD
-+#define SIOCGSTAMP_OLD SIOCGSTAMP
-+#endif
-+
- /* Test modes */
- enum {
- SEND,
-@@ -504,7 +508,7 @@ static void recv_mode(int sk)
- if (timestamp) {
- struct timeval tv;
-
-- if (ioctl(sk, SIOCGSTAMP, &tv) < 0) {
-+ if (ioctl(sk, SIOCGSTAMP_OLD, &tv) < 0) {
- timestamp = 0;
- memset(ts, 0, sizeof(ts));
- } else {
---
-2.14.1
-