Commit 357e9f86 authored by Vikram Narayanan's avatar Vikram Narayanan
Browse files

lcd/ixgbe: Fix tx dma



dma_map_single uses the default helpers such as virt_to_page which is not valid
for pages mapped in the rammap region. As every page is mapped during xmit,
this page needs to be programmed in the iommu before transmission.

Signed-off-by: Vikram Narayanan's avatarVikram Narayanan <vikram186@gmail.com>
parent dc216e76
......@@ -7680,8 +7680,17 @@ static void ixgbe_tx_map(struct ixgbe_ring *tx_ring,
}
#endif
#ifndef LCD_ISOLATE
dma = dma_map_single(tx_ring->dev, skb->data, size, DMA_TO_DEVICE);
#else
/* Inside LCDs, we program the device registers and descriptors with
* physical address of the buffers and the corresponding gpa:hpa pair
* is programmed inside the iommu. Here a simple __pa macro is enough
* to get us the physical page of this buffer.
* TODO: Check if this is really sufficient for all cases
*/
dma = __pa(skb->data);
#endif
tx_buffer = first;
for (frag = &skb_shinfo(skb)->frags[0];; frag++) {
......
Supports Markdown
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