Lines Matching refs:fifo

52 #define NUM_FFPLD_FIFO 4	/* number of fifo concerned by pre-loading */
79 /* structure to hold tx fifo information and pre-loading state
124 * fifo_tb: table of fifo infos
209 struct brcms_fifo_info *fifo;
212 fifo = (ampdu->fifo_tb + j);
213 fifo->ampdu_pld_size = 0;
215 fifo->mcs2ampdu_table[i] = 255;
216 fifo->dmaxferrate = 0;
217 fifo->accum_txampdu = 0;
218 fifo->prev_txfunfl = 0;
219 fifo->accum_txfunfl = 0;
241 /* Disable ampdu for BK by default since not enough fifo space */
325 struct brcms_fifo_info *fifo = (ampdu->fifo_tb + f);
329 max_mpdu = min_t(u8, fifo->mcs2ampdu_table[FFPLD_MAX_MCS],
334 (max_mpdu * FFPLD_MPDU_SIZE - fifo->ampdu_pld_size))
336 fifo->dmaxferrate = dma_rate;
344 tmp = ((fifo->ampdu_pld_size * phy_rate) /
347 fifo->mcs2ampdu_table[i] = (u8) tmp;
353 * If necessary, increase tx fifo preloading. If not enough,
367 struct brcms_fifo_info *fifo = (ampdu->fifo_tb + fid);
375 new_txunfl = (u16) (cur_txunfl - fifo->prev_txfunfl);
380 fifo->prev_txfunfl = cur_txunfl;
385 /* check if fifo is big enough */
393 fifo->accum_txfunfl += new_txunfl;
396 if (fifo->accum_txfunfl < 10)
400 current_ampdu_cnt, fifo->accum_txfunfl);
411 txunfl_ratio = current_ampdu_cnt / fifo->accum_txfunfl;
415 fifo->accum_txfunfl = 0;
419 max_mpdu = min_t(u8, fifo->mcs2ampdu_table[FFPLD_MAX_MCS],
423 the fifo depth, there is nothing more we can do.
426 if (fifo->ampdu_pld_size >= max_mpdu * FFPLD_MPDU_SIZE) {
427 fifo->accum_txfunfl = 0;
431 if (fifo->ampdu_pld_size < max_pld_size) {
434 fifo->ampdu_pld_size += FFPLD_PLD_INCR;
435 if (fifo->ampdu_pld_size > max_pld_size)
436 fifo->ampdu_pld_size = max_pld_size;
448 fifo->dmaxferrate =
450 (max_mpdu * FFPLD_MPDU_SIZE - fifo->ampdu_pld_size))
455 fifo->dmaxferrate, fifo->ampdu_pld_size);
459 if (fifo->mcs2ampdu_table[FFPLD_MAX_MCS] > 1) {
460 if (fifo->mcs2ampdu_table[FFPLD_MAX_MCS] == 255)
461 fifo->mcs2ampdu_table[FFPLD_MAX_MCS] =
464 fifo->mcs2ampdu_table[FFPLD_MAX_MCS] -= 1;
473 fifo->accum_txfunfl = 0;
515 uint i, count = 0, fifo, seg_cnt = 0;
567 err = brcms_c_prep_pdu(wlc, p, &fifo);
756 if (*wlc->core->txavail[fifo] <= seg_cnt + 1) {
757 wiphy_err(wiphy, "%s: No fifo space "
871 brcms_c_txfifo(wlc, fifo, pkt[i], i == (count - 1),