]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: iwlwifi: pcie: Move txcmd size/align calculation to callers
authorYedidya Benshimol <yedidya.ben.shimol@intel.com>
Wed, 9 Jul 2025 05:16:23 +0000 (08:16 +0300)
committerMiri Korenblit <miriam.rachel.korenblit@intel.com>
Wed, 9 Jul 2025 08:39:28 +0000 (11:39 +0300)
Refactor iwl_trans_init to accept txcmd_size and txcmd_align as parameters
instead of calculating them internally.

Signed-off-by: Yedidya Benshimol <yedidya.ben.shimol@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250709081300.237285d81461.I3552860dd062a523606c8a5c85c9a6f0d4f04262@changeid
drivers/net/wireless/intel/iwlwifi/iwl-trans.c
drivers/net/wireless/intel/iwlwifi/iwl-trans.h
drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/trans.c

index 78808c956444f2bc0e2ae384be107d6974e984e4..6288779ff8ec524c84aeffa9dd7c6f829d864b16 100644 (file)
@@ -293,25 +293,13 @@ struct iwl_trans *iwl_trans_alloc(unsigned int priv_size,
        return trans;
 }
 
-int iwl_trans_init(struct iwl_trans *trans)
+int iwl_trans_init(struct iwl_trans *trans, unsigned int txcmd_size,
+                  unsigned int txcmd_align)
 {
-       int txcmd_size, txcmd_align;
-
        /* check if name/num_rx_queues were set as a proxy for info being set */
        if (WARN_ON(!trans->info.name || !trans->info.num_rxqs))
                return -EINVAL;
 
-       if (!trans->mac_cfg->gen2) {
-               txcmd_size = sizeof(struct iwl_tx_cmd_v6);
-               txcmd_align = sizeof(void *);
-       } else if (trans->mac_cfg->device_family < IWL_DEVICE_FAMILY_AX210) {
-               txcmd_size = sizeof(struct iwl_tx_cmd_v9);
-               txcmd_align = 64;
-       } else {
-               txcmd_size = sizeof(struct iwl_tx_cmd);
-               txcmd_align = 128;
-       }
-
        txcmd_size += sizeof(struct iwl_cmd_header);
        txcmd_size += 36; /* biggest possible 802.11 header */
 
index 012b1e44bce38724fccf7eb65e9baa69641b87a4..49a695e301097ab1fbd863713d6c8d505707128c 100644 (file)
@@ -1206,7 +1206,8 @@ static inline void iwl_trans_finish_sw_reset(struct iwl_trans *trans)
 struct iwl_trans *iwl_trans_alloc(unsigned int priv_size,
                          struct device *dev,
                          const struct iwl_mac_cfg *cfg_trans);
-int iwl_trans_init(struct iwl_trans *trans);
+int iwl_trans_init(struct iwl_trans *trans, unsigned int txcmd_size,
+                  unsigned int txcmd_align);
 void iwl_trans_free(struct iwl_trans *trans);
 
 static inline bool iwl_trans_is_hw_error_value(u32 val)
index 0ebb1e7e4bf55fa5f434ea67aeb65e1293badf15..9355d5a9d933fd79ffd0717422eea92a25d6521f 100644 (file)
@@ -25,6 +25,7 @@
 #include "fw/dbg.h"
 #include "fw/api/tx.h"
 #include "fw/acpi.h"
+#include "fw/api/tx.h"
 #include "mei/iwl-mei.h"
 #include "internal.h"
 #include "iwl-fh.h"
@@ -4139,6 +4140,7 @@ int iwl_pci_gen1_2_probe(struct pci_dev *pdev,
        };
        struct iwl_trans *iwl_trans;
        struct iwl_trans_pcie *trans_pcie;
+       unsigned int txcmd_size, txcmd_align;
        int ret;
 
        iwl_trans = iwl_trans_pcie_alloc(pdev, trans, &info);
@@ -4247,7 +4249,19 @@ int iwl_pci_gen1_2_probe(struct pci_dev *pdev,
 
        iwl_trans_set_info(iwl_trans, &info);
 
-       ret = iwl_trans_init(iwl_trans);
+       if (!iwl_trans->mac_cfg->gen2) {
+               txcmd_size = sizeof(struct iwl_tx_cmd_v6);
+               txcmd_align = sizeof(void *);
+       } else if (iwl_trans->mac_cfg->device_family <
+                  IWL_DEVICE_FAMILY_AX210) {
+               txcmd_size = sizeof(struct iwl_tx_cmd_v9);
+               txcmd_align = 64;
+       } else {
+               txcmd_size = sizeof(struct iwl_tx_cmd);
+               txcmd_align = 128;
+       }
+       ret = iwl_trans_init(iwl_trans, txcmd_size, txcmd_align);
+
        if (ret)
                goto out_free_trans;