Go back –> iwl3945 kerneldoc
iwl3945_disable_events - Disable selected events in uCode event log
void iwl3945_disable_events (struct iwl3945_priv * priv)Arguments
Description
Disable an event by writing "1"s into "disable" bitmap in SRAM. Bit position corresponds to Event # (id/type). Default values of 0 enable uCode events to be logged. Use for only special debugging. This function is just a placeholder as-is, you'll need to provide the special bits! ...
iwl3945_get_antenna_flags - Get antenna flags for RXON command
__le32 iwl3945_get_antenna_flags (const struct iwl3945_priv * priv)Arguments
- priv
- eeprom and antenna fields are used to determine antenna flags
Description
priv->eeprom is used to determine if antenna AUX/MAIN are reversed priv->antenna specifies the antenna diversity mode:IWL_ANTENNA_DIVERISTY - NIC selects best antenna by itself IWL_ANTENNA_MAIN - Force MAIN antenna IWL_ANTENNA_AUX - Force AUX antenna
iwl3945_tx_queue_reclaim - Reclaim Tx queue entries already Tx'd
void iwl3945_tx_queue_reclaim (struct iwl3945_priv * priv, int txq_id, int index)Arguments
Description
When FW advances 'R' index, all entries between old and new 'R' index need to be reclaimed. As result, some free space forms. If there is enough free space (> low mark), wake the stack that feeds us.
iwl3945_rx_reply_tx - Handle Tx response
void iwl3945_rx_reply_tx (struct iwl3945_priv * priv, struct iwl3945_rx_mem_buffer * rxb)Arguments
iwl3945_dbg_report_frame - dump frame to syslog during debug sessions
void iwl3945_dbg_report_frame (struct iwl3945_priv * priv, struct iwl3945_rx_packet * pkt, struct ieee80211_hdr * header, int group100)Arguments
Description
You may hack this function to show different aspects of received frames, including selective frame dumps. group100 parameter selects whether to show 1 out of 100 good frames.
iwl3945_hw_txq_free_tfd - Free one TFD, those at index [txq-\\\gt;q.read_ptr]
int iwl3945_hw_txq_free_tfd (struct iwl3945_priv * priv, struct iwl3945_tx_queue * txq)Arguments
Description
Does NOT advance any indexes
iwl3945_hw_build_tx_cmd_rate - Add rate portion to TX_CMD:
void iwl3945_hw_build_tx_cmd_rate (struct iwl3945_priv * priv, struct iwl3945_cmd * cmd, struct ieee80211_tx_info * info, struct ieee80211_hdr * hdr, int sta_id, int tx_id)Arguments
Description
iwl3945_txq_ctx_reset - Reset TX queue context
int iwl3945_txq_ctx_reset (struct iwl3945_priv * priv)Arguments
Description
Destroys all DMA structures and initialize them again
iwl3945_hw_txq_ctx_free - Free TXQ Context
void iwl3945_hw_txq_ctx_free (struct iwl3945_priv * priv)Arguments
Description
Destroy all TX DMA queues and structures
iwl3945_hw_reg_adjust_power_by_temp -
int iwl3945_hw_reg_adjust_power_by_temp (int new_reading, int old_reading)Arguments
Description
return index delta into power gain settings table
iwl3945_hw_reg_temp_out_of_range - Keep temperature in sane range
int iwl3945_hw_reg_temp_out_of_range (int temperature)Arguments
iwl3945_hw_reg_txpower_get_temperature -
int iwl3945_hw_reg_txpower_get_temperature (struct iwl3945_priv * priv)Arguments
Description
get the current temperature by reading from NIC
is_temp_calib_needed - determines if new calibration is needed
int is_temp_calib_needed (struct iwl3945_priv * priv)Arguments
Description
records new temperature in tx_mgr->temperature. replaces tx_mgr->last_temperature *only* if calib needed
iwl3945_hw_reg_set_scan_power - Set Tx power for scan probe requests
void iwl3945_hw_reg_set_scan_power (struct iwl3945_priv * priv, u32 scan_tbl_index, s32 rate_index, const s8 * clip_pwrs, struct iwl3945_channel_info * ch_info, int band_index)Arguments
Description
Set (in our channel info database) the direct scan Tx power for 1 Mbit (CCK) or 6 Mbit (OFDM) rates.
iwl3945_hw_reg_send_txpower - fill in Tx Power command with gain settings
int iwl3945_hw_reg_send_txpower (struct iwl3945_priv * priv)Arguments
Description
Configures power settings for all rates for the current channel, using values from channel info struct, and send to NIC
iwl3945_hw_reg_set_new_power - Configures power tables at new levels
int iwl3945_hw_reg_set_new_power (struct iwl3945_priv * priv, struct iwl3945_channel_info * ch_info)Arguments
- ch_info
- Channel to update. Uses power_info.requested_power.
Description
Replace requested_power and base_power_index ch_info fields for one channel.Called if user or spectrum management changes power preferences. Takes into account h/w and modulation limitations (clip power).
This does *not* send anything to NIC, just sets up ch_info for one channel.
NOTE
reg_compensate_for_temperature_dif *must* be run after this to properly fill out the scan powers, and actual h/w gain settings, and send changes to NIC
iwl3945_hw_reg_get_ch_txpower_limit - returns new power limit for channel
int iwl3945_hw_reg_get_ch_txpower_limit (struct iwl3945_channel_info * ch_info)Arguments
NOTE
Returned power limit may be less (but not more) than requested, based strictly on regulatory (eeprom and spectrum mgt) limitations (no consideration for h/w clipping limitations).
iwl3945_hw_reg_comp_txpower_temp - Compensate for temperature
int iwl3945_hw_reg_comp_txpower_temp (struct iwl3945_priv * priv)Arguments
Description
Compensate txpower settings of *all* channels for temperature. This only accounts for the difference between current temperature and the factory calibration temperatures, and bases the new settings on the channel's base_power_index.
If RxOn is "associated", this sends the new Txpower to NIC!
iwl3945_reg_txpower_periodic - called when time to check our temperature.
void iwl3945_reg_txpower_periodic (struct iwl3945_priv * priv)Arguments
Description
-- reset periodic timer -- see if temp has changed enough to warrant re-calibration ... if so: -- correct coeffs for temp (can reset temp timer) -- save this temp as "last", -- send new set of gain settings to NIC
NOTE
This should continue working, even when we're not associated,
iwl3945_hw_reg_get_ch_grp_index - find the channel-group index (0-4)
u16 iwl3945_hw_reg_get_ch_grp_index (struct iwl3945_priv * priv, const struct iwl3945_channel_info * ch_info)Arguments
Description
for the channel.This function is used when initializing channel-info structs.
NOTE
These channel groups do *NOT* match the bands above! These channel groups are based on factory-tested channels; on A-band, EEPROM's "group frequency" entries represent the top channel in each group 1-4. Group 5 All B/G channels are in group 0.
iwl3945_hw_reg_get_matched_power_index - Interpolate to get nominal index
int iwl3945_hw_reg_get_matched_power_index (struct iwl3945_priv * priv, s8 requested_power, s32 setting_index, s32 * new_index)Arguments
Description
Interpolate to get nominal (i.e. at factory calibration temperature) index into radio/DSP gain settings table for requested power.
iwl3945_txpower_set_from_eeprom - Set channel power info based on EEPROM
int iwl3945_txpower_set_from_eeprom (struct iwl3945_priv * priv)Arguments
Description
Second pass (during init) to set up priv->channel_info
Set up Tx-power settings in our channel info database for each VALID (for this geo/SKU) channel, at all Tx data rates, based on eeprom values and current temperature.
Since this is based on current temperature (at init time), these values may not be valid for very long, but it gives us a starting/default point, and allows us to active (i.e. using Tx) scan.
This does *not* write values to NIC, just sets up our internal table.