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

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

Merge tag 'wireless-drivers-for-davem-2015-11-20' of...

Merge tag 'wireless-drivers-for-davem-2015-11-20' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers



Kalle Valo says:

====================
iwlwifi

* bump API to firmware 19 - not released yet.
* fix D3 flows (Luca)
* new device IDs (Oren)
* fix NULL pointer dereference (Avri)

ath10k

* fix invalid NSS for 4x4 devices
* add QCA9377 hw1.0 support
* fix QCA6174 regression with CE5 usage

wil6210

* new maintainer - Maya Erez

rtlwifi

* rtl8821ae: Fix lockups on boot
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents cf869eb1 eeec5d0e
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -1847,7 +1847,7 @@ S: Supported
F:	drivers/net/wireless/ath/ath6kl/
F:	drivers/net/wireless/ath/ath6kl/


WILOCITY WIL6210 WIRELESS DRIVER
WILOCITY WIL6210 WIRELESS DRIVER
M:	Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
M:	Maya Erez <qca_merez@qca.qualcomm.com>
L:	linux-wireless@vger.kernel.org
L:	linux-wireless@vger.kernel.org
L:	wil6210@qca.qualcomm.com
L:	wil6210@qca.qualcomm.com
S:	Supported
S:	Supported
+47 −2
Original line number Original line Diff line number Diff line
@@ -51,6 +51,7 @@ MODULE_PARM_DESC(rawmode, "Use raw 802.11 frame datapath");
static const struct ath10k_hw_params ath10k_hw_params_list[] = {
static const struct ath10k_hw_params ath10k_hw_params_list[] = {
	{
	{
		.id = QCA988X_HW_2_0_VERSION,
		.id = QCA988X_HW_2_0_VERSION,
		.dev_id = QCA988X_2_0_DEVICE_ID,
		.name = "qca988x hw2.0",
		.name = "qca988x hw2.0",
		.patch_load_addr = QCA988X_HW_2_0_PATCH_LOAD_ADDR,
		.patch_load_addr = QCA988X_HW_2_0_PATCH_LOAD_ADDR,
		.uart_pin = 7,
		.uart_pin = 7,
@@ -69,6 +70,25 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
	},
	},
	{
	{
		.id = QCA6174_HW_2_1_VERSION,
		.id = QCA6174_HW_2_1_VERSION,
		.dev_id = QCA6164_2_1_DEVICE_ID,
		.name = "qca6164 hw2.1",
		.patch_load_addr = QCA6174_HW_2_1_PATCH_LOAD_ADDR,
		.uart_pin = 6,
		.otp_exe_param = 0,
		.channel_counters_freq_hz = 88000,
		.max_probe_resp_desc_thres = 0,
		.fw = {
			.dir = QCA6174_HW_2_1_FW_DIR,
			.fw = QCA6174_HW_2_1_FW_FILE,
			.otp = QCA6174_HW_2_1_OTP_FILE,
			.board = QCA6174_HW_2_1_BOARD_DATA_FILE,
			.board_size = QCA6174_BOARD_DATA_SZ,
			.board_ext_size = QCA6174_BOARD_EXT_DATA_SZ,
		},
	},
	{
		.id = QCA6174_HW_2_1_VERSION,
		.dev_id = QCA6174_2_1_DEVICE_ID,
		.name = "qca6174 hw2.1",
		.name = "qca6174 hw2.1",
		.patch_load_addr = QCA6174_HW_2_1_PATCH_LOAD_ADDR,
		.patch_load_addr = QCA6174_HW_2_1_PATCH_LOAD_ADDR,
		.uart_pin = 6,
		.uart_pin = 6,
@@ -86,6 +106,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
	},
	},
	{
	{
		.id = QCA6174_HW_3_0_VERSION,
		.id = QCA6174_HW_3_0_VERSION,
		.dev_id = QCA6174_2_1_DEVICE_ID,
		.name = "qca6174 hw3.0",
		.name = "qca6174 hw3.0",
		.patch_load_addr = QCA6174_HW_3_0_PATCH_LOAD_ADDR,
		.patch_load_addr = QCA6174_HW_3_0_PATCH_LOAD_ADDR,
		.uart_pin = 6,
		.uart_pin = 6,
@@ -103,6 +124,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
	},
	},
	{
	{
		.id = QCA6174_HW_3_2_VERSION,
		.id = QCA6174_HW_3_2_VERSION,
		.dev_id = QCA6174_2_1_DEVICE_ID,
		.name = "qca6174 hw3.2",
		.name = "qca6174 hw3.2",
		.patch_load_addr = QCA6174_HW_3_0_PATCH_LOAD_ADDR,
		.patch_load_addr = QCA6174_HW_3_0_PATCH_LOAD_ADDR,
		.uart_pin = 6,
		.uart_pin = 6,
@@ -121,6 +143,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
	},
	},
	{
	{
		.id = QCA99X0_HW_2_0_DEV_VERSION,
		.id = QCA99X0_HW_2_0_DEV_VERSION,
		.dev_id = QCA99X0_2_0_DEVICE_ID,
		.name = "qca99x0 hw2.0",
		.name = "qca99x0 hw2.0",
		.patch_load_addr = QCA99X0_HW_2_0_PATCH_LOAD_ADDR,
		.patch_load_addr = QCA99X0_HW_2_0_PATCH_LOAD_ADDR,
		.uart_pin = 7,
		.uart_pin = 7,
@@ -139,10 +162,31 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
	},
	},
	{
	{
		.id = QCA9377_HW_1_0_DEV_VERSION,
		.id = QCA9377_HW_1_0_DEV_VERSION,
		.dev_id = QCA9377_1_0_DEVICE_ID,
		.name = "qca9377 hw1.0",
		.name = "qca9377 hw1.0",
		.patch_load_addr = QCA9377_HW_1_0_PATCH_LOAD_ADDR,
		.patch_load_addr = QCA9377_HW_1_0_PATCH_LOAD_ADDR,
		.uart_pin = 7,
		.uart_pin = 6,
		.otp_exe_param = 0,
		.otp_exe_param = 0,
		.channel_counters_freq_hz = 88000,
		.max_probe_resp_desc_thres = 0,
		.fw = {
			.dir = QCA9377_HW_1_0_FW_DIR,
			.fw = QCA9377_HW_1_0_FW_FILE,
			.otp = QCA9377_HW_1_0_OTP_FILE,
			.board = QCA9377_HW_1_0_BOARD_DATA_FILE,
			.board_size = QCA9377_BOARD_DATA_SZ,
			.board_ext_size = QCA9377_BOARD_EXT_DATA_SZ,
		},
	},
	{
		.id = QCA9377_HW_1_1_DEV_VERSION,
		.dev_id = QCA9377_1_0_DEVICE_ID,
		.name = "qca9377 hw1.1",
		.patch_load_addr = QCA9377_HW_1_0_PATCH_LOAD_ADDR,
		.uart_pin = 6,
		.otp_exe_param = 0,
		.channel_counters_freq_hz = 88000,
		.max_probe_resp_desc_thres = 0,
		.fw = {
		.fw = {
			.dir = QCA9377_HW_1_0_FW_DIR,
			.dir = QCA9377_HW_1_0_FW_DIR,
			.fw = QCA9377_HW_1_0_FW_FILE,
			.fw = QCA9377_HW_1_0_FW_FILE,
@@ -1263,7 +1307,8 @@ static int ath10k_init_hw_params(struct ath10k *ar)
	for (i = 0; i < ARRAY_SIZE(ath10k_hw_params_list); i++) {
	for (i = 0; i < ARRAY_SIZE(ath10k_hw_params_list); i++) {
		hw_params = &ath10k_hw_params_list[i];
		hw_params = &ath10k_hw_params_list[i];


		if (hw_params->id == ar->target_version)
		if (hw_params->id == ar->target_version &&
		    hw_params->dev_id == ar->dev_id)
			break;
			break;
	}
	}


+1 −0
Original line number Original line Diff line number Diff line
@@ -636,6 +636,7 @@ struct ath10k {


	struct ath10k_hw_params {
	struct ath10k_hw_params {
		u32 id;
		u32 id;
		u16 dev_id;
		const char *name;
		const char *name;
		u32 patch_load_addr;
		u32 patch_load_addr;
		int uart_pin;
		int uart_pin;
+15 −2
Original line number Original line Diff line number Diff line
@@ -22,6 +22,12 @@


#define ATH10K_FW_DIR			"ath10k"
#define ATH10K_FW_DIR			"ath10k"


#define QCA988X_2_0_DEVICE_ID   (0x003c)
#define QCA6164_2_1_DEVICE_ID   (0x0041)
#define QCA6174_2_1_DEVICE_ID   (0x003e)
#define QCA99X0_2_0_DEVICE_ID   (0x0040)
#define QCA9377_1_0_DEVICE_ID   (0x0042)

/* QCA988X 1.0 definitions (unsupported) */
/* QCA988X 1.0 definitions (unsupported) */
#define QCA988X_HW_1_0_CHIP_ID_REV	0x0
#define QCA988X_HW_1_0_CHIP_ID_REV	0x0


@@ -42,6 +48,10 @@
#define QCA6174_HW_3_0_VERSION		0x05020000
#define QCA6174_HW_3_0_VERSION		0x05020000
#define QCA6174_HW_3_2_VERSION		0x05030000
#define QCA6174_HW_3_2_VERSION		0x05030000


/* QCA9377 target BMI version signatures */
#define QCA9377_HW_1_0_DEV_VERSION	0x05020000
#define QCA9377_HW_1_1_DEV_VERSION	0x05020001

enum qca6174_pci_rev {
enum qca6174_pci_rev {
	QCA6174_PCI_REV_1_1 = 0x11,
	QCA6174_PCI_REV_1_1 = 0x11,
	QCA6174_PCI_REV_1_3 = 0x13,
	QCA6174_PCI_REV_1_3 = 0x13,
@@ -60,6 +70,11 @@ enum qca6174_chip_id_rev {
	QCA6174_HW_3_2_CHIP_ID_REV = 10,
	QCA6174_HW_3_2_CHIP_ID_REV = 10,
};
};


enum qca9377_chip_id_rev {
	QCA9377_HW_1_0_CHIP_ID_REV = 0x0,
	QCA9377_HW_1_1_CHIP_ID_REV = 0x1,
};

#define QCA6174_HW_2_1_FW_DIR		"ath10k/QCA6174/hw2.1"
#define QCA6174_HW_2_1_FW_DIR		"ath10k/QCA6174/hw2.1"
#define QCA6174_HW_2_1_FW_FILE		"firmware.bin"
#define QCA6174_HW_2_1_FW_FILE		"firmware.bin"
#define QCA6174_HW_2_1_OTP_FILE		"otp.bin"
#define QCA6174_HW_2_1_OTP_FILE		"otp.bin"
@@ -85,8 +100,6 @@ enum qca6174_chip_id_rev {
#define QCA99X0_HW_2_0_PATCH_LOAD_ADDR	0x1234
#define QCA99X0_HW_2_0_PATCH_LOAD_ADDR	0x1234


/* QCA9377 1.0 definitions */
/* QCA9377 1.0 definitions */
#define QCA9377_HW_1_0_DEV_VERSION     0x05020001
#define QCA9377_HW_1_0_CHIP_ID_REV     0x1
#define QCA9377_HW_1_0_FW_DIR          ATH10K_FW_DIR "/QCA9377/hw1.0"
#define QCA9377_HW_1_0_FW_DIR          ATH10K_FW_DIR "/QCA9377/hw1.0"
#define QCA9377_HW_1_0_FW_FILE         "firmware.bin"
#define QCA9377_HW_1_0_FW_FILE         "firmware.bin"
#define QCA9377_HW_1_0_OTP_FILE        "otp.bin"
#define QCA9377_HW_1_0_OTP_FILE        "otp.bin"
+1 −1
Original line number Original line Diff line number Diff line
@@ -4225,7 +4225,7 @@ static int ath10k_config(struct ieee80211_hw *hw, u32 changed)


static u32 get_nss_from_chainmask(u16 chain_mask)
static u32 get_nss_from_chainmask(u16 chain_mask)
{
{
	if ((chain_mask & 0x15) == 0x15)
	if ((chain_mask & 0xf) == 0xf)
		return 4;
		return 4;
	else if ((chain_mask & 0x7) == 0x7)
	else if ((chain_mask & 0x7) == 0x7)
		return 3;
		return 3;
Loading