[PATCH v1 2/3] coresight-tmc: byte-cntr: Add support for streaming interface for ETR

kernel test robot lkp at intel.com
Sat May 27 09:43:41 PDT 2023


Hi Mao,

kernel test robot noticed the following build errors:

[auto build test ERROR on robh/for-next]
[also build test ERROR on linus/master v6.4-rc3 next-20230525]
[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#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Mao-Jinlong/Coresight-Add-driver-to-support-for-CSR/20230526-233705
base:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link:    https://lore.kernel.org/r/20230526153508.6208-3-quic_jinlmao%40quicinc.com
patch subject: [PATCH v1 2/3] coresight-tmc: byte-cntr: Add support for streaming interface for ETR
config: arm-randconfig-r034-20230526 (https://download.01.org/0day-ci/archive/20230528/202305280032.8rkzzoXH-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 4faf3aaf28226a4e950c103a14f6fc1d1fdabb1b)
reproduce (this is a W=1 build):
        mkdir -p ~/bin
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # https://github.com/intel-lab-lkp/linux/commit/3c44cc3f9a93e12d206b9428b5ed959c46cf08b5
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Mao-Jinlong/Coresight-Add-driver-to-support-for-CSR/20230526-233705
        git checkout 3c44cc3f9a93e12d206b9428b5ed959c46cf08b5
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=arm olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/hwtracing/coresight/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202305280032.8rkzzoXH-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

>> drivers/hwtracing/coresight/coresight-tmc-core.c:527:9: error: call to undeclared function 'of_get_coresight_csr_name'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
                   ret = of_get_coresight_csr_name(adev->dev.of_node, &drvdata->csr_name);
                         ^
   1 error generated.
--
>> drivers/hwtracing/coresight/coresight-byte-cntr.c:139:48: error: too few arguments to function call, expected 3, have 2
           coresight_csr_set_byte_cntr(tmcdrvdata->csr, 0);
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~                   ^
   drivers/hwtracing/coresight/coresight-csr.h:53:20: note: 'coresight_csr_set_byte_cntr' declared here
   static inline void coresight_csr_set_byte_cntr(struct coresight_csr *csr, int irqctrl_offset,
                      ^
   drivers/hwtracing/coresight/coresight-byte-cntr.c:154:49: error: too few arguments to function call, expected 3, have 2
                   coresight_csr_set_byte_cntr(tmcdrvdata->csr, 0);
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~                   ^
   drivers/hwtracing/coresight/coresight-csr.h:53:20: note: 'coresight_csr_set_byte_cntr' declared here
   static inline void coresight_csr_set_byte_cntr(struct coresight_csr *csr, int irqctrl_offset,
                      ^
   drivers/hwtracing/coresight/coresight-byte-cntr.c:187:79: error: too few arguments to function call, expected 3, have 2
           coresight_csr_set_byte_cntr(tmcdrvdata->csr, (byte_cntr_data->block_size) / 8);
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                  ^
   drivers/hwtracing/coresight/coresight-csr.h:53:20: note: 'coresight_csr_set_byte_cntr' declared here
   static inline void coresight_csr_set_byte_cntr(struct coresight_csr *csr, int irqctrl_offset,
                      ^
>> drivers/hwtracing/coresight/coresight-byte-cntr.c:297:6: warning: no previous prototype for function 'byte_cntr_remove' [-Wmissing-prototypes]
   void byte_cntr_remove(struct byte_cntr *byte_cntr_data)
        ^
   drivers/hwtracing/coresight/coresight-byte-cntr.c:297:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void byte_cntr_remove(struct byte_cntr *byte_cntr_data)
   ^
   static 
   1 warning and 3 errors generated.


vim +/of_get_coresight_csr_name +527 drivers/hwtracing/coresight/coresight-tmc-core.c

   481	
   482	static int tmc_probe(struct amba_device *adev, const struct amba_id *id)
   483	{
   484		int ret = 0;
   485		u32 devid;
   486		void __iomem *base;
   487		struct device *dev = &adev->dev;
   488		struct coresight_platform_data *pdata = NULL;
   489		struct tmc_drvdata *drvdata;
   490		struct resource *res = &adev->res;
   491		struct coresight_desc desc = { 0 };
   492		struct coresight_dev_list *dev_list = NULL;
   493	
   494		ret = -ENOMEM;
   495		drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
   496		if (!drvdata)
   497			goto out;
   498	
   499		dev_set_drvdata(dev, drvdata);
   500	
   501		/* Validity for the resource is already checked by the AMBA core */
   502		base = devm_ioremap_resource(dev, res);
   503		if (IS_ERR(base)) {
   504			ret = PTR_ERR(base);
   505			goto out;
   506		}
   507	
   508		drvdata->base = base;
   509		desc.access = CSDEV_ACCESS_IOMEM(base);
   510	
   511		spin_lock_init(&drvdata->spinlock);
   512	
   513		devid = readl_relaxed(drvdata->base + CORESIGHT_DEVID);
   514		drvdata->config_type = BMVAL(devid, 6, 7);
   515		drvdata->memwidth = tmc_get_memwidth(devid);
   516		/* This device is not associated with a session */
   517		drvdata->pid = -1;
   518	
   519		if (drvdata->config_type == TMC_CONFIG_TYPE_ETR) {
   520			drvdata->size = tmc_etr_get_default_buffer_size(dev);
   521			drvdata->max_burst_size = tmc_etr_get_max_burst_size(dev);
   522		} else {
   523			drvdata->size = readl_relaxed(drvdata->base + TMC_RSZ) * 4;
   524		}
   525	
   526		if (drvdata->config_type == TMC_CONFIG_TYPE_ETR) {
 > 527			ret = of_get_coresight_csr_name(adev->dev.of_node, &drvdata->csr_name);
   528			if (ret)
   529				dev_dbg(dev, "No csr data\n");
   530			else {
   531				drvdata->csr = coresight_csr_get(drvdata->csr_name);
   532				if (IS_ERR(drvdata->csr)) {
   533					dev_dbg(dev, "failed to get csr, defer probe\n");
   534					return -EPROBE_DEFER;
   535				}
   536	
   537			}
   538	
   539		}
   540	
   541		desc.dev = dev;
   542		desc.groups = coresight_tmc_groups;
   543	
   544		switch (drvdata->config_type) {
   545		case TMC_CONFIG_TYPE_ETB:
   546			desc.type = CORESIGHT_DEV_TYPE_SINK;
   547			desc.subtype.sink_subtype = CORESIGHT_DEV_SUBTYPE_SINK_BUFFER;
   548			desc.ops = &tmc_etb_cs_ops;
   549			dev_list = &etb_devs;
   550			break;
   551		case TMC_CONFIG_TYPE_ETR:
   552			desc.type = CORESIGHT_DEV_TYPE_SINK;
   553			desc.subtype.sink_subtype = CORESIGHT_DEV_SUBTYPE_SINK_SYSMEM;
   554			desc.ops = &tmc_etr_cs_ops;
   555			ret = tmc_etr_setup_caps(dev, devid,
   556						 coresight_get_uci_data(id));
   557			if (ret)
   558				goto out;
   559			idr_init(&drvdata->idr);
   560			drvdata->byte_cntr = byte_cntr_init(adev, drvdata);
   561			mutex_init(&drvdata->idr_mutex);
   562			dev_list = &etr_devs;
   563			break;
   564		case TMC_CONFIG_TYPE_ETF:
   565			desc.type = CORESIGHT_DEV_TYPE_LINKSINK;
   566			desc.subtype.sink_subtype = CORESIGHT_DEV_SUBTYPE_SINK_BUFFER;
   567			desc.subtype.link_subtype = CORESIGHT_DEV_SUBTYPE_LINK_FIFO;
   568			desc.ops = &tmc_etf_cs_ops;
   569			dev_list = &etf_devs;
   570			break;
   571		default:
   572			pr_err("%s: Unsupported TMC config\n", desc.name);
   573			ret = -EINVAL;
   574			goto out;
   575		}
   576	
   577		desc.name = coresight_alloc_device_name(dev_list, dev);
   578		if (!desc.name) {
   579			ret = -ENOMEM;
   580			goto out;
   581		}
   582	
   583		pdata = coresight_get_platform_data(dev);
   584		if (IS_ERR(pdata)) {
   585			ret = PTR_ERR(pdata);
   586			goto out;
   587		}
   588		adev->dev.platform_data = pdata;
   589		desc.pdata = pdata;
   590	
   591		drvdata->csdev = coresight_register(&desc);
   592		if (IS_ERR(drvdata->csdev)) {
   593			ret = PTR_ERR(drvdata->csdev);
   594			goto out;
   595		}
   596	
   597		drvdata->miscdev.name = desc.name;
   598		drvdata->miscdev.minor = MISC_DYNAMIC_MINOR;
   599		drvdata->miscdev.fops = &tmc_fops;
   600		ret = misc_register(&drvdata->miscdev);
   601		if (ret)
   602			coresight_unregister(drvdata->csdev);
   603		else
   604			pm_runtime_put(&adev->dev);
   605	out:
   606		return ret;
   607	}
   608	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki



More information about the linux-arm-kernel mailing list