From: Christoph Hellwig <hch@lst.de>
To: John Crispin <john@phrozen.org>, Vinod Koul <vkoul@kernel.org>,
Dmitry Tarnyagin <dmitry.tarnyagin@lockless.no>,
Nicolas Ferre <nicolas.ferre@microchip.com>,
Sudip Mukherjee <sudipm.mukherjee@gmail.com>,
Felipe Balbi <balbi@kernel.org>,
linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org,
dmaengine@vger.kernel.org, netdev@vger.kernel.org,
linux-usb@vger.kernel.org, linux-fbdev@vger.kernel.org,
alsa-devel@alsa-project.org
Cc: iommu@lists.linux-foundation.org
Subject: [PATCH 07/18] pxa168_eth: pass struct device to DMA API functions
Date: Fri, 1 Feb 2019 09:47:50 +0100 [thread overview]
Message-ID: <20190201084801.10983-8-hch@lst.de> (raw)
In-Reply-To: <20190201084801.10983-1-hch@lst.de>
The DMA API generally relies on a struct device to work properly, and
only barely works without one for legacy reasons. Pass the easily
available struct device from the platform_device to remedy this.
Note that this driver seems to entirely lack dma_map_single error
handling, but that is left for another time.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/net/ethernet/marvell/pxa168_eth.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/marvell/pxa168_eth.c b/drivers/net/ethernet/marvell/pxa168_eth.c
index f8a6d6e3cb7a..35f2142aac5e 100644
--- a/drivers/net/ethernet/marvell/pxa168_eth.c
+++ b/drivers/net/ethernet/marvell/pxa168_eth.c
@@ -201,6 +201,7 @@ struct tx_desc {
};
struct pxa168_eth_private {
+ struct platform_device *pdev;
int port_num; /* User Ethernet port number */
int phy_addr;
int phy_speed;
@@ -331,7 +332,7 @@ static void rxq_refill(struct net_device *dev)
used_rx_desc = pep->rx_used_desc_q;
p_used_rx_desc = &pep->p_rx_desc_area[used_rx_desc];
size = skb_end_pointer(skb) - skb->data;
- p_used_rx_desc->buf_ptr = dma_map_single(NULL,
+ p_used_rx_desc->buf_ptr = dma_map_single(&pep->pdev->dev,
skb->data,
size,
DMA_FROM_DEVICE);
@@ -743,7 +744,7 @@ static int txq_reclaim(struct net_device *dev, int force)
netdev_err(dev, "Error in TX\n");
dev->stats.tx_errors++;
}
- dma_unmap_single(NULL, addr, count, DMA_TO_DEVICE);
+ dma_unmap_single(&pep->pdev->dev, addr, count, DMA_TO_DEVICE);
if (skb)
dev_kfree_skb_irq(skb);
released++;
@@ -805,7 +806,7 @@ static int rxq_process(struct net_device *dev, int budget)
if (rx_next_curr_desc == rx_used_desc)
pep->rx_resource_err = 1;
pep->rx_desc_count--;
- dma_unmap_single(NULL, rx_desc->buf_ptr,
+ dma_unmap_single(&pep->pdev->dev, rx_desc->buf_ptr,
rx_desc->buf_size,
DMA_FROM_DEVICE);
received_packets++;
@@ -1274,7 +1275,8 @@ pxa168_eth_start_xmit(struct sk_buff *skb, struct net_device *dev)
length = skb->len;
pep->tx_skb[tx_index] = skb;
desc->byte_cnt = length;
- desc->buf_ptr = dma_map_single(NULL, skb->data, length, DMA_TO_DEVICE);
+ desc->buf_ptr = dma_map_single(&pep->pdev->dev, skb->data, length,
+ DMA_TO_DEVICE);
skb_tx_timestamp(skb);
@@ -1528,6 +1530,7 @@ static int pxa168_eth_probe(struct platform_device *pdev)
if (err)
goto err_free_mdio;
+ pep->pdev = pdev;
SET_NETDEV_DEV(dev, &pdev->dev);
pxa168_init_hw(pep);
err = register_netdev(dev);
--
2.20.1
next prev parent reply other threads:[~2019-02-01 8:50 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-01 8:47 don't pass a NULL struct device to DMA API functions Christoph Hellwig
2019-02-01 8:47 ` [PATCH 01/18] MIPS: lantiq: pass " Christoph Hellwig
2019-02-07 23:29 ` Paul Burton
2019-02-12 7:45 ` Christoph Hellwig
2019-02-12 17:41 ` Paul Burton
2019-02-01 8:47 ` [PATCH 02/18] dmaengine: imx-sdma: " Christoph Hellwig
2019-02-02 10:11 ` Vinod Koul
2019-02-02 17:21 ` Christoph Hellwig
2019-02-01 8:47 ` [PATCH 03/18] net: caif: " Christoph Hellwig
2019-02-01 13:53 ` Robin Murphy
2019-02-01 16:10 ` Christoph Hellwig
2019-02-01 8:47 ` [PATCH 04/18] au1000_eth: " Christoph Hellwig
2019-02-01 8:47 ` [PATCH 05/18] macb_main: " Christoph Hellwig
2019-02-01 13:34 ` Nicolas.Ferre
2019-02-01 8:47 ` [PATCH 06/18] lantiq_etop: " Christoph Hellwig
2019-02-01 8:47 ` Christoph Hellwig [this message]
2019-02-01 8:47 ` [PATCH 08/18] moxart_ether: " Christoph Hellwig
2019-02-01 8:47 ` [PATCH 09/18] meth: " Christoph Hellwig
2019-02-01 8:47 ` [PATCH 10/18] smc911x: " Christoph Hellwig
2019-02-01 14:14 ` Robin Murphy
2019-02-01 16:11 ` Christoph Hellwig
2019-02-01 8:47 ` [PATCH 11/18] parport_ip32: " Christoph Hellwig
2019-02-01 8:47 ` [PATCH 12/18] fotg210-udc: remove a bogus dma_sync_single_for_device call Christoph Hellwig
2019-02-01 13:19 ` Felipe Balbi
2019-02-01 16:10 ` Christoph Hellwig
2019-02-11 13:12 ` Christoph Hellwig
2019-02-11 13:30 ` Felipe Balbi
2019-02-01 8:47 ` [PATCH 13/18] fotg210-udc: pass struct device to DMA API functions Christoph Hellwig
2019-02-01 13:20 ` Felipe Balbi
2019-02-01 8:47 ` [PATCH 14/18] da8xx-fb: " Christoph Hellwig
2019-02-01 8:47 ` [PATCH 15/18] gbefb: switch to managed version of the DMA allocator Christoph Hellwig
2019-02-01 8:47 ` [PATCH 16/18] pxa3xx-gcu: pass struct device to dma_mmap_coherent Christoph Hellwig
2019-02-01 8:48 ` [PATCH 17/18] ALSA: hal2: pass struct device to DMA API functions Christoph Hellwig
2019-02-01 13:12 ` [alsa-devel] " Takashi Iwai
2019-02-01 16:09 ` Christoph Hellwig
2019-02-01 16:17 ` Takashi Iwai
2019-02-01 8:48 ` [PATCH 18/18] ALSA: " Christoph Hellwig
2019-02-01 13:13 ` [alsa-devel] " Takashi Iwai
2019-02-01 13:16 ` [alsa-devel] don't pass a NULL " Takashi Iwai
2019-02-01 16:09 ` Christoph Hellwig
2019-02-01 16:18 ` Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190201084801.10983-8-hch@lst.de \
--to=hch@lst.de \
--cc=alsa-devel@alsa-project.org \
--cc=balbi@kernel.org \
--cc=dmaengine@vger.kernel.org \
--cc=dmitry.tarnyagin@lockless.no \
--cc=iommu@lists.linux-foundation.org \
--cc=john@phrozen.org \
--cc=linux-fbdev@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nicolas.ferre@microchip.com \
--cc=sudipm.mukherjee@gmail.com \
--cc=vkoul@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).