From patchwork Wed Jun 11 19:26:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 895927 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B0881224AE1 for ; Wed, 11 Jun 2025 19:26:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670014; cv=none; b=dCpvgMhG5Xmyk8VTXfWfPgyLGlKXk1FAfR1VqoPUUC9Qe4D8HQx4OcHhxoGugXjlhaF/zGZhh5e9JCAhr0WWR/I0PNrizi4qjv1nBOUaVEjAhFrWRteCyXpiK3ocFkPJfnzdpI/SufahllH5ob3XzbrOMxy4HF6hLpzB2EBaB14= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670014; c=relaxed/simple; bh=HsQBg1nzElWiynWCI10HdhPPBjwL+hw6U55LvSbNTNs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=cDk3rsQOS4DJ14TUPv80fbvizbw6R85IwT4x+waOLEcRBqLIShxIeJMphNEbC4W9kqTNNldxkIDtDP7hMyLFrYKviw6ksb8lUsl3TyfJtRpasHLW1WWssTpDrw5Inwi3e310cfin1/Xzb4pI/ccVvzE9rclmr4L+NJifOt1o/Cc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=Kl++rNHf; arc=none smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="Kl++rNHf" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749670013; x=1781206013; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=HsQBg1nzElWiynWCI10HdhPPBjwL+hw6U55LvSbNTNs=; b=Kl++rNHf3XhLaLDym5UTyekEfCYmYponZ/cmlb9FGMBWBF2rRqTeXNiy NhHAWVOWB73wXhbLeRwnHG4s7pFLtNaFou0X6crv8UUFKgp2xdmpobo9m D0n5Eym822J/r1l6VcIKwbiqfyTCNubzf89DX2zd7SxDNiChMOIkJMcqU /tcBoHUj/GLyGk4oNdtpzTmRgBelMti1hEFzAxF7X7eMxEBhj+X8QhsqF HZXen0zEfPwNIi5lmZ/ZreaR4X7dj9VNnAP7yaR2ATlHfFy58s8G9S837 vAwBmLS078ASB8bD6s+wdOHwL4bkNpTOmvxy0Ie44uFCZHZnyqM0zkmdv w==; X-CSE-ConnectionGUID: YflXqrwkReuf1bmpWorIuQ== X-CSE-MsgGUID: vEBgstNSSU6IiXnhY1mAag== X-IronPort-AV: E=McAfee;i="6800,10657,11461"; a="74360856" X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="74360856" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:26:52 -0700 X-CSE-ConnectionGUID: vxAJNp3vRX6gpLIlvVrd8g== X-CSE-MsgGUID: VWkocDZdSwGZpDXuhJ1Miw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="147165825" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:26:51 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next v2 01/15] wifi: iwlwifi: pcie: abort D3 handshake on error Date: Wed, 11 Jun 2025 22:26:20 +0300 Message-Id: <20250611222325.157dca92c573.I6dd3b9d2f435c2c363224aa84e373931e56a545f@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> References: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg The D3 handshake can be interrupted by an error, especially on resume where we no longer want to check explicitly for errors. Expand the sx_complete to sx_state and handle any errors occurring during the handshake. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- .../intel/iwlwifi/pcie/gen1_2/internal.h | 9 ++++-- .../wireless/intel/iwlwifi/pcie/gen1_2/rx.c | 16 ++++++++-- .../intel/iwlwifi/pcie/gen1_2/trans.c | 31 +++++++++++++------ 3 files changed, 42 insertions(+), 14 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/internal.h b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/internal.h index 796410f2fa48..ebcc174f6c62 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/internal.h +++ b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/internal.h @@ -382,7 +382,7 @@ struct iwl_pcie_txqs { * @irq_lock: lock to synchronize IRQ handling * @txq_memory: TXQ allocation array * @sx_waitq: waitqueue for Sx transitions - * @sx_complete: completion for Sx transitions + * @sx_state: state tracking Sx transitions * @pcie_dbg_dumped_once: indicates PCIe regs were dumped already * @opmode_down: indicates opmode went away * @num_rx_bufs: number of RX buffers to allocate/use @@ -448,7 +448,12 @@ struct iwl_trans_pcie { u8 __iomem *hw_base; bool ucode_write_complete; - bool sx_complete; + enum { + IWL_SX_INVALID = 0, + IWL_SX_WAITING, + IWL_SX_ERROR, + IWL_SX_COMPLETE, + } sx_state; wait_queue_head_t ucode_write_waitq; wait_queue_head_t sx_waitq; diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/rx.c b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/rx.c index 0c73b1fe3645..619a9505e6d9 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/rx.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/rx.c @@ -2394,6 +2394,11 @@ irqreturn_t iwl_pcie_irq_msix_handler(int irq, void *dev_id) } else { iwl_pcie_irq_handle_error(trans); } + + if (trans_pcie->sx_state == IWL_SX_WAITING) { + trans_pcie->sx_state = IWL_SX_ERROR; + wake_up(&trans_pcie->sx_waitq); + } } /* After checking FH register check HW register */ @@ -2428,13 +2433,20 @@ irqreturn_t iwl_pcie_irq_msix_handler(int irq, void *dev_id) if (inta_hw & MSIX_HW_INT_CAUSES_REG_WAKEUP && trans_pcie->prph_info) { u32 sleep_notif = le32_to_cpu(trans_pcie->prph_info->sleep_notif); + if (sleep_notif == IWL_D3_SLEEP_STATUS_SUSPEND || sleep_notif == IWL_D3_SLEEP_STATUS_RESUME) { IWL_DEBUG_ISR(trans, "Sx interrupt: sleep notification = 0x%x\n", sleep_notif); - trans_pcie->sx_complete = true; - wake_up(&trans_pcie->sx_waitq); + if (trans_pcie->sx_state == IWL_SX_WAITING) { + trans_pcie->sx_state = IWL_SX_COMPLETE; + wake_up(&trans_pcie->sx_waitq); + } else { + IWL_ERR(trans, + "unexpected Sx interrupt (0x%x)\n", + sleep_notif); + } } else { /* uCode wakes up after power-down sleep */ IWL_DEBUG_ISR(trans, "Wakeup interrupt\n"); diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/trans.c index bace11a949c8..6054ebebd8c8 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/trans.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/trans.c @@ -1536,30 +1536,41 @@ static int iwl_pcie_d3_handshake(struct iwl_trans *trans, bool suspend) struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); int ret; + if (trans->mac_cfg->device_family < IWL_DEVICE_FAMILY_AX210) + return 0; + + trans_pcie->sx_state = IWL_SX_WAITING; + if (trans->mac_cfg->device_family == IWL_DEVICE_FAMILY_AX210) iwl_write_umac_prph(trans, UREG_DOORBELL_TO_ISR6, suspend ? UREG_DOORBELL_TO_ISR6_SUSPEND : UREG_DOORBELL_TO_ISR6_RESUME); - else if (trans->mac_cfg->device_family >= IWL_DEVICE_FAMILY_BZ) + else iwl_write32(trans, CSR_IPC_SLEEP_CONTROL, suspend ? CSR_IPC_SLEEP_CONTROL_SUSPEND : CSR_IPC_SLEEP_CONTROL_RESUME); - else - return 0; ret = wait_event_timeout(trans_pcie->sx_waitq, - trans_pcie->sx_complete, 2 * HZ); - - /* Invalidate it toward next suspend or resume */ - trans_pcie->sx_complete = false; - + trans_pcie->sx_state != IWL_SX_WAITING, + 2 * HZ); if (!ret) { IWL_ERR(trans, "Timeout %s D3\n", suspend ? "entering" : "exiting"); - return -ETIMEDOUT; + ret = -ETIMEDOUT; + } else { + ret = 0; } - return 0; + if (trans_pcie->sx_state == IWL_SX_ERROR) { + IWL_ERR(trans, "FW error while %s D3\n", + suspend ? "entering" : "exiting"); + ret = -EIO; + } + + /* Invalidate it toward next suspend or resume */ + trans_pcie->sx_state = IWL_SX_INVALID; + + return ret; } int iwl_trans_pcie_d3_suspend(struct iwl_trans *trans, bool test, bool reset) From patchwork Wed Jun 11 19:26:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 896256 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D17C327CCDB for ; Wed, 11 Jun 2025 19:26:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670015; cv=none; b=Z0YQIgz3BKRVJkrW6OmWVan7mRVsbkoVsDDocw60wWXjHi5Pbmil1TkBmqyf+XHwUp2oY1HsF1EYF+8qUs7OxmAtrkZhZBG6tSpZ6wErA9gYcWc/CVpZSiJo2a3Zy8q/2AAQmS2z0GJPtzBTqPnAkNOslVlUfHvOE4+fungWLGU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670015; c=relaxed/simple; bh=TAJrZEsJSgeAa4gixJOn+roF5tylPMHvxQFzabKcfEA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=VS+52IqP0KDUvuLGjv75s6N7EiL9RawkaXW2xSzsE+w3YblWlhu1/YXIDSaHAuygnuQebksBwQdSXoyWTJfnUHbksg0GZW8D40pkzo5GWAR+KpmLarDg1x4IKrEQ/7esdZkF/pLYAbDzBfHBv3JFty1xfguENyz8hJBW9hVXJS8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=GnuWQPvC; arc=none smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="GnuWQPvC" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749670014; x=1781206014; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=TAJrZEsJSgeAa4gixJOn+roF5tylPMHvxQFzabKcfEA=; b=GnuWQPvCbx4x24rR/drwd+UVKXWsckuETdDVXIXk4lh08EhTTVJcZw/b U6+RnlGXuXsnFKrkerNdBzA/oHdupuKVfDIxpog9/4qkLg3+ucK5Nv020 CQFPThFBiXp5OKwkIgDjefTlLM0omqyjQa69iGrNt7QHM3Y8Ph+Mf2O/q U3I1fo22GCUSPlSO2i5BOToRERk3yNcVAFPrlQyrsbJ2f7Mwzd4Hb0C3C L/OJ/Iwbulo+k02/JQ7V844fagXehYDxpgtW8dBjA957DCXzXGtpjSwCm k/D6aofZ+46vVqIvWasBSjVl5cYzED4Kh2KMNVcxlggh274UFiXzIGyZF Q==; X-CSE-ConnectionGUID: j+oZW4HUR0OK30f7XjGNiA== X-CSE-MsgGUID: 45BNu7cfTZuL/IY+eH9Vwg== X-IronPort-AV: E=McAfee;i="6800,10657,11461"; a="74360858" X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="74360858" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:26:54 -0700 X-CSE-ConnectionGUID: KbzaW6y8Tcym/H5MiQUNqg== X-CSE-MsgGUID: EXyyBzJKSCe/UWwAbw1s8w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="147165830" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:26:52 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Pagadala Yesu Anjaneyulu Subject: [PATCH iwlwifi-next v2 02/15] wifi: iwlwifi: add support for the devcoredump Date: Wed, 11 Jun 2025 22:26:21 +0300 Message-Id: <20250611222325.bb38efe6700d.I9c666440dd1eac13ac52a2c2d533224c36fea2a6@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> References: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Pagadala Yesu Anjaneyulu This handler will be used by upcoming changes to trigger firmware dumps from devcoredump through trans layer. Signed-off-by: Pagadala Yesu Anjaneyulu Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/iwl-op-mode.h | 10 ++++++++++ drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-op-mode.h b/drivers/net/wireless/intel/iwlwifi/iwl-op-mode.h index 5dc299296d6d..a146d0e399f2 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-op-mode.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-op-mode.h @@ -147,6 +147,8 @@ struct iwl_fw_error_dump_mode { * Op_mode needs to reset its internal state because the device did not * survive the system state transition. The firmware is no longer running, * etc... + * @dump: Op_mode needs to collect the firmware dump upon this handler + * being called. */ struct iwl_op_mode_ops { struct iwl_op_mode *(*start)(struct iwl_trans *trans, @@ -174,6 +176,7 @@ struct iwl_op_mode_ops { enum iwl_fw_ini_time_point tp_id, union iwl_dbg_tlv_tp_data *tp_data); void (*device_powered_off)(struct iwl_op_mode *op_mode); + void (*dump)(struct iwl_op_mode *op_mode); }; int iwl_opmode_register(const char *name, const struct iwl_op_mode_ops *ops); @@ -286,4 +289,11 @@ static inline void iwl_op_mode_device_powered_off(struct iwl_op_mode *op_mode) op_mode->ops->device_powered_off(op_mode); } +static inline void iwl_op_mode_dump(struct iwl_op_mode *op_mode) +{ + if (!op_mode || !op_mode->ops || !op_mode->ops->dump) + return; + op_mode->ops->dump(op_mode); +} + #endif /* __iwl_op_mode_h__ */ diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 44e19b27f36a..a42a6da5d2ea 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -1564,12 +1564,21 @@ static const struct dev_pm_ops iwl_dev_pm_ops = { #endif /* CONFIG_PM_SLEEP */ +static void iwl_pci_dump(struct device *device) +{ + struct pci_dev *pdev = to_pci_dev(device); + struct iwl_trans *trans = pci_get_drvdata(pdev); + + iwl_op_mode_dump(trans->op_mode); +} + static struct pci_driver iwl_pci_driver = { .name = DRV_NAME, .id_table = iwl_hw_card_ids, .probe = iwl_pci_probe, .remove = iwl_pci_remove, .driver.pm = IWL_PM_OPS, + .driver.coredump = iwl_pci_dump, }; int __must_check iwl_pci_register_driver(void) From patchwork Wed Jun 11 19:26:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 895926 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1CA3F2BD5AF for ; Wed, 11 Jun 2025 19:26:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670016; cv=none; b=b65TunpZIuMeovgWoxb1CWFHFJ0Wvq97JfgSYeSR/GTrjw27+rHuIFOkhMixM/b2Dk2sFG7ffZPBsQHe+8a/FrWdbCT5uYKPOiu+Zo+nQUuC0FW54+i/XmziWQ3TiW42UDCM/6X60eBE4K1d6DvK/c9GSuezRIL0I5X8dibpCzU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670016; c=relaxed/simple; bh=vFaw8DdSiGh0at6BYe0LRkJWv/OhnvWxzE6n1Q3UtkM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=B434tb7P67V8Ymjg0DTqdf4iRSSfOTAbmvvUiUqGu4tT4IGewpbGl5lLzo/xXqMSJMaf9o8D7I6x3730BuSDTlSiF4ovpocSUsKHTQHoBKTC3jxnrwz8qN0OtoU5Uumiz24Ln0qA1+7Qv/ZHhbKWfQGoVvdmgY7q0Nj13ajHMrA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=RyFyOFQv; arc=none smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="RyFyOFQv" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749670015; x=1781206015; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=vFaw8DdSiGh0at6BYe0LRkJWv/OhnvWxzE6n1Q3UtkM=; b=RyFyOFQvtEyf4iEE5eW22sGdyBhLZ4NXBAV8dN+/rU6YK7EK/ZNyPxyu GWSpx9UT/MiGGfgV0BQXu2aSidIwK0GWP506hxm5R3m/8dE5lyCWhyS6y Xyspcr5GfRqXXq+bz1u/PjeyD59vqZgSxafdE2SX2Fe4xcjrqQqx+y3VQ 5x5z5fCp5e5OlHShtpcav0tWEL4ZlzEmKZxK0NKDQFLCljuHync6Fspsf 4EKlsvE+hPW3F6ZfICJ0W6+iSZowMEa5fl08y9Blh95al4pzSAGQUeXDe uXphK2ZsSRz+wWY0S4rH5+y+vZBa3LWMTqyQyZL0VcRHOm91BwRrKyT5P A==; X-CSE-ConnectionGUID: NFx+flOFShmGHQzWWarofA== X-CSE-MsgGUID: i6YsGa7pTY6beCj/1ioRZQ== X-IronPort-AV: E=McAfee;i="6800,10657,11461"; a="74360862" X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="74360862" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:26:55 -0700 X-CSE-ConnectionGUID: SsRNxj2eT4GF5CSJ9LXmKg== X-CSE-MsgGUID: Uxy4MThZTeGXa6KxGR56lQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="147165837" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:26:53 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Pagadala Yesu Anjaneyulu Subject: [PATCH iwlwifi-next v2 03/15] wifi: iwlwifi: mld: Add dump handler to iwl_mld Date: Wed, 11 Jun 2025 22:26:22 +0300 Message-Id: <20250611222325.18ebf46690ce.Ia52941f761a446cb3e43cbe49d2b9a49fc15f4a8@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> References: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Pagadala Yesu Anjaneyulu Implement a dump handler in the iwl_mld operation mode to collect firmware dump upon trigger from trans layer. Signed-off-by: Pagadala Yesu Anjaneyulu Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/mld/mld.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/net/wireless/intel/iwlwifi/mld/mld.c b/drivers/net/wireless/intel/iwlwifi/mld/mld.c index 8cdd960c5245..103912c4e4cc 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/mld.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/mld.c @@ -723,6 +723,17 @@ static void iwl_mld_device_powered_off(struct iwl_op_mode *op_mode) {} #endif +static void iwl_mld_dump(struct iwl_op_mode *op_mode) +{ + struct iwl_mld *mld = IWL_OP_MODE_GET_MLD(op_mode); + struct iwl_fw_runtime *fwrt = &mld->fwrt; + + if (!iwl_trans_fw_running(fwrt->trans)) + return; + + iwl_dbg_tlv_time_point(fwrt, IWL_FW_INI_TIME_POINT_USER_TRIGGER, NULL); +} + static const struct iwl_op_mode_ops iwl_mld_ops = { .start = iwl_op_mode_mld_start, .stop = iwl_op_mode_mld_stop, @@ -737,6 +748,7 @@ static const struct iwl_op_mode_ops iwl_mld_ops = { .sw_reset = iwl_mld_sw_reset, .time_point = iwl_mld_time_point, .device_powered_off = pm_sleep_ptr(iwl_mld_device_powered_off), + .dump = iwl_mld_dump, }; struct iwl_mld_mod_params iwlmld_mod_params = { From patchwork Wed Jun 11 19:26:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 896255 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0071F2BD5BB for ; Wed, 11 Jun 2025 19:26:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670017; cv=none; b=El0wBZK6A4neke2Pls7J8EuKRGONXfnXNTr5CedAID7PPctO6ecBTvvGVbWOBUTgjk62esmV0+y6HUFEkyYZRkI4B7PUQ2s05Hl9CFDCoOUDmK6YMWZFCRxIZWJt9iIxBftmXD8wIh3VuGyLNzd2S/wRo1ie1IO85zo30UYFEiw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670017; c=relaxed/simple; bh=vVOEhfS8uBmV2AWGbh9zbfC7yYm/3cLvNe3Sk55Reuk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=XWBAlxQnWqFsa7VEB1xcpu8vpUthyeSvzfCeiFWtLNtZi1DtYdDzjMeOhsHMneSmrY6ph0A3sK350NgbY2LKj/wgAda0o8WKMDbwRKBreTakt1gQ+szhv/gtQvWyroMf3yDK8lDI32zS5nLkwQZUKuqAC3eoAOi2mtR5wCZ5Z4A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=T1zSn948; arc=none smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="T1zSn948" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749670016; x=1781206016; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=vVOEhfS8uBmV2AWGbh9zbfC7yYm/3cLvNe3Sk55Reuk=; b=T1zSn948BvcbtTngTAJ0hMuTQnyj5/sZJCsJEcyUifV6iXQyojHsPUDA rA9GqI/5tWZdM0frfGzon5CEuracV5S8y1X4MlAH0epE8uiX/29TIGa60 hOFzfNVB9kHUvmJviV7cidAKayWk4Q0+8rUGEpyjpALoJavRYqZQWtDf3 iighbkg9Wm9bZENn/YRcN0Sb3abshwel1iBA6X7AiiHax81dwnxK4aokq XDkOfCl6alQ2u/PPpfpNY4sdzu8VNXukLS+p6NE5Q/KTSJchDMRn/dgVL siRhtih0da/ONBb3bx8dSO/aFViW2Fx3I5OQTDavPxK4jOmQ+vj8waSsk w==; X-CSE-ConnectionGUID: yTNnc2V7RpKyeuXqrJXzOQ== X-CSE-MsgGUID: 1TYm1Fe4QHSOHrWqRliIgQ== X-IronPort-AV: E=McAfee;i="6800,10657,11461"; a="74360871" X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="74360871" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:26:56 -0700 X-CSE-ConnectionGUID: jJCYQMP3TEqVXwUVrpzIWw== X-CSE-MsgGUID: s4JayflgQIie2Rdvhl0b/g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="147165840" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:26:55 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Pagadala Yesu Anjaneyulu Subject: [PATCH iwlwifi-next v2 04/15] wifi: iwlwifi: fw: Fix possible memory leak in iwl_fw_dbg_collect Date: Wed, 11 Jun 2025 22:26:23 +0300 Message-Id: <20250611222325.8158d15ec866.Ifa3e422c302397111f20a16da7509e6574bc19e3@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> References: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Pagadala Yesu Anjaneyulu Ensure descriptor is freed on error to avoid memory leak. Signed-off-by: Pagadala Yesu Anjaneyulu Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c index ea739ebe7cb0..95a732efce45 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c +++ b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c @@ -3008,6 +3008,7 @@ int iwl_fw_dbg_collect(struct iwl_fw_runtime *fwrt, struct iwl_fw_dump_desc *desc; unsigned int delay = 0; bool monitor_only = false; + int ret; if (trigger) { u16 occurrences = le16_to_cpu(trigger->occurrences) - 1; @@ -3038,7 +3039,11 @@ int iwl_fw_dbg_collect(struct iwl_fw_runtime *fwrt, desc->trig_desc.type = cpu_to_le32(trig); memcpy(desc->trig_desc.data, str, len); - return iwl_fw_dbg_collect_desc(fwrt, desc, monitor_only, delay); + ret = iwl_fw_dbg_collect_desc(fwrt, desc, monitor_only, delay); + if (ret) + kfree(desc); + + return ret; } IWL_EXPORT_SYMBOL(iwl_fw_dbg_collect); From patchwork Wed Jun 11 19:26:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 895925 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 648822BDC17 for ; Wed, 11 Jun 2025 19:26:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670018; cv=none; b=dDpZoUVnlVvY/VlFCVXObVvFXRpJ6EPJWBk+vzQZuoTgAu51xRATeVUtSzIOCoCGqT+nFbCLS/mia5TzTRWnYzYZ2a76QT7zH58F7mf2Gv4GoFHdNIHOdA1xNepzh4nbLTW8R41ObjXuz5N9335Yaf/gvvRHKombaaTz3M0tp34= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670018; c=relaxed/simple; bh=uU9SdRLZ6Dc5AKK+yj1wJVIU6RdQKS4gSLBFIRAvthM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=uWU/emEjnE91m3NTDs9s1l07gg6l8RafKGIpi5sUmGaunkR8jettbYvQFJ1uuZ2TjulagqRNUkCQs00oxpf0j/PEZ3gcWA+c8oM+TuWpQ94xwLIOO193Vk7gi4sYfc0j2G7xV5BzJqJkGNX5r7+QpBJx5dB2R9Jro6TbIBg/e+s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=NYeuuYA+; arc=none smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="NYeuuYA+" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749670018; x=1781206018; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=uU9SdRLZ6Dc5AKK+yj1wJVIU6RdQKS4gSLBFIRAvthM=; b=NYeuuYA+aUPUTjvEgZFqZdWj+WOEYBNBlHOSH2Nto+KyGuORcmsLzWQV 3/tamzK6dwH72qZ0xsBX3UixSWxTZbM+TrB3yFNgVubfI9+tsy9mBMJZ1 gtXawEtXNOwn2utX9Ep+fpJZYDymp0OHXr08cGw1+GltXQ4J05u+Cqxpn b7P6CppiFw3R+DhIs/KTHP3W+ywibLsC43hSVAnDlzCl8xiaXFoJojssV HjqFFZ8ZrPd7GmpN4pw3vTMHnwrI0hhsDLeANMk9WscGwf3tGazNxjOMQ a91dQi2UHLPfa4s2M+jknxdyI+U+BIowqmmrsE15qt5MwgWxqZLIkytP6 A==; X-CSE-ConnectionGUID: XOXknXLMRQ+YCvY+IK26JA== X-CSE-MsgGUID: PzX5NMU0RS+8IFlypIcB4w== X-IronPort-AV: E=McAfee;i="6800,10657,11461"; a="74360878" X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="74360878" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:26:58 -0700 X-CSE-ConnectionGUID: MxrEfeQRT7iaRm1M7fQ1hg== X-CSE-MsgGUID: /7cfjeUZTPCWrtDKi4Xw0A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="147165843" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:26:56 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Or Ron , Eilon Rinat Subject: [PATCH iwlwifi-next v2 05/15] wifi: iwlwifi: phy periph read - flow modification Date: Wed, 11 Jun 2025 22:26:24 +0300 Message-Id: <20250611222325.124ce6613edd.Ic1aad57cc6163f0551a3dafae048434f4a2fe7f5@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> References: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Or Ron If for some reason the reading of phy prph fails, there is no reason to keep reading them. Check the status abd break early in such case. Signed-off-by: Or Ron Reviewed-by: Eilon Rinat Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 16 ++++++++++++++++ drivers/net/wireless/intel/iwlwifi/iwl-prph.h | 10 +++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c index 95a732efce45..98ad020014d9 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c +++ b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c @@ -1106,6 +1106,7 @@ static int iwl_dump_ini_prph_phy_iter_common(struct iwl_fw_runtime *fwrt, u32 prph_val; u32 dphy_state; u32 dphy_addr; + u32 prph_stts; int i; range->internal_base_addr = cpu_to_le32(addr); @@ -1133,6 +1134,21 @@ static int iwl_dump_ini_prph_phy_iter_common(struct iwl_fw_runtime *fwrt, iwl_write_prph_no_grab(fwrt->trans, indirect_wr_addr, WMAL_INDRCT_CMD(addr + i)); + + if (fwrt->trans->info.hw_rf_id != IWL_CFG_RF_TYPE_JF1 && + fwrt->trans->info.hw_rf_id != IWL_CFG_RF_TYPE_JF2 && + fwrt->trans->info.hw_rf_id != IWL_CFG_RF_TYPE_HR1 && + fwrt->trans->info.hw_rf_id != IWL_CFG_RF_TYPE_HR2) { + udelay(2); + prph_stts = iwl_read_prph_no_grab(fwrt->trans, + WMAL_MRSPF_STTS); + + /* Abort dump if status is 0xA5A5A5A2 or FIFO1 empty */ + if (prph_stts == WMAL_TIMEOUT_VAL || + !WMAL_MRSPF_STTS_IS_FIFO1_NOT_EMPTY(prph_stts)) + break; + } + prph_val = iwl_read_prph_no_grab(fwrt->trans, indirect_rd_addr); *val++ = cpu_to_le32(prph_val); diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-prph.h b/drivers/net/wireless/intel/iwlwifi/iwl-prph.h index 23b2009fbb28..a7214ddcfaf5 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-prph.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-prph.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ /* - * Copyright (C) 2005-2014, 2018-2024 Intel Corporation + * Copyright (C) 2005-2014, 2018-2025 Intel Corporation * Copyright (C) 2013-2015 Intel Mobile Communications GmbH * Copyright (C) 2016 Intel Deutschland GmbH */ @@ -514,6 +514,14 @@ enum { #define WMAL_INDRCT_CMD(addr) \ ((WMAL_CMD_READ_BURST_ACCESS << WMAL_INDRCT_RD_CMD1_OPMOD_POS) | \ ((addr) & WMAL_INDRCT_RD_CMD1_BYTE_ADDRESS_MSK)) +#define WMAL_MRSPF_STTS 0xADFC24 +#define WMAL_MRSPF_STTS_FIFO1_NOT_EMPTY_POS 15 +#define WMAL_MRSPF_STTS_FIFO1_NOT_EMPTY_MSK 0x8000 +#define WMAL_TIMEOUT_VAL 0xA5A5A5A2 +#define WMAL_MRSPF_STTS_IS_FIFO1_NOT_EMPTY(val) \ + (((val) >> (WMAL_MRSPF_STTS_FIFO1_NOT_EMPTY_POS)) & \ + ((WMAL_MRSPF_STTS_FIFO1_NOT_EMPTY_MSK) >> \ + (WMAL_MRSPF_STTS_FIFO1_NOT_EMPTY_POS))) #define WFPM_LMAC1_PS_CTL_RW 0xA03380 #define WFPM_LMAC2_PS_CTL_RW 0xA033C0 From patchwork Wed Jun 11 19:26:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 896254 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 966D42BDC24 for ; Wed, 11 Jun 2025 19:26:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670020; cv=none; b=k+2KNgOa2aqqz7AHhYyKFReyV0H2MtQlv+ZgIxk/Sn3D9t5enNM7Hq3o1+QAxJnFRZ9ZxvyjLhQHjMEMfoY9+06fStpD93BHpNy5qmxJslmrXR55MNv3+Nw7ex581vIqNNwDFKBqu2+mKN5WvBvGenjOg8wP3onhvyA5SSdigNk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670020; c=relaxed/simple; bh=OO2xFlo3x0olf6gA/wxqaXCWzMI0kLGZWt6CmXfdEwU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=TSoo29/V3peWtAzThO4HT15zlARmfu9E3kFRDMB5gJ5Iu5jISjmC5LcUlBiqnSVUjMDKjAlz77wrBCWocPkjLF5Kg0U0E92WBdgKHcMxm+eFZHJiycnUhJQpYSGoY7K29xnPAvdSwzfoJ6hWgYxzQabQiYT5e2Ycv8zrz0OPnVc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=DfNHpFuf; arc=none smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="DfNHpFuf" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749670019; x=1781206019; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=OO2xFlo3x0olf6gA/wxqaXCWzMI0kLGZWt6CmXfdEwU=; b=DfNHpFufwdQ7QZkAg4MUeBv3/xDTQtjtclazW4ESANnpD8W34zYPPHwE XKjHESqC1t9RNZ64gHimL7pMOfCUJ6rI+gNxD/1kYfQqPwRJfiUG8tlPN wD4YDC3bCO1vkyHNz+/io+Tojlj4fy/vczLm+akQyOOnibtiuf9svKPx3 plfN4t/IjaE0gLSRipmUhbQVuLVrampYBzVhj6odkxxdbxpHOQqQOeREc qlkzw59g4rXLhA8XAFuROKVItEEmG9GXdJ8jiQtyw/FBnEOrqu4A/5l+v L5m04pjg3i9Qhrou/V++a3ZF3VELAE8QzTz57hUErWZvuYFR871gIuXgE Q==; X-CSE-ConnectionGUID: LcZGaUMJSpqWP0iHRpZfIQ== X-CSE-MsgGUID: 2Jh0bQgcQ46Fk/lrp/2WtA== X-IronPort-AV: E=McAfee;i="6800,10657,11461"; a="74360882" X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="74360882" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:26:59 -0700 X-CSE-ConnectionGUID: kzrS7bAmThCPOy23y3164g== X-CSE-MsgGUID: XDd5dxujTTex4z5Vv9aDdw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="147165846" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:26:57 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next v2 06/15] wifi: iwlwifi: mld: add timer host wakeup debugfs Date: Wed, 11 Jun 2025 22:26:25 +0300 Message-Id: <20250611222325.9f2a39cae1e1.Ie0003f21286fea50b507d0debe06332b030cd4cb@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> References: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg Add a debugfs file to be able to control how long, at most, the device will sleep before waking up the host. This will be useful to test certain "assert during suspend" scenarios for the previous change. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/fw/api/d3.h | 6 ++++-- drivers/net/wireless/intel/iwlwifi/mld/d3.c | 7 +++++++ drivers/net/wireless/intel/iwlwifi/mld/debugfs.c | 5 +++++ drivers/net/wireless/intel/iwlwifi/mld/mld.h | 2 ++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/fw/api/d3.h b/drivers/net/wireless/intel/iwlwifi/fw/api/d3.h index 9c271ea67155..9ce819503aed 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/api/d3.h +++ b/drivers/net/wireless/intel/iwlwifi/fw/api/d3.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ /* - * Copyright (C) 2012-2014, 2018-2024 Intel Corporation + * Copyright (C) 2012-2014, 2018-2025 Intel Corporation * Copyright (C) 2013-2014 Intel Mobile Communications GmbH * Copyright (C) 2015-2017 Intel Deutschland GmbH */ @@ -19,9 +19,11 @@ enum iwl_d0i3_flags { /** * enum iwl_d3_wakeup_flags - D3 manager wakeup flags * @IWL_WAKEUP_D3_CONFIG_FW_ERROR: wake up on firmware sysassert + * @IWL_WAKEUP_D3_HOST_TIMER: wake up on host timer expiry */ enum iwl_d3_wakeup_flags { - IWL_WAKEUP_D3_CONFIG_FW_ERROR = BIT(0), + IWL_WAKEUP_D3_CONFIG_FW_ERROR = BIT(0), + IWL_WAKEUP_D3_HOST_TIMER = BIT(1), }; /* D3_MANAGER_WAKEUP_CONFIG_API_E_VER_3 */ /** diff --git a/drivers/net/wireless/intel/iwlwifi/mld/d3.c b/drivers/net/wireless/intel/iwlwifi/mld/d3.c index 339b148d6793..d450d24689f6 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/d3.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/d3.c @@ -1317,6 +1317,13 @@ int iwl_mld_no_wowlan_suspend(struct iwl_mld *mld) struct iwl_d3_manager_config d3_cfg_cmd_data = {}; int ret; + if (mld->debug_max_sleep) { + d3_cfg_cmd_data.wakeup_host_timer = + cpu_to_le32(mld->debug_max_sleep); + d3_cfg_cmd_data.wakeup_flags = + cpu_to_le32(IWL_WAKEUP_D3_HOST_TIMER); + } + lockdep_assert_wiphy(mld->wiphy); IWL_DEBUG_WOWLAN(mld, "Starting the no wowlan suspend flow\n"); diff --git a/drivers/net/wireless/intel/iwlwifi/mld/debugfs.c b/drivers/net/wireless/intel/iwlwifi/mld/debugfs.c index 352da8aa7898..75cc1d8bb90c 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/debugfs.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/debugfs.c @@ -546,6 +546,11 @@ iwl_mld_add_debugfs_files(struct iwl_mld *mld, struct dentry *debugfs_dir) #endif MLD_DEBUGFS_ADD_FILE(inject_packet, debugfs_dir, 0200); +#ifdef CONFIG_PM_SLEEP + debugfs_create_u32("max_sleep", 0600, debugfs_dir, + &mld->debug_max_sleep); +#endif + debugfs_create_bool("rx_ts_ptp", 0600, debugfs_dir, &mld->monitor.ptp_time); diff --git a/drivers/net/wireless/intel/iwlwifi/mld/mld.h b/drivers/net/wireless/intel/iwlwifi/mld/mld.h index 1a2c44f44eff..241ab3a00e56 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/mld.h +++ b/drivers/net/wireless/intel/iwlwifi/mld/mld.h @@ -159,6 +159,7 @@ * @addresses: device MAC addresses. * @scan: instance of the scan object * @wowlan: WoWLAN support data. + * @debug_max_sleep: maximum sleep time in D3 (for debug purposes) * @led: the led device * @mcc_src: the source id of the MCC, comes from the firmware * @bios_enable_puncturing: is puncturing enabled by bios @@ -252,6 +253,7 @@ struct iwl_mld { struct iwl_mld_scan scan; #ifdef CONFIG_PM_SLEEP struct wiphy_wowlan_support wowlan; + u32 debug_max_sleep; #endif /* CONFIG_PM_SLEEP */ #ifdef CONFIG_IWLWIFI_LEDS struct led_classdev led; From patchwork Wed Jun 11 19:26:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 895924 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C75442BDC2D for ; Wed, 11 Jun 2025 19:26:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670021; cv=none; b=M9yAoKrm4B7kFMkFSIDFbPN6vP57w/3VnCjNGCKfM7Wq89++Asq0YF9sKM4ytYfh0lb4CCOznGpsUiXxqfN2zaKkpArgacAJFP2YQg4y7C5073JXzuRsg+go28lF4uV4aQpfbVd2b3v1huUSnHCnaxWaA/HuT5I94nExkFes508= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670021; c=relaxed/simple; bh=6+kO3llmm8Rq06zV6t1YaBhgDCLy2sKzPrl499p0uKg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=YHYPYRNoxO4PC5vSw4RPEhZbQA9jJZR0RaGx3wIYsYBAmOEsBI76rOOgMcm+cAVA+V7ris0keHfZVrasEo2adNeCjA0jKWs6BhytWlLyeVnza1v5qcjewVeuj1wQcvW5DyT9FkSmDXMRTjK7szFhJO9IEr/Mjx8lCzhgbhdCWcA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=g+LtqAEp; arc=none smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="g+LtqAEp" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749670020; x=1781206020; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=6+kO3llmm8Rq06zV6t1YaBhgDCLy2sKzPrl499p0uKg=; b=g+LtqAEpBpSFztJY6/RdAnjGEwSCl8Z1EYesUNXQabb93pP/+tpDdLRk OuxuO4WnUDRlJrzhHjbuX/g2RQL6mpv5FG3Tt9M9fO4Ct+tzJr1H/tRQT A+lfXklZiyRPSprz32c75vXMQyexfnC4lbS/5abedOgftte4154811nHf eYI3hwbtgW6xCLHqcNZkzwgfcF6HG51aOFfpjz5udZOzpy/PsU5S3aKU3 Aiur+coSGOeNzqyE8LT+EvJQn7TxsJ4mILStfMugVPgQXG0BCyAcDdTHG RRq4eYq0rved0zjajCx5x7t0+qTqeNxT8B2VbFhEp7pqq5SI0wTE9Ij4P Q==; X-CSE-ConnectionGUID: CZi1EZupQEWjPuE7PovNDA== X-CSE-MsgGUID: qHOM0YMwSOOOz7XNzAG84w== X-IronPort-AV: E=McAfee;i="6800,10657,11461"; a="74360888" X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="74360888" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:00 -0700 X-CSE-ConnectionGUID: p6y21+I4SVqefW6Y7nVtow== X-CSE-MsgGUID: 2kXL53hfQPqOvtxa8QFYRg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="147165850" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:26:58 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next v2 07/15] wifi: iwlwifi: mld: remove special FW error resume handling Date: Wed, 11 Jun 2025 22:26:26 +0300 Message-Id: <20250611222325.9e778f1bae0c.I96483b5236ab23141b45079464c73f93e0164e65@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> References: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg The (applicable) firmware versions will send an error interrupt as part of the resume process, so there's no need now to check for it explicitly. Simplify the code. This also fixes an issue where any dump taken during the resume isn't able to do the reset handshake as part of the dump (since interrupts are disabled) and then there isn't all the correct data and we get more errors later. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/mld/d3.c | 72 +------------------ .../net/wireless/intel/iwlwifi/mld/mac80211.c | 9 ++- 2 files changed, 10 insertions(+), 71 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mld/d3.c b/drivers/net/wireless/intel/iwlwifi/mld/d3.c index d450d24689f6..b156cf56a30d 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/d3.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/d3.c @@ -204,66 +204,6 @@ void iwl_mld_ipv6_addr_change(struct ieee80211_hw *hw, } #endif -enum rt_status { - FW_ALIVE, - FW_NEEDS_RESET, - FW_ERROR, -}; - -static enum rt_status iwl_mld_check_err_tables(struct iwl_mld *mld, - struct ieee80211_vif *vif) -{ - u32 err_id; - - /* check for lmac1 error */ - if (iwl_fwrt_read_err_table(mld->trans, - mld->trans->dbg.lmac_error_event_table[0], - &err_id)) { - if (err_id == RF_KILL_INDICATOR_FOR_WOWLAN && vif) { - struct cfg80211_wowlan_wakeup wakeup = { - .rfkill_release = true, - }; - ieee80211_report_wowlan_wakeup(vif, &wakeup, - GFP_KERNEL); - - return FW_NEEDS_RESET; - } - return FW_ERROR; - } - - /* check if we have lmac2 set and check for error */ - if (iwl_fwrt_read_err_table(mld->trans, - mld->trans->dbg.lmac_error_event_table[1], - NULL)) - return FW_ERROR; - - /* check for umac error */ - if (iwl_fwrt_read_err_table(mld->trans, - mld->trans->dbg.umac_error_event_table, - NULL)) - return FW_ERROR; - - return FW_ALIVE; -} - -static bool iwl_mld_fw_needs_restart(struct iwl_mld *mld, - struct ieee80211_vif *vif) -{ - enum rt_status rt_status = iwl_mld_check_err_tables(mld, vif); - - if (rt_status == FW_ALIVE) - return false; - - if (rt_status == FW_ERROR) { - IWL_ERR(mld, "FW Error occurred during suspend\n"); - iwl_fwrt_dump_error_logs(&mld->fwrt); - iwl_dbg_tlv_time_point(&mld->fwrt, - IWL_FW_INI_TIME_POINT_FW_ASSERT, NULL); - } - - return true; -} - static int iwl_mld_netdetect_config(struct iwl_mld *mld, struct ieee80211_vif *vif, @@ -1383,10 +1323,7 @@ int iwl_mld_no_wowlan_resume(struct iwl_mld *mld) mld->fw_status.in_d3 = false; iwl_fw_dbg_read_d3_debug_data(&mld->fwrt); - if (iwl_mld_fw_needs_restart(mld, NULL)) - ret = -ENODEV; - else - ret = iwl_mld_wait_d3_notif(mld, &resume_data, false); + ret = iwl_mld_wait_d3_notif(mld, &resume_data, false); if (!ret && (resume_data.d3_end_flags & IWL_D0I3_RESET_REQUIRE)) return -ENODEV; @@ -1935,15 +1872,10 @@ int iwl_mld_wowlan_resume(struct iwl_mld *mld) iwl_fw_dbg_read_d3_debug_data(&mld->fwrt); - if (iwl_mld_fw_needs_restart(mld, bss_vif)) { - fw_err = true; - goto err; - } - resume_data.wowlan_status = kzalloc(sizeof(*resume_data.wowlan_status), GFP_KERNEL); if (!resume_data.wowlan_status) - return -1; + return -ENOMEM; if (mld->netdetect) resume_data.notifs_expected |= IWL_D3_ND_MATCH_INFO; diff --git a/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c index 9b4bdbf40d4d..0f156e868504 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c @@ -508,8 +508,15 @@ int iwl_mld_mac80211_start(struct ieee80211_hw *hw) if (in_d3) { /* mac80211 already cleaned up the state, no need for cleanup */ ret = iwl_mld_no_wowlan_resume(mld); - if (ret) + if (ret) { iwl_mld_stop_fw(mld); + /* We're not really restarting in the sense of + * in_hw_restart even if we got an error during + * this. We'll just start again below and have + * nothing to recover, mac80211 will do anyway. + */ + mld->fw_status.in_hw_restart = false; + } } #endif /* CONFIG_PM_SLEEP */ From patchwork Wed Jun 11 19:26:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 896253 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 047792BDC35 for ; Wed, 11 Jun 2025 19:27:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670022; cv=none; b=flg/uFqyEka0Jz72pLNpcfxpUi0Jk4QE0hMP4qZcgVvqoHN0qFPuXJBbfNIrj8zsrWEtmAT52DkQJmfd+Lfk2Ir3vwYAuxSguXhzjgnntoSE3OquY2+QeJE8ozM1mGRBQqgdRZOfzkPj8PDBX7UWbEvcWpofGDK0GUf7aep/xkI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670022; c=relaxed/simple; bh=h/OcQtffMb6TcbuatTOWYtrnUNADKzrAmEMT9oiCllw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=lKqikj1CXlMhWJ47pdl78oDHHgyIRAzXjI+EVT7C/AdpgO8EST7SCv1bx17vY5+oLI15StiUzeA+1Z93v6SqJb2rS1FJ5weTch9jt6Sjix1vx0z1Xg0JRfDt7ZRnClN0BMDEygOELQkSbfnua1OYxWhjscfi7M7ijF4EyaaCRVA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=JdjjqIG7; arc=none smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="JdjjqIG7" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749670021; x=1781206021; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=h/OcQtffMb6TcbuatTOWYtrnUNADKzrAmEMT9oiCllw=; b=JdjjqIG78Uw/mawBAYFENUXRyNckSjpfZKuQzptTc+oXXgWIUt7Cb8ba FqWUayczw9lX0VR8QYV38S5uD/XiyAgMCKN37GLyLfZNJwZPjdZo3kbLX xi42JNpufngt70itSogsYomafFKOXacuIHIgG+htPaM2EuApG93wsVoCC BZWs4kOj8AeShk5I9PjRr8Y6k5gfBNzKjM4OcfhTgmcZOGcUbkwU8Sn47 vpUH0XdVudko/IALAA/R3Q255p19Il+pKPvmVlPMi5zzxMKNuQEGQdTYK eO9pz/AHh4ulbIuYjI210EUK/B5QFB2s6lCQoxWGfuTJlTkVkuty/OFbv A==; X-CSE-ConnectionGUID: NqoBDUM8Q06nHlHDSDPBNg== X-CSE-MsgGUID: MC7iu5WCQVylI8s/gMCb0w== X-IronPort-AV: E=McAfee;i="6800,10657,11461"; a="74360892" X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="74360892" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:01 -0700 X-CSE-ConnectionGUID: Sdfq3gbYTWqWqERCKw9ZIA== X-CSE-MsgGUID: 1OIaNAYHTPqae5RBFUQ16w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="147165855" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:00 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next v2 08/15] wifi: iwlwifi: mld: fix last_mlo_scan_time type Date: Wed, 11 Jun 2025 22:26:27 +0300 Message-Id: <20250611222325.5381030253cd.I4e3a7bca5b52fc826e26311055286421508c4d1b@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> References: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg This should be u64, otherwise it rolls over quickly on 32-bit systems. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/mld/scan.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mld/scan.h b/drivers/net/wireless/intel/iwlwifi/mld/scan.h index 3ae940d55065..4044cac3f086 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/scan.h +++ b/drivers/net/wireless/intel/iwlwifi/mld/scan.h @@ -130,7 +130,7 @@ struct iwl_mld_scan { void *cmd; unsigned long last_6ghz_passive_jiffies; unsigned long last_start_time_jiffies; - unsigned long last_mlo_scan_time; + u64 last_mlo_scan_time; }; #endif /* __iwl_mld_scan_h__ */ From patchwork Wed Jun 11 19:26:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 895923 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3A2FB2BE7A6 for ; Wed, 11 Jun 2025 19:27:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670023; cv=none; b=fb5sEpe0VYwY1ZmL7PeiWhYOpImN8E51/4SJ9sMUmDk4ClsTrM0oyd2/jPZOmuPSiEdOr6Bq2bZllyFPfLRbwNpmXx+/eif+Cc1DHYwga2FzktB8wJw/ItwItIy8Y2tDC2a1VYzOSdBNmZufhCWTEozN0ip3+FUoqD/J+LDBVl8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670023; c=relaxed/simple; bh=upJdgO0YoDXWHgyMLaOstcjSmA+5OZbHowYyTIq4BIk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=q/uNfY2QkhUur9u6buhztpWsIVUBslK6lDBoXMKAf6fZxEcneUH45KKX5mQrgqdDu6lNhGvsBpSeMzNqEBc3Tapr+2iNCVuAdbYASEm40OSaHKwsBbg2bo6DjBpjhqbqLi2yS9WDXJCt0o+7K8X/TqXZyyhkDWEd5oO4CzIWOA8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=nbGQJOrc; arc=none smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="nbGQJOrc" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749670022; x=1781206022; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=upJdgO0YoDXWHgyMLaOstcjSmA+5OZbHowYyTIq4BIk=; b=nbGQJOrcSWiuVG1OD3yH3KEPcy0ghPAhJWy0dKQbhh2npNzgDcqwexs5 b0Hi3LvCxhb+KRcrr5339RQqnkqkesKSjwB4+H5soCtQAYmXFMXHTBO5V js/1mUNYUfnuPHFuvLM+PLpy2N/wu2sLUpXxdI6W6UUAADNGSCAF7DkBf 3uSYmX7UoSYH694tBVFkjU0jq7aZEuNTrt7AKztCIGjc2+QCgVUtMuJxK oQ1R8Soiq65tKtLvTkoZEGDPcydSWD6DXMopxwWIh8duZtvzMp6UUt8Se nBZFoeInxTtstkHtEiM8nMuO1BZgVMY42kT2HjCCGpBg9h/NHszr8bwId w==; X-CSE-ConnectionGUID: UyLd+XQOQe6Wq1DZAudVtg== X-CSE-MsgGUID: HaMtmqgsRHCQJC1M6Nfrvg== X-IronPort-AV: E=McAfee;i="6800,10657,11461"; a="74360894" X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="74360894" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:02 -0700 X-CSE-ConnectionGUID: 7P1v4BbAS22keM7KPDvn+g== X-CSE-MsgGUID: /4zs1d4+TumYuUcSEY4tqg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="147165864" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:01 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next v2 09/15] wifi: iwlwifi: defer MLO scan after link activation Date: Wed, 11 Jun 2025 22:26:28 +0300 Message-Id: <20250611222325.09548e958a9e.I24dbfd425da260f3ae6fa5a48fe25bd4ab6fcf99@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> References: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg Doing a scan right after link activation can be less reliable than at other times, as the firmware is still busy trying to catch beacons from the just activated link, etc. In case a new MLO scan request comes in, defer it for a few seconds after a link activation. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/mld/iface.c | 15 +++++++++++++++ drivers/net/wireless/intel/iwlwifi/mld/iface.h | 12 ++++++++++++ drivers/net/wireless/intel/iwlwifi/mld/link.c | 4 ++++ drivers/net/wireless/intel/iwlwifi/mld/scan.c | 12 ++++++++++++ 4 files changed, 43 insertions(+) diff --git a/drivers/net/wireless/intel/iwlwifi/mld/iface.c b/drivers/net/wireless/intel/iwlwifi/mld/iface.c index 235b55e0fe59..38993d65c052 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/iface.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/iface.c @@ -55,6 +55,8 @@ void iwl_mld_cleanup_vif(void *data, u8 *mac, struct ieee80211_vif *vif) ieee80211_iter_keys(mld->hw, vif, iwl_mld_cleanup_keys_iter, NULL); + wiphy_delayed_work_cancel(mld->wiphy, &mld_vif->mlo_scan_start_wk); + CLEANUP_STRUCT(mld_vif); } @@ -385,6 +387,17 @@ int iwl_mld_mac_fw_action(struct iwl_mld *mld, struct ieee80211_vif *vif, return iwl_mld_send_mac_cmd(mld, &cmd); } +static void iwl_mld_mlo_scan_start_wk(struct wiphy *wiphy, + struct wiphy_work *wk) +{ + struct iwl_mld_vif *mld_vif = container_of(wk, struct iwl_mld_vif, + mlo_scan_start_wk.work); + struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy); + struct iwl_mld *mld = IWL_MAC80211_GET_MLD(hw); + + iwl_mld_int_mlo_scan(mld, iwl_mld_vif_to_mac80211(mld_vif)); +} + IWL_MLD_ALLOC_FN(vif, vif) /* Constructor function for struct iwl_mld_vif */ @@ -412,6 +425,8 @@ iwl_mld_init_vif(struct iwl_mld *mld, struct ieee80211_vif *vif) iwl_mld_emlsr_prevent_done_wk); wiphy_delayed_work_init(&mld_vif->emlsr.tmp_non_bss_done_wk, iwl_mld_emlsr_tmp_non_bss_done_wk); + wiphy_delayed_work_init(&mld_vif->mlo_scan_start_wk, + iwl_mld_mlo_scan_start_wk); } iwl_mld_init_internal_sta(&mld_vif->aux_sta); diff --git a/drivers/net/wireless/intel/iwlwifi/mld/iface.h b/drivers/net/wireless/intel/iwlwifi/mld/iface.h index 49e2ce65557d..874e9ef9e798 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/iface.h +++ b/drivers/net/wireless/intel/iwlwifi/mld/iface.h @@ -133,6 +133,8 @@ struct iwl_mld_emlsr { * @low_latency_causes: bit flags, indicating the causes for low-latency, * see @iwl_mld_low_latency_cause. * @ps_disabled: indicates that PS is disabled for this interface + * @last_link_activation_time: last time a link was activated, for + * deferring MLO scans (to make them more reliable) * @mld: pointer to the mld structure. * @deflink: default link data, for use in non-MLO, * @link: reference to link data for each valid link, for use in MLO. @@ -144,6 +146,7 @@ struct iwl_mld_emlsr { * @roc_activity: the id of the roc_activity running. Relevant for STA and * p2p device only. Set to %ROC_NUM_ACTIVITIES when not in use. * @aux_sta: station used for remain on channel. Used in P2P device. + * @mlo_scan_start_wk: worker to start a deferred MLO scan */ struct iwl_mld_vif { /* Add here fields that need clean up on restart */ @@ -161,6 +164,7 @@ struct iwl_mld_vif { #endif u8 low_latency_causes; bool ps_disabled; + time64_t last_link_activation_time; ); /* And here fields that survive a fw restart */ struct iwl_mld *mld; @@ -179,6 +183,8 @@ struct iwl_mld_vif { #endif enum iwl_roc_activity roc_activity; struct iwl_mld_int_sta aux_sta; + + struct wiphy_delayed_work mlo_scan_start_wk; }; static inline struct iwl_mld_vif * @@ -187,6 +193,12 @@ iwl_mld_vif_from_mac80211(struct ieee80211_vif *vif) return (void *)vif->drv_priv; } +static inline struct ieee80211_vif * +iwl_mld_vif_to_mac80211(struct iwl_mld_vif *mld_vif) +{ + return container_of((void *)mld_vif, struct ieee80211_vif, drv_priv); +} + #define iwl_mld_link_dereference_check(mld_vif, link_id) \ rcu_dereference_check((mld_vif)->link[link_id], \ lockdep_is_held(&mld_vif->mld->wiphy->mtx)) diff --git a/drivers/net/wireless/intel/iwlwifi/mld/link.c b/drivers/net/wireless/intel/iwlwifi/mld/link.c index d0f56189ad3f..c65ac6ecbd1d 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/link.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/link.c @@ -404,6 +404,7 @@ int iwl_mld_activate_link(struct iwl_mld *mld, struct ieee80211_bss_conf *link) { struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link); + struct iwl_mld_vif *mld_vif = iwl_mld_vif_from_mac80211(mld_link->vif); int ret; lockdep_assert_wiphy(mld->wiphy); @@ -418,6 +419,9 @@ int iwl_mld_activate_link(struct iwl_mld *mld, LINK_CONTEXT_MODIFY_ACTIVE); if (ret) mld_link->active = false; + else + mld_vif->last_link_activation_time = + ktime_get_boottime_seconds(); return ret; } diff --git a/drivers/net/wireless/intel/iwlwifi/mld/scan.c b/drivers/net/wireless/intel/iwlwifi/mld/scan.c index 55d54bf29eae..cf3063e6ec53 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/scan.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/scan.c @@ -1800,9 +1800,12 @@ static void iwl_mld_int_mlo_scan_start(struct iwl_mld *mld, IWL_DEBUG_SCAN(mld, "Internal MLO scan: ret=%d\n", ret); } +#define IWL_MLD_MLO_SCAN_BLOCKOUT_TIME 5 /* seconds */ + void iwl_mld_int_mlo_scan(struct iwl_mld *mld, struct ieee80211_vif *vif) { struct ieee80211_channel *channels[IEEE80211_MLD_MAX_NUM_LINKS]; + struct iwl_mld_vif *mld_vif = iwl_mld_vif_from_mac80211(vif); unsigned long usable_links = ieee80211_vif_usable_links(vif); size_t n_channels = 0; u8 link_id; @@ -1818,6 +1821,15 @@ void iwl_mld_int_mlo_scan(struct iwl_mld *mld, struct ieee80211_vif *vif) return; } + if (mld_vif->last_link_activation_time > ktime_get_boottime_seconds() - + IWL_MLD_MLO_SCAN_BLOCKOUT_TIME) { + /* timing doesn't matter much, so use the blockout time */ + wiphy_delayed_work_queue(mld->wiphy, + &mld_vif->mlo_scan_start_wk, + IWL_MLD_MLO_SCAN_BLOCKOUT_TIME); + return; + } + for_each_set_bit(link_id, &usable_links, IEEE80211_MLD_MAX_NUM_LINKS) { struct ieee80211_bss_conf *link_conf = link_conf_dereference_check(vif, link_id); From patchwork Wed Jun 11 19:26:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 896252 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 713C32BE7B2 for ; Wed, 11 Jun 2025 19:27:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670025; cv=none; b=jL69Z7kXJihV7ji36mtb3Oxgt5ihxDnTQKmEm2EtP8l7E3brhflUh0KYO4+M7KFv0BsOWZ4AWzQcrNIvHTU46RSVr8YNqDneb/ElOzRJ4qv+r8yo3TXdtOQQjCtURCPEtzbj4uC4WOWRBu1au2ZZQ0o5oBgIpiwaC0iTFuonxUM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670025; c=relaxed/simple; bh=wBnwp+mNZAFi30/OAc8C/4tNSChKGQhgL+qWAuxDAJw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=MGhWl0IBDTwZIBaxcoTqmbCK7eq4ubpDS89g2uZKNjLwD9l/xmZyLKqFdbvX7JgqRqSGE+B/VMahEaV2IGLd+fewDL7286wkZjkpVP/tJOju3q4i5CukrFtbvzYCyQRFPHUNdUxYjlK0iEYskdqYamx1eRdU6VVU/Rue12gJp7w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=KVz8eLAd; arc=none smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="KVz8eLAd" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749670024; x=1781206024; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=wBnwp+mNZAFi30/OAc8C/4tNSChKGQhgL+qWAuxDAJw=; b=KVz8eLAdxWeRzjMy6mQPSu7T4TwzzHCRTjKx25VSUxhdzNVCQsWIebea 7g1/wlnseZMzHdn6nSlfAykpCjY/U56apsGnWom7YCiYxTVB1ryDp8SiF CGiEmT4ILL/exm73LFDIRpr4VVWzTBwZyomSzmQUaaqlraCt97DI55hfj T3jBACSwpK+bUyWEKYK7D1VozIZEm/IeLwuIphu5MXlnYmx4kQM6LVoaA ZvV0m/tzMTn/rZ5IlIRAg38J8cT/qD+a2RR1hstoz8KKkKaO6r7PmBzXF GL36awZ7CbHRD4RB9jIhu8g8B96tk7Y/6Xht2huCVqILZ9itz+4P/Y3jY w==; X-CSE-ConnectionGUID: v6+yEWB5R8exg05gcX6jXA== X-CSE-MsgGUID: kQfuaLQhSnWp07vKHTc5/w== X-IronPort-AV: E=McAfee;i="6800,10657,11461"; a="74360896" X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="74360896" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:04 -0700 X-CSE-ConnectionGUID: nkSV0QACS6yneOSB1a53Og== X-CSE-MsgGUID: jZGSmVRHSN2uN63dK1OP3w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="147165870" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:02 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next v2 10/15] wifi: iwlwifi: dvm: fix some kernel-doc issues Date: Wed, 11 Jun 2025 22:26:29 +0300 Message-Id: <20250611222325.b33528d06431.I948261d6610c47f09133fa73f5e5ea9b9848fd21@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> References: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg Fix a couple of kernel-doc warnings in the old DVM code. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/dvm/agn.h | 2 ++ drivers/net/wireless/intel/iwlwifi/dvm/commands.h | 14 +++++++------- drivers/net/wireless/intel/iwlwifi/dvm/dev.h | 4 ++-- drivers/net/wireless/intel/iwlwifi/dvm/devices.c | 2 ++ drivers/net/wireless/intel/iwlwifi/dvm/tx.c | 2 ++ 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/agn.h b/drivers/net/wireless/intel/iwlwifi/dvm/agn.h index 1ebc7effcc2a..9fbdff28c88b 100644 --- a/drivers/net/wireless/intel/iwlwifi/dvm/agn.h +++ b/drivers/net/wireless/intel/iwlwifi/dvm/agn.h @@ -397,6 +397,8 @@ static inline void iwl_dvm_set_pmi(struct iwl_priv *priv, bool state) * returns a (newly allocated) struct containing all the * relevant values for driver use. The struct must be freed * later with iwl_free_nvm_data(). + * + * Return: the parsed NVM data */ struct iwl_nvm_data * iwl_parse_eeprom_data(struct iwl_trans *trans, const struct iwl_rf_cfg *cfg, diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/commands.h b/drivers/net/wireless/intel/iwlwifi/dvm/commands.h index 96ea6c8dfc89..9eef2134392e 100644 --- a/drivers/net/wireless/intel/iwlwifi/dvm/commands.h +++ b/drivers/net/wireless/intel/iwlwifi/dvm/commands.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ /* - * Copyright (C) 2005-2014, 2023-2024 Intel Corporation + * Copyright (C) 2005-2014, 2023-2025 Intel Corporation */ /* * Please use this file (commands.h) only for uCode API definitions. @@ -614,7 +614,7 @@ struct iwl_rxon_time_cmd { * REPLY_CHANNEL_SWITCH = 0x72 (command, has simple generic response) */ /** - * struct iwl5000_channel_switch_cmd + * struct iwl5000_channel_switch_cmd - channel switch command (5000 series) * @band: 0- 5.2GHz, 1- 2.4GHz * @expect_beacon: 0- resume transmits after channel switch * 1- wait for beacon to resume transmits @@ -635,7 +635,7 @@ struct iwl5000_channel_switch_cmd { } __packed; /** - * struct iwl6000_channel_switch_cmd + * struct iwl6000_channel_switch_cmd - channel switch command (6000 series) * @band: 0- 5.2GHz, 1- 2.4GHz * @expect_beacon: 0- resume transmits after channel switch * 1- wait for beacon to resume transmits @@ -791,7 +791,7 @@ struct iwl_keyinfo { } __packed; /** - * struct sta_id_modify + * struct sta_id_modify - station modify command * @addr: station's MAC address * @reserved1: reserved for alignment * @sta_id: index of station in uCode's station table @@ -2992,7 +2992,7 @@ struct iwl_missed_beacon_notif { #define SENSITIVITY_CMD_CONTROL_WORK_TABLE cpu_to_le16(1) /** - * struct iwl_sensitivity_cmd + * struct iwl_sensitivity_cmd - sensitivity configuration command * @control: (1) updates working table, (0) updates default table * @table: energy threshold values, use HD_* as index into table * @@ -3848,7 +3848,7 @@ struct iwlagn_wowlan_status { #define IWL_MIN_SLOT_TIME 20 /** - * struct iwl_wipan_slot + * struct iwl_wipan_slot - WiPAN slot configuration * @width: Time in TU * @type: * 0 - BSS @@ -3868,7 +3868,7 @@ struct iwl_wipan_slot { #define IWL_WIPAN_PARAMS_FLG_FULL_SLOTTED_MODE BIT(5) /** - * struct iwl_wipan_params_cmd + * struct iwl_wipan_params_cmd - WiPAN parameters * @flags: * bit0: reserved * bit1: CP leave channel with CTS diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/dev.h b/drivers/net/wireless/intel/iwlwifi/dvm/dev.h index 25b24820466d..4d12bf901703 100644 --- a/drivers/net/wireless/intel/iwlwifi/dvm/dev.h +++ b/drivers/net/wireless/intel/iwlwifi/dvm/dev.h @@ -104,7 +104,7 @@ struct iwl_qos_info { }; /** - * enum iwl_agg_state + * enum iwl_agg_state - aggregation state * * The state machine of the BA agreement establishment / tear down. * These states relate to a specific RA / TID. @@ -519,7 +519,7 @@ enum iwl_scan_type { }; /** - * struct iwl_hw_params + * struct iwl_hw_params - HW parameters * * Holds the module parameters * diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/devices.c b/drivers/net/wireless/intel/iwlwifi/dvm/devices.c index 3447ae0b160a..be7e61e2b291 100644 --- a/drivers/net/wireless/intel/iwlwifi/dvm/devices.c +++ b/drivers/net/wireless/intel/iwlwifi/dvm/devices.c @@ -55,6 +55,7 @@ static void iwl1000_nic_config(struct iwl_priv *priv) * iwl_beacon_time_mask_low - mask of lower 32 bit of beacon time * @priv: pointer to iwl_priv data structure * @tsf_bits: number of bits need to shift for masking) + * Return: low 32 bits of beacon time mask */ static inline u32 iwl_beacon_time_mask_low(struct iwl_priv *priv, u16 tsf_bits) @@ -66,6 +67,7 @@ static inline u32 iwl_beacon_time_mask_low(struct iwl_priv *priv, * iwl_beacon_time_mask_high - mask of higher 32 bit of beacon time * @priv: pointer to iwl_priv data structure * @tsf_bits: number of bits need to shift for masking) + * Return: high 32 bits of beacon time mask */ static inline u32 iwl_beacon_time_mask_high(struct iwl_priv *priv, u16 tsf_bits) diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/tx.c b/drivers/net/wireless/intel/iwlwifi/dvm/tx.c index 24fefa0e8148..a7806776a51e 100644 --- a/drivers/net/wireless/intel/iwlwifi/dvm/tx.c +++ b/drivers/net/wireless/intel/iwlwifi/dvm/tx.c @@ -232,6 +232,8 @@ static void iwlagn_tx_cmd_build_hwcrypto(struct iwl_priv *priv, * that may be %NULL, for example during TX or key setup. In * that case, we need to use the broadcast station, so this * inline wraps that pattern. + * + * Return: station ID for mac80211 station (or broadcast if %NULL) */ static int iwl_sta_id_or_broadcast(struct iwl_rxon_context *context, struct ieee80211_sta *sta) From patchwork Wed Jun 11 19:26:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 895922 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 99B0D2BE7B5 for ; Wed, 11 Jun 2025 19:27:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670026; cv=none; b=UIaDpVBENv3ltndKziLtcmZQdOdw5NAKD9Uun104pdDYwEj1pMxFIz2gOAHTswRfT5rY7ay3NlS+bGKYrNq+a8lRF0Q2TjKTiVh6pc6Iq8AVLWccHTlBn8lzpgjBvbLnByVu4LHUgFa9x2fLSdEzqTytb2fGpZwQvs+sC1hmbuI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670026; c=relaxed/simple; bh=llmISWxQivLoZSYWiSjZEFq2oNP/cdo393mWoXEs2y0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=pjOEbh7d7gFkMFg0CHKGtuh/TEIZPAPhOstTk/3Ak+6aqvywnruk7Vk3eOMG9u4zeUbKQQxXSIbAU/LRwvOiCMXU2Y84Dpthi1X8kSuJRWfgq7ECae/UU7hsJhDul1ORL7P40VHfUZVzzAwLDdO6ONWobBbD5HD1+W+z9+P1g6Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=kG+95W5Q; arc=none smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="kG+95W5Q" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749670025; x=1781206025; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=llmISWxQivLoZSYWiSjZEFq2oNP/cdo393mWoXEs2y0=; b=kG+95W5Qt2MFLjEkovzk0x5Ao0OyQYxw0xsNaqV80gT8XsN9MAP76zjA +v1qY+V9rDoqHVaxrQ6aIyTsE7LNDxUo7i20zhO3dSQPK5FJ8wpr4P6Yf fYD4QtYfxqmnEM5yh5F7dYSH1ZPQyo4DY2bpPYh4LvJ/Q5mm5BbAfMWUK StI8QfVG9Mci5QIo+rn46Wogo2h4qKllPwCLZFOHhNRBQ1bf+4clANYu6 zfVAEegctibj1/ueZVKjViCLWUak+pM9NxZAci2eDZo6qCiRwzOhpZHRM RpHVP8pSN5FhT4AoUKxxRTSgedi+eOZXym5XPvywRDc6gSF7HUTnHAhq/ A==; X-CSE-ConnectionGUID: ObYfmpBUQyeu4SGQNS+f7w== X-CSE-MsgGUID: q0QBS9iORkqmG1ZovpcUdQ== X-IronPort-AV: E=McAfee;i="6800,10657,11461"; a="74360898" X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="74360898" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:05 -0700 X-CSE-ConnectionGUID: fspkwhT5Q66Wm6mupVrbsg== X-CSE-MsgGUID: 0azF8xeRSfuHxTdn67gE/g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="147165873" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:03 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next v2 11/15] wifi: iwlwifi: pcie: fix kernel-doc warnings Date: Wed, 11 Jun 2025 22:26:30 +0300 Message-Id: <20250611222325.ca2dec14f107.Ia4cfeea63e946f3b54e3e6b7bd6ab81130b0a7e6@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> References: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg Also fix the name of the iwl_prph_scratch_mem_desc_addr_array struct and some related spelling. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-v2.c | 4 ++-- drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/internal.h | 5 ++++- .../net/wireless/intel/iwlwifi/pcie/iwl-context-info-v2.h | 6 +++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-v2.c b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-v2.c index 0df379fda463..06be929a3ca5 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-v2.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-v2.c @@ -391,13 +391,13 @@ static int iwl_pcie_load_payloads_segments { struct iwl_dram_data *cur_payload_dram = &dram_regions->drams[0]; struct iwl_dram_data *desc_dram = &dram_regions->prph_scratch_mem_desc; - struct iwl_prph_scrath_mem_desc_addr_array *addresses; + struct iwl_prph_scratch_mem_desc_addr_array *addresses; const void *data; u32 len; int i; /* allocate and init DRAM descriptors array */ - len = sizeof(struct iwl_prph_scrath_mem_desc_addr_array); + len = sizeof(struct iwl_prph_scratch_mem_desc_addr_array); desc_dram->block = iwl_pcie_ctxt_info_dma_alloc_coherent (trans, len, diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/internal.h b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/internal.h index ebcc174f6c62..b1dcaae0dc10 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/internal.h +++ b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/internal.h @@ -39,7 +39,7 @@ struct iwl_host_cmd; * trans_pcie layer */ /** - * struct iwl_rx_mem_buffer + * struct iwl_rx_mem_buffer - driver-side RX buffer descriptor * @page_dma: bus address of rxb page * @page: driver's pointer to the rxb page * @list: list entry for the membuffer @@ -190,6 +190,7 @@ struct iwl_rb_allocator { * iwl_get_closed_rb_stts - get closed rb stts from different structs * @trans: transport pointer (for configuration) * @rxq: the rxq to get the rb stts from + * Return: last closed RB index */ static inline u16 iwl_get_closed_rb_stts(struct iwl_trans *trans, struct iwl_rxq *rxq) @@ -703,6 +704,7 @@ static inline void iwl_txq_stop(struct iwl_trans *trans, struct iwl_txq *txq) * iwl_txq_inc_wrap - increment queue index, wrap back to beginning * @trans: the transport (for configuration data) * @index: current index + * Return: the queue index incremented, subject to wrapping */ static inline int iwl_txq_inc_wrap(struct iwl_trans *trans, int index) { @@ -714,6 +716,7 @@ static inline int iwl_txq_inc_wrap(struct iwl_trans *trans, int index) * iwl_txq_dec_wrap - decrement queue index, wrap back to end * @trans: the transport (for configuration data) * @index: current index + * Return: the queue index decremented, subject to wrapping */ static inline int iwl_txq_dec_wrap(struct iwl_trans *trans, int index) { diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/iwl-context-info-v2.h b/drivers/net/wireless/intel/iwlwifi/pcie/iwl-context-info-v2.h index 8c5c0ea46181..416baadc5017 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/iwl-context-info-v2.h +++ b/drivers/net/wireless/intel/iwlwifi/pcie/iwl-context-info-v2.h @@ -130,11 +130,11 @@ struct iwl_prph_scratch_pnvm_cfg { } __packed; /* PERIPH_SCRATCH_PNVM_CFG_S */ /** - * struct iwl_prph_scrath_mem_desc_addr_array + * struct iwl_prph_scratch_mem_desc_addr_array - DRAM * @mem_descs: array of dram addresses. - * Each address is the beggining of a pnvm payload. + * Each address is the beginning of a PNVM payload. */ -struct iwl_prph_scrath_mem_desc_addr_array { +struct iwl_prph_scratch_mem_desc_addr_array { __le64 mem_descs[IPC_DRAM_MAP_ENTRY_NUM_MAX]; } __packed; /* PERIPH_SCRATCH_MEM_DESC_ADDR_ARRAY_S_VER_1 */ From patchwork Wed Jun 11 19:26:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 896251 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CB5AD2BD5AE for ; Wed, 11 Jun 2025 19:27:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670027; cv=none; b=uQkb9KrRL83tK3cBs3ayR12sOSgGxr3Jt07OThSxhieqLtQ1Xbz8G79X/CT5WeZhx5gXcXVeY62UkAj6v/uo0cFusFrPeWjPm2Zz3fuQazANu27CgmBlyfrRLG4CsnLFEGN44aRPghf8yPGZ1O7t5EJlojqQHITkxSh0j5IhgaE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670027; c=relaxed/simple; bh=Y880Dmewf2eHGLtigrHUTnUd1//A+PCGJaeDSkCvrwU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=qvBTl072HfLVCufpBQkYU5eSimY1bY2ecE9BpcuK9oMqloXh/Sm4eAw8E1Kz7Y5cv3PpsUxex8wJo0wShCWvxEnBNXLyc5k0w+mq3eQ31fc9LRFLY+l/MS9cmbR4gGw/ZcqDGNAjidL+WecQ4QDrAixgAXAc2gq51SrfbsIsxLk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=JIxWQZxh; arc=none smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="JIxWQZxh" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749670026; x=1781206026; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Y880Dmewf2eHGLtigrHUTnUd1//A+PCGJaeDSkCvrwU=; b=JIxWQZxhn9bOu1d0hVkMiZnmgL8AEpdKX3pJg2YAQ3zv1eQGeS+3yANo wXW6NbqhWtDNokxzw+IL7f22L2AKXP/fp4ty0ExCB0Z2Kf/Gp2m4Ow+YB A/Wg+G8bTmVC7LUodenT2Ewsqb+LdW0iqh2BVGrFq28ODcJ8IoG10kS0X Oi1HWriB+mxqbAAAncq8IVQst5Jj/hVbfCUc8td2Y0XuSud+buIytIyiv kdrJ8/B2xCRcya2gXXmonSUgMrT+fngLNlKCjBTHI0oCDy0b7JjAZmLnX jQzMamnCqFHPrarxkAbV5VPgx1gh3q53oxxtOBPCuUZ6TRv1dqYXe7D8f g==; X-CSE-ConnectionGUID: vy1Q1+fQQpykEnHcdhmdHw== X-CSE-MsgGUID: u+2NTRGIQmaNVR7m5qPX7g== X-IronPort-AV: E=McAfee;i="6800,10657,11461"; a="74360899" X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="74360899" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:06 -0700 X-CSE-ConnectionGUID: A5mkIOLnR2yc3v24UJ6KyQ== X-CSE-MsgGUID: jjxOcYapTNmo7a3dbv4Qow== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="147165877" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:05 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next v2 12/15] wifi: iwlwifi: mei: fix kernel-doc warnings Date: Wed, 11 Jun 2025 22:26:31 +0300 Message-Id: <20250611222325.30bd10804d19.I21e7be2df56f20e1215dc35d94f3225708c5d74f@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> References: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg Fix some warnings and fill in some TBDs while at it. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/mei/sap.h | 30 ++++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mei/sap.h b/drivers/net/wireless/intel/iwlwifi/mei/sap.h index 3b56637b9697..ba1f75f739c2 100644 --- a/drivers/net/wireless/intel/iwlwifi/mei/sap.h +++ b/drivers/net/wireless/intel/iwlwifi/mei/sap.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (C) 2021 - 2022 Intel Corporation + * Copyright (C) 2021 - 2022, 2025 Intel Corporation */ #ifndef __sap_h__ @@ -340,12 +340,12 @@ enum iwl_sap_wifi_auth_type { }; /** - * enum iwl_sap_wifi_cipher_alg - * @SAP_WIFI_CIPHER_ALG_NONE: TBD - * @SAP_WIFI_CIPHER_ALG_TKIP: TBD - * @SAP_WIFI_CIPHER_ALG_CCMP: TBD - * @SAP_WIFI_CIPHER_ALG_GCMP: TBD - * @SAP_WIFI_CIPHER_ALG_GCMP_256: TBD + * enum iwl_sap_wifi_cipher_alg - MEI WiFi cipher algorithm IDs + * @SAP_WIFI_CIPHER_ALG_NONE: No encryption + * @SAP_WIFI_CIPHER_ALG_TKIP: TKIPO + * @SAP_WIFI_CIPHER_ALG_CCMP: CCMP + * @SAP_WIFI_CIPHER_ALG_GCMP: GCMP-128 + * @SAP_WIFI_CIPHER_ALG_GCMP_256: GCMP-256 */ enum iwl_sap_wifi_cipher_alg { SAP_WIFI_CIPHER_ALG_NONE = IWL_MEI_CIPHER_NONE, @@ -601,7 +601,7 @@ enum iwl_sap_flex_filter_flags { }; /** - * struct iwl_sap_flex_filter - + * struct iwl_sap_flex_filter - filter configuration * @src_port: Source port in network format. * @dst_port: Destination port in network format. * @flags: Flags and protocol, see &enum iwl_sap_flex_filter_flags. @@ -633,7 +633,7 @@ enum iwl_sap_ipv4_filter_flags { }; /** - * struct iwl_sap_ipv4_filter- + * struct iwl_sap_ipv4_filter - IPv4 filter configuration * @ipv4_addr: The IP address to filer. * @flags: See &enum iwl_sap_ipv4_filter_flags. */ @@ -643,7 +643,7 @@ struct iwl_sap_ipv4_filter { } __packed; /** - * enum iwl_sap_ipv6_filter_flags - + * enum iwl_sap_ipv6_filter_flags - IPv6 filter flags * @SAP_IPV6_ADDR_FILTER_COPY: Pass packets to the host. * @SAP_IPV6_ADDR_FILTER_ENABLED: If false, the filter should be ignored. */ @@ -653,7 +653,7 @@ enum iwl_sap_ipv6_filter_flags { }; /** - * struct iwl_sap_ipv6_filter - + * struct iwl_sap_ipv6_filter - IPv6 filter configuration * @addr_lo24: Lowest 24 bits of the IPv6 address. * @flags: See &enum iwl_sap_ipv6_filter_flags. */ @@ -663,7 +663,7 @@ struct iwl_sap_ipv6_filter { } __packed; /** - * enum iwl_sap_icmpv6_filter_flags - + * enum iwl_sap_icmpv6_filter_flags - ICMPv6 filter flags * @SAP_ICMPV6_FILTER_ENABLED: If false, the filter should be ignored. * @SAP_ICMPV6_FILTER_COPY: Pass packets to the host. */ @@ -673,8 +673,8 @@ enum iwl_sap_icmpv6_filter_flags { }; /** - * enum iwl_sap_vlan_filter_flags - - * @SAP_VLAN_FILTER_VLAN_ID_MSK: TBD + * enum iwl_sap_vlan_filter_flags - VLAN filter flags + * @SAP_VLAN_FILTER_VLAN_ID_MSK: VLAN ID * @SAP_VLAN_FILTER_ENABLED: If false, the filter should be ignored. */ enum iwl_sap_vlan_filter_flags { @@ -751,7 +751,7 @@ struct iwl_sap_pldr_data { } __packed; /** - * enum iwl_sap_pldr_status - + * enum iwl_sap_pldr_status - product reset status * @SAP_PLDR_STATUS_SUCCESS: PLDR started/ended successfully * @SAP_PLDR_STATUS_FAILURE: PLDR failed to start/end */ From patchwork Wed Jun 11 19:26:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 895921 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0EA8A2BE7D7 for ; Wed, 11 Jun 2025 19:27:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670028; cv=none; b=b6zn4yXHWO649Wc5OOLFn+NrHo67DZxAey1LPuThzle6aktYyTxmHjFAXeGyXSEXSyj5CrfRqo6Urv1pCoCyIKzEAVYr/yVHVBWSXoxoPGbcXD3A686zhVkSa7HrUGbr5UVq5I6ZLQsB+05TAokIW+Bg+ixODqmfLJzC9lb1d10= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670028; c=relaxed/simple; bh=K1fwQ+ny+hLfh5lBzL06SfD1jI6wciOFuLggQJAQNEM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=q7KcwloFjp3Tn0GdPddlhSsVBXkeZ8F7Diz1snVq/zlhOQXdNz/GB7xjjPdKSnb1ZyAz+Y3yzxPmPgkokH1Ej7pDvnuk0AAlIqhLiPHkP+pA7GF4MLN7PQhDZrmq9caJjo3+Eg5GmVrIWaTXAP5bqgjTMbpON1Hy8P+41gs0Ptk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=NxTeJnbI; arc=none smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="NxTeJnbI" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749670027; x=1781206027; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=K1fwQ+ny+hLfh5lBzL06SfD1jI6wciOFuLggQJAQNEM=; b=NxTeJnbIf/pMjvJbBqMIw3P2YX3ONzp6A9A+W6cHIyW1c9C2pkra0bXt xtwNyThuI+GR7WU0MSx1x7RSUOVCojWCn6D2EpqxNe2lmE+T0qv91avle lfYI7vmGA8ZRHYImFNio1tJVTbLuJ7DDq2YLQI+5SijC7nbIFpviLOkmN anHoDqvcMJO0p7BPHbSEfSfDNEz5LO3AdW0LVhxN5jnjrS2Y24IFyJcv4 DT3A+PS58ly1Q4xLO6sq2qoaOsch+qeNEA7YLp+VW84+O6M0lrRq5lIll gfN3qniYtZCdY38mbBNqw6aoqLPM2+9SD3hsmN6G2pAh8xOE2+7S3MPIE g==; X-CSE-ConnectionGUID: YwgHsLRUQYSKJnaqPk7PZg== X-CSE-MsgGUID: qrFpWy9dQWa5SMGETPJKNw== X-IronPort-AV: E=McAfee;i="6800,10657,11461"; a="74360902" X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="74360902" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:07 -0700 X-CSE-ConnectionGUID: hK32OEpaRHSTw47sQpciJQ== X-CSE-MsgGUID: 6GASE0IjRfKsEGU5PpBFUw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="147165886" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:06 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next v2 13/15] wifi: iwlwifi: mvm: fix kernel-doc warnings Date: Wed, 11 Jun 2025 22:26:32 +0300 Message-Id: <20250611222325.f238dd2937ed.I1b42df920b0f057a7d7ac01e61201621229a444c@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> References: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg Some kernel-doc warnings remain, fix them. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/mvm/rs.h | 1 + drivers/net/wireless/intel/iwlwifi/mvm/sta.h | 3 ++- drivers/net/wireless/intel/iwlwifi/mvm/time-event.h | 8 ++++++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rs.h b/drivers/net/wireless/intel/iwlwifi/mvm/rs.h index 69259ebb966b..dfb062b7c5c2 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/rs.h +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rs.h @@ -411,6 +411,7 @@ void iwl_mvm_rs_tx_status(struct iwl_mvm *mvm, struct ieee80211_sta *sta, * with the mac80211 subsystem. This should be performed prior to calling * ieee80211_register_hw * + * Return: negative error code, or 0 on success */ int iwl_mvm_rate_control_register(void); diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.h b/drivers/net/wireless/intel/iwlwifi/mvm/sta.h index 6b183f5e9bbc..f6906061510b 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.h +++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.h @@ -214,7 +214,7 @@ struct iwl_mvm_vif; */ /** - * enum iwl_mvm_agg_state + * enum iwl_mvm_agg_state - aggregation session state * * The state machine of the BA agreement establishment / tear down. * These states relate to a specific RA / TID. @@ -483,6 +483,7 @@ struct iwl_mvm_int_sta { * about. Otherwise (if this is a new STA), this should be false. * @flags: if update==true, this marks what is being changed via ORs of values * from enum iwl_sta_modify_flag. Otherwise, this is ignored. + * Return: negative error code or 0 on success */ int iwl_mvm_sta_send_to_fw(struct iwl_mvm *mvm, struct ieee80211_sta *sta, bool update, unsigned int flags); diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/time-event.h b/drivers/net/wireless/intel/iwlwifi/mvm/time-event.h index 49256ba4cf58..1ef8768756db 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/time-event.h +++ b/drivers/net/wireless/intel/iwlwifi/mvm/time-event.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ /* - * Copyright (C) 2012-2014, 2019-2020, 2023 Intel Corporation + * Copyright (C) 2012-2014, 2019-2020, 2023, 2025 Intel Corporation * Copyright (C) 2013-2014 Intel Mobile Communications GmbH */ #ifndef __time_event_h__ @@ -124,6 +124,8 @@ void iwl_mvm_rx_roc_notif(struct iwl_mvm *mvm, * ROC request, it will issue a notification to the driver that it is on the * requested channel. Once the FW completes the ROC request it will issue * another notification to the driver. + * + * Return: negative error code or 0 on success */ int iwl_mvm_start_p2p_roc(struct iwl_mvm *mvm, struct ieee80211_vif *vif, int duration, enum ieee80211_roc_type type); @@ -179,6 +181,8 @@ void iwl_mvm_remove_csa_period(struct iwl_mvm *mvm, * * This function is used to schedule NoA time event and is used to perform * the channel switch flow. + * + * Return: negative error code or 0 on success */ int iwl_mvm_schedule_csa_period(struct iwl_mvm *mvm, struct ieee80211_vif *vif, @@ -188,7 +192,7 @@ int iwl_mvm_schedule_csa_period(struct iwl_mvm *mvm, * iwl_mvm_te_scheduled - check if the fw received the TE cmd * @te_data: the time event data that corresponds to that time event * - * This function returns true iff this TE is added to the fw. + * Return: %true if this TE is added to the fw, %false otherwise */ static inline bool iwl_mvm_te_scheduled(struct iwl_mvm_time_event_data *te_data) From patchwork Wed Jun 11 19:26:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 896250 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 720772BD5AE for ; Wed, 11 Jun 2025 19:27:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670029; cv=none; b=mTRVYlaKxNj4GqiRjI4LNTFNkypsQ1Fs7WJ4iR7XVqbFF3/P6vAqfcslXsQDCqXYSxM2xXo8E6hY7tkad6D4GLrQlpDwFj5ucXUH+gOrF92TYXycdGwdMIeG0JJ7bktia5fW/Q/cdg09DtFpSRcU+TZh3A8IlOOJn3SRjdvYW+Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670029; c=relaxed/simple; bh=KGUc9nQ+tQ6kA7ubenYZgsBUkTWSIrfjmkv/zCoM5zM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=d5p/stBVbFwZO8weWk5qS8mpabenj9u17upfgdBKEqOwFL1Vuaz8Ccprs9acPrh4NfxmSMG2kd8vJKidU4z5wkFcXP80zXBoQohL2RR5frYnsKWCO3YDpkfpaUp89e4/fTp5j2P/v1K5yvglP4F/apWionFVnZgubVpdMWpw/pI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=NeWyCgzX; arc=none smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="NeWyCgzX" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749670029; x=1781206029; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=KGUc9nQ+tQ6kA7ubenYZgsBUkTWSIrfjmkv/zCoM5zM=; b=NeWyCgzX7GNpjQl5lC3vQaL36MPiTh92lc7t/ppPkYVD2mnZaYxuYNgZ FBcE3HT82WF9zyokF5jhgSEjkN0wr46OGkhAqu/JB/Http8l86fl5FVP6 uAd5/1Rjbm33Yr7lFwvh+4gexTnHexYQioAPSrmVB0/bfrYuDGp9chPxC qXi5C3SR5kJGokdAx6mLA5UdQ4ruzHI0Z9Z57K18MiZHmQgs2XmBqD8yd bCihlTb/tEEj8dyAG3k3C+qxOcbRJg0lYUL8pTH6VZ3ID8G/ebBShfWr9 BFQjGf+LYjS8yIdX1iDMZgAmIizysnB3KMXWJPeMlvIcpMbMlWnnxWsQy Q==; X-CSE-ConnectionGUID: OMP6bC0DQEK9qYgMbgJvBQ== X-CSE-MsgGUID: 4S6/eF8KSd+ew4GOwib4YA== X-IronPort-AV: E=McAfee;i="6800,10657,11461"; a="74360905" X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="74360905" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:09 -0700 X-CSE-ConnectionGUID: eUV1BuQ8RjKbwA+u2b9LjA== X-CSE-MsgGUID: 6WhQ/IMVRzqRbbK7tvMwCQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="147165889" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:07 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg , Emmanuel Grumbach Subject: [PATCH iwlwifi-next v2 14/15] wifi: iwlwifi: mld: make PHY config a debug message Date: Wed, 11 Jun 2025 22:26:33 +0300 Message-Id: <20250611222325.ee6254c03a33.I2cf4e1e2e604b42b6eb9737c0ef3b75fec69edea@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> References: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg This means nothing to a normal user and really has no value for most people, print it as a debug message instead. Signed-off-by: Johannes Berg Reviewed-by: Emmanuel Grumbach Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/mld/phy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mld/phy.c b/drivers/net/wireless/intel/iwlwifi/mld/phy.c index d5a32ee56b92..1d93fb9e4dbf 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/phy.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/phy.c @@ -181,7 +181,7 @@ int iwl_mld_send_phy_cfg_cmd(struct iwl_mld *mld) .phy_specific_cfg = mld->fwrt.phy_filters, }; - IWL_INFO(mld, "Sending Phy CFG command: 0x%x\n", cmd.phy_cfg); + IWL_DEBUG_INFO(mld, "Sending Phy CFG command: 0x%x\n", cmd.phy_cfg); return iwl_mld_send_cmd_pdu(mld, PHY_CONFIGURATION_CMD, &cmd); } From patchwork Wed Jun 11 19:26:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 895920 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 30AB22BD5AE for ; Wed, 11 Jun 2025 19:27:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670034; cv=none; b=F6dzBnfBsL0goutlhzeuJsE/7dvyQwx/XKeGK+p5XnFczTG57tNNb0fenYAdl359duf1xqVQTY/BmvArNS9BwrUIegxyUPlEn7Lvza+7FlrIPi1SkhbeIW0FYitBwYNEne1OCENdgsrw0dApWCP1fMx6nuDaUoVQFPNyrovIclI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749670034; c=relaxed/simple; bh=CHR2/8ZIAOOEAXbxGZThg/nnIh1RBVNVWuJsrNVgYA4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=jWByHb4KIDctey9uejACG37p/gnhoNzn+r7lzOBhLASM3fctpXax12wqW9nACXGmd3slz0+t6++BpIOAlBI6SBxzeeFomIihmTyV6SYssiSmZWk/cX3lOJIT36bAmFrXsMOfV3KnmHz01dkeEliBb4UX2v9fQ5Z1EHlTQQGcMPs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=k4qvfLLn; arc=none smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="k4qvfLLn" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749670033; x=1781206033; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=CHR2/8ZIAOOEAXbxGZThg/nnIh1RBVNVWuJsrNVgYA4=; b=k4qvfLLncMF+dQTAWnhIx7oUZhT88GVg6eUW7vAWf1QmXubmpsVx3f4E uQH7H9i1vkf9bheqNLE2KxCvRoJjMJyzchuRUwJBuqjBlm9fZayr8pXdL QNk2iIsKpHmgPyGI3dAzyRgPoLBy3AaUqyD0MfU0r7G75rGC+P+EoaRHz IjSHsg3nQvDhEJUX7LNRwuz2K+TfXfZLjS0t7fTBR5ixupg9O2Yw+/u9v /0hvygCsC1byTy2fWRIpM2l0Psoj+NFTsx9X359z/ubXpU2+Ar+SCJO4A aezDedSROA8Zi/7NgBzXR3DvGvkGZqglijZKiuJ1iMO91Lp+ehCYeqnD/ Q==; X-CSE-ConnectionGUID: rWY5aMepRT69p6RPVgzkJQ== X-CSE-MsgGUID: AT2L1+SNRLOa+4hIVKBCaw== X-IronPort-AV: E=McAfee;i="6800,10657,11461"; a="74360911" X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="74360911" Received: from orviesa006.jf.intel.com ([10.64.159.146]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:13 -0700 X-CSE-ConnectionGUID: zFXV8Ng5TGSTby9dhWIjZw== X-CSE-MsgGUID: 4nowsenlSpSa5niFu+j/SQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,228,1744095600"; d="scan'208";a="147165894" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2025 12:27:08 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next v2 15/15] wifi: iwlwifi: fw: make PNVM version a debug message Date: Wed, 11 Jun 2025 22:26:34 +0300 Message-Id: <20250611222325.0f77cb90aa20.I06f2adca38d012a71cde3956e1d2005293f70604@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> References: <20250611192634.2416885-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg This means nothing to a normal user and really has no value for most people, print it as a debug message instead. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/fw/pnvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c b/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c index 4f3c2f7f4f5b..3bcd375995cc 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c +++ b/drivers/net/wireless/intel/iwlwifi/fw/pnvm.c @@ -332,7 +332,7 @@ iwl_pnvm_load_pnvm_to_trans(struct iwl_trans *trans, ret = iwl_trans_load_pnvm(trans, pnvm_data, capa); if (ret) goto free; - IWL_INFO(trans, "loaded PNVM version %08x\n", pnvm_data->version); + IWL_DEBUG_INFO(trans, "loaded PNVM version %08x\n", pnvm_data->version); set: iwl_trans_set_pnvm(trans, capa);