Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a40d3e42 authored by Kalle Valo's avatar Kalle Valo
Browse files

ath10k: clean up ath10k_ce_completed_send_next_nolock()



The error handling was just weird, simplify it.

Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent e479ed43
Loading
Loading
Loading
Loading
+21 −20
Original line number Diff line number Diff line
@@ -594,8 +594,8 @@ static int ath10k_ce_completed_send_next_nolock(struct ath10k_ce_pipe *ce_state,
	struct ath10k *ar = ce_state->ar;
	unsigned int nentries_mask = src_ring->nentries_mask;
	unsigned int sw_index = src_ring->sw_index;
	struct ce_desc *sdesc, *sbase;
	unsigned int read_index;
	int ret = -EIO;

	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;
		ath10k_pci_sleep(ar);
	}

	read_index = src_ring->hw_index;

	if ((read_index != sw_index) && (read_index != 0xffffffff)) {
		struct ce_desc *sbase = src_ring->shadow_base;
		struct ce_desc *sdesc = CE_SRC_RING_TO_DESC(sbase, sw_index);
	if ((read_index == sw_index) || (read_index == 0xffffffff))
		return -EIO;

	sbase = src_ring->shadow_base;
	sdesc = CE_SRC_RING_TO_DESC(sbase, sw_index);

	/* Return data from completed source descriptor */
	*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 */
	sw_index = CE_RING_IDX_INCR(nentries_mask, sw_index);
	src_ring->sw_index = sw_index;
		ret = 0;
	}

	return ret;
	return 0;
}

/* NB: Modeled after ath10k_ce_completed_send_next */