Lines Matching +full:tx +full:- +full:only
8 * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
29 * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
33 * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
77 /* Tx rates */
92 /* Multi-Station support */
99 /* RX, TX, LEDs */
100 N_3945_RX = 0x1b, /* 3945 only */
102 C_RATE_SCALE = 0x47, /* 3945 only */
138 /* RF-KILL commands and notifications */
184 * when sending the response to each driver-originated command, so
196 * 0:7 tfd idx - position within TX queue
197 * 8:12 TX queue id
199 * 14 huge - driver sets this to indicate command is in the
201 * 15 unsolicited RX or uCode-originated notification
212 * 1) DSP gain (or sometimes called DSP attenuation). This is a fine-grained
215 * 2) Radio gain. This sets the analog gain of the radio Tx path.
240 * N_RX (response only)
241 * N_RX_MPDU (response only)
245 * High-throughput (HT) rate format for bits 7:0 (bit 8 must be "1"):
246 * 2-0: 0) 6 Mbps
255 * 4-3: 0) Single stream (SISO)
262 * 3-0: 0xD) 6 Mbps
272 * 6-0: 10) 1 Mbps
309 * rate_n_flags Tx antenna masks
340 * in order to balance the Tx output between the two transmitters.
382 * ("Initialize") N_ALIVE = 0x1 (response only, not a command)
402 * 3) Tx gain compensation to balance 4965's 2 Tx chains for MIMO operation,
425 * 2 Tx chains */
429 * N_ALIVE = 0x1 (response only, not a command)
442 * a 256-entry history of uCode execution within a circular buffer.
453 * __le32 event_id; range 0 - 1500
455 * __le32 data; event_id-specific data value
457 * Entries without timestamps contain only event_id and data.
471 * __le32 data1; error-specific data
472 * __le32 data2; error-specific data
520 * N_ERROR = 0x2 (response only, not a command)
569 /* TGg protection when tx */
582 /* rx response to host with 8-byte TSF
620 /* accept multi-cast */
622 /* don't decrypt uni-cast frames */
624 /* don't decrypt multi-cast frames */
635 * of parameters that are used primarily for Rx, but also for Tx operations.
638 * RXON_FILTER_ASSOC_MSK to 0. This will clear station-dependent
639 * info within the device, including the station tables, tx retry
776 * N_CHANNEL_SWITCH = 0x73 (notification only, not a command)
781 __le32 status; /* 0 - OK, 1 - fail */
786 * Quality-of-Service (QOS) Commands & Responses:
791 * struct il_ac_qos -- QOS timing params for C_QOS_PARAM
795 * Should be a power-of-2, minus 1. Device's default is 0x0f.
797 * Should be a power-of-2, minus 1. Device's default is 0x3f.
799 * performing random backoff timing prior to Tx). Device default 1.
800 * @edca_txop: Length of Tx opportunity, in uSecs. Device default is 0.
825 * This command sets up timings for each of the 4 prioritized EDCA Tx FIFOs
879 /* wep key in STA: 5-bytes (0) or 13-bytes (1) */
893 * combined with Traffic ID (QOS priority), in format used by Tx Scheduler */
900 __le16 tkip_rx_ttak[5]; /* 10-byte unicast TKIP TTAK */
903 u8 key[16]; /* 16-byte unicast decryption key */
913 * or the idx to a pre-existing station entry when modifying that station.
929 * The device contains an internal table of per-station information,
930 * with info on security keys, aggregation parameters, and Tx rates for
931 * initial Tx attempt and any retries (4965 devices uses
936 * a new entry, or modifying a pre-existing one.
961 /* bit field to disable (1) or enable (0) Tx for Traffic ID (TID)
968 /* TID for which to add block-ack support.
972 /* TID for which to remove block-ack support.
976 /* Starting Sequence Number for added block-ack support.
989 /* bit field to disable (1) or enable (0) Tx for Traffic ID (TID)
996 /* TID for which to add block-ack support.
1000 /* TID for which to remove block-ack support.
1004 /* Starting Sequence Number for added block-ack support.
1010 * it is asleep -- used to synchronise PS-poll and u-APSD
1027 /* bit field to disable (1) or enable (0) Tx for Traffic ID (TID)
1032 __le16 rate_n_flags; /* 3945 only */
1034 /* TID for which to add block-ack support.
1038 /* TID for which to remove block-ack support.
1042 /* Starting Sequence Number for added block-ack support.
1048 * it is asleep -- used to synchronise PS-poll and u-APSD
1195 * N_3945_RX = 0x1b (response only, not a command)
1198 * It is provided only for calculating minimum data set size.
1210 /* Fixed (non-configurable) rx data from phy */
1225 * N_RX = 0xc3 (response only, not a command)
1226 * Used only for legacy (non 11n) frames.
1234 __le32 beacon_time_stamp; /* beacon at on-air rise */
1239 __le16 byte_count; /* frame's byte-count */
1250 * Tx Commands & Responses:
1252 * Driver must place each C_TX command into one of the prioritized Tx
1254 * SCD registers and Tx/Rx Queues). When the device's Tx scheduler and uCode
1255 * are preparing to transmit, the device pulls the Tx command over the PCI
1256 * bus via one of the device's Tx DMA channels, to fill an internal FIFO
1260 * (RTS/CTS/ACK), based on flags in the Tx command. uCode and Tx scheduler
1261 * handle reception of block-acks; uCode updates the host driver via
1264 * uCode handles retrying Tx when an ACK is expected but not received.
1265 * This includes trying lower data rates than the one requested in the Tx
1270 * This command must be executed after every RXON command, before Tx can occur.
1273 /* C_TX Tx flags field */
1276 * 1: Use Request-To-Send protocol before this frame.
1282 * 1: Transmit Clear-To-Send to self before this frame.
1283 * Driver should set this for AUTH/DEAUTH/ASSOC-REQ/REASSOC mgmnt frames.
1295 * Tx command's initial_rate_idx indicates first rate to try;
1296 * uCode walks through table for additional Tx attempts.
1297 * 0: Use Tx rate/MCS from Tx command's rate_n_flags field.
1298 * This rate will be used for all Tx attempts; it will not be scaled. */
1301 /* 1: Expect immediate block-ack.
1302 * Set when Txing a block-ack request frame. Also set TX_CMD_FLG_ACK_MSK. */
1306 * 1: Frame requires full Tx-Op protection.
1307 * Set this if either RTS or CTS Tx Flag gets set.
1311 /* Tx antenna selection field; used only for 3945, reserved (0) for 4965 devices.
1319 * Set this for management frames, non-QOS data frames, non-unicast frames,
1320 * and also in Tx command embedded in C_SCAN for active scans. */
1323 /* 1: This frame is non-last MPDU; more fragments are coming.
1341 * 0 - no CCMP encryption; 1 - CCMP encryption */
1344 /* HCCA-AP - disable duration overwriting. */
1348 * TX command security control
1369 * + 8-byte MIC (not used for CCM/WEP)
1370 * NOTE: Does not include Tx command bytes, post-MAC pad bytes,
1372 * Range: 14-2342 bytes.
1411 * Duration of EDCA burst Tx Opportunity, in 32-usec units.
1435 __le32 status; /* TX status */
1439 * 4965 uCode updates these Tx attempt count values in host DRAM.
1440 * Used for managing Tx retries when expecting block-acks.
1444 u8 try_cnt; /* Tx attempts */
1445 u8 bt_kill_cnt; /* Tx attempts blocked by Bluetooth device */
1457 * + 8-byte MIC (not used for CCM/WEP)
1458 * NOTE: Does not include Tx command bytes, post-MAC pad bytes,
1460 * Range: 14-2342 bytes.
1473 /* uCode may modify this field of the Tx command (in host DRAM!).
1477 /* Rate for *all* Tx attempts, if TX_CMD_FLG_STA_RATE_MSK is cleared. */
1488 * Tx attempt, if TX_CMD_FLG_STA_RATE_MSK is set. Normally "0" for
1490 * rate (via non-0 value) for special frames (e.g. management), while
1517 * Duration of EDCA burst Tx Opportunity, in 32-usec units.
1532 /* TX command response is sent after *3945* transmission attempts.
1540 * TX status will be returned with 'TX_STATUS_FAIL_NEXT_FRAG'.
1545 * a TX was in progress.
1549 * This status is only possible if the ABORT ON MGMT RX parameter was
1550 * set to true with the TX command.
1553 * required. This sequence consists of the host activating the TX Abort
1554 * control line, and then waiting for the TX Abort command response. This
1556 * command FIFO has been cleared. The host must then deactivate the TX Abort
1581 * TX command response is sent after *4965* transmission attempts.
1585 * which required tx flush host command to flush all the tx frames in queues
1590 /* postpone TX */
1595 /* abort TX */
1635 * TX aggregation status
1658 /* # tx attempts for first frame in aggregation */
1662 /* Command ID and sequence number of Tx command for this frame */
1672 * 1) No aggregation (frame_count == 1). This reports Tx results for
1676 * 2) Aggregation (frame_count > 1). This reports Tx results for
1677 * 2 or more frames that used block-acknowledge. All frames were
1681 * Note that, for aggregation, ACK (block-ack) status is not delivered here;
1682 * block-ack has not been received by the time the 4965 device records
1684 * This status relates to reasons the tx might have been blocked or aborted
1699 /* For non-agg: Rate at which frame was successful.
1703 /* For non-agg: RTS + CTS + frame tx attempts time + ACK.
1704 * For agg: RTS + CTS + aggregation tx time + block-ack time. */
1712 * For non-agg: frame status TX_STATUS_*
1716 * 11- 0: AGG_TX_STATE_* status code
1717 * 15-12: Retry count for 1st frame in aggregation (retries
1718 * occur if tx failed for this frame when it was a
1722 * 31-16: Sequence # for this frame's Tx cmd (not SSN!)
1731 * N_COMPRESSED_BA = 0xc5 (response only, not a command)
1733 * Reports Block-Acknowledge from recipient station
1740 /* Index of recipient (BA-sending) station in uCode's station table */
1770 * struct il3945_rate_scaling_cmd - Rate Scaling Command & Response
1796 /*RS_NEW_API: only TLC_RTS remains and moved to bit 0 */
1799 /* # of EDCA prioritized tx fifos */
1802 /* # entries in rate scale table to support Tx retries */
1805 /* Tx antenna selection values */
1829 * EDCA QOS access categories (as implemented by tx fifos 0-3),
1836 * TX FIFOs above 3 use same value (typically 0) as TX FIFO 3.
1867 * Number of Tx retries allowed for a frame, before that frame will
1869 * (scheduler will then try to tx it as single frame).
1887 * For 4965 devices only; 3945 uses C_RATE_SCALE.
1891 * Tx rates and modulation modes (e.g. legacy/SISO/MIMO) for retrying Tx when
1910 * 1) If using High-throughput (HT) (SISO or MIMO) initial rate:
1923 * a) Use the initial rate for only one entry.
1934 * uses two sets of frame Tx success history: One for the current/active
1941 * sliding win of the 62 most recent tx attempts at that rate. The data
1945 * (attempted - success), and control the size of the win (attempted).
1947 * the oldest tx attempts fall out of the win.
1949 * When the 4965 device makes multiple tx attempts for a given frame, each
1953 * determine which rate table entry was used for each tx attempt, to determine
1954 * which rate-specific history to update, and record only those attempts that
1957 * When using block-ack (aggregation), all frames are transmitted at the same
1958 * rate, since there is no per-attempt acknowledgment from the destination
1959 * station. The Tx response struct il_tx_resp indicates the Tx rate in
1960 * rate_n_flags field. After receiving a block-ack, the driver can update
1971 * table below) for current initial rate. Do this only if enough frames
1973 * tx attempts, or at least 8 successes. If not enough, don't try rate
1995 * of lower rate (under perfect 100% tx conditions, see table below)
2008 * 6) Re-evaluate the rate after each tx frame. If working with block-
2011 * before re-evaluation.
2021 * For high-throughput modes (SISO or MIMO), search for new mode after:
2041 * by the success ratio (successful / attempted tx frames). Frame size is
2045 * Only G band has support for CCK rates:
2082 * Rate info; when using rate-scaling, Tx command's initial_rate_idx
2083 * specifies 1st Tx rate attempted, via idx into this table.
2084 * 4965 devices works its way through table when retrying Tx.
2094 * bit 0 - 1: BT channel announcement enabled
2096 * bit 1 - 1: priority of BT device enabled
2113 * same platform. Bluetooth device alerts wireless device when it will Tx;
2114 * wireless device can delay or kill its own Tx to accommodate.
2156 u8 id; /* measurement id -- 0 or 1 */
2175 __le16 status; /* 0 - command will be handled
2176 * 1 - cannot handle (conflicts with another
2190 /* 4-5 reserved */
2220 * N_SPECTRUM_MEASUREMENT = 0x75 (notification only, not a command)
2223 u8 id; /* measurement id -- 0 or 1 */
2226 u8 state; /* 0 - start, 1 - stop */
2227 __le32 start_time; /* lower 32-bits of TSF */
2228 u8 band; /* 0 - 5.2GHz, 1 - 2.4GHz */
2232 /* NOTE: cca_ofdm, cca_cck, basic_type, and histogram are only only
2237 u8 basic_type; /* 0 - bss, 1 - ofdm preamble, 2 -
2241 __le32 stop_time; /* lower 32-bits of TSF */
2252 * struct il_powertable_cmd - Power Table Command
2258 * bit 0 - '0' Driver not allow power management
2262 * bit 1 - '0' Don't send sleep notification
2266 * bit 2 - '0' PM have to walk up every DTIM
2270 * bit 3 - '0' (PCI_CFG_LINK_CTRL & 0x1)
2274 * bit 4 - '1' Put radio to sleep when receiving frame for others
2277 * bit 31/30- '00' use both mac/xtal sleeps
2282 * NOTE: if sleep_interval[SLEEP_INTRVL_TBL_SIZE-1] > DTIM period then
2311 * N_PM_SLEEP = 0x7A (notification only, not a command)
2339 * N_CARD_STATE = 0xa1 (notification only, not a command)
2366 * struct il_scan_channel - entry in C_SCAN channel table
2371 * 2) Txpower setting (for rate specified within Tx command)
2372 * 3) How long to stay on-channel (behavior may be modified by quiet_time,
2380 * 3) If restricting off-channel time (i.e. max_out_time !=0):
2395 __le16 active_dwell; /* in 1024-uSec TU (time units), typ 5-50 */
2396 __le16 passive_dwell; /* in 1024-uSec TU (time units), typ 20-500 */
2400 #define IL39_SCAN_PROBE_MASK(n) ((BIT(n) | (BIT(n) - BIT(1))))
2414 __le16 active_dwell; /* in 1024-uSec TU (time units), typ 5-50 */
2415 __le16 passive_dwell; /* in 1024-uSec TU (time units), typ 20-500 */
2419 #define IL_SCAN_PROBE_MASK(n) cpu_to_le32((BIT(n) | (BIT(n) - BIT(1))))
2422 * struct il_ssid_ie - directed scan network information element
2424 * Up to 20 of these may appear in C_SCAN (Note: Only 4 are in
2454 * max_out_time is the max time off-channel (in usec), and suspend_time
2466 * 3) Sends NULL packet, with power-save (PS) bit set to 1,
2467 * to tell AP that we're going off-channel
2471 * 7) Repeats 4-6 until it no longer has time to scan the next channel
2476 * 11) Repeats entire process 2-10 until list is complete
2501 __le16 quiet_time; /* dwell only this # millisecs on quiet channel
2502 * (only for active scan) */
2504 __le16 good_CRC_th; /* passive -> active promotion threshold */
2516 /* For active scans (set to all-0s for passive scans).
2517 * Does not include payload. Must specify Tx rate; no rate scaling. */
2520 /* For directed active scans (set to all-0s otherwise) */
2533 * NOTE: Only one band of channels can be scanned per pass. You
2545 __le16 quiet_time; /* dwell only this # millisecs on quiet channel
2546 * (only for active scan) */
2548 __le16 good_CRC_th; /* passive -> active promotion threshold */
2560 /* For active scans (set to all-0s for passive scans).
2561 * Does not include payload. Must specify Tx rate; no rate scaling. */
2564 /* For directed active scans (set to all-0s otherwise) */
2577 * NOTE: Only one band of channels can be scanned per pass. You
2598 * N_SCAN_START = 0x82 (notification only, not a command)
2621 * N_SCAN_RESULTS = 0x83 (notification only, not a command)
2634 * N_SCAN_COMPLETE = 0x84 (notification only, not a command)
2656 * N_BEACON = 0x90 (notification only, not a command)
2678 struct il3945_tx_cmd_hdr tx; member
2686 struct il_tx_cmd_hdr tx; member
2871 * struct stats_tx_power - current tx power
2873 * @ant_a: current tx power on chain a in 1/2 dB step
2874 * @ant_b: current tx power on chain b in 1/2 dB step
2875 * @ant_c: current tx power on chain c in 1/2 dB step
2937 * count the number of times we have to re-tune
2975 * N_STATS = 0x9d (notification only, not a command)
2986 * appropriately so that each notification contains stats for only the
2995 struct iwl39_stats_tx tx; member
3002 struct stats_tx tx; member
3007 * N_MISSED_BEACONS = 0xa2 (notification only, not a command)
3041 * With the uCode used for open source drivers, most Tx calibration (except
3042 * for Tx Power) and most Rx calibration is done by uCode during the
3043 * "initialize" phase of uCode boot. Driver must calibrate only:
3045 * 1) Tx power (depends on temperature), described elsewhere
3069 * other non-associated-network source. Pertinent stats include:
3087 * Signal locks abandoned early (before phy-level header).
3090 * Signal locks abandoned late (during phy-level header).
3095 * after counting up to 2^32 - 1. Driver must differentiate vs.
3120 * 1). 20-beacon history of maximum background noise, indicated by
3125 * 2). 10-beacon history of strongest signal level, as indicated
3162 * sensitivity has been reduced only a moderate or small amount;
3171 * sensitivity is used only if:
3175 * "silence reference" (prev - current) is 2 or more,
3246 * in from scanning, or any other non-network source).
3261 * antenna/chain for Rx or Tx. If both A and B seem to be disconnected,
3263 * (A and B are the only 2 Tx chains!).
3280 * (accum_noise[i] - accum_noise[reference]) / 30
3284 * driver should limit the difference results to a range of 0-3 (0-4.5 dB),
3290 * 1-0: amount of gain, units of 1.5 dB
3358 * 28-14: Reserved
3359 * 13-00: RX frame size