ath10k: reuse copy engine 5 (htt rx) descriptors
authorRajkumar Manoharan <rmanohar@qti.qualcomm.com>
Tue, 22 Mar 2016 11:52:18 +0000 (17:22 +0530)
committerKalle Valo <kvalo@qca.qualcomm.com>
Mon, 4 Apr 2016 14:03:21 +0000 (17:03 +0300)
commit128abd09134a5b415fef4373841ea6d3fb7b680f
treef044f94436a670bcd38d9aa22dd9c12258fc872d
parent24d9ef5eff5057bb6339ed1cf852a2b2a7be324d
ath10k: reuse copy engine 5 (htt rx) descriptors

Whenever htt rx indication i.e target to host messages are received
on rx copy engine (CE5), the message will be freed after processing
the response. Then CE 5 will be refilled with new descriptors at
post rx processing. This memory alloc and free operations can be avoided
by reusing the same descriptors.

During CE pipe allocation, full ring is not initialized i.e n-1 entries
are filled up. So for CE 5 full ring should be filled up to reuse
descriptors. Moreover CE 5 write index will be updated in single shot
instead of incremental access. This could avoid multiple pci_write and
ce_ring access. From experiments, It improves CPU usage by ~3% in IPQ4019
platform.

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/ce.c
drivers/net/wireless/ath/ath10k/ce.h
drivers/net/wireless/ath/ath10k/pci.c