diff options
author | Tomas Winkler <tomas.winkler@intel.com> | 2008-08-04 04:00:42 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-08-04 15:09:12 -0400 |
commit | caab8f1a5d0da583b6ffe41afea2774c676444ca (patch) | |
tree | a732088119050a566e00d44d05976d9a4363379d /drivers/net/wireless/iwlwifi/iwl-commands.h | |
parent | da99c4b6c25964b90c79f19beccda208df1a865a (diff) |
iwlwifi: implement iwl5000_calc_rssi
This patch implements rssi calculation for 5000 HW.
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-commands.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-commands.h | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h index 5e57f3ae2ea6..28b5b09996ed 100644 --- a/drivers/net/wireless/iwlwifi/iwl-commands.h +++ b/drivers/net/wireless/iwlwifi/iwl-commands.h | |||
@@ -1075,10 +1075,12 @@ struct iwl4965_rx_frame { | |||
1075 | } __attribute__ ((packed)); | 1075 | } __attribute__ ((packed)); |
1076 | 1076 | ||
1077 | /* Fixed (non-configurable) rx data from phy */ | 1077 | /* Fixed (non-configurable) rx data from phy */ |
1078 | #define RX_PHY_FLAGS_ANTENNAE_OFFSET (4) | 1078 | |
1079 | #define RX_PHY_FLAGS_ANTENNAE_MASK (0x70) | 1079 | #define IWL49_RX_RES_PHY_CNT 14 |
1080 | #define IWL_AGC_DB_MASK (0x3f80) /* MASK(7,13) */ | 1080 | #define IWL49_RX_PHY_FLAGS_ANTENNAE_OFFSET (4) |
1081 | #define IWL_AGC_DB_POS (7) | 1081 | #define IWL49_RX_PHY_FLAGS_ANTENNAE_MASK (0x70) |
1082 | #define IWL49_AGC_DB_MASK (0x3f80) /* MASK(7,13) */ | ||
1083 | #define IWL49_AGC_DB_POS (7) | ||
1082 | struct iwl4965_rx_non_cfg_phy { | 1084 | struct iwl4965_rx_non_cfg_phy { |
1083 | __le16 ant_selection; /* ant A bit 4, ant B bit 5, ant C bit 6 */ | 1085 | __le16 ant_selection; /* ant A bit 4, ant B bit 5, ant C bit 6 */ |
1084 | __le16 agc_info; /* agc code 0:6, agc dB 7:13, reserved 14:15 */ | 1086 | __le16 agc_info; /* agc code 0:6, agc dB 7:13, reserved 14:15 */ |
@@ -1086,12 +1088,30 @@ struct iwl4965_rx_non_cfg_phy { | |||
1086 | u8 pad[0]; | 1088 | u8 pad[0]; |
1087 | } __attribute__ ((packed)); | 1089 | } __attribute__ ((packed)); |
1088 | 1090 | ||
1091 | |||
1092 | #define IWL50_RX_RES_PHY_CNT 8 | ||
1093 | #define IWL50_RX_RES_AGC_IDX 1 | ||
1094 | #define IWL50_RX_RES_RSSI_AB_IDX 2 | ||
1095 | #define IWL50_RX_RES_RSSI_C_IDX 3 | ||
1096 | #define IWL50_OFDM_AGC_MSK 0xfe00 | ||
1097 | #define IWL50_OFDM_AGC_BIT_POS 9 | ||
1098 | #define IWL50_OFDM_RSSI_A_MSK 0x00ff | ||
1099 | #define IWL50_OFDM_RSSI_A_BIT_POS 0 | ||
1100 | #define IWL50_OFDM_RSSI_B_MSK 0xff0000 | ||
1101 | #define IWL50_OFDM_RSSI_B_BIT_POS 16 | ||
1102 | #define IWL50_OFDM_RSSI_C_MSK 0x00ff | ||
1103 | #define IWL50_OFDM_RSSI_C_BIT_POS 0 | ||
1104 | |||
1105 | struct iwl5000_non_cfg_phy { | ||
1106 | __le32 non_cfg_phy[IWL50_RX_RES_PHY_CNT]; /* upto 8 phy entries */ | ||
1107 | } __attribute__ ((packed)); | ||
1108 | |||
1109 | |||
1089 | /* | 1110 | /* |
1090 | * REPLY_RX = 0xc3 (response only, not a command) | 1111 | * REPLY_RX = 0xc3 (response only, not a command) |
1091 | * Used only for legacy (non 11n) frames. | 1112 | * Used only for legacy (non 11n) frames. |
1092 | */ | 1113 | */ |
1093 | #define RX_RES_PHY_CNT 14 | 1114 | struct iwl_rx_phy_res { |
1094 | struct iwl4965_rx_phy_res { | ||
1095 | u8 non_cfg_phy_cnt; /* non configurable DSP phy data byte count */ | 1115 | u8 non_cfg_phy_cnt; /* non configurable DSP phy data byte count */ |
1096 | u8 cfg_phy_cnt; /* configurable DSP phy data byte count */ | 1116 | u8 cfg_phy_cnt; /* configurable DSP phy data byte count */ |
1097 | u8 stat_id; /* configurable DSP phy data set ID */ | 1117 | u8 stat_id; /* configurable DSP phy data set ID */ |
@@ -1100,8 +1120,7 @@ struct iwl4965_rx_phy_res { | |||
1100 | __le32 beacon_time_stamp; /* beacon at on-air rise */ | 1120 | __le32 beacon_time_stamp; /* beacon at on-air rise */ |
1101 | __le16 phy_flags; /* general phy flags: band, modulation, ... */ | 1121 | __le16 phy_flags; /* general phy flags: band, modulation, ... */ |
1102 | __le16 channel; /* channel number */ | 1122 | __le16 channel; /* channel number */ |
1103 | __le16 non_cfg_phy[RX_RES_PHY_CNT]; /* upto 14 phy entries */ | 1123 | u8 non_cfg_phy_buf[32]; /* for various implementations of non_cfg_phy */ |
1104 | __le32 reserved2; | ||
1105 | __le32 rate_n_flags; /* RATE_MCS_* */ | 1124 | __le32 rate_n_flags; /* RATE_MCS_* */ |
1106 | __le16 byte_count; /* frame's byte-count */ | 1125 | __le16 byte_count; /* frame's byte-count */ |
1107 | __le16 reserved3; | 1126 | __le16 reserved3; |