net: davinci_emac:Fix translation logic for buffer descriptor
With recent changes to the driver(switch to new cpdma layer),
the support for buffer descriptor address translation logic
is broken. This affects platforms where the physical address of
the descriptors as seen by the DMA engine is different from the
physical address.
Original Patch adding translation logic support:
Commit: ad021ae886
Signed-off-by: Sriramakrishnan A G <srk@ti.com>
Tested-By: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -1854,10 +1854,13 @@ static int __devinit davinci_emac_probe(struct platform_device *pdev)
|
||||
dma_params.rxcp = priv->emac_base + 0x660;
|
||||
dma_params.num_chan = EMAC_MAX_TXRX_CHANNELS;
|
||||
dma_params.min_packet_size = EMAC_DEF_MIN_ETHPKTSIZE;
|
||||
dma_params.desc_mem_phys = hw_ram_addr;
|
||||
dma_params.desc_hw_addr = hw_ram_addr;
|
||||
dma_params.desc_mem_size = pdata->ctrl_ram_size;
|
||||
dma_params.desc_align = 16;
|
||||
|
||||
dma_params.desc_mem_phys = pdata->no_bd_ram ? 0 :
|
||||
(u32 __force)res->start + pdata->ctrl_ram_offset;
|
||||
|
||||
priv->dma = cpdma_ctlr_create(&dma_params);
|
||||
if (!priv->dma) {
|
||||
dev_err(emac_dev, "DaVinci EMAC: Error initializing DMA\n");
|
||||
|
||||
Reference in New Issue
Block a user