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

Commit c4b856d5 authored by Sridhar Ancha's avatar Sridhar Ancha
Browse files

msm: ipa: Fix to update the descriptor length in SG scenario



When sending a SG packet, frag descriptor length is not updated
and as a result IPA HW will stall. Make a change to update
descriptor length to the size of fragment.

Change-Id: Ie742148fe3b04677365a7247a89c2bed412e4d31
Acked-by: default avatarChaitanya Pratapa <cpratapa@qti.qualcomm.com>
Signed-off-by: default avatarSridhar Ancha <sancha@codeaurora.org>
parent ec82f6fd
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -497,7 +497,7 @@ int ipa_send(struct ipa_sys_context *sys, u32 num_desc, struct ipa_desc *desc,
			}
		} else {
			tx_pkt->mem.base = desc[i].frag;
			tx_pkt->mem.size = skb_frag_size(desc[i].frag);
			tx_pkt->mem.size = desc[i].len;

			if (!desc[i].dma_address_valid) {
				tx_pkt->mem.phys_base =
@@ -1626,6 +1626,7 @@ int ipa2_tx_dp(enum ipa_client_type dst, struct sk_buff *skb,
		for (f = 0; f < num_frags; f++) {
			desc[2+f].frag = &skb_shinfo(skb)->frags[f];
			desc[2+f].type = IPA_DATA_DESC_SKB_PAGED;
			desc[2+f].len = skb_frag_size(desc[2+f].frag);
		}

		/* don't free skb till frag mappings are released */
@@ -1665,6 +1666,7 @@ int ipa2_tx_dp(enum ipa_client_type dst, struct sk_buff *skb,
			for (f = 0; f < num_frags; f++) {
				desc[1+f].frag = &skb_shinfo(skb)->frags[f];
				desc[1+f].type = IPA_DATA_DESC_SKB_PAGED;
				desc[1+f].len = skb_frag_size(desc[1+f].frag);
			}

			/* don't free skb till frag mappings are released */