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

Commit 7c79f1c9 authored by Kalle Valo's avatar Kalle Valo
Browse files

Merge tag 'iwlwifi-next-for-kalle-2015-05-03' of...

Merge tag 'iwlwifi-next-for-kalle-2015-05-03' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next

* major rework of the scan code (Luca)
* some work on the thermal code (Chaya Rachel)
* some work on the firwmare debugging infrastructure
parents 73b25f66 05c3274d
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ config IWLWIFI
		Intel 7260 Wi-Fi Adapter
		Intel 3160 Wi-Fi Adapter
		Intel 7265 Wi-Fi Adapter
		Intel 8260 Wi-Fi Adapter


	  This driver uses the kernel's mac80211 subsystem.
@@ -53,16 +54,17 @@ config IWLDVM
	tristate "Intel Wireless WiFi DVM Firmware support"
	default IWLWIFI
	help
	  This is the driver that supports the DVM firmware which is
	  used by most existing devices (with the exception of 7260
	  and 3160).
	  This is the driver that supports the DVM firmware. The list
	  of the devices that use this firmware is available here:
	  https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#firmware

config IWLMVM
	tristate "Intel Wireless WiFi MVM Firmware support"
	select WANT_DEV_COREDUMP
	help
	  This is the driver that supports the MVM firmware which is
	  currently only available for 7260 and 3160 devices.
	  This is the driver that supports the MVM firmware. The list
	  of the devices that use this firmware is available here:
	  https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#firmware

# don't call it _MODULE -- will confuse Kconfig/fixdep/...
config IWLWIFI_OPMODE_MODULAR
+23 −0
Original line number Diff line number Diff line
@@ -128,6 +128,28 @@ static const struct iwl_base_params iwl7000_base_params = {
	.apmg_wake_up_wa = true,
};

static const struct iwl_tt_params iwl7000_high_temp_tt_params = {
	.ct_kill_entry = 118,
	.ct_kill_exit = 96,
	.ct_kill_duration = 5,
	.dynamic_smps_entry = 114,
	.dynamic_smps_exit = 110,
	.tx_protection_entry = 114,
	.tx_protection_exit = 108,
	.tx_backoff = {
		{.temperature = 112, .backoff = 300},
		{.temperature = 113, .backoff = 800},
		{.temperature = 114, .backoff = 1500},
		{.temperature = 115, .backoff = 3000},
		{.temperature = 116, .backoff = 5000},
		{.temperature = 117, .backoff = 10000},
	},
	.support_ct_kill = true,
	.support_dynamic_smps = true,
	.support_tx_protection = true,
	.support_tx_backoff = true,
};

static const struct iwl_ht_params iwl7000_ht_params = {
	.stbc = true,
	.ht40_bands = BIT(IEEE80211_BAND_2GHZ) | BIT(IEEE80211_BAND_5GHZ),
@@ -170,6 +192,7 @@ const struct iwl_cfg iwl7260_2ac_cfg_high_temp = {
	.host_interrupt_operation_mode = true,
	.lp_xtal_workaround = true,
	.dccm_len = IWL7260_DCCM_LEN,
	.thermal_params = &iwl7000_high_temp_tt_params,
};

const struct iwl_cfg iwl7260_2n_cfg = {
+44 −0
Original line number Diff line number Diff line
@@ -194,6 +194,49 @@ struct iwl_ht_params {
	u8 ht40_bands;
};

/*
 * Tx-backoff threshold
 * @temperature: The threshold in Celsius
 * @backoff: The tx-backoff in uSec
 */
struct iwl_tt_tx_backoff {
	s32 temperature;
	u32 backoff;
};

#define TT_TX_BACKOFF_SIZE 6

/**
 * struct iwl_tt_params - thermal throttling parameters
 * @ct_kill_entry: CT Kill entry threshold
 * @ct_kill_exit: CT Kill exit threshold
 * @ct_kill_duration: The time  intervals (in uSec) in which the driver needs
 *	to checks whether to exit CT Kill.
 * @dynamic_smps_entry: Dynamic SMPS entry threshold
 * @dynamic_smps_exit: Dynamic SMPS exit threshold
 * @tx_protection_entry: TX protection entry threshold
 * @tx_protection_exit: TX protection exit threshold
 * @tx_backoff: Array of thresholds for tx-backoff , in ascending order.
 * @support_ct_kill: Support CT Kill?
 * @support_dynamic_smps: Support dynamic SMPS?
 * @support_tx_protection: Support tx protection?
 * @support_tx_backoff: Support tx-backoff?
 */
struct iwl_tt_params {
	s32 ct_kill_entry;
	s32 ct_kill_exit;
	u32 ct_kill_duration;
	s32 dynamic_smps_entry;
	s32 dynamic_smps_exit;
	s32 tx_protection_entry;
	s32 tx_protection_exit;
	struct iwl_tt_tx_backoff tx_backoff[TT_TX_BACKOFF_SIZE];
	bool support_ct_kill;
	bool support_dynamic_smps;
	bool support_tx_protection;
	bool support_tx_backoff;
};

/*
 * information on how to parse the EEPROM
 */
@@ -316,6 +359,7 @@ struct iwl_cfg {
	const u32 dccm2_len;
	const u32 smem_offset;
	const u32 smem_len;
	const struct iwl_tt_params *thermal_params;
};

/*
+7 −3
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@
 * GPL LICENSE SUMMARY
 *
 * Copyright(c) 2008 - 2014 Intel Corporation. All rights reserved.
 * Copyright(c) 2013 - 2014 Intel Mobile Communications GmbH
 * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of version 2 of the GNU General Public License as
@@ -32,7 +32,7 @@
 * BSD LICENSE
 *
 * Copyright(c) 2005 - 2014 Intel Corporation. All rights reserved.
 * Copyright(c) 2013 - 2014 Intel Mobile Communications GmbH
 * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
@@ -244,6 +244,7 @@ enum iwl_ucode_tlv_flag {
 *	longer than the passive one, which is essential for fragmented scan.
 * @IWL_UCODE_TLV_API_WIFI_MCC_UPDATE: ucode supports MCC updates with source.
 * IWL_UCODE_TLV_API_HDC_PHASE_0: ucode supports finer configuration of LTR
 * @IWL_UCODE_TLV_API_TX_POWER_DEV: new API for tx power.
 * @IWL_UCODE_TLV_API_BASIC_DWELL: use only basic dwell time in scan command,
 *	regardless of the band or the number of the probes. FW will calculate
 *	the actual dwell time.
@@ -260,6 +261,7 @@ enum iwl_ucode_tlv_api {
	IWL_UCODE_TLV_API_FRAGMENTED_SCAN	= BIT(8),
	IWL_UCODE_TLV_API_WIFI_MCC_UPDATE	= BIT(9),
	IWL_UCODE_TLV_API_HDC_PHASE_0		= BIT(10),
	IWL_UCODE_TLV_API_TX_POWER_DEV		= BIT(11),
	IWL_UCODE_TLV_API_BASIC_DWELL		= BIT(13),
	IWL_UCODE_TLV_API_SCD_CFG		= BIT(15),
	IWL_UCODE_TLV_API_SINGLE_SCAN_EBS	= BIT(16),
@@ -434,6 +436,7 @@ enum iwl_fw_dbg_monitor_mode {
 *
 * @version: version of the TLV - currently 0
 * @monitor_mode: %enum iwl_fw_dbg_monitor_mode
 * @size_power: buffer size will be 2^(size_power + 11)
 * @base_reg: addr of the base addr register (PRPH)
 * @end_reg:  addr of the end addr register (PRPH)
 * @write_ptr_reg: the addr of the reg of the write pointer
@@ -447,7 +450,8 @@ enum iwl_fw_dbg_monitor_mode {
struct iwl_fw_dbg_dest_tlv {
	u8 version;
	u8 monitor_mode;
	u8 reserved[2];
	u8 size_power;
	u8 reserved;
	__le32 base_reg;
	__le32 end_reg;
	__le32 write_ptr_reg;
+3 −0
Original line number Diff line number Diff line
@@ -348,6 +348,9 @@ enum secure_load_status_reg {
#define MON_BUFF_WRPTR			(0xa03c44)
#define MON_BUFF_CYCLE_CNT		(0xa03c48)

#define MON_DMARB_RD_CTL_ADDR		(0xa03c60)
#define MON_DMARB_RD_DATA_ADDR		(0xa03c5c)

#define DBGC_IN_SAMPLE			(0xa03c00)

/* enable the ID buf for read */
Loading