Commit 3d93e337 authored by David S. Miller's avatar David S. Miller

Merge branch 'for-upstream' of...

Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next

Johan Hedberg says:

====================
pull request: bluetooth-next 2018-01-11

Here's likely the last bluetooth-next pull request for the 4.16 kernel.

 - Added support for Bluetooth on 2015+ MacBook (Pro)
 - Fix to QCA Rome suspend/resume handling
 - Two new QCA_ROME USB IDs in btusb
 - A few other minor fixes

Please let me know if there are any issues pulling. Thanks.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 297a6961 ff875960
...@@ -77,6 +77,7 @@ config BT_HCIBTSDIO ...@@ -77,6 +77,7 @@ config BT_HCIBTSDIO
config BT_HCIUART config BT_HCIUART
tristate "HCI UART driver" tristate "HCI UART driver"
depends on SERIAL_DEV_BUS || !SERIAL_DEV_BUS depends on SERIAL_DEV_BUS || !SERIAL_DEV_BUS
depends on NVMEM || !NVMEM
depends on TTY depends on TTY
help help
Bluetooth HCI UART driver. Bluetooth HCI UART driver.
...@@ -107,6 +108,7 @@ config BT_HCIUART_NOKIA ...@@ -107,6 +108,7 @@ config BT_HCIUART_NOKIA
tristate "UART Nokia H4+ protocol support" tristate "UART Nokia H4+ protocol support"
depends on BT_HCIUART depends on BT_HCIUART
depends on BT_HCIUART_SERDEV depends on BT_HCIUART_SERDEV
depends on GPIOLIB
depends on PM depends on PM
select BT_HCIUART_H4 select BT_HCIUART_H4
select BT_BCM select BT_BCM
...@@ -168,6 +170,7 @@ config BT_HCIUART_3WIRE ...@@ -168,6 +170,7 @@ config BT_HCIUART_3WIRE
config BT_HCIUART_INTEL config BT_HCIUART_INTEL
bool "Intel protocol support" bool "Intel protocol support"
depends on BT_HCIUART depends on BT_HCIUART
depends on GPIOLIB
select BT_HCIUART_H4 select BT_HCIUART_H4
select BT_INTEL select BT_INTEL
help help
...@@ -181,6 +184,7 @@ config BT_HCIUART_BCM ...@@ -181,6 +184,7 @@ config BT_HCIUART_BCM
depends on BT_HCIUART depends on BT_HCIUART
depends on BT_HCIUART_SERDEV depends on BT_HCIUART_SERDEV
depends on (!ACPI || SERIAL_DEV_CTRL_TTYPORT) depends on (!ACPI || SERIAL_DEV_CTRL_TTYPORT)
depends on GPIOLIB
select BT_HCIUART_H4 select BT_HCIUART_H4
select BT_BCM select BT_BCM
help help
......
...@@ -259,7 +259,7 @@ static int bpa10x_flush(struct hci_dev *hdev) ...@@ -259,7 +259,7 @@ static int bpa10x_flush(struct hci_dev *hdev)
static int bpa10x_setup(struct hci_dev *hdev) static int bpa10x_setup(struct hci_dev *hdev)
{ {
const u8 req[] = { 0x07 }; static const u8 req[] = { 0x07 };
struct sk_buff *skb; struct sk_buff *skb;
BT_DBG("%s", hdev->name); BT_DBG("%s", hdev->name);
......
...@@ -44,8 +44,8 @@ struct bcm_set_sleep_mode { ...@@ -44,8 +44,8 @@ struct bcm_set_sleep_mode {
__u8 tristate_control; __u8 tristate_control;
__u8 usb_auto_sleep; __u8 usb_auto_sleep;
__u8 usb_resume_timeout; __u8 usb_resume_timeout;
__u8 pulsed_host_wake;
__u8 break_to_host; __u8 break_to_host;
__u8 pulsed_host_wake;
} __packed; } __packed;
struct bcm_set_pcm_int_params { struct bcm_set_pcm_int_params {
......
...@@ -75,7 +75,7 @@ EXPORT_SYMBOL_GPL(btintel_check_bdaddr); ...@@ -75,7 +75,7 @@ EXPORT_SYMBOL_GPL(btintel_check_bdaddr);
int btintel_enter_mfg(struct hci_dev *hdev) int btintel_enter_mfg(struct hci_dev *hdev)
{ {
const u8 param[] = { 0x01, 0x00 }; static const u8 param[] = { 0x01, 0x00 };
struct sk_buff *skb; struct sk_buff *skb;
skb = __hci_cmd_sync(hdev, 0xfc11, 2, param, HCI_CMD_TIMEOUT); skb = __hci_cmd_sync(hdev, 0xfc11, 2, param, HCI_CMD_TIMEOUT);
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/usb.h> #include <linux/usb.h>
#include <linux/usb/quirks.h>
#include <linux/firmware.h> #include <linux/firmware.h>
#include <linux/of_device.h> #include <linux/of_device.h>
#include <linux/of_irq.h> #include <linux/of_irq.h>
...@@ -264,6 +265,7 @@ static const struct usb_device_id blacklist_table[] = { ...@@ -264,6 +265,7 @@ static const struct usb_device_id blacklist_table[] = {
/* QCA ROME chipset */ /* QCA ROME chipset */
{ USB_DEVICE(0x0cf3, 0xe007), .driver_info = BTUSB_QCA_ROME }, { USB_DEVICE(0x0cf3, 0xe007), .driver_info = BTUSB_QCA_ROME },
{ USB_DEVICE(0x0cf3, 0xe009), .driver_info = BTUSB_QCA_ROME }, { USB_DEVICE(0x0cf3, 0xe009), .driver_info = BTUSB_QCA_ROME },
{ USB_DEVICE(0x0cf3, 0xe010), .driver_info = BTUSB_QCA_ROME },
{ USB_DEVICE(0x0cf3, 0xe300), .driver_info = BTUSB_QCA_ROME }, { USB_DEVICE(0x0cf3, 0xe300), .driver_info = BTUSB_QCA_ROME },
{ USB_DEVICE(0x0cf3, 0xe301), .driver_info = BTUSB_QCA_ROME }, { USB_DEVICE(0x0cf3, 0xe301), .driver_info = BTUSB_QCA_ROME },
{ USB_DEVICE(0x0cf3, 0xe360), .driver_info = BTUSB_QCA_ROME }, { USB_DEVICE(0x0cf3, 0xe360), .driver_info = BTUSB_QCA_ROME },
...@@ -271,6 +273,7 @@ static const struct usb_device_id blacklist_table[] = { ...@@ -271,6 +273,7 @@ static const struct usb_device_id blacklist_table[] = {
{ USB_DEVICE(0x0489, 0xe09f), .driver_info = BTUSB_QCA_ROME }, { USB_DEVICE(0x0489, 0xe09f), .driver_info = BTUSB_QCA_ROME },
{ USB_DEVICE(0x0489, 0xe0a2), .driver_info = BTUSB_QCA_ROME }, { USB_DEVICE(0x0489, 0xe0a2), .driver_info = BTUSB_QCA_ROME },
{ USB_DEVICE(0x04ca, 0x3011), .driver_info = BTUSB_QCA_ROME }, { USB_DEVICE(0x04ca, 0x3011), .driver_info = BTUSB_QCA_ROME },
{ USB_DEVICE(0x04ca, 0x3015), .driver_info = BTUSB_QCA_ROME },
{ USB_DEVICE(0x04ca, 0x3016), .driver_info = BTUSB_QCA_ROME }, { USB_DEVICE(0x04ca, 0x3016), .driver_info = BTUSB_QCA_ROME },
/* Broadcom BCM2035 */ /* Broadcom BCM2035 */
...@@ -388,9 +391,8 @@ static const struct usb_device_id blacklist_table[] = { ...@@ -388,9 +391,8 @@ static const struct usb_device_id blacklist_table[] = {
#define BTUSB_FIRMWARE_LOADED 7 #define BTUSB_FIRMWARE_LOADED 7
#define BTUSB_FIRMWARE_FAILED 8 #define BTUSB_FIRMWARE_FAILED 8
#define BTUSB_BOOTING 9 #define BTUSB_BOOTING 9
#define BTUSB_RESET_RESUME 10 #define BTUSB_DIAG_RUNNING 10
#define BTUSB_DIAG_RUNNING 11 #define BTUSB_OOB_WAKE_ENABLED 11
#define BTUSB_OOB_WAKE_ENABLED 12
struct btusb_data { struct btusb_data {
struct hci_dev *hdev; struct hci_dev *hdev;
...@@ -3121,9 +3123,9 @@ static int btusb_probe(struct usb_interface *intf, ...@@ -3121,9 +3123,9 @@ static int btusb_probe(struct usb_interface *intf,
/* QCA Rome devices lose their updated firmware over suspend, /* QCA Rome devices lose their updated firmware over suspend,
* but the USB hub doesn't notice any status change. * but the USB hub doesn't notice any status change.
* Explicitly request a device reset on resume. * explicitly request a device reset on resume.
*/ */
set_bit(BTUSB_RESET_RESUME, &data->flags); interface_to_usbdev(intf)->quirks |= USB_QUIRK_RESET_RESUME;
} }
#ifdef CONFIG_BT_HCIBTUSB_RTL #ifdef CONFIG_BT_HCIBTUSB_RTL
...@@ -3134,7 +3136,7 @@ static int btusb_probe(struct usb_interface *intf, ...@@ -3134,7 +3136,7 @@ static int btusb_probe(struct usb_interface *intf,
* but the USB hub doesn't notice any status change. * but the USB hub doesn't notice any status change.
* Explicitly request a device reset on resume. * Explicitly request a device reset on resume.
*/ */
set_bit(BTUSB_RESET_RESUME, &data->flags); interface_to_usbdev(intf)->quirks |= USB_QUIRK_RESET_RESUME;
} }
#endif #endif
...@@ -3303,14 +3305,6 @@ static int btusb_suspend(struct usb_interface *intf, pm_message_t message) ...@@ -3303,14 +3305,6 @@ static int btusb_suspend(struct usb_interface *intf, pm_message_t message)
enable_irq(data->oob_wake_irq); enable_irq(data->oob_wake_irq);
} }
/* Optionally request a device reset on resume, but only when
* wakeups are disabled. If wakeups are enabled we assume the
* device will stay powered up throughout suspend.
*/
if (test_bit(BTUSB_RESET_RESUME, &data->flags) &&
!device_may_wakeup(&data->udev->dev))
data->udev->reset_resume = 1;
return 0; return 0;
} }
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment