From: kernel test robot <lkp@intel.com>
To: Qing Wang <wangqing@vivo.com>,
Madalin Bucur <madalin.bucur@nxp.com>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
linux-kernel@vger.kernel.org
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
netdev@vger.kernel.org, Wang Qing <wangqing@vivo.com>
Subject: Re: [PATCH] ethernet: fman: add missing put_device() call in fman_port_probe()
Date: Wed, 8 Dec 2021 04:36:05 +0800 [thread overview]
Message-ID: <202112080417.7Js3IaI3-lkp@intel.com> (raw)
In-Reply-To: <1638881746-3215-1-git-send-email-wangqing@vivo.com>
Hi Qing,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on net-next/master]
[also build test WARNING on net/master horms-ipvs/master linus/master v5.16-rc4 next-20211207]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Qing-Wang/ethernet-fman-add-missing-put_device-call-in-fman_port_probe/20211207-210146
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 1c5526968e270e4efccfa1da21d211a4915cdeda
config: hexagon-buildonly-randconfig-r005-20211207 (https://download.01.org/0day-ci/archive/20211208/202112080417.7Js3IaI3-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 097a1cb1d5ebb3a0ec4bcaed8ba3ff6a8e33c00a)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/72dfcb1946c5b8a0eca2806c574922ebbd990b49
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Qing-Wang/ethernet-fman-add-missing-put_device-call-in-fman_port_probe/20211207-210146
git checkout 72dfcb1946c5b8a0eca2806c574922ebbd990b49
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/net/ethernet/freescale/fman/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> drivers/net/ethernet/freescale/fman/fman_port.c:1903:1: warning: unused label 'free_port' [-Wunused-label]
free_port:
^~~~~~~~~~
1 warning generated.
vim +/free_port +1903 drivers/net/ethernet/freescale/fman/fman_port.c
880f874cf50568 Yangbo Lu 2018-06-25 1767
18a6c85fcc78dd Igal Liberman 2015-12-21 1768 static int fman_port_probe(struct platform_device *of_dev)
18a6c85fcc78dd Igal Liberman 2015-12-21 1769 {
18a6c85fcc78dd Igal Liberman 2015-12-21 1770 struct fman_port *port;
18a6c85fcc78dd Igal Liberman 2015-12-21 1771 struct fman *fman;
18a6c85fcc78dd Igal Liberman 2015-12-21 1772 struct device_node *fm_node, *port_node;
0572054617f326 Florinel Iordache 2020-08-03 1773 struct platform_device *fm_pdev;
18a6c85fcc78dd Igal Liberman 2015-12-21 1774 struct resource res;
18a6c85fcc78dd Igal Liberman 2015-12-21 1775 struct resource *dev_res;
537a31658f8a01 Madalin Bucur 2016-05-16 1776 u32 val;
18a6c85fcc78dd Igal Liberman 2015-12-21 1777 int err = 0, lenp;
18a6c85fcc78dd Igal Liberman 2015-12-21 1778 enum fman_port_type port_type;
18a6c85fcc78dd Igal Liberman 2015-12-21 1779 u16 port_speed;
18a6c85fcc78dd Igal Liberman 2015-12-21 1780 u8 port_id;
18a6c85fcc78dd Igal Liberman 2015-12-21 1781
18a6c85fcc78dd Igal Liberman 2015-12-21 1782 port = kzalloc(sizeof(*port), GFP_KERNEL);
18a6c85fcc78dd Igal Liberman 2015-12-21 1783 if (!port)
18a6c85fcc78dd Igal Liberman 2015-12-21 1784 return -ENOMEM;
18a6c85fcc78dd Igal Liberman 2015-12-21 1785
18a6c85fcc78dd Igal Liberman 2015-12-21 1786 port->dev = &of_dev->dev;
18a6c85fcc78dd Igal Liberman 2015-12-21 1787
18a6c85fcc78dd Igal Liberman 2015-12-21 1788 port_node = of_node_get(of_dev->dev.of_node);
18a6c85fcc78dd Igal Liberman 2015-12-21 1789
18a6c85fcc78dd Igal Liberman 2015-12-21 1790 /* Get the FM node */
18a6c85fcc78dd Igal Liberman 2015-12-21 1791 fm_node = of_get_parent(port_node);
18a6c85fcc78dd Igal Liberman 2015-12-21 1792 if (!fm_node) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1793 dev_err(port->dev, "%s: of_get_parent() failed\n", __func__);
18a6c85fcc78dd Igal Liberman 2015-12-21 1794 err = -ENODEV;
72dfcb1946c5b8 Wang Qing 2021-12-07 1795 goto return_of_node_put;
18a6c85fcc78dd Igal Liberman 2015-12-21 1796 }
18a6c85fcc78dd Igal Liberman 2015-12-21 1797
0572054617f326 Florinel Iordache 2020-08-03 1798 fm_pdev = of_find_device_by_node(fm_node);
18a6c85fcc78dd Igal Liberman 2015-12-21 1799 of_node_put(fm_node);
0572054617f326 Florinel Iordache 2020-08-03 1800 if (!fm_pdev) {
0572054617f326 Florinel Iordache 2020-08-03 1801 err = -EINVAL;
72dfcb1946c5b8 Wang Qing 2021-12-07 1802 goto return_of_node_put;
0572054617f326 Florinel Iordache 2020-08-03 1803 }
0572054617f326 Florinel Iordache 2020-08-03 1804
0572054617f326 Florinel Iordache 2020-08-03 1805 fman = dev_get_drvdata(&fm_pdev->dev);
18a6c85fcc78dd Igal Liberman 2015-12-21 1806 if (!fman) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1807 err = -EINVAL;
72dfcb1946c5b8 Wang Qing 2021-12-07 1808 goto return_of_put_device;
18a6c85fcc78dd Igal Liberman 2015-12-21 1809 }
18a6c85fcc78dd Igal Liberman 2015-12-21 1810
537a31658f8a01 Madalin Bucur 2016-05-16 1811 err = of_property_read_u32(port_node, "cell-index", &val);
537a31658f8a01 Madalin Bucur 2016-05-16 1812 if (err) {
f7ce91038d5278 Rob Herring 2017-07-18 1813 dev_err(port->dev, "%s: reading cell-index for %pOF failed\n",
f7ce91038d5278 Rob Herring 2017-07-18 1814 __func__, port_node);
18a6c85fcc78dd Igal Liberman 2015-12-21 1815 err = -EINVAL;
72dfcb1946c5b8 Wang Qing 2021-12-07 1816 goto return_of_put_device;
18a6c85fcc78dd Igal Liberman 2015-12-21 1817 }
537a31658f8a01 Madalin Bucur 2016-05-16 1818 port_id = (u8)val;
18a6c85fcc78dd Igal Liberman 2015-12-21 1819 port->dts_params.id = port_id;
18a6c85fcc78dd Igal Liberman 2015-12-21 1820
18a6c85fcc78dd Igal Liberman 2015-12-21 1821 if (of_device_is_compatible(port_node, "fsl,fman-v3-port-tx")) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1822 port_type = FMAN_PORT_TYPE_TX;
18a6c85fcc78dd Igal Liberman 2015-12-21 1823 port_speed = 1000;
537a31658f8a01 Madalin Bucur 2016-05-16 1824 if (of_find_property(port_node, "fsl,fman-10g-port", &lenp))
18a6c85fcc78dd Igal Liberman 2015-12-21 1825 port_speed = 10000;
18a6c85fcc78dd Igal Liberman 2015-12-21 1826
18a6c85fcc78dd Igal Liberman 2015-12-21 1827 } else if (of_device_is_compatible(port_node, "fsl,fman-v2-port-tx")) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1828 if (port_id >= TX_10G_PORT_BASE)
18a6c85fcc78dd Igal Liberman 2015-12-21 1829 port_speed = 10000;
18a6c85fcc78dd Igal Liberman 2015-12-21 1830 else
18a6c85fcc78dd Igal Liberman 2015-12-21 1831 port_speed = 1000;
18a6c85fcc78dd Igal Liberman 2015-12-21 1832 port_type = FMAN_PORT_TYPE_TX;
18a6c85fcc78dd Igal Liberman 2015-12-21 1833
18a6c85fcc78dd Igal Liberman 2015-12-21 1834 } else if (of_device_is_compatible(port_node, "fsl,fman-v3-port-rx")) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1835 port_type = FMAN_PORT_TYPE_RX;
18a6c85fcc78dd Igal Liberman 2015-12-21 1836 port_speed = 1000;
537a31658f8a01 Madalin Bucur 2016-05-16 1837 if (of_find_property(port_node, "fsl,fman-10g-port", &lenp))
18a6c85fcc78dd Igal Liberman 2015-12-21 1838 port_speed = 10000;
18a6c85fcc78dd Igal Liberman 2015-12-21 1839
18a6c85fcc78dd Igal Liberman 2015-12-21 1840 } else if (of_device_is_compatible(port_node, "fsl,fman-v2-port-rx")) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1841 if (port_id >= RX_10G_PORT_BASE)
18a6c85fcc78dd Igal Liberman 2015-12-21 1842 port_speed = 10000;
18a6c85fcc78dd Igal Liberman 2015-12-21 1843 else
18a6c85fcc78dd Igal Liberman 2015-12-21 1844 port_speed = 1000;
18a6c85fcc78dd Igal Liberman 2015-12-21 1845 port_type = FMAN_PORT_TYPE_RX;
18a6c85fcc78dd Igal Liberman 2015-12-21 1846
18a6c85fcc78dd Igal Liberman 2015-12-21 1847 } else {
18a6c85fcc78dd Igal Liberman 2015-12-21 1848 dev_err(port->dev, "%s: Illegal port type\n", __func__);
18a6c85fcc78dd Igal Liberman 2015-12-21 1849 err = -EINVAL;
72dfcb1946c5b8 Wang Qing 2021-12-07 1850 goto return_of_put_device;
18a6c85fcc78dd Igal Liberman 2015-12-21 1851 }
18a6c85fcc78dd Igal Liberman 2015-12-21 1852
18a6c85fcc78dd Igal Liberman 2015-12-21 1853 port->dts_params.type = port_type;
18a6c85fcc78dd Igal Liberman 2015-12-21 1854 port->dts_params.speed = port_speed;
18a6c85fcc78dd Igal Liberman 2015-12-21 1855
18a6c85fcc78dd Igal Liberman 2015-12-21 1856 if (port_type == FMAN_PORT_TYPE_TX) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1857 u32 qman_channel_id;
18a6c85fcc78dd Igal Liberman 2015-12-21 1858
18a6c85fcc78dd Igal Liberman 2015-12-21 1859 qman_channel_id = fman_get_qman_channel_id(fman, port_id);
18a6c85fcc78dd Igal Liberman 2015-12-21 1860 if (qman_channel_id == 0) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1861 dev_err(port->dev, "%s: incorrect qman-channel-id\n",
18a6c85fcc78dd Igal Liberman 2015-12-21 1862 __func__);
18a6c85fcc78dd Igal Liberman 2015-12-21 1863 err = -EINVAL;
72dfcb1946c5b8 Wang Qing 2021-12-07 1864 goto return_of_put_device;
18a6c85fcc78dd Igal Liberman 2015-12-21 1865 }
18a6c85fcc78dd Igal Liberman 2015-12-21 1866 port->dts_params.qman_channel_id = qman_channel_id;
18a6c85fcc78dd Igal Liberman 2015-12-21 1867 }
18a6c85fcc78dd Igal Liberman 2015-12-21 1868
18a6c85fcc78dd Igal Liberman 2015-12-21 1869 err = of_address_to_resource(port_node, 0, &res);
18a6c85fcc78dd Igal Liberman 2015-12-21 1870 if (err < 0) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1871 dev_err(port->dev, "%s: of_address_to_resource() failed\n",
18a6c85fcc78dd Igal Liberman 2015-12-21 1872 __func__);
18a6c85fcc78dd Igal Liberman 2015-12-21 1873 err = -ENOMEM;
72dfcb1946c5b8 Wang Qing 2021-12-07 1874 goto return_of_put_device;
18a6c85fcc78dd Igal Liberman 2015-12-21 1875 }
18a6c85fcc78dd Igal Liberman 2015-12-21 1876
18a6c85fcc78dd Igal Liberman 2015-12-21 1877 port->dts_params.fman = fman;
18a6c85fcc78dd Igal Liberman 2015-12-21 1878
18a6c85fcc78dd Igal Liberman 2015-12-21 1879 dev_res = __devm_request_region(port->dev, &res, res.start,
18a6c85fcc78dd Igal Liberman 2015-12-21 1880 resource_size(&res), "fman-port");
18a6c85fcc78dd Igal Liberman 2015-12-21 1881 if (!dev_res) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1882 dev_err(port->dev, "%s: __devm_request_region() failed\n",
18a6c85fcc78dd Igal Liberman 2015-12-21 1883 __func__);
18a6c85fcc78dd Igal Liberman 2015-12-21 1884 err = -EINVAL;
72dfcb1946c5b8 Wang Qing 2021-12-07 1885 goto return_of_put_device;
18a6c85fcc78dd Igal Liberman 2015-12-21 1886 }
18a6c85fcc78dd Igal Liberman 2015-12-21 1887
18a6c85fcc78dd Igal Liberman 2015-12-21 1888 port->dts_params.base_addr = devm_ioremap(port->dev, res.start,
18a6c85fcc78dd Igal Liberman 2015-12-21 1889 resource_size(&res));
5df6f7fa47e030 Madalin Bucur 2016-03-22 1890 if (!port->dts_params.base_addr)
18a6c85fcc78dd Igal Liberman 2015-12-21 1891 dev_err(port->dev, "%s: devm_ioremap() failed\n", __func__);
18a6c85fcc78dd Igal Liberman 2015-12-21 1892
72dfcb1946c5b8 Wang Qing 2021-12-07 1893 of_node_put(port_node);
72dfcb1946c5b8 Wang Qing 2021-12-07 1894
18a6c85fcc78dd Igal Liberman 2015-12-21 1895 dev_set_drvdata(&of_dev->dev, port);
18a6c85fcc78dd Igal Liberman 2015-12-21 1896
18a6c85fcc78dd Igal Liberman 2015-12-21 1897 return 0;
18a6c85fcc78dd Igal Liberman 2015-12-21 1898
72dfcb1946c5b8 Wang Qing 2021-12-07 1899 return_of_put_device:
72dfcb1946c5b8 Wang Qing 2021-12-07 1900 put_device(&fm_pdev->dev);
72dfcb1946c5b8 Wang Qing 2021-12-07 1901 return_of_node_put:
18a6c85fcc78dd Igal Liberman 2015-12-21 1902 of_node_put(port_node);
18a6c85fcc78dd Igal Liberman 2015-12-21 @1903 free_port:
18a6c85fcc78dd Igal Liberman 2015-12-21 1904 kfree(port);
18a6c85fcc78dd Igal Liberman 2015-12-21 1905 return err;
18a6c85fcc78dd Igal Liberman 2015-12-21 1906 }
18a6c85fcc78dd Igal Liberman 2015-12-21 1907
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH] ethernet: fman: add missing put_device() call in fman_port_probe()
Date: Wed, 08 Dec 2021 04:36:05 +0800 [thread overview]
Message-ID: <202112080417.7Js3IaI3-lkp@intel.com> (raw)
In-Reply-To: <1638881746-3215-1-git-send-email-wangqing@vivo.com>
[-- Attachment #1: Type: text/plain, Size: 12904 bytes --]
Hi Qing,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on net-next/master]
[also build test WARNING on net/master horms-ipvs/master linus/master v5.16-rc4 next-20211207]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Qing-Wang/ethernet-fman-add-missing-put_device-call-in-fman_port_probe/20211207-210146
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 1c5526968e270e4efccfa1da21d211a4915cdeda
config: hexagon-buildonly-randconfig-r005-20211207 (https://download.01.org/0day-ci/archive/20211208/202112080417.7Js3IaI3-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 097a1cb1d5ebb3a0ec4bcaed8ba3ff6a8e33c00a)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/72dfcb1946c5b8a0eca2806c574922ebbd990b49
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Qing-Wang/ethernet-fman-add-missing-put_device-call-in-fman_port_probe/20211207-210146
git checkout 72dfcb1946c5b8a0eca2806c574922ebbd990b49
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/net/ethernet/freescale/fman/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> drivers/net/ethernet/freescale/fman/fman_port.c:1903:1: warning: unused label 'free_port' [-Wunused-label]
free_port:
^~~~~~~~~~
1 warning generated.
vim +/free_port +1903 drivers/net/ethernet/freescale/fman/fman_port.c
880f874cf50568 Yangbo Lu 2018-06-25 1767
18a6c85fcc78dd Igal Liberman 2015-12-21 1768 static int fman_port_probe(struct platform_device *of_dev)
18a6c85fcc78dd Igal Liberman 2015-12-21 1769 {
18a6c85fcc78dd Igal Liberman 2015-12-21 1770 struct fman_port *port;
18a6c85fcc78dd Igal Liberman 2015-12-21 1771 struct fman *fman;
18a6c85fcc78dd Igal Liberman 2015-12-21 1772 struct device_node *fm_node, *port_node;
0572054617f326 Florinel Iordache 2020-08-03 1773 struct platform_device *fm_pdev;
18a6c85fcc78dd Igal Liberman 2015-12-21 1774 struct resource res;
18a6c85fcc78dd Igal Liberman 2015-12-21 1775 struct resource *dev_res;
537a31658f8a01 Madalin Bucur 2016-05-16 1776 u32 val;
18a6c85fcc78dd Igal Liberman 2015-12-21 1777 int err = 0, lenp;
18a6c85fcc78dd Igal Liberman 2015-12-21 1778 enum fman_port_type port_type;
18a6c85fcc78dd Igal Liberman 2015-12-21 1779 u16 port_speed;
18a6c85fcc78dd Igal Liberman 2015-12-21 1780 u8 port_id;
18a6c85fcc78dd Igal Liberman 2015-12-21 1781
18a6c85fcc78dd Igal Liberman 2015-12-21 1782 port = kzalloc(sizeof(*port), GFP_KERNEL);
18a6c85fcc78dd Igal Liberman 2015-12-21 1783 if (!port)
18a6c85fcc78dd Igal Liberman 2015-12-21 1784 return -ENOMEM;
18a6c85fcc78dd Igal Liberman 2015-12-21 1785
18a6c85fcc78dd Igal Liberman 2015-12-21 1786 port->dev = &of_dev->dev;
18a6c85fcc78dd Igal Liberman 2015-12-21 1787
18a6c85fcc78dd Igal Liberman 2015-12-21 1788 port_node = of_node_get(of_dev->dev.of_node);
18a6c85fcc78dd Igal Liberman 2015-12-21 1789
18a6c85fcc78dd Igal Liberman 2015-12-21 1790 /* Get the FM node */
18a6c85fcc78dd Igal Liberman 2015-12-21 1791 fm_node = of_get_parent(port_node);
18a6c85fcc78dd Igal Liberman 2015-12-21 1792 if (!fm_node) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1793 dev_err(port->dev, "%s: of_get_parent() failed\n", __func__);
18a6c85fcc78dd Igal Liberman 2015-12-21 1794 err = -ENODEV;
72dfcb1946c5b8 Wang Qing 2021-12-07 1795 goto return_of_node_put;
18a6c85fcc78dd Igal Liberman 2015-12-21 1796 }
18a6c85fcc78dd Igal Liberman 2015-12-21 1797
0572054617f326 Florinel Iordache 2020-08-03 1798 fm_pdev = of_find_device_by_node(fm_node);
18a6c85fcc78dd Igal Liberman 2015-12-21 1799 of_node_put(fm_node);
0572054617f326 Florinel Iordache 2020-08-03 1800 if (!fm_pdev) {
0572054617f326 Florinel Iordache 2020-08-03 1801 err = -EINVAL;
72dfcb1946c5b8 Wang Qing 2021-12-07 1802 goto return_of_node_put;
0572054617f326 Florinel Iordache 2020-08-03 1803 }
0572054617f326 Florinel Iordache 2020-08-03 1804
0572054617f326 Florinel Iordache 2020-08-03 1805 fman = dev_get_drvdata(&fm_pdev->dev);
18a6c85fcc78dd Igal Liberman 2015-12-21 1806 if (!fman) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1807 err = -EINVAL;
72dfcb1946c5b8 Wang Qing 2021-12-07 1808 goto return_of_put_device;
18a6c85fcc78dd Igal Liberman 2015-12-21 1809 }
18a6c85fcc78dd Igal Liberman 2015-12-21 1810
537a31658f8a01 Madalin Bucur 2016-05-16 1811 err = of_property_read_u32(port_node, "cell-index", &val);
537a31658f8a01 Madalin Bucur 2016-05-16 1812 if (err) {
f7ce91038d5278 Rob Herring 2017-07-18 1813 dev_err(port->dev, "%s: reading cell-index for %pOF failed\n",
f7ce91038d5278 Rob Herring 2017-07-18 1814 __func__, port_node);
18a6c85fcc78dd Igal Liberman 2015-12-21 1815 err = -EINVAL;
72dfcb1946c5b8 Wang Qing 2021-12-07 1816 goto return_of_put_device;
18a6c85fcc78dd Igal Liberman 2015-12-21 1817 }
537a31658f8a01 Madalin Bucur 2016-05-16 1818 port_id = (u8)val;
18a6c85fcc78dd Igal Liberman 2015-12-21 1819 port->dts_params.id = port_id;
18a6c85fcc78dd Igal Liberman 2015-12-21 1820
18a6c85fcc78dd Igal Liberman 2015-12-21 1821 if (of_device_is_compatible(port_node, "fsl,fman-v3-port-tx")) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1822 port_type = FMAN_PORT_TYPE_TX;
18a6c85fcc78dd Igal Liberman 2015-12-21 1823 port_speed = 1000;
537a31658f8a01 Madalin Bucur 2016-05-16 1824 if (of_find_property(port_node, "fsl,fman-10g-port", &lenp))
18a6c85fcc78dd Igal Liberman 2015-12-21 1825 port_speed = 10000;
18a6c85fcc78dd Igal Liberman 2015-12-21 1826
18a6c85fcc78dd Igal Liberman 2015-12-21 1827 } else if (of_device_is_compatible(port_node, "fsl,fman-v2-port-tx")) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1828 if (port_id >= TX_10G_PORT_BASE)
18a6c85fcc78dd Igal Liberman 2015-12-21 1829 port_speed = 10000;
18a6c85fcc78dd Igal Liberman 2015-12-21 1830 else
18a6c85fcc78dd Igal Liberman 2015-12-21 1831 port_speed = 1000;
18a6c85fcc78dd Igal Liberman 2015-12-21 1832 port_type = FMAN_PORT_TYPE_TX;
18a6c85fcc78dd Igal Liberman 2015-12-21 1833
18a6c85fcc78dd Igal Liberman 2015-12-21 1834 } else if (of_device_is_compatible(port_node, "fsl,fman-v3-port-rx")) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1835 port_type = FMAN_PORT_TYPE_RX;
18a6c85fcc78dd Igal Liberman 2015-12-21 1836 port_speed = 1000;
537a31658f8a01 Madalin Bucur 2016-05-16 1837 if (of_find_property(port_node, "fsl,fman-10g-port", &lenp))
18a6c85fcc78dd Igal Liberman 2015-12-21 1838 port_speed = 10000;
18a6c85fcc78dd Igal Liberman 2015-12-21 1839
18a6c85fcc78dd Igal Liberman 2015-12-21 1840 } else if (of_device_is_compatible(port_node, "fsl,fman-v2-port-rx")) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1841 if (port_id >= RX_10G_PORT_BASE)
18a6c85fcc78dd Igal Liberman 2015-12-21 1842 port_speed = 10000;
18a6c85fcc78dd Igal Liberman 2015-12-21 1843 else
18a6c85fcc78dd Igal Liberman 2015-12-21 1844 port_speed = 1000;
18a6c85fcc78dd Igal Liberman 2015-12-21 1845 port_type = FMAN_PORT_TYPE_RX;
18a6c85fcc78dd Igal Liberman 2015-12-21 1846
18a6c85fcc78dd Igal Liberman 2015-12-21 1847 } else {
18a6c85fcc78dd Igal Liberman 2015-12-21 1848 dev_err(port->dev, "%s: Illegal port type\n", __func__);
18a6c85fcc78dd Igal Liberman 2015-12-21 1849 err = -EINVAL;
72dfcb1946c5b8 Wang Qing 2021-12-07 1850 goto return_of_put_device;
18a6c85fcc78dd Igal Liberman 2015-12-21 1851 }
18a6c85fcc78dd Igal Liberman 2015-12-21 1852
18a6c85fcc78dd Igal Liberman 2015-12-21 1853 port->dts_params.type = port_type;
18a6c85fcc78dd Igal Liberman 2015-12-21 1854 port->dts_params.speed = port_speed;
18a6c85fcc78dd Igal Liberman 2015-12-21 1855
18a6c85fcc78dd Igal Liberman 2015-12-21 1856 if (port_type == FMAN_PORT_TYPE_TX) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1857 u32 qman_channel_id;
18a6c85fcc78dd Igal Liberman 2015-12-21 1858
18a6c85fcc78dd Igal Liberman 2015-12-21 1859 qman_channel_id = fman_get_qman_channel_id(fman, port_id);
18a6c85fcc78dd Igal Liberman 2015-12-21 1860 if (qman_channel_id == 0) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1861 dev_err(port->dev, "%s: incorrect qman-channel-id\n",
18a6c85fcc78dd Igal Liberman 2015-12-21 1862 __func__);
18a6c85fcc78dd Igal Liberman 2015-12-21 1863 err = -EINVAL;
72dfcb1946c5b8 Wang Qing 2021-12-07 1864 goto return_of_put_device;
18a6c85fcc78dd Igal Liberman 2015-12-21 1865 }
18a6c85fcc78dd Igal Liberman 2015-12-21 1866 port->dts_params.qman_channel_id = qman_channel_id;
18a6c85fcc78dd Igal Liberman 2015-12-21 1867 }
18a6c85fcc78dd Igal Liberman 2015-12-21 1868
18a6c85fcc78dd Igal Liberman 2015-12-21 1869 err = of_address_to_resource(port_node, 0, &res);
18a6c85fcc78dd Igal Liberman 2015-12-21 1870 if (err < 0) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1871 dev_err(port->dev, "%s: of_address_to_resource() failed\n",
18a6c85fcc78dd Igal Liberman 2015-12-21 1872 __func__);
18a6c85fcc78dd Igal Liberman 2015-12-21 1873 err = -ENOMEM;
72dfcb1946c5b8 Wang Qing 2021-12-07 1874 goto return_of_put_device;
18a6c85fcc78dd Igal Liberman 2015-12-21 1875 }
18a6c85fcc78dd Igal Liberman 2015-12-21 1876
18a6c85fcc78dd Igal Liberman 2015-12-21 1877 port->dts_params.fman = fman;
18a6c85fcc78dd Igal Liberman 2015-12-21 1878
18a6c85fcc78dd Igal Liberman 2015-12-21 1879 dev_res = __devm_request_region(port->dev, &res, res.start,
18a6c85fcc78dd Igal Liberman 2015-12-21 1880 resource_size(&res), "fman-port");
18a6c85fcc78dd Igal Liberman 2015-12-21 1881 if (!dev_res) {
18a6c85fcc78dd Igal Liberman 2015-12-21 1882 dev_err(port->dev, "%s: __devm_request_region() failed\n",
18a6c85fcc78dd Igal Liberman 2015-12-21 1883 __func__);
18a6c85fcc78dd Igal Liberman 2015-12-21 1884 err = -EINVAL;
72dfcb1946c5b8 Wang Qing 2021-12-07 1885 goto return_of_put_device;
18a6c85fcc78dd Igal Liberman 2015-12-21 1886 }
18a6c85fcc78dd Igal Liberman 2015-12-21 1887
18a6c85fcc78dd Igal Liberman 2015-12-21 1888 port->dts_params.base_addr = devm_ioremap(port->dev, res.start,
18a6c85fcc78dd Igal Liberman 2015-12-21 1889 resource_size(&res));
5df6f7fa47e030 Madalin Bucur 2016-03-22 1890 if (!port->dts_params.base_addr)
18a6c85fcc78dd Igal Liberman 2015-12-21 1891 dev_err(port->dev, "%s: devm_ioremap() failed\n", __func__);
18a6c85fcc78dd Igal Liberman 2015-12-21 1892
72dfcb1946c5b8 Wang Qing 2021-12-07 1893 of_node_put(port_node);
72dfcb1946c5b8 Wang Qing 2021-12-07 1894
18a6c85fcc78dd Igal Liberman 2015-12-21 1895 dev_set_drvdata(&of_dev->dev, port);
18a6c85fcc78dd Igal Liberman 2015-12-21 1896
18a6c85fcc78dd Igal Liberman 2015-12-21 1897 return 0;
18a6c85fcc78dd Igal Liberman 2015-12-21 1898
72dfcb1946c5b8 Wang Qing 2021-12-07 1899 return_of_put_device:
72dfcb1946c5b8 Wang Qing 2021-12-07 1900 put_device(&fm_pdev->dev);
72dfcb1946c5b8 Wang Qing 2021-12-07 1901 return_of_node_put:
18a6c85fcc78dd Igal Liberman 2015-12-21 1902 of_node_put(port_node);
18a6c85fcc78dd Igal Liberman 2015-12-21 @1903 free_port:
18a6c85fcc78dd Igal Liberman 2015-12-21 1904 kfree(port);
18a6c85fcc78dd Igal Liberman 2015-12-21 1905 return err;
18a6c85fcc78dd Igal Liberman 2015-12-21 1906 }
18a6c85fcc78dd Igal Liberman 2015-12-21 1907
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next prev parent reply other threads:[~2021-12-07 20:36 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-07 12:55 [PATCH] ethernet: fman: add missing put_device() call in fman_port_probe() Qing Wang
2021-12-07 20:36 ` kernel test robot [this message]
2021-12-07 20:36 ` kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2021-12-07 22:18 kernel test robot
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=202112080417.7Js3IaI3-lkp@intel.com \
--to=lkp@intel.com \
--cc=davem@davemloft.net \
--cc=kbuild-all@lists.01.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=madalin.bucur@nxp.com \
--cc=netdev@vger.kernel.org \
--cc=wangqing@vivo.com \
/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.