* [xlnx:master 9663/10510] drivers/net/ethernet/xilinx/xilinx_axienet_main.c:2948 axienet_probe() warn: missing error code 'ret'
@ 2021-02-10 12:10 ` Dan Carpenter
0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2021-02-10 12:10 UTC (permalink / raw)
To: kbuild, Saurabh Sengar
Cc: Michal Simek, kbuild-all, lkp, Radhey Shyam Pandey,
Appana Durga Kedareswara Rao, linux-arm-kernel
[-- Attachment #1: Type: text/plain, Size: 3622 bytes --]
tree: https://github.com/Xilinx/linux-xlnx master
head: d3774573d5a9700273bd0c3ff82af157107f7fa6
commit: 0f447249ba48721e24292b1ddacf1b4b4e21d9a7 [9663/10510] net: axienet: added multichannel DMA support
config: i386-randconfig-m021-20210209 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
drivers/net/ethernet/xilinx/xilinx_axienet_main.c:2948 axienet_probe() warn: missing error code 'ret'
Old smatch warnings:
drivers/net/ethernet/xilinx/xilinx_axienet_main.c:204 axienet_dma_bd_init() error: uninitialized symbol 'ret'.
vim +/ret +2948 drivers/net/ethernet/xilinx/xilinx_axienet_main.c
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2931 of_node_put(np);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2932 #endif
0f447249ba4872 Saurabh Sengar 2020-01-24 2933 if (!slave) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2934 #ifdef CONFIG_AXIENET_HAS_MCDMA
0f447249ba4872 Saurabh Sengar 2020-01-24 2935 ret = axienet_mcdma_probe(pdev, lp, ndev);
0f447249ba4872 Saurabh Sengar 2020-01-24 2936 #else
0f447249ba4872 Saurabh Sengar 2020-01-24 2937 ret = axienet_dma_probe(pdev, ndev);
0f447249ba4872 Saurabh Sengar 2020-01-24 2938 #endif
b482f0a0aa9973 Radhey Shyam Pandey 2020-01-24 2939 if (ret) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2940 pr_err("Getting DMA resource failed\n");
46aa27df885321 Srikanth Thokala 2015-05-05 2941 goto free_netdev;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2942 }
9e8ce9d565663f Appana Durga Kedareswara Rao 2020-01-24 2943
0f447249ba4872 Saurabh Sengar 2020-01-24 2944 if (dma_set_mask_and_coherent(lp->dev, DMA_BIT_MASK(lp->dma_mask)) != 0) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2945 dev_warn(&pdev->dev, "default to %d-bit dma mask\n", XAE_DMA_MASK_MIN);
0f447249ba4872 Saurabh Sengar 2020-01-24 2946 if (dma_set_mask_and_coherent(lp->dev, DMA_BIT_MASK(XAE_DMA_MASK_MIN)) != 0) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2947 dev_err(&pdev->dev, "dma_set_mask_and_coherent failed, aborting\n");
46aa27df885321 Srikanth Thokala 2015-05-05 @2948 goto free_netdev;
ret is not set on this error path.
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2949 }
0f447249ba4872 Saurabh Sengar 2020-01-24 2950 }
57b6ef54c85dd8 Appana Durga Kedareswara Rao 2020-01-24 2951
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2952 ret = axienet_dma_clk_init(pdev);
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2953 if (ret) {
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2954 if (ret != -EPROBE_DEFER)
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2955 dev_err(&pdev->dev, "DMA clock init failed %d\n", ret);
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2956 goto free_netdev;
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2957 }
0f447249ba4872 Saurabh Sengar 2020-01-24 2958 }
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2959
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2960 ret = axienet_clk_init(pdev, &lp->aclk, &lp->eth_sclk,
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 34786 bytes --]
[-- Attachment #3: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 4+ messages in thread
* [xlnx:master 9663/10510] drivers/net/ethernet/xilinx/xilinx_axienet_main.c:2948 axienet_probe() warn: missing error code 'ret'
@ 2021-02-10 12:10 ` Dan Carpenter
0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2021-02-10 12:10 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 3679 bytes --]
tree: https://github.com/Xilinx/linux-xlnx master
head: d3774573d5a9700273bd0c3ff82af157107f7fa6
commit: 0f447249ba48721e24292b1ddacf1b4b4e21d9a7 [9663/10510] net: axienet: added multichannel DMA support
config: i386-randconfig-m021-20210209 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
drivers/net/ethernet/xilinx/xilinx_axienet_main.c:2948 axienet_probe() warn: missing error code 'ret'
Old smatch warnings:
drivers/net/ethernet/xilinx/xilinx_axienet_main.c:204 axienet_dma_bd_init() error: uninitialized symbol 'ret'.
vim +/ret +2948 drivers/net/ethernet/xilinx/xilinx_axienet_main.c
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2931 of_node_put(np);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2932 #endif
0f447249ba4872 Saurabh Sengar 2020-01-24 2933 if (!slave) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2934 #ifdef CONFIG_AXIENET_HAS_MCDMA
0f447249ba4872 Saurabh Sengar 2020-01-24 2935 ret = axienet_mcdma_probe(pdev, lp, ndev);
0f447249ba4872 Saurabh Sengar 2020-01-24 2936 #else
0f447249ba4872 Saurabh Sengar 2020-01-24 2937 ret = axienet_dma_probe(pdev, ndev);
0f447249ba4872 Saurabh Sengar 2020-01-24 2938 #endif
b482f0a0aa9973 Radhey Shyam Pandey 2020-01-24 2939 if (ret) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2940 pr_err("Getting DMA resource failed\n");
46aa27df885321 Srikanth Thokala 2015-05-05 2941 goto free_netdev;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2942 }
9e8ce9d565663f Appana Durga Kedareswara Rao 2020-01-24 2943
0f447249ba4872 Saurabh Sengar 2020-01-24 2944 if (dma_set_mask_and_coherent(lp->dev, DMA_BIT_MASK(lp->dma_mask)) != 0) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2945 dev_warn(&pdev->dev, "default to %d-bit dma mask\n", XAE_DMA_MASK_MIN);
0f447249ba4872 Saurabh Sengar 2020-01-24 2946 if (dma_set_mask_and_coherent(lp->dev, DMA_BIT_MASK(XAE_DMA_MASK_MIN)) != 0) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2947 dev_err(&pdev->dev, "dma_set_mask_and_coherent failed, aborting\n");
46aa27df885321 Srikanth Thokala 2015-05-05 @2948 goto free_netdev;
ret is not set on this error path.
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2949 }
0f447249ba4872 Saurabh Sengar 2020-01-24 2950 }
57b6ef54c85dd8 Appana Durga Kedareswara Rao 2020-01-24 2951
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2952 ret = axienet_dma_clk_init(pdev);
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2953 if (ret) {
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2954 if (ret != -EPROBE_DEFER)
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2955 dev_err(&pdev->dev, "DMA clock init failed %d\n", ret);
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2956 goto free_netdev;
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2957 }
0f447249ba4872 Saurabh Sengar 2020-01-24 2958 }
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2959
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2960 ret = axienet_clk_init(pdev, &lp->aclk, &lp->eth_sclk,
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34786 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* [xlnx:master 9663/10510] drivers/net/ethernet/xilinx/xilinx_axienet_main.c:2948 axienet_probe() warn: missing error code 'ret'
@ 2021-02-10 12:10 ` Dan Carpenter
0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2021-02-10 12:10 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 3679 bytes --]
tree: https://github.com/Xilinx/linux-xlnx master
head: d3774573d5a9700273bd0c3ff82af157107f7fa6
commit: 0f447249ba48721e24292b1ddacf1b4b4e21d9a7 [9663/10510] net: axienet: added multichannel DMA support
config: i386-randconfig-m021-20210209 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
drivers/net/ethernet/xilinx/xilinx_axienet_main.c:2948 axienet_probe() warn: missing error code 'ret'
Old smatch warnings:
drivers/net/ethernet/xilinx/xilinx_axienet_main.c:204 axienet_dma_bd_init() error: uninitialized symbol 'ret'.
vim +/ret +2948 drivers/net/ethernet/xilinx/xilinx_axienet_main.c
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2931 of_node_put(np);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2932 #endif
0f447249ba4872 Saurabh Sengar 2020-01-24 2933 if (!slave) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2934 #ifdef CONFIG_AXIENET_HAS_MCDMA
0f447249ba4872 Saurabh Sengar 2020-01-24 2935 ret = axienet_mcdma_probe(pdev, lp, ndev);
0f447249ba4872 Saurabh Sengar 2020-01-24 2936 #else
0f447249ba4872 Saurabh Sengar 2020-01-24 2937 ret = axienet_dma_probe(pdev, ndev);
0f447249ba4872 Saurabh Sengar 2020-01-24 2938 #endif
b482f0a0aa9973 Radhey Shyam Pandey 2020-01-24 2939 if (ret) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2940 pr_err("Getting DMA resource failed\n");
46aa27df885321 Srikanth Thokala 2015-05-05 2941 goto free_netdev;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2942 }
9e8ce9d565663f Appana Durga Kedareswara Rao 2020-01-24 2943
0f447249ba4872 Saurabh Sengar 2020-01-24 2944 if (dma_set_mask_and_coherent(lp->dev, DMA_BIT_MASK(lp->dma_mask)) != 0) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2945 dev_warn(&pdev->dev, "default to %d-bit dma mask\n", XAE_DMA_MASK_MIN);
0f447249ba4872 Saurabh Sengar 2020-01-24 2946 if (dma_set_mask_and_coherent(lp->dev, DMA_BIT_MASK(XAE_DMA_MASK_MIN)) != 0) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2947 dev_err(&pdev->dev, "dma_set_mask_and_coherent failed, aborting\n");
46aa27df885321 Srikanth Thokala 2015-05-05 @2948 goto free_netdev;
ret is not set on this error path.
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2949 }
0f447249ba4872 Saurabh Sengar 2020-01-24 2950 }
57b6ef54c85dd8 Appana Durga Kedareswara Rao 2020-01-24 2951
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2952 ret = axienet_dma_clk_init(pdev);
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2953 if (ret) {
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2954 if (ret != -EPROBE_DEFER)
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2955 dev_err(&pdev->dev, "DMA clock init failed %d\n", ret);
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2956 goto free_netdev;
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2957 }
0f447249ba4872 Saurabh Sengar 2020-01-24 2958 }
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2959
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2960 ret = axienet_clk_init(pdev, &lp->aclk, &lp->eth_sclk,
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34786 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* [xlnx:master 9663/10510] drivers/net/ethernet/xilinx/xilinx_axienet_main.c:2948 axienet_probe() warn: missing error code 'ret'
@ 2021-02-10 10:13 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2021-02-10 10:13 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 30254 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-arm-kernel(a)lists.infradead.org
TO: Saurabh Sengar <saurabh.singh@xilinx.com>
CC: Michal Simek <monstr@monstr.eu>
CC: Appana Durga Kedareswara Rao <appana.durga.rao@xilinx.com>
CC: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
tree: https://github.com/Xilinx/linux-xlnx master
head: d3774573d5a9700273bd0c3ff82af157107f7fa6
commit: 0f447249ba48721e24292b1ddacf1b4b4e21d9a7 [9663/10510] net: axienet: added multichannel DMA support
:::::: branch date: 5 days ago
:::::: commit date: 12 months ago
config: i386-randconfig-m021-20210209 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
drivers/net/ethernet/xilinx/xilinx_axienet_main.c:2948 axienet_probe() warn: missing error code 'ret'
Old smatch warnings:
drivers/net/ethernet/xilinx/xilinx_axienet_main.c:204 axienet_dma_bd_init() error: uninitialized symbol 'ret'.
drivers/net/ethernet/xilinx/xilinx_axienet_main.c:1373 axienet_mii_init() warn: inconsistent returns 'lp->mii_bus->mdio_lock'.
vim +/ret +2948 drivers/net/ethernet/xilinx/xilinx_axienet_main.c
27a4863f9f2dcd Appana Durga Kedareswara Rao 2020-01-24 2705
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2706 /**
2be586205ca2b8 Srikanth Thokala 2015-05-05 2707 * axienet_probe - Axi Ethernet probe function.
95219aa538e11d Srikanth Thokala 2015-05-05 2708 * @pdev: Pointer to platform device structure.
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2709 *
b0d081c524b46c Michal Simek 2015-05-05 2710 * Return: 0, on success
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2711 * Non-zero error value on failure.
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2712 *
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2713 * This is the probe routine for Axi Ethernet driver. This is called before
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2714 * any other driver routines are invoked. It allocates and sets up the Ethernet
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2715 * device. Parses through device tree and populates fields of
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2716 * axienet_local. It registers the Ethernet device.
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2717 */
2be586205ca2b8 Srikanth Thokala 2015-05-05 2718 static int axienet_probe(struct platform_device *pdev)
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2719 {
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2720 int (*axienet_clk_init)(struct platform_device *pdev,
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2721 struct clk **axi_aclk, struct clk **axis_clk,
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2722 struct clk **ref_clk, struct clk **tmpclk) =
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2723 axienet_clk_init;
f74b2e947664be Appana Durga Kedareswara Rao 2020-01-24 2724 int ret = 0;
0f447249ba4872 Saurabh Sengar 2020-01-24 2725 #ifdef CONFIG_XILINX_AXI_EMAC_HWTSTAMP
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2726 struct device_node *np;
0f447249ba4872 Saurabh Sengar 2020-01-24 2727 #endif
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2728 struct axienet_local *lp;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2729 struct net_device *ndev;
da90e38003e2f0 Tobias Klauser 2016-12-07 2730 const void *mac_addr;
0f447249ba4872 Saurabh Sengar 2020-01-24 2731 struct resource *ethres;
8495659bf93c8e Srikanth Thokala 2015-05-05 2732 u32 value;
0f447249ba4872 Saurabh Sengar 2020-01-24 2733 u16 num_queues = XAE_MAX_QUEUES;
0f447249ba4872 Saurabh Sengar 2020-01-24 2734 bool slave = false;
0f447249ba4872 Saurabh Sengar 2020-01-24 2735
0f447249ba4872 Saurabh Sengar 2020-01-24 2736 ret = of_property_read_u16(pdev->dev.of_node, "xlnx,num-queues",
0f447249ba4872 Saurabh Sengar 2020-01-24 2737 &num_queues);
0f447249ba4872 Saurabh Sengar 2020-01-24 2738 if (ret) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2739 #ifndef CONFIG_AXIENET_HAS_MCDMA
0f447249ba4872 Saurabh Sengar 2020-01-24 2740 num_queues = 1;
0f447249ba4872 Saurabh Sengar 2020-01-24 2741 #endif
0f447249ba4872 Saurabh Sengar 2020-01-24 2742 }
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2743
0f447249ba4872 Saurabh Sengar 2020-01-24 2744 ndev = alloc_etherdev_mq(sizeof(*lp), num_queues);
41de8d4cff21a2 Joe Perches 2012-01-29 2745 if (!ndev)
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2746 return -ENOMEM;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2747
95219aa538e11d Srikanth Thokala 2015-05-05 2748 platform_set_drvdata(pdev, ndev);
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2749
95219aa538e11d Srikanth Thokala 2015-05-05 2750 SET_NETDEV_DEV(ndev, &pdev->dev);
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2751 ndev->flags &= ~IFF_MULTICAST; /* clear multicast */
28e24c62ab3062 Eric Dumazet 2013-12-02 2752 ndev->features = NETIF_F_SG;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2753 ndev->netdev_ops = &axienet_netdev_ops;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2754 ndev->ethtool_ops = &axienet_ethtool_ops;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2755
d894be57ca92c8 Jarod Wilson 2016-10-20 2756 /* MTU range: 64 - 9000 */
d894be57ca92c8 Jarod Wilson 2016-10-20 2757 ndev->min_mtu = 64;
d894be57ca92c8 Jarod Wilson 2016-10-20 2758 ndev->max_mtu = XAE_JUMBO_MTU;
d894be57ca92c8 Jarod Wilson 2016-10-20 2759
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2760 lp = netdev_priv(ndev);
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2761 lp->ndev = ndev;
95219aa538e11d Srikanth Thokala 2015-05-05 2762 lp->dev = &pdev->dev;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2763 lp->options = XAE_OPTION_DEFAULTS;
0f447249ba4872 Saurabh Sengar 2020-01-24 2764 lp->num_tx_queues = num_queues;
0f447249ba4872 Saurabh Sengar 2020-01-24 2765 lp->num_rx_queues = num_queues;
8b09ca823ffb4e Robert Hancock 2019-06-06 2766 lp->rx_bd_num = RX_BD_NUM_DEFAULT;
8b09ca823ffb4e Robert Hancock 2019-06-06 2767 lp->tx_bd_num = TX_BD_NUM_DEFAULT;
0f447249ba4872 Saurabh Sengar 2020-01-24 2768
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2769 /* Map device registers */
46aa27df885321 Srikanth Thokala 2015-05-05 2770 ethres = platform_get_resource(pdev, IORESOURCE_MEM, 0);
46aa27df885321 Srikanth Thokala 2015-05-05 2771 lp->regs = devm_ioremap_resource(&pdev->dev, ethres);
fcc028c106e575 Krzysztof Kozlowski 2015-07-09 2772 if (IS_ERR(lp->regs)) {
fcc028c106e575 Krzysztof Kozlowski 2015-07-09 2773 ret = PTR_ERR(lp->regs);
46aa27df885321 Srikanth Thokala 2015-05-05 2774 goto free_netdev;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2775 }
7fa0043d5c74c6 Robert Hancock 2019-06-11 2776 lp->regs_start = ethres->start;
46aa27df885321 Srikanth Thokala 2015-05-05 2777
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2778 /* Setup checksum offload, but default to off if not specified */
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2779 lp->features = 0;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2780
27a4863f9f2dcd Appana Durga Kedareswara Rao 2020-01-24 2781 if (pdev->dev.of_node) {
27a4863f9f2dcd Appana Durga Kedareswara Rao 2020-01-24 2782 const struct of_device_id *match;
27a4863f9f2dcd Appana Durga Kedareswara Rao 2020-01-24 2783
27a4863f9f2dcd Appana Durga Kedareswara Rao 2020-01-24 2784 match = of_match_node(axienet_of_match, pdev->dev.of_node);
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2785 if (match && match->data) {
27a4863f9f2dcd Appana Durga Kedareswara Rao 2020-01-24 2786 lp->axienet_config = match->data;
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2787 axienet_clk_init = lp->axienet_config->clk_init;
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2788 }
27a4863f9f2dcd Appana Durga Kedareswara Rao 2020-01-24 2789 }
27a4863f9f2dcd Appana Durga Kedareswara Rao 2020-01-24 2790
8495659bf93c8e Srikanth Thokala 2015-05-05 2791 ret = of_property_read_u32(pdev->dev.of_node, "xlnx,txcsum", &value);
8495659bf93c8e Srikanth Thokala 2015-05-05 2792 if (!ret) {
f74b2e947664be Appana Durga Kedareswara Rao 2020-01-24 2793 dev_info(&pdev->dev, "TX_CSUM %d\n", value);
f74b2e947664be Appana Durga Kedareswara Rao 2020-01-24 2794
8495659bf93c8e Srikanth Thokala 2015-05-05 2795 switch (value) {
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2796 case 1:
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2797 lp->csum_offload_on_tx_path =
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2798 XAE_FEATURE_PARTIAL_TX_CSUM;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2799 lp->features |= XAE_FEATURE_PARTIAL_TX_CSUM;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2800 /* Can checksum TCP/UDP over IPv4. */
f74b2e947664be Appana Durga Kedareswara Rao 2020-01-24 2801 ndev->features |= NETIF_F_IP_CSUM | NETIF_F_SG;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2802 break;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2803 case 2:
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2804 lp->csum_offload_on_tx_path =
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2805 XAE_FEATURE_FULL_TX_CSUM;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2806 lp->features |= XAE_FEATURE_FULL_TX_CSUM;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2807 /* Can checksum TCP/UDP over IPv4. */
f74b2e947664be Appana Durga Kedareswara Rao 2020-01-24 2808 ndev->features |= NETIF_F_IP_CSUM | NETIF_F_SG;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2809 break;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2810 default:
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2811 lp->csum_offload_on_tx_path = XAE_NO_CSUM_OFFLOAD;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2812 }
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2813 }
8495659bf93c8e Srikanth Thokala 2015-05-05 2814 ret = of_property_read_u32(pdev->dev.of_node, "xlnx,rxcsum", &value);
8495659bf93c8e Srikanth Thokala 2015-05-05 2815 if (!ret) {
f74b2e947664be Appana Durga Kedareswara Rao 2020-01-24 2816 dev_info(&pdev->dev, "RX_CSUM %d\n", value);
f74b2e947664be Appana Durga Kedareswara Rao 2020-01-24 2817
8495659bf93c8e Srikanth Thokala 2015-05-05 2818 switch (value) {
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2819 case 1:
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2820 lp->csum_offload_on_rx_path =
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2821 XAE_FEATURE_PARTIAL_RX_CSUM;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2822 lp->features |= XAE_FEATURE_PARTIAL_RX_CSUM;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2823 break;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2824 case 2:
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2825 lp->csum_offload_on_rx_path =
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2826 XAE_FEATURE_FULL_RX_CSUM;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2827 lp->features |= XAE_FEATURE_FULL_RX_CSUM;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2828 break;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2829 default:
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2830 lp->csum_offload_on_rx_path = XAE_NO_CSUM_OFFLOAD;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2831 }
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2832 }
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2833 /* For supporting jumbo frames, the Axi Ethernet hardware must have
f080a8c35d8932 Srikanth Thokala 2015-05-05 2834 * a larger Rx/Tx Memory. Typically, the size must be large so that
f080a8c35d8932 Srikanth Thokala 2015-05-05 2835 * we can enable jumbo option and start supporting jumbo frames.
f080a8c35d8932 Srikanth Thokala 2015-05-05 2836 * Here we check for memory allocated for Rx/Tx in the hardware from
f080a8c35d8932 Srikanth Thokala 2015-05-05 2837 * the device-tree and accordingly set flags.
f080a8c35d8932 Srikanth Thokala 2015-05-05 2838 */
8495659bf93c8e Srikanth Thokala 2015-05-05 2839 of_property_read_u32(pdev->dev.of_node, "xlnx,rxmem", &lp->rxmem);
ee06b1728b9564 Alvaro G. M 2017-07-17 2840
ee06b1728b9564 Alvaro G. M 2017-07-17 2841 /* Start with the proprietary, and broken phy_type */
ee06b1728b9564 Alvaro G. M 2017-07-17 2842 ret = of_property_read_u32(pdev->dev.of_node, "xlnx,phy-type", &value);
ee06b1728b9564 Alvaro G. M 2017-07-17 2843 if (!ret) {
ee06b1728b9564 Alvaro G. M 2017-07-17 2844 switch (value) {
ee06b1728b9564 Alvaro G. M 2017-07-17 2845 case XAE_PHY_TYPE_MII:
ee06b1728b9564 Alvaro G. M 2017-07-17 2846 lp->phy_mode = PHY_INTERFACE_MODE_MII;
ee06b1728b9564 Alvaro G. M 2017-07-17 2847 break;
ee06b1728b9564 Alvaro G. M 2017-07-17 2848 case XAE_PHY_TYPE_GMII:
ee06b1728b9564 Alvaro G. M 2017-07-17 2849 lp->phy_mode = PHY_INTERFACE_MODE_GMII;
ee06b1728b9564 Alvaro G. M 2017-07-17 2850 break;
ee06b1728b9564 Alvaro G. M 2017-07-17 2851 case XAE_PHY_TYPE_RGMII_2_0:
ee06b1728b9564 Alvaro G. M 2017-07-17 2852 lp->phy_mode = PHY_INTERFACE_MODE_RGMII_ID;
ee06b1728b9564 Alvaro G. M 2017-07-17 2853 break;
ee06b1728b9564 Alvaro G. M 2017-07-17 2854 case XAE_PHY_TYPE_SGMII:
ee06b1728b9564 Alvaro G. M 2017-07-17 2855 lp->phy_mode = PHY_INTERFACE_MODE_SGMII;
ee06b1728b9564 Alvaro G. M 2017-07-17 2856 break;
ee06b1728b9564 Alvaro G. M 2017-07-17 2857 case XAE_PHY_TYPE_1000BASE_X:
ee06b1728b9564 Alvaro G. M 2017-07-17 2858 lp->phy_mode = PHY_INTERFACE_MODE_1000BASEX;
ee06b1728b9564 Alvaro G. M 2017-07-17 2859 break;
ee06b1728b9564 Alvaro G. M 2017-07-17 2860 default:
9e8ce9d565663f Appana Durga Kedareswara Rao 2020-01-24 2861 /* Don't error out as phy-type is an optional property */
9e8ce9d565663f Appana Durga Kedareswara Rao 2020-01-24 2862 break;
ee06b1728b9564 Alvaro G. M 2017-07-17 2863 }
ee06b1728b9564 Alvaro G. M 2017-07-17 2864 } else {
ee06b1728b9564 Alvaro G. M 2017-07-17 2865 lp->phy_mode = of_get_phy_mode(pdev->dev.of_node);
73e211e11be867 Dan Carpenter 2019-09-25 2866 if ((int)lp->phy_mode < 0) {
9e8ce9d565663f Appana Durga Kedareswara Rao 2020-01-24 2867 dev_warn(&pdev->dev, "couldn't find phy i/f\n");
ee06b1728b9564 Alvaro G. M 2017-07-17 2868 }
ee06b1728b9564 Alvaro G. M 2017-07-17 2869 }
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2870
d8d52edc0088c9 Appana Durga Kedareswara Rao 2020-01-24 2871 lp->eth_hasnobuf = of_property_read_bool(pdev->dev.of_node,
d8d52edc0088c9 Appana Durga Kedareswara Rao 2020-01-24 2872 "xlnx,eth-hasnobuf");
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2873 lp->eth_hasptp = of_property_read_bool(pdev->dev.of_node,
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2874 "xlnx,eth-hasptp");
d8d52edc0088c9 Appana Durga Kedareswara Rao 2020-01-24 2875
9e8ce9d565663f Appana Durga Kedareswara Rao 2020-01-24 2876 if ((lp->axienet_config->mactype == XAXIENET_1G) && !lp->eth_hasnobuf)
9e8ce9d565663f Appana Durga Kedareswara Rao 2020-01-24 2877 lp->eth_irq = platform_get_irq(pdev, 0);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2878
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2879 #ifdef CONFIG_XILINX_AXI_EMAC_HWTSTAMP
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2880 struct resource txtsres, rxtsres;
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2881
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2882 /* Find AXI Stream FIFO */
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2883 np = of_parse_phandle(pdev->dev.of_node, "axififo-connected", 0);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2884 if (IS_ERR(np)) {
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2885 dev_err(&pdev->dev, "could not find TX Timestamp FIFO\n");
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2886 ret = PTR_ERR(np);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2887 goto free_netdev;
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2888 }
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2889
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2890 ret = of_address_to_resource(np, 0, &txtsres);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2891 if (ret) {
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2892 dev_err(&pdev->dev, "unable to get Tx Timestamp resource\n");
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2893 goto free_netdev;
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2894 }
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2895
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2896 lp->tx_ts_regs = devm_ioremap_resource(&pdev->dev, &txtsres);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2897 if (IS_ERR(lp->tx_ts_regs)) {
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2898 dev_err(&pdev->dev, "could not map Tx Timestamp regs\n");
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2899 ret = PTR_ERR(lp->tx_ts_regs);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2900 goto free_netdev;
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2901 }
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2902
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2903 if (lp->axienet_config->mactype == XAXIENET_10G_25G) {
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2904 np = of_parse_phandle(pdev->dev.of_node, "xlnx,rxtsfifo",
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2905 0);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2906 if (IS_ERR(np)) {
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2907 dev_err(&pdev->dev,
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2908 "couldn't find rx-timestamp FIFO\n");
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2909 ret = PTR_ERR(np);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2910 goto free_netdev;
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2911 }
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2912
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2913 ret = of_address_to_resource(np, 0, &rxtsres);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2914 if (ret) {
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2915 dev_err(&pdev->dev,
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2916 "unable to get rx-timestamp resource\n");
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2917 goto free_netdev;
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2918 }
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2919
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2920 lp->rx_ts_regs = devm_ioremap_resource(&pdev->dev, &rxtsres);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2921 if (IS_ERR(lp->rx_ts_regs)) {
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2922 dev_err(&pdev->dev, "couldn't map rx-timestamp regs\n");
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2923 ret = PTR_ERR(lp->rx_ts_regs);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2924 goto free_netdev;
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2925 }
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2926 lp->tx_ptpheader = devm_kzalloc(&pdev->dev,
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2927 XXVENET_TS_HEADER_LEN,
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2928 GFP_KERNEL);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2929 }
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2930
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2931 of_node_put(np);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24 2932 #endif
0f447249ba4872 Saurabh Sengar 2020-01-24 2933 if (!slave) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2934 #ifdef CONFIG_AXIENET_HAS_MCDMA
0f447249ba4872 Saurabh Sengar 2020-01-24 2935 ret = axienet_mcdma_probe(pdev, lp, ndev);
0f447249ba4872 Saurabh Sengar 2020-01-24 2936 #else
0f447249ba4872 Saurabh Sengar 2020-01-24 2937 ret = axienet_dma_probe(pdev, ndev);
0f447249ba4872 Saurabh Sengar 2020-01-24 2938 #endif
b482f0a0aa9973 Radhey Shyam Pandey 2020-01-24 2939 if (ret) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2940 pr_err("Getting DMA resource failed\n");
46aa27df885321 Srikanth Thokala 2015-05-05 2941 goto free_netdev;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2942 }
9e8ce9d565663f Appana Durga Kedareswara Rao 2020-01-24 2943
0f447249ba4872 Saurabh Sengar 2020-01-24 2944 if (dma_set_mask_and_coherent(lp->dev, DMA_BIT_MASK(lp->dma_mask)) != 0) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2945 dev_warn(&pdev->dev, "default to %d-bit dma mask\n", XAE_DMA_MASK_MIN);
0f447249ba4872 Saurabh Sengar 2020-01-24 2946 if (dma_set_mask_and_coherent(lp->dev, DMA_BIT_MASK(XAE_DMA_MASK_MIN)) != 0) {
0f447249ba4872 Saurabh Sengar 2020-01-24 2947 dev_err(&pdev->dev, "dma_set_mask_and_coherent failed, aborting\n");
46aa27df885321 Srikanth Thokala 2015-05-05 @2948 goto free_netdev;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2949 }
0f447249ba4872 Saurabh Sengar 2020-01-24 2950 }
57b6ef54c85dd8 Appana Durga Kedareswara Rao 2020-01-24 2951
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2952 ret = axienet_dma_clk_init(pdev);
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2953 if (ret) {
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2954 if (ret != -EPROBE_DEFER)
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2955 dev_err(&pdev->dev, "DMA clock init failed %d\n", ret);
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2956 goto free_netdev;
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2957 }
0f447249ba4872 Saurabh Sengar 2020-01-24 2958 }
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2959
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2960 ret = axienet_clk_init(pdev, &lp->aclk, &lp->eth_sclk,
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2961 &lp->eth_refclk, &lp->eth_dclk);
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2962 if (ret) {
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2963 if (ret != -EPROBE_DEFER)
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2964 dev_err(&pdev->dev, "Ethernet clock init failed %d\n", ret);
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2965 goto err_disable_clk;
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2966 }
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24 2967
0f447249ba4872 Saurabh Sengar 2020-01-24 2968 lp->eth_irq = platform_get_irq(pdev, 0);
0f447249ba4872 Saurabh Sengar 2020-01-24 2969 /* Check for Ethernet core IRQ (optional) */
0f447249ba4872 Saurabh Sengar 2020-01-24 2970 if (lp->eth_irq <= 0)
0f447249ba4872 Saurabh Sengar 2020-01-24 2971 dev_info(&pdev->dev, "Ethernet core IRQ not defined\n");
0f447249ba4872 Saurabh Sengar 2020-01-24 2972
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2973 /* Retrieve the MAC address */
da90e38003e2f0 Tobias Klauser 2016-12-07 2974 mac_addr = of_get_mac_address(pdev->dev.of_node);
a51645f70f6384 Petr Štetiar 2019-05-06 2975 if (IS_ERR(mac_addr)) {
d05a9ed5c3a773 Robert Hancock 2019-06-06 2976 dev_warn(&pdev->dev, "could not find MAC address property: %ld\n",
d05a9ed5c3a773 Robert Hancock 2019-06-06 2977 PTR_ERR(mac_addr));
d05a9ed5c3a773 Robert Hancock 2019-06-06 2978 mac_addr = NULL;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2979 }
da90e38003e2f0 Tobias Klauser 2016-12-07 2980 axienet_set_mac_address(ndev, mac_addr);
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2981
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2982 lp->coalesce_count_rx = XAXIDMA_DFT_RX_THRESHOLD;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2983 lp->coalesce_count_tx = XAXIDMA_DFT_TX_THRESHOLD;
8a3b7a252dca9f Daniel Borkmann 2012-01-19 2984
95219aa538e11d Srikanth Thokala 2015-05-05 2985 lp->phy_node = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0);
46aa27df885321 Srikanth Thokala 2015-05-05 2986 if (lp->phy_node) {
09a0354cadec26 Robert Hancock 2019-06-06 2987 lp->clk = devm_clk_get(&pdev->dev, NULL);
09a0354cadec26 Robert Hancock 2019-06-06 2988 if (IS_ERR(lp->clk)) {
09a0354cadec26 Robert Hancock 2019-06-06 2989 dev_warn(&pdev->dev, "Failed to get clock: %ld\n",
09a0354cadec26 Robert Hancock 2019-06-06 2990 PTR_ERR(lp->clk));
09a0354cadec26 Robert Hancock 2019-06-06 2991 lp->clk = NULL;
09a0354cadec26 Robert Hancock 2019-06-06 2992 } else {
09a0354cadec26 Robert Hancock 2019-06-06 2993 ret = clk_prepare_enable(lp->clk);
09a0354cadec26 Robert Hancock 2019-06-06 2994 if (ret) {
09a0354cadec26 Robert Hancock 2019-06-06 2995 dev_err(&pdev->dev, "Unable to enable clock: %d\n",
09a0354cadec26 Robert Hancock 2019-06-06 2996 ret);
09a0354cadec26 Robert Hancock 2019-06-06 2997 goto free_netdev;
09a0354cadec26 Robert Hancock 2019-06-06 2998 }
09a0354cadec26 Robert Hancock 2019-06-06 2999 }
09a0354cadec26 Robert Hancock 2019-06-06 3000
09a0354cadec26 Robert Hancock 2019-06-06 3001 ret = axienet_mdio_setup(lp);
8a3b7a252dca9f Daniel Borkmann 2012-01-19 3002 if (ret)
09a0354cadec26 Robert Hancock 2019-06-06 3003 dev_warn(&pdev->dev,
09a0354cadec26 Robert Hancock 2019-06-06 3004 "error registering MDIO bus: %d\n", ret);
8a3b7a252dca9f Daniel Borkmann 2012-01-19 3005
f5203a3d9b25fa Robert Hancock 2019-06-06 3006 lp->phylink_config.dev = &ndev->dev;
f5203a3d9b25fa Robert Hancock 2019-06-06 3007 lp->phylink_config.type = PHYLINK_NETDEV;
f5203a3d9b25fa Robert Hancock 2019-06-06 3008
f5203a3d9b25fa Robert Hancock 2019-06-06 3009 lp->phylink = phylink_create(&lp->phylink_config, pdev->dev.fwnode,
f5203a3d9b25fa Robert Hancock 2019-06-06 3010 lp->phy_mode,
f5203a3d9b25fa Robert Hancock 2019-06-06 3011 &axienet_phylink_ops);
f5203a3d9b25fa Robert Hancock 2019-06-06 3012 if (IS_ERR(lp->phylink)) {
f5203a3d9b25fa Robert Hancock 2019-06-06 3013 ret = PTR_ERR(lp->phylink);
f5203a3d9b25fa Robert Hancock 2019-06-06 3014 dev_err(&pdev->dev, "phylink_create error (%i)\n", ret);
f5203a3d9b25fa Robert Hancock 2019-06-06 3015 goto free_netdev;
f5203a3d9b25fa Robert Hancock 2019-06-06 3016 }
73308b8fbe6790 Appana Durga Kedareswara Rao 2020-01-24 3017 }
f5203a3d9b25fa Robert Hancock 2019-06-06 3018
:::::: The code at line 2948 was first introduced by commit
:::::: 46aa27df88532146974628602b6f5cc587422388 net: axienet: Use devm_* calls
:::::: TO: Srikanth Thokala <srikanth.thokala@xilinx.com>
:::::: CC: David S. Miller <davem@davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34786 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-02-10 12:12 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-10 12:10 [xlnx:master 9663/10510] drivers/net/ethernet/xilinx/xilinx_axienet_main.c:2948 axienet_probe() warn: missing error code 'ret' Dan Carpenter
2021-02-10 12:10 ` Dan Carpenter
2021-02-10 12:10 ` Dan Carpenter
-- strict thread matches above, loose matches on Subject: below --
2021-02-10 10:13 kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.