Search Linux Wireless

[PATCH 1/3] compat-drivers: Update pending stable patches.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Bala Shanmugam <bkamatch@xxxxxxxxxxxxxxxx>
---
 ...h-mgmt-Fix-enabling-SSP-while-powered-off.patch |  43 -----
 ...th-mgmt-Fix-enabling-LE-while-powered-off.patch |  46 -----
 ...h-Fix-not-removing-power_off-delayed-work.patch |  76 --------
 ...x-possible-circular-lock-on-reg_regdb_sea.patch | 129 -------------
 ...-t-double-free-the-interrupt-in-failure-p.patch |  33 ----
 ...gmt-Implement-support-for-passkey-notific.patch | 214 ---------------------
 ...ooth-Update-management-interface-revision.patch |  36 ----
 ...dd-USB_VENDOR_AND_INTERFACE_INFO-for-Broa.patch |  31 ---
 .../0009-ath9k-Disable-ASPM-only-for-AR9285.patch  |  38 ----
 9 files changed, 646 deletions(-)
 delete mode 100644 pending-stable/0001-Bluetooth-mgmt-Fix-enabling-SSP-while-powered-off.patch
 delete mode 100644 pending-stable/0002-Bluetooth-mgmt-Fix-enabling-LE-while-powered-off.patch
 delete mode 100644 pending-stable/0003-Bluetooth-Fix-not-removing-power_off-delayed-work.patch
 delete mode 100644 pending-stable/0004-cfg80211-fix-possible-circular-lock-on-reg_regdb_sea.patch
 delete mode 100644 pending-stable/0005-iwlwifi-don-t-double-free-the-interrupt-in-failure-p.patch
 delete mode 100644 pending-stable/0006-Bluetooth-mgmt-Implement-support-for-passkey-notific.patch
 delete mode 100644 pending-stable/0007-Bluetooth-Update-management-interface-revision.patch
 delete mode 100644 pending-stable/0008-Bluetooth-Add-USB_VENDOR_AND_INTERFACE_INFO-for-Broa.patch
 delete mode 100644 pending-stable/0009-ath9k-Disable-ASPM-only-for-AR9285.patch

diff --git a/pending-stable/0001-Bluetooth-mgmt-Fix-enabling-SSP-while-powered-off.patch b/pending-stable/0001-Bluetooth-mgmt-Fix-enabling-SSP-while-powered-off.patch
deleted file mode 100644
index 636229e..0000000
--- a/pending-stable/0001-Bluetooth-mgmt-Fix-enabling-SSP-while-powered-off.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 3d1cbdd6aefff711bcf389fdabc4af9bc22e8201 Mon Sep 17 00:00:00 2001
-From: Andrzej Kaczmarek <andrzej.kaczmarek@xxxxxxxxx>
-Date: Wed, 29 Aug 2012 10:02:08 +0200
-Subject: [PATCH 1/9] Bluetooth: mgmt: Fix enabling SSP while powered off
-
-When new BT USB adapter is plugged in it's configured while still being powered
-off (HCI_AUTO_OFF flag is set), thus Set SSP will only set dev_flags but won't
-write changes to controller. As a result remote devices won't use Secure Simple
-Pairing with our device due to SSP Host Support flag disabled in extended
-features and may also reject SSP attempt from our side (with possible fallback
-to legacy pairing).
-
-This patch ensures HCI Write Simple Pairing Mode is sent when Set Powered is
-called to power on controller and clear HCI_AUTO_OFF flag.
-
-Signed-off-by: Andrzej Kaczmarek <andrzej.kaczmarek@xxxxxxxxx>
-Cc: stable@xxxxxxxxxxxxxxx
-Acked-by: Johan Hedberg <johan.hedberg@xxxxxxxxx>
-Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
----
- net/bluetooth/mgmt.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
-index ad6613d..f943bbf 100644
---- a/net/bluetooth/mgmt.c
-+++ b/net/bluetooth/mgmt.c
-@@ -2875,6 +2875,12 @@ int mgmt_powered(struct hci_dev *hdev, u8 powered)
- 		if (scan)
- 			hci_send_cmd(hdev, HCI_OP_WRITE_SCAN_ENABLE, 1, &scan);
- 
-+		if (test_bit(HCI_SSP_ENABLED, &hdev->dev_flags)) {
-+			u8 ssp = 1;
-+
-+			hci_send_cmd(hdev, HCI_OP_WRITE_SSP_MODE, 1, &ssp);
-+		}
-+
- 		update_class(hdev);
- 		update_name(hdev, hdev->dev_name);
- 		update_eir(hdev);
--- 
-1.7.12.1
-
diff --git a/pending-stable/0002-Bluetooth-mgmt-Fix-enabling-LE-while-powered-off.patch b/pending-stable/0002-Bluetooth-mgmt-Fix-enabling-LE-while-powered-off.patch
deleted file mode 100644
index 9c66eee..0000000
--- a/pending-stable/0002-Bluetooth-mgmt-Fix-enabling-LE-while-powered-off.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 562fcc246ebe31ade6e1be08585673b9b2785498 Mon Sep 17 00:00:00 2001
-From: Andrzej Kaczmarek <andrzej.kaczmarek@xxxxxxxxx>
-Date: Wed, 29 Aug 2012 10:02:09 +0200
-Subject: [PATCH 2/9] Bluetooth: mgmt: Fix enabling LE while powered off
-
-When new BT USB adapter is plugged in it's configured while still being powered
-off (HCI_AUTO_OFF flag is set), thus Set LE will only set dev_flags but won't
-write changes to controller. As a result it's not possible to start device
-discovery session on LE controller as it uses interleaved discovery which
-requires LE Supported Host flag in extended features.
-
-This patch ensures HCI Write LE Host Supported is sent when Set Powered is
-called to power on controller and clear HCI_AUTO_OFF flag.
-
-Signed-off-by: Andrzej Kaczmarek <andrzej.kaczmarek@xxxxxxxxx>
-Cc: stable@xxxxxxxxxxxxxxx
-Acked-by: Johan Hedberg <johan.hedberg@xxxxxxxxx>
-Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
----
- net/bluetooth/mgmt.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
-index f943bbf..eba022d 100644
---- a/net/bluetooth/mgmt.c
-+++ b/net/bluetooth/mgmt.c
-@@ -2881,6 +2881,16 @@ int mgmt_powered(struct hci_dev *hdev, u8 powered)
- 			hci_send_cmd(hdev, HCI_OP_WRITE_SSP_MODE, 1, &ssp);
- 		}
- 
-+		if (test_bit(HCI_LE_ENABLED, &hdev->dev_flags)) {
-+			struct hci_cp_write_le_host_supported cp;
-+
-+			cp.le = 1;
-+			cp.simul = !!(hdev->features[6] & LMP_SIMUL_LE_BR);
-+
-+			hci_send_cmd(hdev, HCI_OP_WRITE_LE_HOST_SUPPORTED,
-+				     sizeof(cp), &cp);
-+		}
-+
- 		update_class(hdev);
- 		update_name(hdev, hdev->dev_name);
- 		update_eir(hdev);
--- 
-1.7.12.1
-
diff --git a/pending-stable/0003-Bluetooth-Fix-not-removing-power_off-delayed-work.patch b/pending-stable/0003-Bluetooth-Fix-not-removing-power_off-delayed-work.patch
deleted file mode 100644
index 3171104..0000000
--- a/pending-stable/0003-Bluetooth-Fix-not-removing-power_off-delayed-work.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 78c04c0bf52360dc2f7185e99c8e9aa05d73ae5a Mon Sep 17 00:00:00 2001
-From: Vinicius Costa Gomes <vinicius.gomes@xxxxxxxxxxxxx>
-Date: Fri, 14 Sep 2012 16:34:46 -0300
-Subject: [PATCH 3/9] Bluetooth: Fix not removing power_off delayed work
-
-For example, when a usb reset is received (I could reproduce it
-running something very similar to this[1] in a loop) it could be
-that the device is unregistered while the power_off delayed work
-is still scheduled to run.
-
-Backtrace:
-
-WARNING: at lib/debugobjects.c:261 debug_print_object+0x7c/0x8d()
-Hardware name: To Be Filled By O.E.M.
-ODEBUG: free active (active state 0) object type: timer_list hint: delayed_work_timer_fn+0x0/0x26
-Modules linked in: nouveau mxm_wmi btusb wmi bluetooth ttm coretemp drm_kms_helper
-Pid: 2114, comm: usb-reset Not tainted 3.5.0bt-next #2
-Call Trace:
- [<ffffffff8124cc00>] ? free_obj_work+0x57/0x91
- [<ffffffff81058f88>] warn_slowpath_common+0x7e/0x97
- [<ffffffff81059035>] warn_slowpath_fmt+0x41/0x43
- [<ffffffff8124ccb6>] debug_print_object+0x7c/0x8d
- [<ffffffff8106e3ec>] ? __queue_work+0x259/0x259
- [<ffffffff8124d63e>] ? debug_check_no_obj_freed+0x6f/0x1b5
- [<ffffffff8124d667>] debug_check_no_obj_freed+0x98/0x1b5
- [<ffffffffa00aa031>] ? bt_host_release+0x10/0x1e [bluetooth]
- [<ffffffff810fc035>] kfree+0x90/0xe6
- [<ffffffffa00aa031>] bt_host_release+0x10/0x1e [bluetooth]
- [<ffffffff812ec2f9>] device_release+0x4a/0x7e
- [<ffffffff8123ef57>] kobject_release+0x11d/0x154
- [<ffffffff8123ed98>] kobject_put+0x4a/0x4f
- [<ffffffff812ec0d9>] put_device+0x12/0x14
- [<ffffffffa009472b>] hci_free_dev+0x22/0x26 [bluetooth]
- [<ffffffffa0280dd0>] btusb_disconnect+0x96/0x9f [btusb]
- [<ffffffff813581b4>] usb_unbind_interface+0x57/0x106
- [<ffffffff812ef988>] __device_release_driver+0x83/0xd6
- [<ffffffff812ef9fb>] device_release_driver+0x20/0x2d
- [<ffffffff813582a7>] usb_driver_release_interface+0x44/0x7b
- [<ffffffff81358795>] usb_forced_unbind_intf+0x45/0x4e
- [<ffffffff8134f959>] usb_reset_device+0xa6/0x12e
- [<ffffffff8135df86>] usbdev_do_ioctl+0x319/0xe20
- [<ffffffff81203244>] ? avc_has_perm_flags+0xc9/0x12e
- [<ffffffff812031a0>] ? avc_has_perm_flags+0x25/0x12e
- [<ffffffff81050101>] ? do_page_fault+0x31e/0x3a1
- [<ffffffff8135eaa6>] usbdev_ioctl+0x9/0xd
- [<ffffffff811126b1>] vfs_ioctl+0x21/0x34
- [<ffffffff81112f7b>] do_vfs_ioctl+0x408/0x44b
- [<ffffffff81208d45>] ? file_has_perm+0x76/0x81
- [<ffffffff8111300f>] sys_ioctl+0x51/0x76
- [<ffffffff8158db22>] system_call_fastpath+0x16/0x1b
-
-[1] http://cpansearch.perl.org/src/DPAVLIN/Biblio-RFID-0.03/examples/usbreset.c
-
-Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@xxxxxxxxxxxxx>
-Cc: stable@xxxxxxxxxxxxxxx
-Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
----
- net/bluetooth/hci_core.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
-index d4de5db..0b997c8 100644
---- a/net/bluetooth/hci_core.c
-+++ b/net/bluetooth/hci_core.c
-@@ -734,6 +734,8 @@ static int hci_dev_do_close(struct hci_dev *hdev)
- 
- 	cancel_work_sync(&hdev->le_scan);
- 
-+	cancel_delayed_work(&hdev->power_off);
-+
- 	hci_req_cancel(hdev, ENODEV);
- 	hci_req_lock(hdev);
- 
--- 
-1.7.12.1
-
diff --git a/pending-stable/0004-cfg80211-fix-possible-circular-lock-on-reg_regdb_sea.patch b/pending-stable/0004-cfg80211-fix-possible-circular-lock-on-reg_regdb_sea.patch
deleted file mode 100644
index 59c05fc..0000000
--- a/pending-stable/0004-cfg80211-fix-possible-circular-lock-on-reg_regdb_sea.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From a85d0d7f3460b1a123b78e7f7e39bf72c37dfb78 Mon Sep 17 00:00:00 2001
-From: "Luis R. Rodriguez" <mcgrof@xxxxxxxxxxxxxxxx>
-Date: Fri, 14 Sep 2012 15:36:57 -0700
-Subject: [PATCH 4/9] cfg80211: fix possible circular lock on
- reg_regdb_search()
-
-When call_crda() is called we kick off a witch hunt search
-for the same regulatory domain on our internal regulatory
-database and that work gets kicked off on a workqueue, this
-is done while the cfg80211_mutex is held. If that workqueue
-kicks off it will first lock reg_regdb_search_mutex and
-later cfg80211_mutex but to ensure two CPUs will not contend
-against cfg80211_mutex the right thing to do is to have the
-reg_regdb_search() wait until the cfg80211_mutex is let go.
-
-The lockdep report is pasted below.
-
-cfg80211: Calling CRDA to update world regulatory domain
-
-======================================================
-[ INFO: possible circular locking dependency detected ]
-3.3.8 #3 Tainted: G           O
--------------------------------------------------------
-kworker/0:1/235 is trying to acquire lock:
- (cfg80211_mutex){+.+...}, at: [<816468a4>] set_regdom+0x78c/0x808 [cfg80211]
-
-but task is already holding lock:
- (reg_regdb_search_mutex){+.+...}, at: [<81646828>] set_regdom+0x710/0x808 [cfg80211]
-
-which lock already depends on the new lock.
-
-the existing dependency chain (in reverse order) is:
-
--> #2 (reg_regdb_search_mutex){+.+...}:
-       [<800a8384>] lock_acquire+0x60/0x88
-       [<802950a8>] mutex_lock_nested+0x54/0x31c
-       [<81645778>] is_world_regdom+0x9f8/0xc74 [cfg80211]
-
--> #1 (reg_mutex#2){+.+...}:
-       [<800a8384>] lock_acquire+0x60/0x88
-       [<802950a8>] mutex_lock_nested+0x54/0x31c
-       [<8164539c>] is_world_regdom+0x61c/0xc74 [cfg80211]
-
--> #0 (cfg80211_mutex){+.+...}:
-       [<800a77b8>] __lock_acquire+0x10d4/0x17bc
-       [<800a8384>] lock_acquire+0x60/0x88
-       [<802950a8>] mutex_lock_nested+0x54/0x31c
-       [<816468a4>] set_regdom+0x78c/0x808 [cfg80211]
-
-other info that might help us debug this:
-
-Chain exists of:
-  cfg80211_mutex --> reg_mutex#2 --> reg_regdb_search_mutex
-
- Possible unsafe locking scenario:
-
-       CPU0                    CPU1
-       ----                    ----
-  lock(reg_regdb_search_mutex);
-                               lock(reg_mutex#2);
-                               lock(reg_regdb_search_mutex);
-  lock(cfg80211_mutex);
-
- *** DEADLOCK ***
-
-3 locks held by kworker/0:1/235:
- #0:  (events){.+.+..}, at: [<80089a00>] process_one_work+0x230/0x460
- #1:  (reg_regdb_work){+.+...}, at: [<80089a00>] process_one_work+0x230/0x460
- #2:  (reg_regdb_search_mutex){+.+...}, at: [<81646828>] set_regdom+0x710/0x808 [cfg80211]
-
-stack backtrace:
-Call Trace:
-[<80290fd4>] dump_stack+0x8/0x34
-[<80291bc4>] print_circular_bug+0x2ac/0x2d8
-[<800a77b8>] __lock_acquire+0x10d4/0x17bc
-[<800a8384>] lock_acquire+0x60/0x88
-[<802950a8>] mutex_lock_nested+0x54/0x31c
-[<816468a4>] set_regdom+0x78c/0x808 [cfg80211]
-
-Reported-by: Felix Fietkau <nbd@xxxxxxxxxxx>
-Tested-by: Felix Fietkau <nbd@xxxxxxxxxxx>
-Cc: stable@xxxxxxxxxxxxxxx
-Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxxxxxxxxxx>
-Reviewed-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>
-Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx>
----
- net/wireless/reg.c | 12 +++++++++---
- 1 file changed, 9 insertions(+), 3 deletions(-)
-
-diff --git a/net/wireless/reg.c b/net/wireless/reg.c
-index 2ded3c7..72d170c 100644
---- a/net/wireless/reg.c
-+++ b/net/wireless/reg.c
-@@ -350,6 +350,9 @@ static void reg_regdb_search(struct work_struct *work)
- 	struct reg_regdb_search_request *request;
- 	const struct ieee80211_regdomain *curdom, *regdom;
- 	int i, r;
-+	bool set_reg = false;
-+
-+	mutex_lock(&cfg80211_mutex);
- 
- 	mutex_lock(&reg_regdb_search_mutex);
- 	while (!list_empty(&reg_regdb_search_list)) {
-@@ -365,9 +368,7 @@ static void reg_regdb_search(struct work_struct *work)
- 				r = reg_copy_regd(&regdom, curdom);
- 				if (r)
- 					break;
--				mutex_lock(&cfg80211_mutex);
--				set_regdom(regdom);
--				mutex_unlock(&cfg80211_mutex);
-+				set_reg = true;
- 				break;
- 			}
- 		}
-@@ -375,6 +376,11 @@ static void reg_regdb_search(struct work_struct *work)
- 		kfree(request);
- 	}
- 	mutex_unlock(&reg_regdb_search_mutex);
-+
-+	if (set_reg)
-+		set_regdom(regdom);
-+
-+	mutex_unlock(&cfg80211_mutex);
- }
- 
- static DECLARE_WORK(reg_regdb_work, reg_regdb_search);
--- 
-1.7.12.1
-
diff --git a/pending-stable/0005-iwlwifi-don-t-double-free-the-interrupt-in-failure-p.patch b/pending-stable/0005-iwlwifi-don-t-double-free-the-interrupt-in-failure-p.patch
deleted file mode 100644
index 16bad35..0000000
--- a/pending-stable/0005-iwlwifi-don-t-double-free-the-interrupt-in-failure-p.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From a7be50b7e30f9d77cb059a7ffdb781bb0fb92eba Mon Sep 17 00:00:00 2001
-From: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
-Date: Tue, 18 Sep 2012 19:48:59 +0200
-Subject: [PATCH 5/9] iwlwifi: don't double free the interrupt in failure path
-
-When the driver can't get the HW ready, we would release
-the interrupt twice which made the kernel complain loudly.
-
-Cc: stable@xxxxxxxxxxxxxxx
-Reported-by: Brian Cockrell <brian.cockrell@xxxxxxxxx>
-Tested-by: Brian Cockrell <brian.cockrell@xxxxxxxxx>
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
-Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
-Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx>
----
- drivers/net/wireless/iwlwifi/pcie/trans.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c
-index 1e86ea2..dbeebef 100644
---- a/drivers/net/wireless/iwlwifi/pcie/trans.c
-+++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
-@@ -1442,6 +1442,7 @@ static int iwl_trans_pcie_start_hw(struct iwl_trans *trans)
- 	return err;
- 
- err_free_irq:
-+	trans_pcie->irq_requested = false;
- 	free_irq(trans_pcie->irq, trans);
- error:
- 	iwl_free_isr_ict(trans);
--- 
-1.7.12.1
-
diff --git a/pending-stable/0006-Bluetooth-mgmt-Implement-support-for-passkey-notific.patch b/pending-stable/0006-Bluetooth-mgmt-Implement-support-for-passkey-notific.patch
deleted file mode 100644
index 3d6b330..0000000
--- a/pending-stable/0006-Bluetooth-mgmt-Implement-support-for-passkey-notific.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-From 92a25256f142d55e25f9959441cea6ddeabae57e Mon Sep 17 00:00:00 2001
-From: Johan Hedberg <johan.hedberg@xxxxxxxxx>
-Date: Thu, 6 Sep 2012 18:39:26 +0300
-Subject: [PATCH 6/9] Bluetooth: mgmt: Implement support for passkey
- notification
-
-This patch adds support for Secure Simple Pairing with devices that have
-KeyboardOnly as their IO capability. Such devices will cause a passkey
-notification on our side and optionally also keypress notifications.
-Without this patch some keyboards cannot be paired using the mgmt
-interface.
-
-Signed-off-by: Johan Hedberg <johan.hedberg@xxxxxxxxx>
-Cc: stable@xxxxxxxxxxxxxxx
-Acked-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
-Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
----
- include/net/bluetooth/hci.h      | 18 +++++++++++
- include/net/bluetooth/hci_core.h |  5 +++
- include/net/bluetooth/mgmt.h     |  7 +++++
- net/bluetooth/hci_event.c        | 67 ++++++++++++++++++++++++++++++++++++++++
- net/bluetooth/mgmt.c             | 17 ++++++++++
- 5 files changed, 114 insertions(+)
-
-diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
-index 0f28f70..76b2b6b 100644
---- a/include/net/bluetooth/hci.h
-+++ b/include/net/bluetooth/hci.h
-@@ -1249,6 +1249,24 @@ struct hci_ev_simple_pair_complete {
- 	bdaddr_t bdaddr;
- } __packed;
- 
-+#define HCI_EV_USER_PASSKEY_NOTIFY	0x3b
-+struct hci_ev_user_passkey_notify {
-+	bdaddr_t	bdaddr;
-+	__le32		passkey;
-+} __packed;
-+
-+#define HCI_KEYPRESS_STARTED		0
-+#define HCI_KEYPRESS_ENTERED		1
-+#define HCI_KEYPRESS_ERASED		2
-+#define HCI_KEYPRESS_CLEARED		3
-+#define HCI_KEYPRESS_COMPLETED		4
-+
-+#define HCI_EV_KEYPRESS_NOTIFY		0x3c
-+struct hci_ev_keypress_notify {
-+	bdaddr_t	bdaddr;
-+	__u8		type;
-+} __packed;
-+
- #define HCI_EV_REMOTE_HOST_FEATURES	0x3d
- struct hci_ev_remote_host_features {
- 	bdaddr_t bdaddr;
-diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
-index 6a3337e..e7d4546 100644
---- a/include/net/bluetooth/hci_core.h
-+++ b/include/net/bluetooth/hci_core.h
-@@ -303,6 +303,8 @@ struct hci_conn {
- 	__u8		pin_length;
- 	__u8		enc_key_size;
- 	__u8		io_capability;
-+	__u32		passkey_notify;
-+	__u8		passkey_entered;
- 	__u16		disc_timeout;
- 	unsigned long	flags;
- 
-@@ -1022,6 +1024,9 @@ int mgmt_user_passkey_reply_complete(struct hci_dev *hdev, bdaddr_t *bdaddr,
- 				     u8 link_type, u8 addr_type, u8 status);
- int mgmt_user_passkey_neg_reply_complete(struct hci_dev *hdev, bdaddr_t *bdaddr,
- 					 u8 link_type, u8 addr_type, u8 status);
-+int mgmt_user_passkey_notify(struct hci_dev *hdev, bdaddr_t *bdaddr,
-+			     u8 link_type, u8 addr_type, u32 passkey,
-+			     u8 entered);
- int mgmt_auth_failed(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
- 		     u8 addr_type, u8 status);
- int mgmt_auth_enable_complete(struct hci_dev *hdev, u8 status);
-diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h
-index 1b48eff..22980a7 100644
---- a/include/net/bluetooth/mgmt.h
-+++ b/include/net/bluetooth/mgmt.h
-@@ -478,3 +478,10 @@ struct mgmt_ev_device_unblocked {
- struct mgmt_ev_device_unpaired {
- 	struct mgmt_addr_info addr;
- } __packed;
-+
-+#define MGMT_EV_PASSKEY_NOTIFY		0x0017
-+struct mgmt_ev_passkey_notify {
-+	struct mgmt_addr_info addr;
-+	__le32	passkey;
-+	__u8	entered;
-+} __packed;
-diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
-index 48d7302..ccca88f 100644
---- a/net/bluetooth/hci_event.c
-+++ b/net/bluetooth/hci_event.c
-@@ -3263,6 +3263,65 @@ static void hci_user_passkey_request_evt(struct hci_dev *hdev,
- 		mgmt_user_passkey_request(hdev, &ev->bdaddr, ACL_LINK, 0);
- }
- 
-+static void hci_user_passkey_notify_evt(struct hci_dev *hdev,
-+					struct sk_buff *skb)
-+{
-+	struct hci_ev_user_passkey_notify *ev = (void *) skb->data;
-+	struct hci_conn *conn;
-+
-+	BT_DBG("%s", hdev->name);
-+
-+	conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
-+	if (!conn)
-+		return;
-+
-+	conn->passkey_notify = __le32_to_cpu(ev->passkey);
-+	conn->passkey_entered = 0;
-+
-+	if (test_bit(HCI_MGMT, &hdev->dev_flags))
-+		mgmt_user_passkey_notify(hdev, &conn->dst, conn->type,
-+					 conn->dst_type, conn->passkey_notify,
-+					 conn->passkey_entered);
-+}
-+
-+static void hci_keypress_notify_evt(struct hci_dev *hdev, struct sk_buff *skb)
-+{
-+	struct hci_ev_keypress_notify *ev = (void *) skb->data;
-+	struct hci_conn *conn;
-+
-+	BT_DBG("%s", hdev->name);
-+
-+	conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
-+	if (!conn)
-+		return;
-+
-+	switch (ev->type) {
-+	case HCI_KEYPRESS_STARTED:
-+		conn->passkey_entered = 0;
-+		return;
-+
-+	case HCI_KEYPRESS_ENTERED:
-+		conn->passkey_entered++;
-+		break;
-+
-+	case HCI_KEYPRESS_ERASED:
-+		conn->passkey_entered--;
-+		break;
-+
-+	case HCI_KEYPRESS_CLEARED:
-+		conn->passkey_entered = 0;
-+		break;
-+
-+	case HCI_KEYPRESS_COMPLETED:
-+		return;
-+	}
-+
-+	if (test_bit(HCI_MGMT, &hdev->dev_flags))
-+		mgmt_user_passkey_notify(hdev, &conn->dst, conn->type,
-+					 conn->dst_type, conn->passkey_notify,
-+					 conn->passkey_entered);
-+}
-+
- static void hci_simple_pair_complete_evt(struct hci_dev *hdev,
- 					 struct sk_buff *skb)
- {
-@@ -3627,6 +3686,14 @@ void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb)
- 		hci_user_passkey_request_evt(hdev, skb);
- 		break;
- 
-+	case HCI_EV_USER_PASSKEY_NOTIFY:
-+		hci_user_passkey_notify_evt(hdev, skb);
-+		break;
-+
-+	case HCI_EV_KEYPRESS_NOTIFY:
-+		hci_keypress_notify_evt(hdev, skb);
-+		break;
-+
- 	case HCI_EV_SIMPLE_PAIR_COMPLETE:
- 		hci_simple_pair_complete_evt(hdev, skb);
- 		break;
-diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
-index 05d4b83..8e1ab59 100644
---- a/net/bluetooth/mgmt.c
-+++ b/net/bluetooth/mgmt.c
-@@ -99,6 +99,7 @@ static const u16 mgmt_events[] = {
- 	MGMT_EV_DEVICE_BLOCKED,
- 	MGMT_EV_DEVICE_UNBLOCKED,
- 	MGMT_EV_DEVICE_UNPAIRED,
-+	MGMT_EV_PASSKEY_NOTIFY,
- };
- 
- /*
-@@ -3276,6 +3277,22 @@ int mgmt_user_passkey_neg_reply_complete(struct hci_dev *hdev, bdaddr_t *bdaddr,
- 					  MGMT_OP_USER_PASSKEY_NEG_REPLY);
- }
- 
-+int mgmt_user_passkey_notify(struct hci_dev *hdev, bdaddr_t *bdaddr,
-+			     u8 link_type, u8 addr_type, u32 passkey,
-+			     u8 entered)
-+{
-+	struct mgmt_ev_passkey_notify ev;
-+
-+	BT_DBG("%s", hdev->name);
-+
-+	bacpy(&ev.addr.bdaddr, bdaddr);
-+	ev.addr.type = link_to_bdaddr(link_type, addr_type);
-+	ev.passkey = __cpu_to_le32(passkey);
-+	ev.entered = entered;
-+
-+	return mgmt_event(MGMT_EV_PASSKEY_NOTIFY, hdev, &ev, sizeof(ev), NULL);
-+}
-+
- int mgmt_auth_failed(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
- 		     u8 addr_type, u8 status)
- {
--- 
-1.7.12.1
-
diff --git a/pending-stable/0007-Bluetooth-Update-management-interface-revision.patch b/pending-stable/0007-Bluetooth-Update-management-interface-revision.patch
deleted file mode 100644
index c8b9f90..0000000
--- a/pending-stable/0007-Bluetooth-Update-management-interface-revision.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 23b3b1330abc643e1fbb7cfffcb6947e2583cff2 Mon Sep 17 00:00:00 2001
-From: Johan Hedberg <johan.hedberg@xxxxxxxxx>
-Date: Thu, 6 Sep 2012 18:39:27 +0300
-Subject: [PATCH 7/9] Bluetooth: Update management interface revision
-
-For each kernel release where commands or events are added to the
-management interface, the revision field should be increment by one.
-
-The increment should only happen once per kernel release and not
-for every command/event that gets added. The revision value is for
-informational purposes only, but this simple policy would make any
-future debugging a lot simple.
-
-Signed-off-by: Johan Hedberg <johan.hedberg@xxxxxxxxx>
-Cc: stable@xxxxxxxxxxxxxxx
-Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
----
- net/bluetooth/mgmt.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
-index 8e1ab59..8934343 100644
---- a/net/bluetooth/mgmt.c
-+++ b/net/bluetooth/mgmt.c
-@@ -35,7 +35,7 @@
- bool enable_hs;
- 
- #define MGMT_VERSION	1
--#define MGMT_REVISION	1
-+#define MGMT_REVISION	2
- 
- static const u16 mgmt_commands[] = {
- 	MGMT_OP_READ_INDEX_LIST,
--- 
-1.7.12.1
-
diff --git a/pending-stable/0008-Bluetooth-Add-USB_VENDOR_AND_INTERFACE_INFO-for-Broa.patch b/pending-stable/0008-Bluetooth-Add-USB_VENDOR_AND_INTERFACE_INFO-for-Broa.patch
deleted file mode 100644
index 3612b46..0000000
--- a/pending-stable/0008-Bluetooth-Add-USB_VENDOR_AND_INTERFACE_INFO-for-Broa.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From ee66401bb94b1f2ce51089c341dcdd25d26ae631 Mon Sep 17 00:00:00 2001
-From: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
-Date: Wed, 15 Aug 2012 01:38:11 -0300
-Subject: [PATCH 8/9] Bluetooth: Add USB_VENDOR_AND_INTERFACE_INFO() for
- Broadcom/Foxconn
-
-Foxconn devices has a vendor specific class of device, we will match them
-differently now.
-
-Cc: stable@xxxxxxxxxxxxxxx
-Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
----
- drivers/bluetooth/btusb.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index f637c25..f077f4d 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -101,7 +101,7 @@ static struct usb_device_id btusb_table[] = {
- 	{ USB_DEVICE(0x413c, 0x8197) },
- 
- 	/* Foxconn - Hon Hai */
--	{ USB_DEVICE(0x0489, 0xe033) },
-+	{ USB_VENDOR_AND_INTERFACE_INFO(0x0489, 0xff, 0x01, 0x01) },
- 
- 	{ }	/* Terminating entry */
- };
--- 
-1.7.12.1
-
diff --git a/pending-stable/0009-ath9k-Disable-ASPM-only-for-AR9285.patch b/pending-stable/0009-ath9k-Disable-ASPM-only-for-AR9285.patch
deleted file mode 100644
index 86a34ec..0000000
--- a/pending-stable/0009-ath9k-Disable-ASPM-only-for-AR9285.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 046b6802c8d3c8a57448485513bf7291633e0fa3 Mon Sep 17 00:00:00 2001
-From: Sujith Manoharan <c_manoha@xxxxxxxxxxxx>
-Date: Sat, 22 Sep 2012 00:14:28 +0530
-Subject: [PATCH 9/9] ath9k: Disable ASPM only for AR9285
-
-Currently, ASPM is disabled for all WLAN+BT combo chipsets
-when BTCOEX is enabled. This is incorrect since the workaround
-is required only for WB195, which is a AR9285+AR3011 combo
-solution. Fix this by checking for the HW version when enabling
-the workaround.
-
-Cc: stable@xxxxxxxxxxxxxxx
-Signed-off-by: Sujith Manoharan <c_manoha@xxxxxxxxxxxxxxxx>
-Tested-by: Paul Stewart <pstew@xxxxxxxxxxxx>
-Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx>
----
- drivers/net/wireless/ath/ath9k/pci.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c
-index a8f6126..c0c5996 100644
---- a/drivers/net/wireless/ath/ath9k/pci.c
-+++ b/drivers/net/wireless/ath/ath9k/pci.c
-@@ -128,8 +128,9 @@ static void ath_pci_aspm_init(struct ath_common *common)
- 	if (!parent)
- 		return;
- 
--	if (ath9k_hw_get_btcoex_scheme(ah) != ATH_BTCOEX_CFG_NONE) {
--		/* Bluetooth coexistance requires disabling ASPM. */
-+	if ((ath9k_hw_get_btcoex_scheme(ah) != ATH_BTCOEX_CFG_NONE) &&
-+	    (AR_SREV_9285(ah))) {
-+		/* Bluetooth coexistance requires disabling ASPM for AR9285. */
- 		pci_read_config_byte(pdev, pos + PCI_EXP_LNKCTL, &aspm);
- 		aspm &= ~(PCIE_LINK_STATE_L0S | PCIE_LINK_STATE_L1);
- 		pci_write_config_byte(pdev, pos + PCI_EXP_LNKCTL, aspm);
--- 
-1.7.12.1
-
-- 
1.7.11.4

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux