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

Commit 22e02a02 authored by John W. Linville's avatar John W. Linville
Browse files

Merge branch 'master' of...

Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
parents b00589af 11a45820
Loading
Loading
Loading
Loading
+10 −2
Original line number Original line Diff line number Diff line
@@ -1406,7 +1406,7 @@ ATHEROS ATH6KL WIRELESS DRIVER
M:	Kalle Valo <kvalo@qca.qualcomm.com>
M:	Kalle Valo <kvalo@qca.qualcomm.com>
L:	linux-wireless@vger.kernel.org
L:	linux-wireless@vger.kernel.org
W:	http://wireless.kernel.org/en/users/Drivers/ath6kl
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
S:	Supported
F:	drivers/net/wireless/ath/ath6kl/
F:	drivers/net/wireless/ath/ath6kl/


@@ -6726,6 +6726,14 @@ T: git git://linuxtv.org/anttip/media_tree.git
S:	Maintained
S:	Maintained
F:	drivers/media/tuners/qt1010*
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
QUALCOMM HEXAGON ARCHITECTURE
M:	Richard Kuo <rkuo@codeaurora.org>
M:	Richard Kuo <rkuo@codeaurora.org>
L:	linux-hexagon@vger.kernel.org
L:	linux-hexagon@vger.kernel.org
@@ -8270,7 +8278,7 @@ S: Maintained
F:	sound/soc/codecs/twl4030*
F:	sound/soc/codecs/twl4030*


TI WILINK WIRELESS DRIVERS
TI WILINK WIRELESS DRIVERS
M:	Luciano Coelho <coelho@ti.com>
M:	Luciano Coelho <luca@coelho.fi>
L:	linux-wireless@vger.kernel.org
L:	linux-wireless@vger.kernel.org
W:	http://wireless.kernel.org/en/users/Drivers/wl12xx
W:	http://wireless.kernel.org/en/users/Drivers/wl12xx
W:	http://wireless.kernel.org/en/users/Drivers/wl1251
W:	http://wireless.kernel.org/en/users/Drivers/wl1251
+37 −9
Original line number Original line Diff line number Diff line
@@ -91,6 +91,10 @@ static struct usb_device_id ath3k_table[] = {
	{ USB_DEVICE(0x0489, 0xe04e) },
	{ USB_DEVICE(0x0489, 0xe04e) },
	{ USB_DEVICE(0x0489, 0xe056) },
	{ USB_DEVICE(0x0489, 0xe056) },
	{ USB_DEVICE(0x0489, 0xe04d) },
	{ 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 */
	/* Atheros AR5BBU12 with sflash firmware */
	{ USB_DEVICE(0x0489, 0xE02C) },
	{ 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, 0xe04e), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xe056), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xe056), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xe04d), .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 */
	/* Atheros AR5BBU22 with sflash firmware */
	{ USB_DEVICE(0x0489, 0xE03C), .driver_info = BTUSB_ATH3012 },
	{ 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)
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);
	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,
			      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,
static int ath3k_get_version(struct usb_device *udev,
			struct ath3k_version *version)
			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);
	pipe = usb_rcvctrlpipe(udev, 0);
	return usb_control_msg(udev, pipe, ATH3K_GETVERSION,
	ret = usb_control_msg(udev, pipe, ATH3K_GETVERSION,
			USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, version,
			      USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,
			sizeof(struct ath3k_version),
			      buf, size, USB_CTRL_SET_TIMEOUT);
			USB_CTRL_SET_TIMEOUT);

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

	return ret;
}
}


static int ath3k_load_fwfile(struct usb_device *udev,
static int ath3k_load_fwfile(struct usb_device *udev,
+11 −7
Original line number Original line 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, 0xe04e), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xe056), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xe056), .driver_info = BTUSB_ATH3012 },
	{ USB_DEVICE(0x0489, 0xe04d), .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 */
	/* Atheros AR5BBU12 with sflash firmware */
	{ USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },
	{ 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)) {
	if (IS_ERR(skb)) {
		BT_ERR("%s sending Intel patch command (0x%4.4x) failed (%ld)",
		BT_ERR("%s sending Intel patch command (0x%4.4x) failed (%ld)",
		       hdev->name, cmd->opcode, PTR_ERR(skb));
		       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
	/* 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)) {
	if (IS_ERR(skb)) {
		BT_ERR("%s sending initial HCI reset command failed (%ld)",
		BT_ERR("%s sending initial HCI reset command failed (%ld)",
		       hdev->name, PTR_ERR(skb));
		       hdev->name, PTR_ERR(skb));
		return -PTR_ERR(skb);
		return PTR_ERR(skb);
	}
	}
	kfree_skb(skb);
	kfree_skb(skb);


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


	if (skb->len != sizeof(*ver)) {
	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)",
		BT_ERR("%s entering Intel manufacturer mode failed (%ld)",
		       hdev->name, PTR_ERR(skb));
		       hdev->name, PTR_ERR(skb));
		release_firmware(fw);
		release_firmware(fw);
		return -PTR_ERR(skb);
		return PTR_ERR(skb);
	}
	}


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


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


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


+1 −1
Original line number Original line Diff line number Diff line
config ATH10K
config ATH10K
        tristate "Atheros 802.11ac wireless cards support"
        tristate "Atheros 802.11ac wireless cards support"
        depends on MAC80211
        depends on MAC80211 && HAS_DMA
	select ATH_COMMON
	select ATH_COMMON
        ---help---
        ---help---
          This module adds support for wireless adapters based on
          This module adds support for wireless adapters based on
+4 −1
Original line number Original line 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 ");
		brcmf_dbg(INFO, "Call WLC_DISASSOC to stop excess roaming\n ");
		err = brcmf_fil_cmd_data_set(vif->ifp,
		err = brcmf_fil_cmd_data_set(vif->ifp,
					     BRCMF_C_DISASSOC, NULL, 0);
					     BRCMF_C_DISASSOC, NULL, 0);
		if (err)
		if (err) {
			brcmf_err("WLC_DISASSOC failed (%d)\n", 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_CONNECTED, &vif->sme_state);
	}
	}
	clear_bit(BRCMF_VIF_STATUS_CONNECTING, &vif->sme_state);
	clear_bit(BRCMF_VIF_STATUS_CONNECTING, &vif->sme_state);
Loading