ath10k: clean up ath10k_ce_completed_send_next_nolock()
The error handling was just weird, simplify it. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
parent
e479ed437b
commit
a40d3e420d
|
@ -594,8 +594,8 @@ static int ath10k_ce_completed_send_next_nolock(struct ath10k_ce_pipe *ce_state,
|
||||||
struct ath10k *ar = ce_state->ar;
|
struct ath10k *ar = ce_state->ar;
|
||||||
unsigned int nentries_mask = src_ring->nentries_mask;
|
unsigned int nentries_mask = src_ring->nentries_mask;
|
||||||
unsigned int sw_index = src_ring->sw_index;
|
unsigned int sw_index = src_ring->sw_index;
|
||||||
|
struct ce_desc *sdesc, *sbase;
|
||||||
unsigned int read_index;
|
unsigned int read_index;
|
||||||
int ret = -EIO;
|
|
||||||
|
|
||||||
if (src_ring->hw_index == sw_index) {
|
if (src_ring->hw_index == sw_index) {
|
||||||
/*
|
/*
|
||||||
|
@ -611,11 +611,14 @@ static int ath10k_ce_completed_send_next_nolock(struct ath10k_ce_pipe *ce_state,
|
||||||
src_ring->hw_index &= nentries_mask;
|
src_ring->hw_index &= nentries_mask;
|
||||||
ath10k_pci_sleep(ar);
|
ath10k_pci_sleep(ar);
|
||||||
}
|
}
|
||||||
|
|
||||||
read_index = src_ring->hw_index;
|
read_index = src_ring->hw_index;
|
||||||
|
|
||||||
if ((read_index != sw_index) && (read_index != 0xffffffff)) {
|
if ((read_index == sw_index) || (read_index == 0xffffffff))
|
||||||
struct ce_desc *sbase = src_ring->shadow_base;
|
return -EIO;
|
||||||
struct ce_desc *sdesc = CE_SRC_RING_TO_DESC(sbase, sw_index);
|
|
||||||
|
sbase = src_ring->shadow_base;
|
||||||
|
sdesc = CE_SRC_RING_TO_DESC(sbase, sw_index);
|
||||||
|
|
||||||
/* Return data from completed source descriptor */
|
/* Return data from completed source descriptor */
|
||||||
*bufferp = __le32_to_cpu(sdesc->addr);
|
*bufferp = __le32_to_cpu(sdesc->addr);
|
||||||
|
@ -633,10 +636,8 @@ static int ath10k_ce_completed_send_next_nolock(struct ath10k_ce_pipe *ce_state,
|
||||||
/* Update sw_index */
|
/* Update sw_index */
|
||||||
sw_index = CE_RING_IDX_INCR(nentries_mask, sw_index);
|
sw_index = CE_RING_IDX_INCR(nentries_mask, sw_index);
|
||||||
src_ring->sw_index = sw_index;
|
src_ring->sw_index = sw_index;
|
||||||
ret = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NB: Modeled after ath10k_ce_completed_send_next */
|
/* NB: Modeled after ath10k_ce_completed_send_next */
|
||||||
|
|
Loading…
Reference in New Issue