All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.