struct iwl_op_mode *op_mode;
u16 num_mac;
u32 ucode_flags;
+ struct iwl_trans_config trans_cfg;
/************************
* 1. Allocating HW data
/* TODO: remove fw from shared data later */
priv->shrd->fw = fw;
- iwl_trans_configure(trans(priv), op_mode);
+ /*
+ * Populate the state variables that the transport layer needs
+ * to know about.
+ */
+ trans_cfg.op_mode = op_mode;
+
+ /* Configure transport layer */
+ iwl_trans_configure(trans(priv), &trans_cfg);
/* At this point both hw and priv are allocated. */
}
/**
+ * struct iwl_trans_config - transport configuration
+ *
+ * @op_mode: pointer to the upper layer.
+ * Must be set before any other call.
+ */
+struct iwl_trans_config {
+ struct iwl_op_mode *op_mode;
+};
+
+/**
* struct iwl_trans_ops - transport specific operations
*
* All the handlers MUST be implemented
};
static inline void iwl_trans_configure(struct iwl_trans *trans,
- struct iwl_op_mode *op_mode)
+ const struct iwl_trans_config *trans_cfg)
{
/*
* only set the op_mode for the moment. Later on, this function will do
* more
*/
- trans->op_mode = op_mode;
+ trans->op_mode = trans_cfg->op_mode;
}
static inline int iwl_trans_start_hw(struct iwl_trans *trans)