Message ID | 20231116164024.139934-1-mchitale@ventanamicro.com |
---|---|
State | Accepted |
Commit | 3c6b1fdade236e5fa97b058529a91da476627461 |
Delegated to: | Michal Simek |
Headers | show |
Series | [v2] net: axi_emac: Use reg property for DMA registers | expand |
On 11/16/23 17:40, Mayuresh Chitale wrote: > As per the xlnx,axi-ethernet-1.00.a DT documentation in linux, the AXI > DMA registers can be obtained via the reg property or via a separate > node for the axistream DMA controller. Currently only the latter is > supported, so add support to fetch the DMA controller registers from the > "reg" property. > > Signed-off-by: Mayuresh Chitale <mchitale@ventanamicro.com> > Reviewed-by: Michal Simek <michal.simek@amd.com> > --- > Changes in v2: > ==== > Add Reviewed-by Tag. > > drivers/net/xilinx_axi_emac.c | 9 ++++----- > 1 file changed, 4 insertions(+), 5 deletions(-) > > diff --git a/drivers/net/xilinx_axi_emac.c b/drivers/net/xilinx_axi_emac.c > index 54f2232768..ef151ee51b 100644 > --- a/drivers/net/xilinx_axi_emac.c > +++ b/drivers/net/xilinx_axi_emac.c > @@ -903,12 +903,11 @@ static int axi_emac_of_to_plat(struct udevice *dev) > > ret = dev_read_phandle_with_args(dev, "axistream-connected", NULL, 0, 0, > &axistream_node); > - if (ret) { > - printf("%s: axistream is not found\n", __func__); > - return -EINVAL; > - } > + if (!ret) > + plat->dmatx = (struct axidma_reg *)ofnode_get_addr(axistream_node.node); > + else > + plat->dmatx = (struct axidma_reg *)dev_read_addr_index(dev, 1); > > - plat->dmatx = (struct axidma_reg *)ofnode_get_addr(axistream_node.node); > if (!plat->dmatx) { > printf("%s: axi_dma register space not found\n", __func__); > return -EINVAL; Applied. M
diff --git a/drivers/net/xilinx_axi_emac.c b/drivers/net/xilinx_axi_emac.c index 54f2232768..ef151ee51b 100644 --- a/drivers/net/xilinx_axi_emac.c +++ b/drivers/net/xilinx_axi_emac.c @@ -903,12 +903,11 @@ static int axi_emac_of_to_plat(struct udevice *dev) ret = dev_read_phandle_with_args(dev, "axistream-connected", NULL, 0, 0, &axistream_node); - if (ret) { - printf("%s: axistream is not found\n", __func__); - return -EINVAL; - } + if (!ret) + plat->dmatx = (struct axidma_reg *)ofnode_get_addr(axistream_node.node); + else + plat->dmatx = (struct axidma_reg *)dev_read_addr_index(dev, 1); - plat->dmatx = (struct axidma_reg *)ofnode_get_addr(axistream_node.node); if (!plat->dmatx) { printf("%s: axi_dma register space not found\n", __func__); return -EINVAL;