Lines Matching defs:trans

66 #include "iwl-trans.h"
77 struct iwl_trans *trans;
83 trans = devm_kzalloc(dev, sizeof(*trans) + priv_size, GFP_KERNEL);
84 if (!trans)
87 trans->trans_cfg = cfg_trans;
107 lockdep_init_map(&trans->sync_cmd_lockdep_map, "sync_cmd_lockdep_map",
111 trans->dev = dev;
112 trans->ops = ops;
113 trans->num_rx_queues = 1;
115 if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210)
116 trans->txqs.bc_tbl_size = sizeof(struct iwl_gen3_bc_tbl);
118 trans->txqs.bc_tbl_size = sizeof(struct iwlagn_scd_bc_tbl);
124 if (trans->trans_cfg->gen2) {
125 trans->txqs.bc_pool = dmam_pool_create("iwlwifi:bc", dev,
126 trans->txqs.bc_tbl_size,
128 if (!trans->txqs.bc_pool)
132 if (trans->trans_cfg->use_tfh) {
133 trans->txqs.tfd.addr_size = 64;
134 trans->txqs.tfd.max_tbs = IWL_TFH_NUM_TBS;
135 trans->txqs.tfd.size = sizeof(struct iwl_tfh_tfd);
137 trans->txqs.tfd.addr_size = 36;
138 trans->txqs.tfd.max_tbs = IWL_NUM_OF_TBS;
139 trans->txqs.tfd.size = sizeof(struct iwl_tfd);
141 trans->max_skb_frags = IWL_TRANS_MAX_FRAGS(trans);
143 snprintf(trans->dev_cmd_pool_name, sizeof(trans->dev_cmd_pool_name),
144 "iwl_cmd_pool:%s", dev_name(trans->dev));
145 trans->dev_cmd_pool =
146 kmem_cache_create(trans->dev_cmd_pool_name,
149 if (!trans->dev_cmd_pool)
154 trans->txqs.tso_hdr_page = alloc_percpu(struct iwl_tso_hdr_page);
155 if (!trans->txqs.tso_hdr_page) {
156 kmem_cache_destroy(trans->dev_cmd_pool);
160 return trans;
163 void iwl_trans_free(struct iwl_trans *trans)
169 per_cpu_ptr(trans->txqs.tso_hdr_page, i);
175 free_percpu(trans->txqs.tso_hdr_page);
177 kmem_cache_destroy(trans->dev_cmd_pool);
180 int iwl_trans_send_cmd(struct iwl_trans *trans, struct iwl_host_cmd *cmd)
185 test_bit(STATUS_RFKILL_OPMODE, &trans->status)))
188 if (unlikely(test_bit(STATUS_FW_ERROR, &trans->status)))
191 if (unlikely(trans->state != IWL_TRANS_FW_ALIVE)) {
192 IWL_ERR(trans, "%s bad state = %d\n", __func__, trans->state);
201 lock_map_acquire_read(&trans->sync_cmd_lockdep_map);
203 if (trans->wide_cmd_header && !iwl_cmd_groupid(cmd->id))
206 ret = trans->ops->send_cmd(trans, cmd);
209 lock_map_release(&trans->sync_cmd_lockdep_map);
235 const char *iwl_get_cmd_string(struct iwl_trans *trans, u32 id)
245 if (!trans->command_groups || grp >= trans->command_groups_size ||
246 !trans->command_groups[grp].arr)
249 arr = &trans->command_groups[grp];
257 int iwl_cmd_groups_verify_sorted(const struct iwl_trans_config *trans)
262 for (i = 0; i < trans->command_groups_size; i++) {
263 arr = &trans->command_groups[i];