mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 08:36:12 -04:00
qcacld-3.0: Higher 32 bits in the dma address are ignored
In TSO the higher bits in the 64 bit dma address are being ignored. This is resulting in an incorrect address being programmed in the fragment descriptor. Change-Id: Id015e81212d2ded3f0716ca5cc06ae2220952270 CRs-Fixed: 1024169
This commit is contained in:
parent
1348108467
commit
5166d573eb
2 changed files with 8 additions and 4 deletions
|
|
@ -1138,12 +1138,16 @@ htt_tx_desc_fill_tso_info(htt_pdev_handle pdev, void *desc,
|
|||
word += 6;
|
||||
|
||||
for (i = 0; i < tso_seg->seg.num_frags; i++) {
|
||||
uint32_t lo = 0;
|
||||
uint32_t hi = 0;
|
||||
qdf_dmaaddr_to_32s(tso_seg->seg.tso_frags[i].paddr,
|
||||
&lo, &hi);
|
||||
/* [31:0] first 32 bits of the buffer pointer */
|
||||
*word = tso_seg->seg.tso_frags[i].paddr_low_32;
|
||||
*word = lo;
|
||||
word++;
|
||||
/* [15:0] the upper 16 bits of the first buffer pointer */
|
||||
/* [31:16] length of the first buffer */
|
||||
*word = (tso_seg->seg.tso_frags[i].length << 16);
|
||||
*word = (tso_seg->seg.tso_frags[i].length << 16) | hi;
|
||||
word++;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -272,7 +272,7 @@ qdf_nbuf_t ol_tx_ll(ol_txrx_vdev_handle vdev, qdf_nbuf_t msdu_list)
|
|||
if (msdu_info.tso_info.curr_seg)
|
||||
QDF_NBUF_CB_PADDR(msdu) =
|
||||
msdu_info.tso_info.curr_seg->
|
||||
seg.tso_frags[0].paddr_low_32;
|
||||
seg.tso_frags[0].paddr;
|
||||
|
||||
segments--;
|
||||
|
||||
|
|
@ -541,7 +541,7 @@ ol_tx_ll_fast(ol_txrx_vdev_handle vdev, qdf_nbuf_t msdu_list)
|
|||
|
||||
if (msdu_info.tso_info.curr_seg)
|
||||
QDF_NBUF_CB_PADDR(msdu) = msdu_info.tso_info.
|
||||
curr_seg->seg.tso_frags[0].paddr_low_32;
|
||||
curr_seg->seg.tso_frags[0].paddr;
|
||||
|
||||
segments--;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue