diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2013-01-23 03:59:29 -0500 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-01-24 07:36:32 -0500 |
commit | d13f1862c0ad892eded4cdf633ab32bc993cc1d9 (patch) | |
tree | 02d0068c6b5df5fcaea7bbbb93706959845ed974 /drivers/net/wireless/iwlwifi | |
parent | 128e63ef077ef7ccd9c5779bbdce566641714666 (diff) |
iwlwifi: provide RX page order
When the pages are to be used by front-end, it may need
to know the page order, provide it.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-trans.h | 6 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/pcie/rx.c | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.h b/drivers/net/wireless/iwlwifi/iwl-trans.h index fca5fec4ea6d..ce878b9dda8c 100644 --- a/drivers/net/wireless/iwlwifi/iwl-trans.h +++ b/drivers/net/wireless/iwlwifi/iwl-trans.h | |||
@@ -274,6 +274,7 @@ struct iwl_rx_cmd_buffer { | |||
274 | struct page *_page; | 274 | struct page *_page; |
275 | int _offset; | 275 | int _offset; |
276 | bool _page_stolen; | 276 | bool _page_stolen; |
277 | u32 _rx_page_order; | ||
277 | unsigned int truesize; | 278 | unsigned int truesize; |
278 | }; | 279 | }; |
279 | 280 | ||
@@ -294,6 +295,11 @@ static inline struct page *rxb_steal_page(struct iwl_rx_cmd_buffer *r) | |||
294 | return r->_page; | 295 | return r->_page; |
295 | } | 296 | } |
296 | 297 | ||
298 | static inline void iwl_free_rxb(struct iwl_rx_cmd_buffer *r) | ||
299 | { | ||
300 | __free_pages(r->_page, r->_rx_page_order); | ||
301 | } | ||
302 | |||
297 | #define MAX_NO_RECLAIM_CMDS 6 | 303 | #define MAX_NO_RECLAIM_CMDS 6 |
298 | 304 | ||
299 | #define IWL_MASK(lo, hi) ((1 << (hi)) | ((1 << (hi)) - (1 << (lo)))) | 305 | #define IWL_MASK(lo, hi) ((1 << (hi)) | ((1 << (hi)) - (1 << (lo)))) |
diff --git a/drivers/net/wireless/iwlwifi/pcie/rx.c b/drivers/net/wireless/iwlwifi/pcie/rx.c index b694d13fa308..a2f351779941 100644 --- a/drivers/net/wireless/iwlwifi/pcie/rx.c +++ b/drivers/net/wireless/iwlwifi/pcie/rx.c | |||
@@ -594,6 +594,7 @@ static void iwl_pcie_rx_handle_rb(struct iwl_trans *trans, | |||
594 | int index, cmd_index, err, len; | 594 | int index, cmd_index, err, len; |
595 | struct iwl_rx_cmd_buffer rxcb = { | 595 | struct iwl_rx_cmd_buffer rxcb = { |
596 | ._offset = offset, | 596 | ._offset = offset, |
597 | ._rx_page_order = trans_pcie->rx_page_order, | ||
597 | ._page = rxb->page, | 598 | ._page = rxb->page, |
598 | ._page_stolen = false, | 599 | ._page_stolen = false, |
599 | .truesize = max_len, | 600 | .truesize = max_len, |