Re: [PATCH] net: axi_emac: Use reg property for DMA registers
Hi Michal, On Thu, 2023-11-02 at 10:15 +0100, Michal Simek wrote: > > On 11/2/23 09:23, 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 > > --- > > 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, > > _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; > > This looks good to me. Can you please send it separately? > It is really independent of change from other patches. Actually it is a separate patch. > > Reviewed-by: Michal Simek > > Thanks, > Michal
Re: [PATCH] net: axi_emac: Use reg property for DMA registers
On 11/2/23 09:23, 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 --- 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, _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; This looks good to me. Can you please send it separately? It is really independent of change from other patches. Reviewed-by: Michal Simek Thanks, Michal
[PATCH] net: axi_emac: Use reg property for DMA registers
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 --- 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, _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; -- 2.34.1