Skip to content

Commit

Permalink
iwlwifi: configure transport layer from dvm op mode
Browse files Browse the repository at this point in the history
Introduce the iwl_trans_config struct which contains
state variables that only the op mode can determine,
but which the transport layer needs to know.

Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Meenakshi Venkataraman authored and John W. Linville committed Mar 8, 2012
1 parent 3251715 commit 92d743a
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 3 deletions.
10 changes: 9 additions & 1 deletion drivers/net/wireless/iwlwifi/iwl-agn.c
Original file line number Diff line number Diff line change
Expand Up @@ -1185,6 +1185,7 @@ static struct iwl_op_mode *iwl_op_mode_dvm_start(struct iwl_trans *trans,
struct iwl_op_mode *op_mode;
u16 num_mac;
u32 ucode_flags;
struct iwl_trans_config trans_cfg;

/************************
* 1. Allocating HW data
Expand All @@ -1205,7 +1206,14 @@ static struct iwl_op_mode *iwl_op_mode_dvm_start(struct iwl_trans *trans,
/* 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. */

Expand Down
14 changes: 12 additions & 2 deletions drivers/net/wireless/iwlwifi/iwl-trans.h
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,16 @@ static inline struct page *rxb_steal_page(struct iwl_rx_cmd_buffer *r)
return p;
}

/**
* 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
*
Expand Down Expand Up @@ -408,13 +418,13 @@ struct iwl_trans {
};

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)
Expand Down

0 comments on commit 92d743a

Please sign in to comment.