From patchwork Wed Jun 11 03:34:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 896274 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 5C57518D65E for ; Wed, 11 Jun 2025 03:34:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.10 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612876; cv=none; b=Bnk25ONrApFjD0w+FTfp4QAOTUGEWn8skwlkjWyyAmL8VvHKeoClNbYzFMbTQydWqHu6okhvtbL/D+0OALZ+TvrmYpny2ET4s+ycQj9DJmhyVl6KTVlFWv1TAxbUEMo3rKyYo1YYrIMUR6Z4mzlmofyfAEYyXOtBneoSLlz6vJE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612876; c=relaxed/simple; bh=HsQBg1nzElWiynWCI10HdhPPBjwL+hw6U55LvSbNTNs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=oZBXTCzaxoC7KMptSRRBSHp2JTNvI1fpl0vk371HIiaeq3Pf81B9PPSYluGLeWktMqS7mKHqjumwlJvLt3ue/A+xkhTIqqwi9sjZShOlvzVn0RIa2C7W7u2ungNKqtJrFOKOCbMOei4EMqGd6kTdYzBGRTKOACw8ITLZLUGMfns= 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=iof5XI3A; arc=none smtp.client-ip=192.198.163.10 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="iof5XI3A" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749612874; x=1781148874; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=HsQBg1nzElWiynWCI10HdhPPBjwL+hw6U55LvSbNTNs=; b=iof5XI3AFvRPgy+oz0rX6o3f46xCqPaxC2AAgHXJyIKnnS6QmBOzEu7S 2G8+1CFYDW1uaB5ToselZkFSrDa/v67WOS8ssFGcr3XRLWhJ49EbJzPhs OcCErD1Trx6Mg9jX9Lz57NNzsIiu4CQGMJms32y23j8Lij2uTn5ipXvgM L/20L5h58+AyUi+QCFwbUHB9ivBbumGjD0F1NBYK3lsH1qwD5zoG/XE56 xi2+Sxaje8PGVSULyT49WMQL9ys/0KcDBwBgyl48w3yAnqM/eKJh9i5hH ygn0bhEKe5CcD303DeIbtF+Opzf6AaZsrEh626z0YtpgC0HB6FXwcfEFV w==; X-CSE-ConnectionGUID: 29v9LflTScyu7mO3e0Dg+w== X-CSE-MsgGUID: JihcOMjGRPSH7xxiMXGimw== X-IronPort-AV: E=McAfee;i="6800,10657,11460"; a="63094878" X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="63094878" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:33 -0700 X-CSE-ConnectionGUID: 79svyQmNTWqCt+2MSdNmog== X-CSE-MsgGUID: Mc7u16CbQGiX4amFEcRuKg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="150880905" Received: from weis0040.iil.intel.com ([10.12.217.108]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:32 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next 01/15] wifi: iwlwifi: pcie: abort D3 handshake on error Date: Wed, 11 Jun 2025 06:34:01 +0300 Message-Id: <20250611063124.157dca92c573.I6dd3b9d2f435c2c363224aa84e373931e56a545f@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611033415.1175681-1-miriam.rachel.korenblit@intel.com> References: <20250611033415.1175681-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 03:34:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 895945 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 F3ECC1A5BAC for ; Wed, 11 Jun 2025 03:34:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.10 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612876; cv=none; b=m5EfXqK9YhHCdd5MQNOjtkgRFWm3wDHQCinsUFIEvDweY1GlO554LAlCwgu6uDxamzIjtBC2VjCZuzntoo/YeppTuT+KSigREE4TCTwZrQYmWsuyld9epTn+Z5Nd3cdFctTT5T90dZgnWkiOZ4KSFrJR05YQPpQyHo+YNtpgZnk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612876; c=relaxed/simple; bh=TAJrZEsJSgeAa4gixJOn+roF5tylPMHvxQFzabKcfEA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=n4JqEaZp3eGJ6R54z5IhxtnJ8wMYdflmBx2nPNaBbhy2d6DOH/7IznbAoNqeTmz/n02rfFYGhulwyoSlZIdmceQ5sOd1oZPxHsH+N1EDRwPawRSk5zjsj+AFGfa8Edlsj+yAVUiNR/G2BG0eadkbwkByMthV7NFQWzj58FkWD+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=Psdd42bd; arc=none smtp.client-ip=192.198.163.10 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="Psdd42bd" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749612875; x=1781148875; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=TAJrZEsJSgeAa4gixJOn+roF5tylPMHvxQFzabKcfEA=; b=Psdd42bdOgVxoaeMFuzwdb81uF+ZHcdQFY2ljYvBqmjymiHJETKzuAfu uq6Dc6WAsXLCFaPVhFinyBEl2pEYjqbF1kCDU/0uI2gEZsKBN4MLpk3C4 sKsElvRl62gpn97n3RFF85XH/gPtKSFvVahJAHoxMRKfJRvZWbWdiXQAF HH0JgsouJ5SxlVqr3k3bSXJZVFrUkeTK9OAjSfCntJDiAsDktdy24EiOp +ier/heu1di5L3psoogdgYz9472ObOKNF3iF01aWiQ3ppCqGk2Ql4UMsl VeeONZi5EAGdJISQGn8Ov6koJ1FCynpol2mOeB2OP4zAu3AfoaHNG5Xc1 Q==; X-CSE-ConnectionGUID: EugxcwYdRDK/DCKGm8aB5g== X-CSE-MsgGUID: IeUSr/s0S1eWNORkjneZJQ== X-IronPort-AV: E=McAfee;i="6800,10657,11460"; a="63094879" X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="63094879" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:35 -0700 X-CSE-ConnectionGUID: s8oJ3ECqS/aJBxo6gaTQEQ== X-CSE-MsgGUID: ExCDt4lqQoqZZ/Dcr7W97g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="150880915" Received: from weis0040.iil.intel.com ([10.12.217.108]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:33 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Pagadala Yesu Anjaneyulu Subject: [PATCH iwlwifi-next 02/15] wifi: iwlwifi: add support for the devcoredump Date: Wed, 11 Jun 2025 06:34:02 +0300 Message-Id: <20250611063124.bb38efe6700d.I9c666440dd1eac13ac52a2c2d533224c36fea2a6@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611033415.1175681-1-miriam.rachel.korenblit@intel.com> References: <20250611033415.1175681-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 03:34:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 896273 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 31EE01EA7FF for ; Wed, 11 Jun 2025 03:34:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.10 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612877; cv=none; b=Cd094G05lrSpbDrlfKc0tHt4sVhBRVEqz815/09sQGVqtMBoifF8nX8yYp3e/SvqPJeGe1wHcQbGPNq9Nj2A5IaNc57ySeTkNiS/98BGHPKWoMdrz2NGOJynYS65qPdEJclZ/7GXsnjudaAZinABzj8o9oQCInSJQlV9q4wba2E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612877; c=relaxed/simple; bh=vFaw8DdSiGh0at6BYe0LRkJWv/OhnvWxzE6n1Q3UtkM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=nL5Y5EgyqQrobMvyCnGTFDUm0ohChTTzvWHUIDSRr0SnTyxT1iFvDKUmkZdw0m1P+F+gwwsQpc/qrIkuPMPqvR1VfXegaQUGnR3k3NN6Q0vpz61J/n6yrcRHT+iGOHE63fCiBun3v5RayOgFdfhHspQPkvvt9Uh6cT0GUfRAUnU= 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=T16XFzLX; arc=none smtp.client-ip=192.198.163.10 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="T16XFzLX" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749612876; x=1781148876; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=vFaw8DdSiGh0at6BYe0LRkJWv/OhnvWxzE6n1Q3UtkM=; b=T16XFzLXayJLJAVNrOWaqA3g10I1/CjnlyzO98gd98Ue5/Uid6jy/Efj ul4m7YfXR/G/HGXYuomoUriouKeXyRLyS6VFQdbOhD7qmPjpVjIFE57VT uIw/cWfhMGw33640u3v2FJMK0ZF6NCxPz0CooCc3CNiWmBfZsIiUgYUnF HCzdeygGG9plDtdJQ18H7zTRopcoAqsGZvlx1VPw9s6IkkaDVRdqnpBWu vTdAfHzn7VRFZpTvyWZNyQPZWh32C5BEZvFv/w4hrCyDdnp1kA7MmXNiw hK+ZM58jx1PavY89UypLc6nRq15O3XuSemZEbok+GtcX3V5C32ewoK2GL A==; X-CSE-ConnectionGUID: F4nYBoH4RnOvsv9hxz0gqQ== X-CSE-MsgGUID: MnAnsFStToWrR+76wjMtMg== X-IronPort-AV: E=McAfee;i="6800,10657,11460"; a="63094880" X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="63094880" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:36 -0700 X-CSE-ConnectionGUID: Y0qL3h+eSTiW3cjX6RDtIA== X-CSE-MsgGUID: 6C59R+XcTHexm4sxOs4i8g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="150880921" Received: from weis0040.iil.intel.com ([10.12.217.108]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:34 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Pagadala Yesu Anjaneyulu Subject: [PATCH iwlwifi-next 03/15] wifi: iwlwifi: mld: Add dump handler to iwl_mld Date: Wed, 11 Jun 2025 06:34:03 +0300 Message-Id: <20250611063124.18ebf46690ce.Ia52941f761a446cb3e43cbe49d2b9a49fc15f4a8@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611033415.1175681-1-miriam.rachel.korenblit@intel.com> References: <20250611033415.1175681-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 03:34:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 895944 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 55DFE20C465 for ; Wed, 11 Jun 2025 03:34:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.10 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612878; cv=none; b=ojZSiAyU9QZ2SkBzP/J/GgGCJY5Ex6b2SH75bqnkTZoNiVbaBtYclU2H9h7Qc/V2chdx6krb9AdtvgBO+l2tIBBHF9kRgoOm+A6CVYBz/sa5RG9sM8aabHE6yt6VaDwT64uCM2AhPm9u+IBk/tQS2vmrDQL41aqbgRIl5h6XKJA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612878; c=relaxed/simple; bh=vVOEhfS8uBmV2AWGbh9zbfC7yYm/3cLvNe3Sk55Reuk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=UQc2rcC00KesTH1/HNb/zHijDVzKFop8yuF5cENLXIrHP9/buXtQX/lx/9JZJLotjDv0J/WL7hdY6aSgSJQsvJyvVORPvFmGBRnP0qr3kVjz3uhlb5iwgUy5gdcim4eOx2nsN/YkuqKXpnYGWdwinDg6+blyHBgqL4Di61Xvo+A= 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=Y6zKO+VS; arc=none smtp.client-ip=192.198.163.10 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="Y6zKO+VS" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749612877; x=1781148877; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=vVOEhfS8uBmV2AWGbh9zbfC7yYm/3cLvNe3Sk55Reuk=; b=Y6zKO+VSoVHp+Bcp3dyReO/H8wagfHLe6juMDxgCAQBbMYQJbwEJMSGB KErIxQ/ql4/bLE/a7ZR5RZ+WsfmRIPfajt0HupN0ChI9bUJfUx6fuS9oL Y5lqSOtQzz6p3q0FOqQfZoh9BTOniPjj4b6fee6zS37fpMSty15d9UdmT p9C+/tdxxHmTcGuK4K2vvTe84Gj7C9VvJBz011im7BKLTyyyw0WKcIJZ5 cfMZNUfsu5czHapZrUEMl+fz1j7tvSi7Kyy2eGSmu3kAQwg+Q8xD4jT9r 3fTBQxnv9a6E0IHcHNJvAAkaVcFNaOmy/gvcnj0rJk5+0OXbHt6NKf1uk g==; X-CSE-ConnectionGUID: GLsNyLC+RJGDIeEKNzzlFA== X-CSE-MsgGUID: CijijZfXRCKY4doQ44dsOg== X-IronPort-AV: E=McAfee;i="6800,10657,11460"; a="63094885" X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="63094885" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:37 -0700 X-CSE-ConnectionGUID: TRDooyxASFGP13sEGX+RFw== X-CSE-MsgGUID: 5B99nye8TZiKsZInNpziWA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="150880926" Received: from weis0040.iil.intel.com ([10.12.217.108]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:36 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Pagadala Yesu Anjaneyulu Subject: [PATCH iwlwifi-next 04/15] wifi: iwlwifi: fw: Fix possible memory leak in iwl_fw_dbg_collect Date: Wed, 11 Jun 2025 06:34:04 +0300 Message-Id: <20250611063124.8158d15ec866.Ifa3e422c302397111f20a16da7509e6574bc19e3@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611033415.1175681-1-miriam.rachel.korenblit@intel.com> References: <20250611033415.1175681-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 03:34:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 896272 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 7E2F4218AC3 for ; Wed, 11 Jun 2025 03:34:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.10 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612880; cv=none; b=Vi3tBGKXp1UH/Qy7R4OnXWgugKyz/bsmscegS3/gxCcZbG6OudfsfKiaCfJDipDzgJXJ+gFB6/h2BYhNqvi+JzZei+8VtOlmo2ACu07fh0wOgEbmArrx95fxGiMNaDwk7QeoiZuH9XJ2+RIGA5nUqa0IBljPYiPE3Eh+OMYHpZw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612880; c=relaxed/simple; bh=uU9SdRLZ6Dc5AKK+yj1wJVIU6RdQKS4gSLBFIRAvthM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=N/Tf226dgERhS71r/3Dudg4wbLOg1CK7t1iDUFPC2pf32bj+uvTYoDkWLfzmUwM8TLIuR/GTmAzO88eWu4AKtvyZaRaNU6aMvtIYaM8UzzfhF2O9D8VbZuFM0wukSfemaUldCnPubDUYudaUHLsEOy554Yw0spyY/w+zNDFlqCo= 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=iV/hv0tN; arc=none smtp.client-ip=192.198.163.10 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="iV/hv0tN" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749612878; x=1781148878; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=uU9SdRLZ6Dc5AKK+yj1wJVIU6RdQKS4gSLBFIRAvthM=; b=iV/hv0tNYoEP+vsnbJBHi6tdEnYM++njcb1/KVzZt1gPSdJL3ooeyXfn WJ8YyECkThFK5TfMZ0n6n9oyPb2UK4GYm/FxNW7o1g91+RvEcu7eZhKQu 8VD2uPjEKOofI6dOPkaHPvbfURo6162eq71+eCxUyUgPizaL4DD+UgGsb IebrzmbUYrHA19dZIMchIkIBE+Fa1mKdZvb2OFjAYTajVY029IoZybSnW fAbR/uqhP9yGUNcJoIiVJXWfMkt0fiS5iHOzLJ31hKz1AxTXlAN/WnaPa 75GsjQZYwIVzEgwgjMG/n8aDCjthLaAN6ROtr4n4rDbtN4vKMG/CuMTku A==; X-CSE-ConnectionGUID: K98je6/FT32WaSaRW3Pf0A== X-CSE-MsgGUID: BUBkShFoTBCDl6CV/bmdMQ== X-IronPort-AV: E=McAfee;i="6800,10657,11460"; a="63094886" X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="63094886" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:38 -0700 X-CSE-ConnectionGUID: FpIR4WLkRPCPZJ5MG1EjpA== X-CSE-MsgGUID: 8cFZAm3jR/e/qWqWX8ldEg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="150880929" Received: from weis0040.iil.intel.com ([10.12.217.108]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:37 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Or Ron , Eilon Rinat Subject: [PATCH iwlwifi-next 05/15] wifi: iwlwifi: phy periph read - flow modification Date: Wed, 11 Jun 2025 06:34:05 +0300 Message-Id: <20250611063124.124ce6613edd.Ic1aad57cc6163f0551a3dafae048434f4a2fe7f5@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611033415.1175681-1-miriam.rachel.korenblit@intel.com> References: <20250611033415.1175681-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 03:34:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 895943 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 95249219E8C for ; Wed, 11 Jun 2025 03:34:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.10 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612881; cv=none; b=kmQFB8lTAEXyoj2TfYt/jzaDU8NjudS5rd0bnUeZ7YAZlLrmGjCvOXWkY3TcEt4Pw7+/19VfJJgMtD5hIMoYIY5aoLIHn7JygCCZ2GxbAkMwqMozRTC30qoTBz+uTpu2mVc2dGQpvIakHY96uzyJmfHt3Z9++sfBGDVJ/ZrFI+g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612881; c=relaxed/simple; bh=OO2xFlo3x0olf6gA/wxqaXCWzMI0kLGZWt6CmXfdEwU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=RIyrTPOIVujv8pWIzR+Y82nha6NsnsD5mY6KdFA3tJsE4aj9W6/zUhVFMTD3kOztdLnSU232Ho4OoYMpRG0qGlij9Hmcxfijcrergya4sGykMopnqq3bxDUyqX5AvBFUm5a9wZA8c9HOp4x75njYR0/4Wf+Tn/iZNpGCbt1PKH8= 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=Y9uXH4Iz; arc=none smtp.client-ip=192.198.163.10 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="Y9uXH4Iz" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749612879; x=1781148879; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=OO2xFlo3x0olf6gA/wxqaXCWzMI0kLGZWt6CmXfdEwU=; b=Y9uXH4IzbifBQ/2DxgUSZqXN5j05EJZ0KtFVPLI43ltRZKnDeyL+PBdz 83yO1atoIpoWp8QtwyYSTCfVINz0sb0dQegzH72lfwJm+CIP/lNTwsfDP bNcq7jgMeSGD5HyhSfcfDxkwsBZl5zSCIyK9XkbGPuCjt0vm7Vrb1DaxR OJCL/WQTwB10UFMs59RgSEXVp08uQFvV2xczfhogO5mZyzxcHNjiN5BgE DUxi7tTnceySH6Laxrm/+McSUNF9/QqaZev+QtQbGO59l50dySnRww1my 4T7ym0H7IqaeeACMOAhKbT8LUBcPLfvkQh0QHJyzj6Ne/P6vZRcxxPCNy Q==; X-CSE-ConnectionGUID: bqyRy19lRMmJTI7T25tyNg== X-CSE-MsgGUID: UNXlJ1l/S0SkA9rKoIGQOA== X-IronPort-AV: E=McAfee;i="6800,10657,11460"; a="63094889" X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="63094889" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:39 -0700 X-CSE-ConnectionGUID: 9G69NCw7Sb+hmQ3yst4VZA== X-CSE-MsgGUID: dVb+s4o1T5utXG+9bwHZEw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="150880934" Received: from weis0040.iil.intel.com ([10.12.217.108]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:38 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next 06/15] wifi: iwlwifi: mld: add timer host wakeup debugfs Date: Wed, 11 Jun 2025 06:34:06 +0300 Message-Id: <20250611063124.9f2a39cae1e1.Ie0003f21286fea50b507d0debe06332b030cd4cb@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611033415.1175681-1-miriam.rachel.korenblit@intel.com> References: <20250611033415.1175681-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 03:34:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 896271 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 B8BBF21B9D3 for ; Wed, 11 Jun 2025 03:34:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.10 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612882; cv=none; b=BhX6//TffRj8UAyMI7bgMjBMexq6fZK/mhy5wBqBW+ndibXz7FuFSGvgJq4e/men+MSsIs0HHT+1eH6MrMuVnHUvvvzm/P72z8OPtfCfNz0OKYBk2QSEftgmEZH5WmsfdT0hGjPPtxLeC+tqAIQAAMYrkQe4ljPDQwpJRIoQDYo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612882; c=relaxed/simple; bh=6+kO3llmm8Rq06zV6t1YaBhgDCLy2sKzPrl499p0uKg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=HzJ6Uxnb3sXH3E6C/7tMV9uaGrxUPIjKp64ZXlzzcErbE8p29vs5/O4a1woXePTjDsgACfq9kciJIj6VQjxa/2O4IW8g0WLd7vmWaFKfJ9g6mw+4ALHD0hQgQC0LspLxlBy7xHdonadEZwdgjxIx7MWDS/J5902eUW+2MZIZkiM= 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=Gnf6Xq+3; arc=none smtp.client-ip=192.198.163.10 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="Gnf6Xq+3" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749612881; x=1781148881; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=6+kO3llmm8Rq06zV6t1YaBhgDCLy2sKzPrl499p0uKg=; b=Gnf6Xq+3uOBtEztY6t6kC8y9JpGK6byA12GJDXKWqSe/n0+hYuYX6tNH mSZ3YtU1aWzBCR2rfU0C6j32po6u9mAqX3R+ssnIHTiI8SYjchNX/4Bqo J0fDW5WvEstlI9GXar1GU/jR5kn2c06D+iXdovcp8Gq6LDs6JoUI0gJj3 467Iq6ijdNmWs5kch3hHqRWEOm5C/TkQAmsm4Qh9ao5v72kUY/nV1erK0 LLuJNlPaNnVDVuJcMdUvofN5lYj4PybJivEeKWaQjo254UylT1hcvwFvH nDZDVWlU1ptPZX0eU4lH8fJRa80elqPG5cSf/0jNwHRX7D5eK4YsIfRQ0 A==; X-CSE-ConnectionGUID: +evd9LU6TWyX3zl41g9HPQ== X-CSE-MsgGUID: d52SMPtmTHyZozQfE5axLg== X-IronPort-AV: E=McAfee;i="6800,10657,11460"; a="63094891" X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="63094891" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:40 -0700 X-CSE-ConnectionGUID: N5mVt6srQ4KrmsjfXHx72w== X-CSE-MsgGUID: mGvD2ku7RTO8afrURH3PtA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="150880940" Received: from weis0040.iil.intel.com ([10.12.217.108]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:39 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next 07/15] wifi: iwlwifi: mld: remove special FW error resume handling Date: Wed, 11 Jun 2025 06:34:07 +0300 Message-Id: <20250611063124.9e778f1bae0c.I96483b5236ab23141b45079464c73f93e0164e65@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611033415.1175681-1-miriam.rachel.korenblit@intel.com> References: <20250611033415.1175681-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 03:34:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 895942 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 D9AE821E0AA for ; Wed, 11 Jun 2025 03:34:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.10 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612883; cv=none; b=bUS3BFinrfHcIWIs9wPMyubi3vvqT8pt7IRToroUV1bliI0M00KWA3kEOnJs/6FB1YqW1/5D/1oI/NzLLOHD9uNnzOxsv0xZ0fVl7VH1akg6jHU8h7/fgPt7BpCTRTFW5UoSIrG9SmeFoOp+DJy/jZ5iokQhsmRC1iui41/aueY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612883; c=relaxed/simple; bh=h/OcQtffMb6TcbuatTOWYtrnUNADKzrAmEMT9oiCllw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=UpPctsTE0qlvWKOUE4nB3RyIGwBuZBESW/rmejKAvhz0U7qp3yHSkAExlzIAwfIFLpfGcQAKPsV3g8IjVAT0kVNk2Ia5IWwoZO/nyv2m4rArJbW4CwrnQu6ZL3QUXew+rmJugMWZ94FhWr+HMGCDQWTZ4zlGwh9Yj6LwTuyuiYg= 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=JlZAhR3z; arc=none smtp.client-ip=192.198.163.10 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="JlZAhR3z" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749612882; x=1781148882; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=h/OcQtffMb6TcbuatTOWYtrnUNADKzrAmEMT9oiCllw=; b=JlZAhR3z+AuPUdvU3VselRc4aHnUA5lfyS5ivwByWaYsIwYqE9WUMetJ Q4eRiyDYxJ73KkA4HRdqS0kj5GR1C4FfSC/qZIjthOG5eKyNDWG/UzBwb LzIbdmoQgtelTbTy61TTrYnBLTTszbCtolw3sJSTv3aTF7YimHX8vHG+/ CBBtW7Bb320F1KMJu9eqlmUMfIlxq73pOP1PXQ7rxaoWiyV55ornbyBxc +YXI4KNVG7tLNzdSRqr7Q8slM43l0uI07tAa5+kbvA45dTGGQQs0EDihm KDoe9ZlJgVvIjoXQG/25X+HoidRwlXkhscl5fKyAdtATGTY9IWdIIPtzV w==; X-CSE-ConnectionGUID: aF1600aASg2+DrY7xFBb1w== X-CSE-MsgGUID: zC3oQ9kBRfKKhevYSMNKeA== X-IronPort-AV: E=McAfee;i="6800,10657,11460"; a="63094892" X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="63094892" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:42 -0700 X-CSE-ConnectionGUID: 1yG7y8JMRp6JPmTLNaPfWA== X-CSE-MsgGUID: k9glgMXiRoCNqAOKtnUOIA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="150880944" Received: from weis0040.iil.intel.com ([10.12.217.108]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:40 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next 08/15] wifi: iwlwifi: mld: fix last_mlo_scan_time type Date: Wed, 11 Jun 2025 06:34:08 +0300 Message-Id: <20250611063124.5381030253cd.I4e3a7bca5b52fc826e26311055286421508c4d1b@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611033415.1175681-1-miriam.rachel.korenblit@intel.com> References: <20250611033415.1175681-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 03:34:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 896270 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 0C1A0221708 for ; Wed, 11 Jun 2025 03:34:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.10 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612884; cv=none; b=PSQ+UrfyJtyIPVIWzCygtfjk6ZkvZwh8gI6xuskmYM3k2fYZhxY3QtoEi9Vs2vkUnVTaCOrdOd1wyyo57Thp1yaH3f2F7VbP+04CPt6iU+M/7YeH73+kF8OEoi9XZt/A7Suy3QxiqnnEYe1AEhLVgGuGVi6yFDMNuXIGLwq34fU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612884; c=relaxed/simple; bh=upJdgO0YoDXWHgyMLaOstcjSmA+5OZbHowYyTIq4BIk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=iB/wpN5AkR3w/1dwDRLWZNdPgffkr4TudxcneXGMOqU7BQwUUJKNrPQcAfXavnlcIrBsSxLx8r/EOC87LLTy+K+ksI8H/I6euRe6+epQCd7PVgSWAwMkCAxr9BzD+mq6/9mZJBRvdjZQutpn5uosAxZaPoa6OXcL599WqJCQltw= 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=MlHV5wUd; arc=none smtp.client-ip=192.198.163.10 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="MlHV5wUd" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749612883; x=1781148883; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=upJdgO0YoDXWHgyMLaOstcjSmA+5OZbHowYyTIq4BIk=; b=MlHV5wUdYuZmxjJfDVlljDelQ+ljgZSgDtV/bj/xJkG0Hr87dYQbAaCz gHqSG3exxIxC5ZCotFDc/tid5eAZG33VzDhdGg/bvvVrfxKO+Z2PiPkxb Rx0IGfRO4D5sMStK8jTMIo/95bPL8rTHAAKNrPYPqv58zaUSd1L7xvr5c nsbrYGJhpCgsrR6DbDl6osyrO6PAizo38prcRIX1gjkR2SeNeiopP4WeT N8Gp9LUZdfgk2UkV896NaiopwSRpDXjYcr2rj5YiGFMoqCc7lmEo55zLD tFYBwkojZVstyvmVfZrTm3x8T9rWBAfriNAMA1d2hYgmqZJxZl4ktoYmh w==; X-CSE-ConnectionGUID: 37L9QmHHRPOtbtchfLMs5w== X-CSE-MsgGUID: KuN/l9lFRgaoscVkq/e/XA== X-IronPort-AV: E=McAfee;i="6800,10657,11460"; a="63094893" X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="63094893" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:43 -0700 X-CSE-ConnectionGUID: giKpQRd1TS+NcbbPU9PW1g== X-CSE-MsgGUID: cLumpeO8TB6BIVduPHi2Wg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="150880953" Received: from weis0040.iil.intel.com ([10.12.217.108]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:41 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next 09/15] wifi: iwlwifi: defer MLO scan after link activation Date: Wed, 11 Jun 2025 06:34:09 +0300 Message-Id: <20250611063124.09548e958a9e.I24dbfd425da260f3ae6fa5a48fe25bd4ab6fcf99@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611033415.1175681-1-miriam.rachel.korenblit@intel.com> References: <20250611033415.1175681-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 03:34:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 895941 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 2EA88224AE8 for ; Wed, 11 Jun 2025 03:34:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.10 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612885; cv=none; b=li5N70LgL9su4XTMLW9DNdxNOg46TjwPbqNT8T2oJGp4zRK4SM0gpQdz9SHQSUkvwOXsIpwZsvdVO8QzB9i12ASPRGYT4JmOraaXlUSWEPk+8i4hF7GNoKnO4G9xVbuYe5iQ9SjZx+lqzBoRjwwqpcoh03TlkuYrcXcnt6Lxiss= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612885; c=relaxed/simple; bh=wBnwp+mNZAFi30/OAc8C/4tNSChKGQhgL+qWAuxDAJw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=N2w4sw0ov0Dw5miWMgr8NSkYimn/zkmzmIbpSTI1ASJm5aSiad29g3+ihDq7Dk9VEt1CEcfk2XaEP04ZIvbUwwcKdhG2bJ5Dj9zZ6RcW5Fo/igNtsD990FEfVGIrKZH+kC1lzakDNUMOtOz5X2zom1mhJGiRtD3PgHF/EKmpCXE= 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=niVly8L3; arc=none smtp.client-ip=192.198.163.10 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="niVly8L3" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749612884; x=1781148884; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=wBnwp+mNZAFi30/OAc8C/4tNSChKGQhgL+qWAuxDAJw=; b=niVly8L3Xp56qwG2o++z7fAPI4TpbXYufIuHCckttrEeVmkxF2sfByHZ Xp4NmH/4ulYTC0zTJWbkmtk/xGO0mtjSHWdawMZfs7bCRzBFPwktjIWvq QfJ5GsKmNKjFOQRSa/kVBrMqJbZvyem9ZcFAuc2nk6W74dH8DoWzswG8l UIX3C/NFQd+VnQCIG+QF+EBhbEhIAVTbmymZl8aPuweEYjhazYDa/mg9+ 0NcYse8D0qj49FpI8ECphuEllTAvD130CwI0+6zH0Q/R4kyZFX1Fthzge GYBLUnwwBBGq/EZkOj8PtVd8i2tpTwdvrQnz9woP4nBBnsaA5SDvlnW1F w==; X-CSE-ConnectionGUID: j2dcW2x4QmGTOMBeh9TBRA== X-CSE-MsgGUID: MI+uRvIIRSisfjwblPuzcQ== X-IronPort-AV: E=McAfee;i="6800,10657,11460"; a="63094894" X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="63094894" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:44 -0700 X-CSE-ConnectionGUID: Rbje+XM5SwaBlsRUBqEnZw== X-CSE-MsgGUID: zYSlfQzdQEWNbiB9TfNpGA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="150880965" Received: from weis0040.iil.intel.com ([10.12.217.108]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:43 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next 10/15] wifi: iwlwifi: dvm: fix some kernel-doc issues Date: Wed, 11 Jun 2025 06:34:10 +0300 Message-Id: <20250611063124.b33528d06431.I948261d6610c47f09133fa73f5e5ea9b9848fd21@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611033415.1175681-1-miriam.rachel.korenblit@intel.com> References: <20250611033415.1175681-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 03:34:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 896269 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 4C877225390 for ; Wed, 11 Jun 2025 03:34:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.10 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612886; cv=none; b=GetcpYdHA0eXpc9cv9Z/BWlCG8KmNn/mDkWpisZi5LIULNaVHSUU4xWPYBfRBJDk0hAWPa3Z/j3cUP5/4OfErbwcOKHgIkG7c9X0CtLtUuDoYSkrXASbFkjvFaAk9avK/SEqjocGKpIwiJ9JP2lD3ahP+sGtUSRW4JA8z/kMw5Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612886; c=relaxed/simple; bh=RLmNVZjrSHGeXBYCymqhAETWJdCGkX14Wr1pqgtheAI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=M0aE72nhN5UdHsu7zVkO/KTu+yTkM3LLATLXimud+b2NwlSdg0gVinca5pkkciYxhZVBz5FQetS7wsrcIJFm48JsxHespTdXLR6l5Xbkk4FhDxTIom7pdjM9ZLhDUgzf0V1dUmKvr2LecFRMeZfBa7YME5EnuNeVM/jd00eLr7k= 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=itYqcett; arc=none smtp.client-ip=192.198.163.10 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="itYqcett" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749612885; x=1781148885; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=RLmNVZjrSHGeXBYCymqhAETWJdCGkX14Wr1pqgtheAI=; b=itYqcettiWuoMvCQy51GKkGhZq5gCuAJeytRQtFyrjSe9G+79HG76kVQ orBUkTlUWLdN3DCk8XDh969Uj/xyfwYeIyjJ3FuloiftRdqJubV2cOXPt yqX4oZ6eQVTPsmIU73Qnncuga5bhQDCAay+0qw28/tMSwirsuFFxZ5zV0 YZc9Bq+cvoijLKPj890E1LZFceNIJe/fFseSEfh6851nY+kcD9vUxTPSV MG2IvDYyxkYjcjHODE1ANNNlIUK7gSvBBWvKJXE3l6Wpx39yZCphnNED3 oMgjmqXyRR2jmrjfMionStsmZeL0EMlpWT0XWqmzzYl/LtJaU3LpUqLBP Q==; X-CSE-ConnectionGUID: GRrk7yozR/i6A5vbAaH4AQ== X-CSE-MsgGUID: RHUWDTLfSdy0P60GtyHGaw== X-IronPort-AV: E=McAfee;i="6800,10657,11460"; a="63094895" X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="63094895" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:45 -0700 X-CSE-ConnectionGUID: cz0pmPH/TSGZabIVuAtfzQ== X-CSE-MsgGUID: A7t9aLWKTbS65UbaQsLZgQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="150880969" Received: from weis0040.iil.intel.com ([10.12.217.108]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:44 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next 11/15] wifi: iwlwifi: pcie: fix kernel-doc warnings Date: Wed, 11 Jun 2025 06:34:11 +0300 Message-Id: <20250611063124.7434b8ecc4b6.Ia4cfeea63e946f3b54e3e6b7bd6ab81130b0a7e6@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611033415.1175681-1-miriam.rachel.korenblit@intel.com> References: <20250611033415.1175681-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..19f67f868fe5 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 03:34:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 895940 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 70F542253FB for ; Wed, 11 Jun 2025 03:34:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.10 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612888; cv=none; b=cr5ZtuMNVow78NfVQOvjLNgNEgehsKJh5XTdKeZ+RSHpHv+wTu4PKVGNrjm5TDPvq0MYpepHStZ7CH8TAen4T/L7U/E2bCC6pGAFeBAwu6TqepTtunlh/tNeIq5XcwrNVSxcJA3te54fPEFFBmQE51GaScVjHVj9k+GPWkRnqeI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612888; c=relaxed/simple; bh=Y880Dmewf2eHGLtigrHUTnUd1//A+PCGJaeDSkCvrwU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Eq4WkVXgx/dg4MednC0McNOurfHHSgg9icQUXpZ0tNH71mrmUMgB4lXMPoMjb3HGY1+FRc1U+EEQAo4FKhcKhHbJm2sNGoVoxYvao7O9ZJgVJcoi9Z+xo9LZOeSiq02ahtrNmlbeRqoAhjVaoOCQo79+KJVy7Ya5TDg1wC56KrQ= 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=dqmkM/m5; arc=none smtp.client-ip=192.198.163.10 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="dqmkM/m5" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749612886; x=1781148886; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Y880Dmewf2eHGLtigrHUTnUd1//A+PCGJaeDSkCvrwU=; b=dqmkM/m5tECMc/OvOaSSd58XJglixEvnsZ+A2b07xykZlerEDiD4jbdL vHsZnNF0w4aHbg2L665FfgrXhLOr9XMJ9HvNeZgRZEy8/Bz0eGQrzOGhC QG2EoYfuY/pFW525L9zJZSr6d76SMxsRUS7jSVZnP7ksVRwMJ+APnA350 /geHA4KRwoiJtYAWZ3RhtEPANfOx9+dKKlERGkAxSm7VazlvJpPeXZ/yB dqDiZLBnmGsfs+ZST90WVs5vlLJB0X4GyYZie7T6B63E/z+t2ZBXtzJjF AZ5mWQStrslVGVPlK/njXLMzcW2MsMDbnhjuYEkoe2LF2IndEBcThpQec Q==; X-CSE-ConnectionGUID: yrxpCbluTgqIDRD81aZ6+w== X-CSE-MsgGUID: Hkn9iHFxS62q5OBWFWtmDw== X-IronPort-AV: E=McAfee;i="6800,10657,11460"; a="63094896" X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="63094896" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:46 -0700 X-CSE-ConnectionGUID: uVZHvZsyTMKGVFZCEq1KTQ== X-CSE-MsgGUID: qH/iJbdZTLeiwHUwvb4gEg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="150880972" Received: from weis0040.iil.intel.com ([10.12.217.108]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:45 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next 12/15] wifi: iwlwifi: mei: fix kernel-doc warnings Date: Wed, 11 Jun 2025 06:34:12 +0300 Message-Id: <20250611063124.82cc1d805bda.I21e7be2df56f20e1215dc35d94f3225708c5d74f@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611033415.1175681-1-miriam.rachel.korenblit@intel.com> References: <20250611033415.1175681-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 03:34:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 896268 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 962B222577C for ; Wed, 11 Jun 2025 03:34:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.10 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612889; cv=none; b=RVuMTMP4pZPAe3CEk8ZGOlJjoo32xiz3DvZX+kfMQxDHY0lRwGwb2+EnUpcnV9IFhN2X906dWgd0dJj9QesyE/UlkcRFdLzfUpJqOhsnraCFMWMJGKggEMaWmj+wx8kj95pqmM55/6Gw2RRgWVFidKWl81+6UpYynSS0oVzONwo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612889; c=relaxed/simple; bh=K1fwQ+ny+hLfh5lBzL06SfD1jI6wciOFuLggQJAQNEM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=gIhlBQwveMufn2z1jtiCNobvYbClwThimXNjnLSLbYn75/o+advO8ywtsLWUFz2BmCtJarseX5Gwpu/r9mi5KAVbInUgguDfM/7xPlAIzQJPyTis9s4KpBEfq2IF/AyYpxe08ch1qCDaKapUJEzmC513XMWVa2LlC5H9y7nVWO8= 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=KPowC284; arc=none smtp.client-ip=192.198.163.10 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="KPowC284" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749612887; x=1781148887; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=K1fwQ+ny+hLfh5lBzL06SfD1jI6wciOFuLggQJAQNEM=; b=KPowC284QFxdkdQ3+1aXgutMgQnw95hPP22bgeMs2o+dsr33/TBBwYIT D8mjRYn+cVX3LrjBEeQ655MwSxTIAWruoOiTnAhjylUWOtO3K/B3jLcAt f3dDpm9z/mJWwXOXKVAV0D0PwhUooGInO38Ntfss4gbq0TH6YxXeYETpk i09ztG8r6WFlZPV62H8HuTCDAb2PlPFxYG8QBGO0TTEuyItOnyK4EPbbp Qc/+earoYe5NbeBXSde7CXb1Xf07WgUKCCMW/A0uXvuABFZweD79xTm/6 U7hbqvwQDx2bLdrzwuo8/Iw19D+5UFzibKebzlf9qqufMMVsuTeNH7C0O w==; X-CSE-ConnectionGUID: 92PdqcPpQH2Q8kf8C8W6Xw== X-CSE-MsgGUID: 3i8uRguBRyOq0fGbmMxWJA== X-IronPort-AV: E=McAfee;i="6800,10657,11460"; a="63094897" X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="63094897" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:47 -0700 X-CSE-ConnectionGUID: anHdlgGCQby1FoFYcuK90g== X-CSE-MsgGUID: 0nd0+a/vSw+l0uGRaQTH8A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="150880978" Received: from weis0040.iil.intel.com ([10.12.217.108]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:46 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next 13/15] wifi: iwlwifi: mvm: fix kernel-doc warnings Date: Wed, 11 Jun 2025 06:34:13 +0300 Message-Id: <20250611063124.b4d451c00af5.I1b42df920b0f057a7d7ac01e61201621229a444c@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611033415.1175681-1-miriam.rachel.korenblit@intel.com> References: <20250611033415.1175681-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 03:34:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 895939 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 E173D225A31 for ; Wed, 11 Jun 2025 03:34:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.10 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612890; cv=none; b=r7/jSrMlBCTkcoYhaaz+cRCzXyRsYSFgCw1cSWlCo1hNxEK/XM8vB/Nluh77pQuZVb3ZGqknL+dHLPHSynDEsNPEGRkryMddWp1RyceGWuVLqBWm/NrE49vBhsoJgmGLE2aazoUDP/+I8SdbILU4rVaF3ncH5lhmPVV4e4CiYrI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612890; c=relaxed/simple; bh=KGUc9nQ+tQ6kA7ubenYZgsBUkTWSIrfjmkv/zCoM5zM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=TeECEpCW66PSBTHZdd/p/K1jr+YK2PhwrtghoqC6JbIbf8m6KYFzsJgFvnbRIuVUADA9IGUin9qVImWPg7zskt1hCzgIEE5HM+TpeKSYxn5x7y7siduOU1aeecgCI51fwbAyC61xIB5CFaeEn6ZfM1hhPimng4uhM+Ov3ankiMA= 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=f9Vma70Q; arc=none smtp.client-ip=192.198.163.10 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="f9Vma70Q" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749612889; x=1781148889; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=KGUc9nQ+tQ6kA7ubenYZgsBUkTWSIrfjmkv/zCoM5zM=; b=f9Vma70QJ0pnfLQgxyUrYxCEfqv8cF4SoCFBzq7/xfGkv2CLioPb0eqR ZZ76vBCJWNXF0HRbvjtC3mbV4zhKQ7Jt/V9EAkQXqxPxt0guSjvZSwGom BIaXJlSMaaMF0HKtPINxsas3w1RrPn9UZ5beouKGxhcNJKxbIfnH46wbp vUqIePOuHmHlRmeDzJm+N5IHL0UemEYX9OQtIT78BsFT6roF2jkVodewq LYZ3LUKe3EXnDJYDGaeUEKQHoTz3ePZx2XDCYxdauvK+xU2219RWXS7kn kY5wzzlz2teHgloxr6CJWGqSuu2lpV7wqMPy7fy8eps7W1qrwAI3fnrYF Q==; X-CSE-ConnectionGUID: pkpwBG1/ROicrdUiKHhdNQ== X-CSE-MsgGUID: nA+d3TGXRaqkV5higP4Psw== X-IronPort-AV: E=McAfee;i="6800,10657,11460"; a="63094898" X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="63094898" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:49 -0700 X-CSE-ConnectionGUID: Uywo3k28QEmQWQCUVR/hbQ== X-CSE-MsgGUID: vTwgWXZdSW+f3TyKLq6orA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="150880982" Received: from weis0040.iil.intel.com ([10.12.217.108]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:47 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg , Emmanuel Grumbach Subject: [PATCH iwlwifi-next 14/15] wifi: iwlwifi: mld: make PHY config a debug message Date: Wed, 11 Jun 2025 06:34:14 +0300 Message-Id: <20250611063124.72df4e8357f3.I2cf4e1e2e604b42b6eb9737c0ef3b75fec69edea@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611033415.1175681-1-miriam.rachel.korenblit@intel.com> References: <20250611033415.1175681-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 03:34:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 896267 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 14610226188 for ; Wed, 11 Jun 2025 03:34:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.10 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612891; cv=none; b=kKvgnFb8ixgZmBMLfdFP8tjqC2cx3fAV0ouowbpymitWf7PZcwNBgQaBjd2ap39DJiQ0iVcRIo0JYotBpupFnsk9vR193z1A+n6FL6WB7pRcrWp7FP6KPnZ7nRXKuO82CWmXH0HIy4CJhLSx2NZAqWTKVDVFpXKnZyTmJeqTkAQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749612891; c=relaxed/simple; bh=CHR2/8ZIAOOEAXbxGZThg/nnIh1RBVNVWuJsrNVgYA4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=BHTz/m/y5/d2dYqiVM/2kVyGoAXKO5d8HkIp1IRpNkyq4T4YRPTbLW+/ZqDMpgSmBSel8fnBIyKXI4GAWSqywYLw/ZQetJKLdN2akfOBi15lEww/qQUR28r13s/8b9g1G343WrxV2kTwJse4PnACYwGlDAxIa/tEzZm2oaTh8bk= 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=Qkewf2Uk; arc=none smtp.client-ip=192.198.163.10 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="Qkewf2Uk" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1749612890; x=1781148890; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=CHR2/8ZIAOOEAXbxGZThg/nnIh1RBVNVWuJsrNVgYA4=; b=Qkewf2Ukdg8ShYeKVAM7oljufB92gcFvvza3gGIlTnhb6eCWCdssBLbS RXwqavOYA6kkkQtFm3g/vMQULJAAGq++GOck0QqHF4jGCRH324NhuIaZ0 GR0UrKzPKEDMyO0h8yAZ2PijN/RRgGoG3Qnzn9ix/iMfNBxzyhCTljp5n ZOMHA40LJ+L89+RiFgp81mGE6h0L+GR3FSo5E1c43UNrtQljbQ17W2fxM gKNXRM5IL/xnyksROBlQX62o46hJldxTAjDx+dwYGXBNCcgbs5arQWYih LpWO4vuHaZdZ3hNZdxF66tnrlr4HyMGqwVhpjyN9LwYIxg76wKKtU28sO Q==; X-CSE-ConnectionGUID: JrdV7bftTQmW+hHU2czRfQ== X-CSE-MsgGUID: U66gskBzRLaM2zvLgxpTQg== X-IronPort-AV: E=McAfee;i="6800,10657,11460"; a="63094899" X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="63094899" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:50 -0700 X-CSE-ConnectionGUID: P3kR97WWT7+WWWNOHdM4xQ== X-CSE-MsgGUID: B3NEBWfgS2+486gFOfPm0w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,226,1744095600"; d="scan'208";a="150880986" Received: from weis0040.iil.intel.com ([10.12.217.108]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2025 20:34:49 -0700 From: Miri Korenblit To: linux-wireless@vger.kernel.org Cc: Johannes Berg Subject: [PATCH iwlwifi-next 15/15] wifi: iwlwifi: fw: make PNVM version a debug message Date: Wed, 11 Jun 2025 06:34:15 +0300 Message-Id: <20250611063124.a372d977e58e.I06f2adca38d012a71cde3956e1d2005293f70604@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250611033415.1175681-1-miriam.rachel.korenblit@intel.com> References: <20250611033415.1175681-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);