Erik Stromdahl <erik.stromdahl@xxxxxxxxx> writes: > Several DMA related functions (such as the dma_map_xxx functions) > are not used with high latency devices and don't need to be invoked > in this case. > > A few other execution paths are not applicable for high latency > devices and can be skipped. > > Signed-off-by: Erik Stromdahl <erik.stromdahl@xxxxxxxxx> This and patch 6 are somehow connected but the division is not clear. I think at least dma map/unmap changes should be split into their own patch. I recommend revisiting both patches 6 and 7. The htt layer can be quite tricky so better to have smaller logical changes to make it easier review them. > --- a/drivers/net/wireless/ath/ath10k/htt_tx.c > +++ b/drivers/net/wireless/ath/ath10k/htt_tx.c > @@ -409,6 +409,9 @@ int ath10k_htt_tx_start(struct ath10k_htt *htt) > if (htt->tx_mem_allocated) > return 0; > > + if (ar->is_high_latency) > + return 0; > + > ret = ath10k_htt_tx_alloc_buf(htt); > if (ret) > goto free_idr_pending_tx; > @@ -445,7 +448,8 @@ void ath10k_htt_tx_destroy(struct ath10k_htt *htt) > return; > > ath10k_htt_tx_free_cont_txbuf(htt); > - ath10k_htt_tx_free_txq(htt); > + if (!htt->ar->is_high_latency) > + ath10k_htt_tx_free_txq(htt); > ath10k_htt_tx_free_cont_frag_desc(htt); > ath10k_htt_tx_free_txdone_fifo(htt); > htt->tx_mem_allocated = false; These two don't look symmetric. You prevent calling these functions: ath10k_htt_tx_alloc_cont_txbuf(htt); ath10k_htt_tx_alloc_cont_frag_desc(htt); ath10k_htt_tx_alloc_txq(htt); ath10k_htt_tx_alloc_txdone_fifo(htt); But during destroy you only prevent calling ath10k_htt_tx_free_txq(htt) and allow these functions: ath10k_htt_tx_free_cont_txbuf(htt); ath10k_htt_tx_free_cont_frag_desc(htt); ath10k_htt_tx_free_txdone_fifo(htt); -- Kalle Valo