Commit 7c6aa25d authored by Michal Kazior's avatar Michal Kazior Committed by Kalle Valo

ath10k: dont duplicate service-pipe mapping

The mapping is already defined in a structure. It
makes little sense to duplicate information stored
in it within a function.
Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent d7bfb7aa
...@@ -1094,68 +1094,57 @@ static void ath10k_pci_kill_tasklet(struct ath10k *ar) ...@@ -1094,68 +1094,57 @@ static void ath10k_pci_kill_tasklet(struct ath10k *ar)
del_timer_sync(&ar_pci->rx_post_retry); del_timer_sync(&ar_pci->rx_post_retry);
} }
/* TODO - temporary mapping while we have too few CE's */
static int ath10k_pci_hif_map_service_to_pipe(struct ath10k *ar, static int ath10k_pci_hif_map_service_to_pipe(struct ath10k *ar,
u16 service_id, u8 *ul_pipe, u16 service_id, u8 *ul_pipe,
u8 *dl_pipe, int *ul_is_polled, u8 *dl_pipe, int *ul_is_polled,
int *dl_is_polled) int *dl_is_polled)
{ {
int ret = 0; const struct service_to_pipe *entry;
bool ul_set = false, dl_set = false;
int i;
ath10k_dbg(ar, ATH10K_DBG_PCI, "pci hif map service\n"); ath10k_dbg(ar, ATH10K_DBG_PCI, "pci hif map service\n");
/* polling for received messages not supported */ /* polling for received messages not supported */
*dl_is_polled = 0; *dl_is_polled = 0;
switch (service_id) { for (i = 0; i < ARRAY_SIZE(target_service_to_ce_map_wlan); i++) {
case ATH10K_HTC_SVC_ID_HTT_DATA_MSG: entry = &target_service_to_ce_map_wlan[i];
/*
* Host->target HTT gets its own pipe, so it can be polled
* while other pipes are interrupt driven.
*/
*ul_pipe = 4;
/*
* Use the same target->host pipe for HTC ctrl, HTC raw
* streams, and HTT.
*/
*dl_pipe = 1;
break;
case ATH10K_HTC_SVC_ID_RSVD_CTRL:
case ATH10K_HTC_SVC_ID_TEST_RAW_STREAMS:
/*
* Note: HTC_RAW_STREAMS_SVC is currently unused, and
* HTC_CTRL_RSVD_SVC could share the same pipe as the
* WMI services. So, if another CE is needed, change
* this to *ul_pipe = 3, which frees up CE 0.
*/
/* *ul_pipe = 3; */
*ul_pipe = 0;
*dl_pipe = 1;
break;
case ATH10K_HTC_SVC_ID_WMI_DATA_BK: if (entry->service_id != service_id)
case ATH10K_HTC_SVC_ID_WMI_DATA_BE: continue;
case ATH10K_HTC_SVC_ID_WMI_DATA_VI:
case ATH10K_HTC_SVC_ID_WMI_DATA_VO:
case ATH10K_HTC_SVC_ID_WMI_CONTROL: switch (entry->pipedir) {
*ul_pipe = 3; case PIPEDIR_NONE:
*dl_pipe = 2;
break; break;
case PIPEDIR_IN:
/* pipe 5 unused */ WARN_ON(dl_set);
/* pipe 6 reserved */ *dl_pipe = entry->pipenum;
/* pipe 7 reserved */ dl_set = true;
break;
default: case PIPEDIR_OUT:
ret = -1; WARN_ON(ul_set);
*ul_pipe = entry->pipenum;
ul_set = true;
break;
case PIPEDIR_INOUT:
WARN_ON(dl_set);
WARN_ON(ul_set);
*dl_pipe = entry->pipenum;
*ul_pipe = entry->pipenum;
dl_set = true;
ul_set = true;
break; break;
} }
}
if (WARN_ON(!ul_set || !dl_set))
return -ENOENT;
*ul_is_polled = *ul_is_polled =
(host_ce_config_wlan[*ul_pipe].flags & CE_ATTR_DIS_INTR) != 0; (host_ce_config_wlan[*ul_pipe].flags & CE_ATTR_DIS_INTR) != 0;
return ret; return 0;
} }
static void ath10k_pci_hif_get_default_pipe(struct ath10k *ar, static void ath10k_pci_hif_get_default_pipe(struct ath10k *ar,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment