Commit 6f4f8aba authored by Johannes Berg's avatar Johannes Berg
Browse files

Merge tag 'iwlwifi-next-2025-09-09' of...

Merge tag 'iwlwifi-next-2025-09-09' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next



Miri Korenblit says:
====================
iwlwifi features, notably:

- unused API cleanups
- transport layer cleanups
- new APIs support
====================

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parents b2422712 bc4a45f8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -766,7 +766,7 @@ static int iwl_init_otp_access(struct iwl_trans *trans)
{
	int ret;

	ret = iwl_finish_nic_init(trans);
	ret = iwl_trans_activate_nic(trans);
	if (ret)
		return ret;

+1 −1
Original line number Diff line number Diff line
@@ -368,7 +368,7 @@ int iwl_power_update_mode(struct iwl_priv *priv, bool force)
/* initialize to default */
void iwl_power_initialize(struct iwl_priv *priv)
{
	priv->power_data.bus_pm = priv->trans->pm_support;
	priv->power_data.bus_pm = iwl_trans_is_pm_supported(priv->trans);

	priv->power_data.debug_sleep_level_override = -1;

+105 −7
Original line number Diff line number Diff line
@@ -632,9 +632,64 @@ struct iwl_wowlan_gtk_status_v3 {
	struct iwl_wowlan_all_rsc_tsc_v5 sc;
} __packed; /* WOWLAN_GTK_MATERIAL_VER_3 */

/**
 * enum iwl_wowlan_key_status - Status of security keys in WoWLAN notifications
 * @IWL_WOWLAN_NOTIF_NO_KEY: No key is present; this entry should be ignored.
 * @IWL_WOWLAN_STATUS_OLD_KEY: old key exists; no rekey occurred, and only
 *	metadata is available.
 * @IWL_WOWLAN_STATUS_NEW_KEY: A new key was created after a rekey; new key
 *	material is available.
 */
enum iwl_wowlan_key_status {
	IWL_WOWLAN_NOTIF_NO_KEY = 0,
	IWL_WOWLAN_STATUS_OLD_KEY = 1,
	IWL_WOWLAN_STATUS_NEW_KEY = 2
};

/**
 * struct iwl_wowlan_gtk_status - GTK status
 * @key: GTK material
 * @key_len: GTK length, if set to 0, the key is not available
 * @key_flags: information about the key:
 *	bits[0:1]:  key index assigned by the AP
 *	bits[2:6]:  GTK index of the key in the internal DB
 *	bit[7]:     Set iff this is the currently used GTK
 * @key_status: key status, see &enum iwl_wowlan_key_status
 * @reserved: padding
 * @tkip_mic_key: TKIP RX MIC key
 * @sc: RSC/TSC counters
 */
struct iwl_wowlan_gtk_status {
	u8 key[WOWLAN_KEY_MAX_SIZE];
	u8 key_len;
	u8 key_flags;
	u8 key_status;
	u8 reserved;
	u8 tkip_mic_key[IWL_MIC_KEY_SIZE];
	struct iwl_wowlan_all_rsc_tsc_v5 sc;
} __packed; /* WOWLAN_GTK_MATERIAL_VER_4 */

#define IWL_WOWLAN_GTK_IDX_MASK		(BIT(0) | BIT(1))
#define IWL_WOWLAN_IGTK_BIGTK_IDX_MASK	(BIT(0))

/**
 * struct iwl_wowlan_igtk_status_v1 - IGTK status
 * @key: IGTK material
 * @ipn: the IGTK packet number (replay counter)
 * @key_len: IGTK length, if set to 0, the key is not available
 * @key_flags: information about the key:
 *	bits[0]: key index assigned by the AP (0: index 4, 1: index 5)
 *	(0: index 6, 1: index 7 with bigtk)
 *	bits[1:5]: IGTK index of the key in the internal DB
 *	bit[6]: Set iff this is the currently used IGTK
 */
struct iwl_wowlan_igtk_status_v1 {
	u8 key[WOWLAN_KEY_MAX_SIZE];
	u8 ipn[6];
	u8 key_len;
	u8 key_flags;
} __packed; /* WOWLAN_IGTK_MATERIAL_VER_1 */

/**
 * struct iwl_wowlan_igtk_status - IGTK status
 * @key: IGTK material
@@ -645,13 +700,17 @@ struct iwl_wowlan_gtk_status_v3 {
 *	(0: index 6, 1: index 7 with bigtk)
 *	bits[1:5]: IGTK index of the key in the internal DB
 *	bit[6]: Set iff this is the currently used IGTK
 * @key_status: key status, see &enum iwl_wowlan_key_status
 * @reserved: padding
 */
struct iwl_wowlan_igtk_status {
	u8 key[WOWLAN_KEY_MAX_SIZE];
	u8 ipn[6];
	u8 key_len;
	u8 key_flags;
} __packed; /* WOWLAN_IGTK_MATERIAL_VER_1 */
	u8 key_status;
	u8 reserved[3];
} __packed; /* WOWLAN_IGTK_MATERIAL_VER_2 */

/**
 * struct iwl_wowlan_status_v6 - WoWLAN status
@@ -701,7 +760,7 @@ struct iwl_wowlan_status_v6 {
 */
struct iwl_wowlan_status_v7 {
	struct iwl_wowlan_gtk_status_v2 gtk[WOWLAN_GTK_KEYS_NUM];
	struct iwl_wowlan_igtk_status igtk[WOWLAN_IGTK_KEYS_NUM];
	struct iwl_wowlan_igtk_status_v1 igtk[WOWLAN_IGTK_KEYS_NUM];
	__le64 replay_ctr;
	__le16 pattern_number;
	__le16 non_qos_seq_ctr;
@@ -736,7 +795,7 @@ struct iwl_wowlan_status_v7 {
 */
struct iwl_wowlan_info_notif_v1 {
	struct iwl_wowlan_gtk_status_v3 gtk[WOWLAN_GTK_KEYS_NUM];
	struct iwl_wowlan_igtk_status igtk[WOWLAN_IGTK_KEYS_NUM];
	struct iwl_wowlan_igtk_status_v1 igtk[WOWLAN_IGTK_KEYS_NUM];
	__le64 replay_ctr;
	__le16 pattern_number;
	__le16 reserved1;
@@ -818,8 +877,8 @@ struct iwl_wowlan_mlo_gtk {
 */
struct iwl_wowlan_info_notif_v3 {
	struct iwl_wowlan_gtk_status_v3 gtk[WOWLAN_GTK_KEYS_NUM];
	struct iwl_wowlan_igtk_status igtk[WOWLAN_IGTK_KEYS_NUM];
	struct iwl_wowlan_igtk_status bigtk[WOWLAN_BIGTK_KEYS_NUM];
	struct iwl_wowlan_igtk_status_v1 igtk[WOWLAN_IGTK_KEYS_NUM];
	struct iwl_wowlan_igtk_status_v1 bigtk[WOWLAN_BIGTK_KEYS_NUM];
	__le64 replay_ctr;
	__le16 pattern_number;
	__le16 reserved1;
@@ -833,6 +892,45 @@ struct iwl_wowlan_info_notif_v3 {
	u8 reserved2[2];
} __packed; /* WOWLAN_INFO_NTFY_API_S_VER_3 */

/**
 * struct iwl_wowlan_info_notif_v5 - WoWLAN information notification
 * @gtk: GTK data
 * @igtk: IGTK data
 * @bigtk: BIGTK data
 * @replay_ctr: GTK rekey replay counter
 * @pattern_number: number of the matched patterns
 * @qos_seq_ctr: QoS sequence counters to use next
 * @wakeup_reasons: wakeup reasons, see &enum iwl_wowlan_wakeup_reason
 * @num_of_gtk_rekeys: number of GTK rekeys
 * @transmitted_ndps: number of transmitted neighbor discovery packets
 * @received_beacons: number of received beacons
 * @tid_tear_down: bit mask of tids whose BA sessions were closed
 *	in suspend state
 * @station_id: station id
 * @num_mlo_link_keys: number of &struct iwl_wowlan_mlo_gtk structs
 *	following this notif
 * @tid_offloaded_tx: tid used by the firmware to transmit data packets
 *	while in wowlan
 * @mlo_gtks: array of GTKs of size num_mlo_link_keys
 */
struct iwl_wowlan_info_notif_v5 {
	struct iwl_wowlan_gtk_status_v3 gtk[WOWLAN_GTK_KEYS_NUM];
	struct iwl_wowlan_igtk_status_v1 igtk[WOWLAN_IGTK_KEYS_NUM];
	struct iwl_wowlan_igtk_status_v1 bigtk[WOWLAN_BIGTK_KEYS_NUM];
	__le64 replay_ctr;
	__le16 pattern_number;
	__le16 qos_seq_ctr;
	__le32 wakeup_reasons;
	__le32 num_of_gtk_rekeys;
	__le32 transmitted_ndps;
	__le32 received_beacons;
	u8 tid_tear_down;
	u8 station_id;
	u8 num_mlo_link_keys;
	u8 tid_offloaded_tx;
	struct iwl_wowlan_mlo_gtk mlo_gtks[];
} __packed; /* WOWLAN_INFO_NTFY_API_S_VER_5 */

/**
 * struct iwl_wowlan_info_notif - WoWLAN information notification
 * @gtk: GTK data
@@ -855,7 +953,7 @@ struct iwl_wowlan_info_notif_v3 {
 * @mlo_gtks: array of GTKs of size num_mlo_link_keys
 */
struct iwl_wowlan_info_notif {
	struct iwl_wowlan_gtk_status_v3 gtk[WOWLAN_GTK_KEYS_NUM];
	struct iwl_wowlan_gtk_status gtk[WOWLAN_GTK_KEYS_NUM];
	struct iwl_wowlan_igtk_status igtk[WOWLAN_IGTK_KEYS_NUM];
	struct iwl_wowlan_igtk_status bigtk[WOWLAN_BIGTK_KEYS_NUM];
	__le64 replay_ctr;
@@ -870,7 +968,7 @@ struct iwl_wowlan_info_notif {
	u8 num_mlo_link_keys;
	u8 tid_offloaded_tx;
	struct iwl_wowlan_mlo_gtk mlo_gtks[];
} __packed; /* WOWLAN_INFO_NTFY_API_S_VER_5 */
} __packed; /* WOWLAN_INFO_NTFY_API_S_VER_6 */

/**
 * struct iwl_wowlan_wake_pkt_notif - WoWLAN wake packet notification
+3 −0
Original line number Diff line number Diff line
@@ -420,6 +420,8 @@ struct iwl_mac_config_cmd {
 *	eht_support set to true. No longer used since _VER_3 of this command.
 * @LINK_CONTEXT_MODIFY_BANDWIDTH: Covers iwl_link_ctx_cfg_cmd::modify_bandwidth.
 *	Request RX OMI to the AP to modify bandwidth of this link.
 * @LINK_CONTEXT_MODIFY_UHR_PARAMS: covers iwl_link_ctx_cfg_cmd::npca_params and
 *	iwl_link_ctx_cfg_cmd::prio_edca_params. Since _VER_7.
 * @LINK_CONTEXT_MODIFY_ALL: set all above flags
 */
enum iwl_link_ctx_modify_flags {
@@ -432,6 +434,7 @@ enum iwl_link_ctx_modify_flags {
	LINK_CONTEXT_MODIFY_BSS_COLOR_DISABLE	= BIT(6),
	LINK_CONTEXT_MODIFY_EHT_PARAMS		= BIT(7),
	LINK_CONTEXT_MODIFY_BANDWIDTH		= BIT(8),
	LINK_CONTEXT_MODIFY_UHR_PARAMS		= BIT(9),
	LINK_CONTEXT_MODIFY_ALL			= 0xff,
}; /* LINK_CONTEXT_MODIFY_MASK_E_VER_1 */

+1 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ enum iwl_prot_offload_subcmd_ids {
	/**
	 * @WOWLAN_INFO_NOTIFICATION: Notification in
	 * &struct iwl_wowlan_info_notif_v1, iwl_wowlan_info_notif_v3,
	 * or &struct iwl_wowlan_info_notif
	 * &struct iwl_wowlan_info_notif_v5 or &struct iwl_wowlan_info_notif
	 */
	WOWLAN_INFO_NOTIFICATION = 0xFD,

Loading