1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- From 8da0745b86fb9b9e36d964afda797b161407971f Mon Sep 17 00:00:00 2001
- From: Ramon Fried <rfried.dev@gmail.com>
- Date: Tue, 11 Jun 2019 18:19:29 +0300
- Subject: [PATCH 06/21] net: macb: add dma_burst_length config
- GEM support higher DMA burst writes/reads than the default (4).
- add configuration structure with dma burst length so it could be
- applied later to DMA configuration.
- Signed-off-by: Ramon Fried <rfried.dev@gmail.com>
- Upstream-Status: Submitted
- ---
- drivers/net/macb.c | 22 +++++++++++++++++++++-
- 1 file changed, 21 insertions(+), 1 deletion(-)
- diff --git a/drivers/net/macb.c b/drivers/net/macb.c
- index ae8937bbb1..fb42172520 100644
- --- a/drivers/net/macb.c
- +++ b/drivers/net/macb.c
- @@ -82,6 +82,7 @@ struct macb_dma_desc {
-
- struct macb_device {
- void *regs;
- + unsigned int dma_burst_length;
-
- unsigned int rx_tail;
- unsigned int tx_head;
- @@ -118,6 +119,11 @@ struct macb_device {
- phy_interface_t phy_interface;
- #endif
- };
- +
- +struct macb_config {
- + unsigned int dma_burst_length;
- +};
- +
- #ifndef CONFIG_DM_ETH
- #define to_macb(_nd) container_of(_nd, struct macb_device, netdev)
- #endif
- @@ -1133,8 +1139,13 @@ static int macb_enable_clk(struct udevice *dev)
- }
- #endif
-
- +static const struct macb_config default_gem_config = {
- + .dma_burst_length = 16,
- +};
- +
- static int macb_eth_probe(struct udevice *dev)
- {
- + const struct macb_config *macb_config;
- struct eth_pdata *pdata = dev_get_platdata(dev);
- struct macb_device *macb = dev_get_priv(dev);
- const char *phy_mode;
- @@ -1151,6 +1162,11 @@ static int macb_eth_probe(struct udevice *dev)
-
- macb->regs = (void *)pdata->iobase;
-
- + macb_config = (struct macb_config *)dev_get_driver_data(dev);
- + if (!macb_config)
- + macb_config = &default_gem_config;
- +
- + macb->dma_burst_length = macb_config->dma_burst_length;
- #ifdef CONFIG_CLK
- ret = macb_enable_clk(dev);
- if (ret)
- @@ -1211,12 +1227,16 @@ static int macb_eth_ofdata_to_platdata(struct udevice *dev)
- return macb_late_eth_ofdata_to_platdata(dev);
- }
-
- +static const struct macb_config sama5d4_config = {
- + .dma_burst_length = 4,
- +};
- +
- static const struct udevice_id macb_eth_ids[] = {
- { .compatible = "cdns,macb" },
- { .compatible = "cdns,at91sam9260-macb" },
- { .compatible = "atmel,sama5d2-gem" },
- { .compatible = "atmel,sama5d3-gem" },
- - { .compatible = "atmel,sama5d4-gem" },
- + { .compatible = "atmel,sama5d4-gem", .data = (ulong)&sama5d4_config },
- { .compatible = "cdns,zynq-gem" },
- { }
- };
- --
- 2.22.0
|