Commit 6a5114d8 authored by Miri Korenblit's avatar Miri Korenblit
Browse files

wifi: iwlwifi: pcie: move ltr_enabled to the specific transport



Currently it is under iwl_trans, which is the bus agnostic part of the
transport. But really it is relevant for pcie only, so move it to the
iwl_trans_pcie and export it via an API to the opmode.

Reviewed-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: default avatarMiri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250909061931.9f9dc80ab06c.I3eeca8b17abeba6ed30f0d681518c81ede0acf30@changeid
parent 579c6a6e
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -816,3 +816,9 @@ bool iwl_trans_is_pm_supported(struct iwl_trans *trans)
	return iwl_pcie_gen1_is_pm_supported(trans);
}
IWL_EXPORT_SYMBOL(iwl_trans_is_pm_supported);

bool iwl_trans_is_ltr_enabled(struct iwl_trans *trans)
{
	return iwl_pcie_gen1_2_is_ltr_enabled(trans);
}
IWL_EXPORT_SYMBOL(iwl_trans_is_ltr_enabled);
+2 −2
Original line number Diff line number Diff line
@@ -844,7 +844,6 @@ struct iwl_trans_info {
 * @dev: pointer to struct device * that represents the device
 * @info: device information for use by other layers
 * @pnvm_loaded: indicates PNVM was loaded
 * @ltr_enabled: set to true if the LTR is enabled
 * @suppress_cmd_error_once: suppress "FW error in SYNC CMD" once,
 *	e.g. for testing
 * @fail_to_parse_pnvm_image: set to true if pnvm parsing failed
@@ -883,7 +882,6 @@ struct iwl_trans {
	bool step_urm;
	bool suppress_cmd_error_once;

	bool ltr_enabled;
	u8 pnvm_loaded:1;
	u8 fail_to_parse_pnvm_image:1;
	u8 reduce_power_loaded:1;
@@ -1262,4 +1260,6 @@ static inline u16 iwl_trans_get_device_id(struct iwl_trans *trans)

bool iwl_trans_is_pm_supported(struct iwl_trans *trans);

bool iwl_trans_is_ltr_enabled(struct iwl_trans *trans);

#endif /* __iwl_trans_h__ */
+1 −1
Original line number Diff line number Diff line
@@ -837,7 +837,7 @@ static int iwl_mvm_config_ltr(struct iwl_mvm *mvm)
		.flags = cpu_to_le32(LTR_CFG_FLAG_FEATURE_ENABLE),
	};

	if (!mvm->trans->ltr_enabled)
	if (!iwl_trans_is_ltr_enabled(mvm->trans))
		return 0;

	return iwl_mvm_send_cmd_pdu(mvm, LTR_CONFIG, 0,
+8 −0
Original line number Diff line number Diff line
@@ -404,6 +404,7 @@ struct iwl_pcie_txqs {
 *	The user should use iwl_trans_{alloc,free}_tx_cmd.
 * @dev_cmd_pool_name: name for the TX command allocation pool
 * @pm_support: set to true in start_hw if link pm is supported
 * @ltr_enabled: set to true if the LTR is enabled
 */
struct iwl_trans_pcie {
	struct iwl_rxq *rxq;
@@ -515,6 +516,7 @@ struct iwl_trans_pcie {
	char dev_cmd_pool_name[50];

	bool pm_support;
	bool ltr_enabled;
};

static inline struct iwl_trans_pcie *
@@ -1161,4 +1163,10 @@ static inline bool iwl_pcie_gen1_is_pm_supported(struct iwl_trans *trans)
	return trans_pcie->pm_support;
}

static inline bool iwl_pcie_gen1_2_is_ltr_enabled(struct iwl_trans *trans)
{
	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);

	return trans_pcie->ltr_enabled;
}
#endif /* __iwl_trans_int_pcie_h__ */
+2 −2
Original line number Diff line number Diff line
@@ -217,10 +217,10 @@ void iwl_pcie_apm_config(struct iwl_trans *trans)
	trans_pcie->pm_support = !(lctl & PCI_EXP_LNKCTL_ASPM_L0S);

	pcie_capability_read_word(trans_pcie->pci_dev, PCI_EXP_DEVCTL2, &cap);
	trans->ltr_enabled = cap & PCI_EXP_DEVCTL2_LTR_EN;
	trans_pcie->ltr_enabled = cap & PCI_EXP_DEVCTL2_LTR_EN;
	IWL_DEBUG_POWER(trans, "L1 %sabled - LTR %sabled\n",
			(lctl & PCI_EXP_LNKCTL_ASPM_L1) ? "En" : "Dis",
			trans->ltr_enabled ? "En" : "Dis");
			trans_pcie->ltr_enabled ? "En" : "Dis");
}

/*