Go back –> iwl3945 kerneldoc

iwl3945_disable_events - Disable selected events in uCode event log

void iwl3945_disable_events (struct iwl_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_tx_queue_reclaim - Reclaim Tx queue entries already Tx'd

void iwl3945_tx_queue_reclaim (struct iwl_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 iwl_priv * priv, struct iwl_rx_mem_buffer * rxb)

Arguments


iwl3945_hw_txq_free_tfd - Free one TFD, those at index [txq-\\\gt;q.read_ptr]

void iwl3945_hw_txq_free_tfd (struct iwl_priv * priv, struct iwl_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 iwl_priv * priv, struct iwl_device_cmd * cmd, struct ieee80211_tx_info * info, struct ieee80211_hdr * hdr, int sta_id, int tx_id)

Arguments


iwl3945_txq_ctx_reset - Reset TX queue context

int iwl3945_txq_ctx_reset (struct iwl_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 iwl_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 - get the current temperature by reading from NIC

int iwl3945_hw_reg_txpower_get_temperature (struct iwl_priv * priv)

Arguments


is_temp_calib_needed - determines if new calibration is needed

int is_temp_calib_needed (struct iwl_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 iwl_priv * priv, u32 scan_tbl_index, s32 rate_index, const s8 * clip_pwrs, struct iwl_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_send_tx_power - fill in Tx Power command with gain settings

int iwl3945_send_tx_power (struct iwl_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 iwl_priv * priv, struct iwl_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 iwl_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 iwl_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_commit_rxon - commit staging_rxon to hardware

int iwl3945_commit_rxon (struct iwl_priv * priv, struct iwl_rxon_context * ctx)

Arguments

Description

The RXON command in staging_rxon is committed to the hardware and the active_rxon structure is updated with the new data. This function correctly transitions out of the RXON_ASSOC_MSK state if a HW tune is required based on the RXON structure changes.


iwl3945_reg_txpower_periodic - called when time to check our temperature.

void iwl3945_reg_txpower_periodic (struct iwl_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) for the channel.

u16 iwl3945_hw_reg_get_ch_grp_index (struct iwl_priv * priv, const struct iwl_channel_info * ch_info)

Arguments

Description

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 iwl_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 iwl_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.


iwl3945_init_hw_rate_table - Initialize the hardware rate fallback table

int iwl3945_init_hw_rate_table (struct iwl_priv * priv)

Arguments