Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1f1059fc authored by David S. Miller's avatar David S. Miller
Browse files


John W. Linville says:

====================
This pull request is intended for the 3.11 stream.  It is a bit
larger than usual, as it includes pulls from most of my feeder trees
as well...

For the Bluetooth bits, Gustavo says:

"A few fixes and devices ID additions for 3.11:

 * There are 4 new ath3k device ids
 * Fixed stack memory usage in ath3k.
 * Fixed the init process of BlueFRITZ! devices, they were failing to init
   due to an unsupported command we sent.
 * Fixed wrong use of PTR_ERR in btusb code that was preventing intel devices
   to work properly.
 * Fixed race condition between hci_register_dev() and hci_dev_open() that
   could cause a NULL pointer dereference.
 * Fixed race condition that could call hci_req_cmd_complete() and make some
   devices to fail as showed in the log added to the commit message."

Regarding the NFC bits, Samuel says:

"We have:

1) A build failure fix for the NCI SPI transport layer due to a
   missing CRC_CCITT Kconfig dependency.

2) A netlink command rename: CMD_FW_UPLOAD was merged during the 3.11
   merge window but the typical terminology for loading a firmware to a
   target is firmware download rather than upload. In order to avoid any
   confusion in a file exported to userspace, we rename this command to
   CMD_FW_DOWNLOAD."

Samuel's item #2 isn't strictly a fix, but it seems safe and should
avoid confusion in the future.

As for the mac80211 bits, Johannes says:

"I only have three fixes this time, a fix for a suspend regression, a
patch correcting the initiator in regulatory code and one fix for mesh
station powersave."

With respect to the iwlwifi bits, Johannes says:

"We have a scan fix for passive channels, a new PCI device ID for an old
device, a NIC reset fix, an RF-Kill fix, a fix for powersave when GO
interfaces are present as well as an aggregation session fix (for a
corner case) and a workaround for a firmware design issue - it only
supports a single GTK in D3."

Bringing-up the rear with the Atheros trees, Kalle says:

"Geert Uytterhoeven fixed an ath10k build problem when NO_DMA=y. I added
a missing MAINTAINERS entry for ath10k and updated ath6kl git tree
location."

Along with the above...

Arend van Spriel fixes a brcmfmac WARNING when unplugging the device.

Avinash Patil proves a couple of minor mwifiex fixes relating to P2P mode.

Luciano Coelho updates the MAINTAINERS entry for the wilink drivers.

Stanislaw Gruszka brings an rt2x00 fix for a queue start/stop problem.

Stone Piao fixes another mwifiex problem, a command timeout related to P2P mode.

Tomasz Moń corrects an endian problem in mwifiex.

I'll remind my feeder maintainers to slowdown the patchflow.
Beyond that, please let me know if there are problems!
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents b00589af 22e02a02
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -1406,7 +1406,7 @@ ATHEROS ATH6KL WIRELESS DRIVER
M:	Kalle Valo <kvalo@qca.qualcomm.com>
L:	linux-wireless@vger.kernel.org
W:	http://wireless.kernel.org/en/users/Drivers/ath6kl
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath6kl.git
T:	git git://github.com/kvalo/ath.git
S:	Supported
F:	drivers/net/wireless/ath/ath6kl/

@@ -6726,6 +6726,14 @@ T: git git://linuxtv.org/anttip/media_tree.git
S:	Maintained
F:	drivers/media/tuners/qt1010*

QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
M:	Kalle Valo <kvalo@qca.qualcomm.com>
L:	ath10k@lists.infradead.org
W:	http://wireless.kernel.org/en/users/Drivers/ath10k
T:	git git://github.com/kvalo/ath.git
S:	Supported
F:	drivers/net/wireless/ath/ath10k/

QUALCOMM HEXAGON ARCHITECTURE
M:	Richard Kuo <rkuo@codeaurora.org>
L:	linux-hexagon@vger.kernel.org
@@ -8270,7 +8278,7 @@ S: Maintained
F:	sound/soc/codecs/twl4030*

TI WILINK WIRELESS DRIVERS
M:	Luciano Coelho <coelho@ti.com>
M:	Luciano Coelho <luca@coelho.fi>
L:	linux-wireless@vger.kernel.org
W:	http://wireless.kernel.org/en/users/Drivers/wl12xx
W:	http://wireless.kernel.org/en/users/Drivers/wl1251
+37 −9
Original line number Diff line number Diff line
@@ -91,6 +91,10 @@ static struct usb_device_id ath3k_table[] = {
	{ USB_DEVICE(0x0489, 0xe04e) },
	{ USB_DEVICE(0x0489, 0xe056) },
	{ USB_DEVICE(0x0489, 0xe04d) },
	{ USB_DEVICE(0x04c5, 0x1330) },
	{ USB_DEVICE(0x13d3, 0x3402) },
	{ USB_DEVICE(0x0cf3, 0x3121) },
	{ USB_DEVICE(0x0cf3, 0xe003) },

	/* Atheros AR5BBU12 with sflash firmware */
	{ USB_DEVICE(0x0489, 0xE02C) },
@@ -128,6 +132,10 @@ static struct usb_device_id ath3k_blist_tbl[] = {
	{ USB_DEVICE(0x0489, 0xe04e), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xe056), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xe04d), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x04c5, 0x1330), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x13d3, 0x3402), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0cf3, 0x3121), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0cf3, 0xe003), .driver_info = BTUSB_ATH3012 },

	/* Atheros AR5BBU22 with sflash firmware */
	{ USB_DEVICE(0x0489, 0xE03C), .driver_info = BTUSB_ATH3012 },
@@ -193,24 +201,44 @@ static int ath3k_load_firmware(struct usb_device *udev,

static int ath3k_get_state(struct usb_device *udev, unsigned char *state)
{
	int pipe = 0;
	int ret, pipe = 0;
	char *buf;

	buf = kmalloc(sizeof(*buf), GFP_KERNEL);
	if (!buf)
		return -ENOMEM;

	pipe = usb_rcvctrlpipe(udev, 0);
	return usb_control_msg(udev, pipe, ATH3K_GETSTATE,
	ret = usb_control_msg(udev, pipe, ATH3K_GETSTATE,
			      USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,
			state, 0x01, USB_CTRL_SET_TIMEOUT);
			      buf, sizeof(*buf), USB_CTRL_SET_TIMEOUT);

	*state = *buf;
	kfree(buf);

	return ret;
}

static int ath3k_get_version(struct usb_device *udev,
			struct ath3k_version *version)
{
	int pipe = 0;
	int ret, pipe = 0;
	struct ath3k_version *buf;
	const int size = sizeof(*buf);

	buf = kmalloc(size, GFP_KERNEL);
	if (!buf)
		return -ENOMEM;

	pipe = usb_rcvctrlpipe(udev, 0);
	return usb_control_msg(udev, pipe, ATH3K_GETVERSION,
			USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, version,
			sizeof(struct ath3k_version),
			USB_CTRL_SET_TIMEOUT);
	ret = usb_control_msg(udev, pipe, ATH3K_GETVERSION,
			      USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,
			      buf, size, USB_CTRL_SET_TIMEOUT);

	memcpy(version, buf, size);
	kfree(buf);

	return ret;
}

static int ath3k_load_fwfile(struct usb_device *udev,
+11 −7
Original line number Diff line number Diff line
@@ -154,6 +154,10 @@ static struct usb_device_id blacklist_table[] = {
	{ USB_DEVICE(0x0489, 0xe04e), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xe056), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xe04d), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x04c5, 0x1330), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x13d3, 0x3402), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0cf3, 0x3121), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0cf3, 0xe003), .driver_info = BTUSB_ATH3012 },

	/* Atheros AR5BBU12 with sflash firmware */
	{ USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },
@@ -1095,7 +1099,7 @@ static int btusb_setup_intel_patching(struct hci_dev *hdev,
	if (IS_ERR(skb)) {
		BT_ERR("%s sending Intel patch command (0x%4.4x) failed (%ld)",
		       hdev->name, cmd->opcode, PTR_ERR(skb));
		return -PTR_ERR(skb);
		return PTR_ERR(skb);
	}

	/* It ensures that the returned event matches the event data read from
@@ -1147,7 +1151,7 @@ static int btusb_setup_intel(struct hci_dev *hdev)
	if (IS_ERR(skb)) {
		BT_ERR("%s sending initial HCI reset command failed (%ld)",
		       hdev->name, PTR_ERR(skb));
		return -PTR_ERR(skb);
		return PTR_ERR(skb);
	}
	kfree_skb(skb);

@@ -1161,7 +1165,7 @@ static int btusb_setup_intel(struct hci_dev *hdev)
	if (IS_ERR(skb)) {
		BT_ERR("%s reading Intel fw version command failed (%ld)",
		       hdev->name, PTR_ERR(skb));
		return -PTR_ERR(skb);
		return PTR_ERR(skb);
	}

	if (skb->len != sizeof(*ver)) {
@@ -1219,7 +1223,7 @@ static int btusb_setup_intel(struct hci_dev *hdev)
		BT_ERR("%s entering Intel manufacturer mode failed (%ld)",
		       hdev->name, PTR_ERR(skb));
		release_firmware(fw);
		return -PTR_ERR(skb);
		return PTR_ERR(skb);
	}

	if (skb->data[0]) {
@@ -1276,7 +1280,7 @@ static int btusb_setup_intel(struct hci_dev *hdev)
	if (IS_ERR(skb)) {
		BT_ERR("%s exiting Intel manufacturer mode failed (%ld)",
		       hdev->name, PTR_ERR(skb));
		return -PTR_ERR(skb);
		return PTR_ERR(skb);
	}
	kfree_skb(skb);

@@ -1292,7 +1296,7 @@ static int btusb_setup_intel(struct hci_dev *hdev)
	if (IS_ERR(skb)) {
		BT_ERR("%s exiting Intel manufacturer mode failed (%ld)",
		       hdev->name, PTR_ERR(skb));
		return -PTR_ERR(skb);
		return PTR_ERR(skb);
	}
	kfree_skb(skb);

@@ -1310,7 +1314,7 @@ static int btusb_setup_intel(struct hci_dev *hdev)
	if (IS_ERR(skb)) {
		BT_ERR("%s exiting Intel manufacturer mode failed (%ld)",
		       hdev->name, PTR_ERR(skb));
		return -PTR_ERR(skb);
		return PTR_ERR(skb);
	}
	kfree_skb(skb);

+1 −1
Original line number Diff line number Diff line
config ATH10K
        tristate "Atheros 802.11ac wireless cards support"
        depends on MAC80211
        depends on MAC80211 && HAS_DMA
	select ATH_COMMON
        ---help---
          This module adds support for wireless adapters based on
+4 −1
Original line number Diff line number Diff line
@@ -1093,8 +1093,11 @@ static void brcmf_link_down(struct brcmf_cfg80211_vif *vif)
		brcmf_dbg(INFO, "Call WLC_DISASSOC to stop excess roaming\n ");
		err = brcmf_fil_cmd_data_set(vif->ifp,
					     BRCMF_C_DISASSOC, NULL, 0);
		if (err)
		if (err) {
			brcmf_err("WLC_DISASSOC failed (%d)\n", err);
			cfg80211_disconnected(vif->wdev.netdev, 0,
					      NULL, 0, GFP_KERNEL);
		}
		clear_bit(BRCMF_VIF_STATUS_CONNECTED, &vif->sme_state);
	}
	clear_bit(BRCMF_VIF_STATUS_CONNECTING, &vif->sme_state);
Loading