mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 12:53:04 -04:00
wifi: iwlwifi: phy periph read - flow modification
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 <or.ron@intel.com> Reviewed-by: Eilon Rinat <eilon.rinat@intel.com> Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com> Link: https://patch.msgid.link/20250611222325.124ce6613edd.Ic1aad57cc6163f0551a3dafae048434f4a2fe7f5@changeid
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user