|
@@ -107,6 +107,7 @@ static void ath10k_pci_htc_tx_cb(struct ath10k_ce_pipe *ce_state);
|
|
|
static void ath10k_pci_htc_rx_cb(struct ath10k_ce_pipe *ce_state);
|
|
|
static void ath10k_pci_htt_tx_cb(struct ath10k_ce_pipe *ce_state);
|
|
|
static void ath10k_pci_htt_rx_cb(struct ath10k_ce_pipe *ce_state);
|
|
|
+static void ath10k_pci_htt_htc_rx_cb(struct ath10k_ce_pipe *ce_state);
|
|
|
|
|
|
static struct ce_attr host_ce_config_wlan[] = {
|
|
|
/* CE0: host->target HTC control and raw streams */
|
|
@@ -124,7 +125,7 @@ static struct ce_attr host_ce_config_wlan[] = {
|
|
|
.src_nentries = 0,
|
|
|
.src_sz_max = 2048,
|
|
|
.dest_nentries = 512,
|
|
|
- .recv_cb = ath10k_pci_htc_rx_cb,
|
|
|
+ .recv_cb = ath10k_pci_htt_htc_rx_cb,
|
|
|
},
|
|
|
|
|
|
/* CE2: target->host WMI */
|
|
@@ -1204,6 +1205,16 @@ static void ath10k_pci_htc_rx_cb(struct ath10k_ce_pipe *ce_state)
|
|
|
ath10k_pci_process_rx_cb(ce_state, ath10k_htc_rx_completion_handler);
|
|
|
}
|
|
|
|
|
|
+static void ath10k_pci_htt_htc_rx_cb(struct ath10k_ce_pipe *ce_state)
|
|
|
+{
|
|
|
+ /* CE4 polling needs to be done whenever CE pipe which transports
|
|
|
+ * HTT Rx (target->host) is processed.
|
|
|
+ */
|
|
|
+ ath10k_ce_per_engine_service(ce_state->ar, 4);
|
|
|
+
|
|
|
+ ath10k_pci_process_rx_cb(ce_state, ath10k_htc_rx_completion_handler);
|
|
|
+}
|
|
|
+
|
|
|
/* Called by lower (CE) layer when a send to HTT Target completes. */
|
|
|
static void ath10k_pci_htt_tx_cb(struct ath10k_ce_pipe *ce_state)
|
|
|
{
|