Lines Matching +full:pre +full:- +full:filled
1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
3 * Copyright (C) 2005-2014, 2018-2020 Intel Corporation
4 * Copyright (C) 2015-2017 Intel Deutschland GmbH
12 #include "iwl-trans.h"
28 * Keep-Warm (KW) buffer base address.
31 * host DRAM powered on (via dummy accesses to DRAM) to maintain low-latency
33 * from going into a power-savings mode that would cause higher DRAM latency,
34 * and possible data over/under-runs, before all Tx/Rx is complete.
38 * automatically invokes keep-warm accesses when normal accesses might not
42 * 31-0: Keep-warm buffer physical base address [35:4], must be 4K aligned
50 * Device has 16 base pointer registers, one for each of 16 host-DRAM-resident
53 * bytes from one another. Each TFD circular buffer in DRAM must be 256-byte
54 * aligned (address bits 0-7 must be 0).
59 * 27-0: TFD CB physical base address [35:8], must be 256-byte aligned
74 if (trans->trans_cfg->use_tfh) { in FH_MEM_CBBC_QUEUE()
81 return FH_MEM_CBBC_16_19_LOWER_BOUND + 4 * (chnl - 16); in FH_MEM_CBBC_QUEUE()
83 return FH_MEM_CBBC_20_31_LOWER_BOUND + 4 * (chnl - 20); in FH_MEM_CBBC_QUEUE()
126 * set to 1 - interrupt is sent to the driver
142 * Note that this register may be configured with non-dword aligned size.
168 * 27-0: Receive Buffer physical address bits [35:8], 256-byte aligned
174 * (RBs) have been filled, via a "write pointer", actually the index of
180 * 31-12: Not used by driver
181 * 11- 0: Index of last filled Rx buffer descriptor
190 * available, i.e. one RBD past the tail of the ready-to-fill RBDs within
199 * to tell the driver the index of the latest filled RBD. The driver must
204 * all filled but unprocessed RBs up to, but not including, the RB
210 * Due to this, the maximum number of filled RBs is 255, instead of 256. To
213 * buffers waiting to be filled.
220 * Physical base address of 8-byte Rx Status buffer.
222 * 31-0: Rx status buffer physical base address [35:4], must 16-byte aligned.
229 * 27-0: RBD CD physical base address [35:8], must be 256-byte aligned.
236 * 11-0: Index of driver's most recent prepared-to-be-filled RBD, + 1.
237 * NOTE: For 256-entry circular buffer, use only bits [7:0].
257 * 31-30: Rx DMA channel enable: '00' off/pause, '01' pause at end of frame,
259 * 29-24: reserved
260 * 23-20: # RBDs in circular buffer = 2^value; use "8" for 256 RBDs (normal),
262 * 19-18: reserved
263 * 17-16: size of each receive buffer; '00' 4K (normal), '01' 8K,
265 * 15-14: reserved
266 * 13-12: IRQ destination; '00' none, '01' host driver (normal operation)
267 * 11- 4: timeout for closing Rx buffer and interrupting host (units 32 usec)
269 * 3- 0: reserved
279 #define FH_RCSR_CHNL0_RX_CONFIG_RB_TIMEOUT_MSK (0x00000FF0) /* bits 4-11 */
282 #define FH_RCSR_CHNL0_RX_CONFIG_RB_SIZE_MSK (0x00030000) /* bits 16-17 */
283 #define FH_RCSR_CHNL0_RX_CONFIG_RBDBC_SIZE_MSK (0x00F00000) /* bits 20-23 */
284 #define FH_RCSR_CHNL0_RX_CONFIG_DMA_CHNL_EN_MSK (0xC0000000) /* bits 30-31*/
336 /* Write index table - shadow registers */
378 * Once the RXF-to-DRAM DMA is active, this flag is immediately turned off.
390 #define RFH_RXF_DMA_RB_SIZE_MASK (0x000F0000) /* bits 16-19 */
403 #define RFH_RXF_DMA_RBDCB_SIZE_MASK (0x00F00000) /* bits 20-23 */
414 #define RFH_RXF_DMA_MIN_RB_SIZE_MASK (0x03000000) /* bit 24-25 */
419 #define RFH_DMA_EN_MASK (0xC0000000) /* bits 30-31*/
436 /* TFDB Area - TFDs buffer table */
459 * 31-30: Tx DMA channel enable: '00' off/pause, '01' pause at end of frame,
461 * 29- 4: Reserved, set to "0"
463 * 2- 0: Reserved, set to "0"
513 * 31-24: 1 = Channel buffers empty (channel 7:0)
514 * 23-16: 1 = No pending requests (channel 7:0)
527 * 16-9:Each status bit is for one channel. Indicates that an (Error) ActDMA
531 * 7-0: Each status bit indicates a channel's TxCredit error. When an error
548 (FH_SRVC_LOWER_BOUND + ((_chnl) - 9) * 0x4)
554 * it is brought from the memory to TX-FIFO
558 #define RX_POOL_SIZE(rbds) ((rbds) - 1 + \
560 (RX_CLAIM_REQ_ALLOC - RX_POST_REQ_ALLOC))
569 * struct iwl_rb_status - reserve buffer status
571 * @closed_rb_num [0:11] - Indicates the index of the RB which was closed
572 * @closed_fr_num [0:11] - Indicates the index of the RX Frame which was closed
573 * @finished_rb_num [0:11] - Indicates the index of the current RB
575 * @finished_fr_num [0:11] - Indicates the index of the RX Frame
589 /* cb size is the exponent - 3 */
590 #define TFD_QUEUE_CB_SIZE(x) (ilog2(x) - 3)
604 * enum iwl_tfd_tb_hi_n_len - TB hi_n_len bits
644 * For pre 22000 HW it is 256 x 128 bytes-per-TFD = 32 KBytes
645 * For 22000 HW and on it is 256 x 256 bytes-per-TFD = 65 KBytes
654 * of (4K - 4). The concatenates all of a TFD's buffers into a single
661 * struct iwl_tfd - Transmit Frame Descriptor (TFD)
663 * @ num_tbs 0-4 number of active tbs
665 * 6-7 padding (not used)
677 * struct iwl_tfh_tfd - Transmit Frame Descriptor (TFD)
678 * @ num_tbs 0-4 number of active tbs
679 * 5 -15 reserved
692 /* Fixed (non-configurable) rx data from phy */
698 * @tfd_offset 0-12 - tx command byte count
699 * 12-16 - station index
701 * @tfd_offset 0-12 - tx command byte count
702 * 12-13 - number of 64 byte chunks
703 * 14-16 - reserved
712 * @tfd_offset: 0-12 - tx command byte count
713 * 12-13 - number of 64 byte chunks
714 * 14-16 - reserved