From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [xlnx:master 9663/10510] drivers/net/ethernet/xilinx/xilinx_axienet_main.c:2948 axienet_probe() warn: missing error code 'ret'
Date: Wed, 10 Feb 2021 18:13:39 +0800 [thread overview]
Message-ID: <202102101833.FrM8Jdkv-lkp@intel.com> (raw)
[-- 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 --]
next reply other threads:[~2021-02-10 10:13 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-10 10:13 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202102101833.FrM8Jdkv-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.