aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-trans.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-trans.h')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.h b/drivers/net/wireless/iwlwifi/iwl-trans.h
index 0768f83e709d..028408a6ecba 100644
--- a/drivers/net/wireless/iwlwifi/iwl-trans.h
+++ b/drivers/net/wireless/iwlwifi/iwl-trans.h
@@ -534,6 +534,8 @@ struct iwl_trans_ops {
534 u32 value); 534 u32 value);
535 void (*ref)(struct iwl_trans *trans); 535 void (*ref)(struct iwl_trans *trans);
536 void (*unref)(struct iwl_trans *trans); 536 void (*unref)(struct iwl_trans *trans);
537 void (*suspend)(struct iwl_trans *trans);
538 void (*resume)(struct iwl_trans *trans);
537 539
538 struct iwl_trans_dump_data *(*dump_data)(struct iwl_trans *trans); 540 struct iwl_trans_dump_data *(*dump_data)(struct iwl_trans *trans);
539}; 541};
@@ -572,6 +574,9 @@ enum iwl_trans_state {
572 * @rx_mpdu_cmd_hdr_size: used for tracing, amount of data before the 574 * @rx_mpdu_cmd_hdr_size: used for tracing, amount of data before the
573 * start of the 802.11 header in the @rx_mpdu_cmd 575 * start of the 802.11 header in the @rx_mpdu_cmd
574 * @dflt_pwr_limit: default power limit fetched from the platform (ACPI) 576 * @dflt_pwr_limit: default power limit fetched from the platform (ACPI)
577 * @dbg_dest_tlv: points to the destination TLV for debug
578 * @dbg_conf_tlv: array of pointers to configuration TLVs for debug
579 * @dbg_dest_reg_num: num of reg_ops in %dbg_dest_tlv
575 */ 580 */
576struct iwl_trans { 581struct iwl_trans {
577 const struct iwl_trans_ops *ops; 582 const struct iwl_trans_ops *ops;
@@ -603,6 +608,10 @@ struct iwl_trans {
603 608
604 u64 dflt_pwr_limit; 609 u64 dflt_pwr_limit;
605 610
611 const struct iwl_fw_dbg_dest_tlv *dbg_dest_tlv;
612 const struct iwl_fw_dbg_conf_tlv *dbg_conf_tlv[FW_DBG_MAX];
613 u8 dbg_dest_reg_num;
614
606 /* pointer to trans specific struct */ 615 /* pointer to trans specific struct */
607 /*Ensure that this pointer will always be aligned to sizeof pointer */ 616 /*Ensure that this pointer will always be aligned to sizeof pointer */
608 char trans_specific[0] __aligned(sizeof(void *)); 617 char trans_specific[0] __aligned(sizeof(void *));
@@ -702,6 +711,18 @@ static inline void iwl_trans_unref(struct iwl_trans *trans)
702 trans->ops->unref(trans); 711 trans->ops->unref(trans);
703} 712}
704 713
714static inline void iwl_trans_suspend(struct iwl_trans *trans)
715{
716 if (trans->ops->suspend)
717 trans->ops->suspend(trans);
718}
719
720static inline void iwl_trans_resume(struct iwl_trans *trans)
721{
722 if (trans->ops->resume)
723 trans->ops->resume(trans);
724}
725
705static inline struct iwl_trans_dump_data * 726static inline struct iwl_trans_dump_data *
706iwl_trans_dump_data(struct iwl_trans *trans) 727iwl_trans_dump_data(struct iwl_trans *trans)
707{ 728{