Commit f9d8fece authored by Michal Kazior's avatar Michal Kazior Committed by Kalle Valo

ath10k: clean up PCI completion states

Improve code readability by using enum and a
switch-case.
Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent ffe5daa8
...@@ -538,7 +538,7 @@ static void ath10k_pci_ce_send_done(struct ce_state *ce_state, ...@@ -538,7 +538,7 @@ static void ath10k_pci_ce_send_done(struct ce_state *ce_state,
if (!compl) if (!compl)
break; break;
compl->send_or_recv = HIF_CE_COMPLETE_SEND; compl->state = ATH10K_PCI_COMPL_SEND;
compl->ce_state = ce_state; compl->ce_state = ce_state;
compl->pipe_info = pipe_info; compl->pipe_info = pipe_info;
compl->transfer_context = transfer_context; compl->transfer_context = transfer_context;
...@@ -588,7 +588,7 @@ static void ath10k_pci_ce_recv_data(struct ce_state *ce_state, ...@@ -588,7 +588,7 @@ static void ath10k_pci_ce_recv_data(struct ce_state *ce_state,
if (!compl) if (!compl)
break; break;
compl->send_or_recv = HIF_CE_COMPLETE_RECV; compl->state = ATH10K_PCI_COMPL_RECV;
compl->ce_state = ce_state; compl->ce_state = ce_state;
compl->pipe_info = pipe_info; compl->pipe_info = pipe_info;
compl->transfer_context = transfer_context; compl->transfer_context = transfer_context;
...@@ -810,7 +810,7 @@ static int ath10k_pci_start_ce(struct ath10k *ar) ...@@ -810,7 +810,7 @@ static int ath10k_pci_start_ce(struct ath10k *ar)
return -ENOMEM; return -ENOMEM;
} }
compl->send_or_recv = HIF_CE_COMPLETE_FREE; compl->state = ATH10K_PCI_COMPL_FREE;
list_add_tail(&compl->list, &pipe_info->compl_free); list_add_tail(&compl->list, &pipe_info->compl_free);
} }
} }
...@@ -909,12 +909,14 @@ static void ath10k_pci_process_ce(struct ath10k *ar) ...@@ -909,12 +909,14 @@ static void ath10k_pci_process_ce(struct ath10k *ar)
list_del(&compl->list); list_del(&compl->list);
spin_unlock_bh(&ar_pci->compl_lock); spin_unlock_bh(&ar_pci->compl_lock);
if (compl->send_or_recv == HIF_CE_COMPLETE_SEND) { switch (compl->state) {
case ATH10K_PCI_COMPL_SEND:
cb->tx_completion(ar, cb->tx_completion(ar,
compl->transfer_context, compl->transfer_context,
compl->transfer_id); compl->transfer_id);
send_done = 1; send_done = 1;
} else { break;
case ATH10K_PCI_COMPL_RECV:
ret = ath10k_pci_post_rx_pipe(compl->pipe_info, 1); ret = ath10k_pci_post_rx_pipe(compl->pipe_info, 1);
if (ret) { if (ret) {
ath10k_warn("Unable to post recv buffer for pipe: %d\n", ath10k_warn("Unable to post recv buffer for pipe: %d\n",
...@@ -941,9 +943,17 @@ static void ath10k_pci_process_ce(struct ath10k *ar) ...@@ -941,9 +943,17 @@ static void ath10k_pci_process_ce(struct ath10k *ar)
nbytes, nbytes,
skb->len + skb_tailroom(skb)); skb->len + skb_tailroom(skb));
} }
break;
case ATH10K_PCI_COMPL_FREE:
ath10k_warn("free completion cannot be processed\n");
break;
default:
ath10k_warn("invalid completion state (%d)\n",
compl->state);
break;
} }
compl->send_or_recv = HIF_CE_COMPLETE_FREE; compl->state = ATH10K_PCI_COMPL_FREE;
/* /*
* Add completion back to the pipe's free list. * Add completion back to the pipe's free list.
......
...@@ -43,9 +43,15 @@ struct bmi_xfer { ...@@ -43,9 +43,15 @@ struct bmi_xfer {
u32 resp_len; u32 resp_len;
}; };
enum ath10k_pci_compl_state {
ATH10K_PCI_COMPL_FREE = 0,
ATH10K_PCI_COMPL_SEND,
ATH10K_PCI_COMPL_RECV,
};
struct ath10k_pci_compl { struct ath10k_pci_compl {
struct list_head list; struct list_head list;
int send_or_recv; enum ath10k_pci_compl_state state;
struct ce_state *ce_state; struct ce_state *ce_state;
struct hif_ce_pipe_info *pipe_info; struct hif_ce_pipe_info *pipe_info;
void *transfer_context; void *transfer_context;
...@@ -54,11 +60,6 @@ struct ath10k_pci_compl { ...@@ -54,11 +60,6 @@ struct ath10k_pci_compl {
unsigned int flags; unsigned int flags;
}; };
/* compl_state.send_or_recv */
#define HIF_CE_COMPLETE_FREE 0
#define HIF_CE_COMPLETE_SEND 1
#define HIF_CE_COMPLETE_RECV 2
/* /*
* PCI-specific Target state * PCI-specific Target state
* *
......
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