Re: [PATCH 3/6] v4l: async: Rename async nf functions, clean up long lines

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sakari,

I love your patch! Yet something to improve:

[auto build test ERROR on linuxtv-media/master]
[cannot apply to rockchip/for-next tegra/for-next v5.13-rc7 next-20210622]
[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/Sakari-Ailus/V4L2-driver-documentation-v4l2-async-improvements/20210622-192925
base:   git://linuxtv.org/media_tree.git master
config: arm64-randconfig-r003-20210622 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project b3634d3e88b7f26534a5057bff182b7dced584fc)
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
        # install arm64 cross compiling tool for clang build
        # apt-get install binutils-aarch64-linux-gnu
        # https://github.com/0day-ci/linux/commit/922378435e59e00aef32ba7590991f0e9b24acac
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Sakari-Ailus/V4L2-driver-documentation-v4l2-async-improvements/20210622-192925
        git checkout 922378435e59e00aef32ba7590991f0e9b24acac
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

>> drivers/media/platform/atmel/atmel-sama7g5-isc.c:511:9: error: implicit declaration of function 'v4l2_async_nf_add_fwnode_remote_subdev' [-Werror,-Wimplicit-function-declaration]
                   asd = v4l2_async_nf_add_fwnode_remote_subdev(
                         ^
   drivers/media/platform/atmel/atmel-sama7g5-isc.c:511:9: note: did you mean '__v4l2_async_nf_add_fwnode_remote'?
   include/media/v4l2-async.h:182:1: note: '__v4l2_async_nf_add_fwnode_remote' declared here
   __v4l2_async_nf_add_fwnode_remote(struct v4l2_async_notifier *notif,
   ^
>> drivers/media/platform/atmel/atmel-sama7g5-isc.c:514:6: error: expected expression
                                           struct v4l2_async_subdev);
                                           ^
   2 errors generated.


vim +/v4l2_async_nf_add_fwnode_remote_subdev +511 drivers/media/platform/atmel/atmel-sama7g5-isc.c

   373	
   374	static int microchip_xisc_probe(struct platform_device *pdev)
   375	{
   376		struct device *dev = &pdev->dev;
   377		struct isc_device *isc;
   378		struct resource *res;
   379		void __iomem *io_base;
   380		struct isc_subdev_entity *subdev_entity;
   381		int irq;
   382		int ret;
   383		u32 ver;
   384	
   385		isc = devm_kzalloc(dev, sizeof(*isc), GFP_KERNEL);
   386		if (!isc)
   387			return -ENOMEM;
   388	
   389		platform_set_drvdata(pdev, isc);
   390		isc->dev = dev;
   391	
   392		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
   393		io_base = devm_ioremap_resource(dev, res);
   394		if (IS_ERR(io_base))
   395			return PTR_ERR(io_base);
   396	
   397		isc->regmap = devm_regmap_init_mmio(dev, io_base, &isc_regmap_config);
   398		if (IS_ERR(isc->regmap)) {
   399			ret = PTR_ERR(isc->regmap);
   400			dev_err(dev, "failed to init register map: %d\n", ret);
   401			return ret;
   402		}
   403	
   404		irq = platform_get_irq(pdev, 0);
   405		if (irq < 0)
   406			return irq;
   407	
   408		ret = devm_request_irq(dev, irq, isc_interrupt, 0,
   409				       "microchip-sama7g5-xisc", isc);
   410		if (ret < 0) {
   411			dev_err(dev, "can't register ISR for IRQ %u (ret=%i)\n",
   412				irq, ret);
   413			return ret;
   414		}
   415	
   416		isc->gamma_table = isc_sama7g5_gamma_table;
   417		isc->gamma_max = 0;
   418	
   419		isc->max_width = ISC_SAMA7G5_MAX_SUPPORT_WIDTH;
   420		isc->max_height = ISC_SAMA7G5_MAX_SUPPORT_HEIGHT;
   421	
   422		isc->config_dpc = isc_sama7g5_config_dpc;
   423		isc->config_csc = isc_sama7g5_config_csc;
   424		isc->config_cbc = isc_sama7g5_config_cbc;
   425		isc->config_cc = isc_sama7g5_config_cc;
   426		isc->config_gam = isc_sama7g5_config_gam;
   427		isc->config_rlp = isc_sama7g5_config_rlp;
   428		isc->config_ctrls = isc_sama7g5_config_ctrls;
   429	
   430		isc->adapt_pipeline = isc_sama7g5_adapt_pipeline;
   431	
   432		isc->offsets.csc = ISC_SAMA7G5_CSC_OFFSET;
   433		isc->offsets.cbc = ISC_SAMA7G5_CBC_OFFSET;
   434		isc->offsets.sub422 = ISC_SAMA7G5_SUB422_OFFSET;
   435		isc->offsets.sub420 = ISC_SAMA7G5_SUB420_OFFSET;
   436		isc->offsets.rlp = ISC_SAMA7G5_RLP_OFFSET;
   437		isc->offsets.his = ISC_SAMA7G5_HIS_OFFSET;
   438		isc->offsets.dma = ISC_SAMA7G5_DMA_OFFSET;
   439		isc->offsets.version = ISC_SAMA7G5_VERSION_OFFSET;
   440		isc->offsets.his_entry = ISC_SAMA7G5_HIS_ENTRY_OFFSET;
   441	
   442		isc->controller_formats = sama7g5_controller_formats;
   443		isc->controller_formats_size = ARRAY_SIZE(sama7g5_controller_formats);
   444		isc->formats_list = sama7g5_formats_list;
   445		isc->formats_list_size = ARRAY_SIZE(sama7g5_formats_list);
   446	
   447		/* sama7g5-isc RAM access port is full AXI4 - 32 bits per beat */
   448		isc->dcfg = ISC_DCFG_YMBSIZE_BEATS32 | ISC_DCFG_CMBSIZE_BEATS32;
   449	
   450		ret = isc_pipeline_init(isc);
   451		if (ret)
   452			return ret;
   453	
   454		isc->hclock = devm_clk_get(dev, "hclock");
   455		if (IS_ERR(isc->hclock)) {
   456			ret = PTR_ERR(isc->hclock);
   457			dev_err(dev, "failed to get hclock: %d\n", ret);
   458			return ret;
   459		}
   460	
   461		ret = clk_prepare_enable(isc->hclock);
   462		if (ret) {
   463			dev_err(dev, "failed to enable hclock: %d\n", ret);
   464			return ret;
   465		}
   466	
   467		ret = isc_clk_init(isc);
   468		if (ret) {
   469			dev_err(dev, "failed to init isc clock: %d\n", ret);
   470			goto unprepare_hclk;
   471		}
   472	
   473		isc->ispck = isc->isc_clks[ISC_ISPCK].clk;
   474	
   475		ret = clk_prepare_enable(isc->ispck);
   476		if (ret) {
   477			dev_err(dev, "failed to enable ispck: %d\n", ret);
   478			goto unprepare_hclk;
   479		}
   480	
   481		/* ispck should be greater or equal to hclock */
   482		ret = clk_set_rate(isc->ispck, clk_get_rate(isc->hclock));
   483		if (ret) {
   484			dev_err(dev, "failed to set ispck rate: %d\n", ret);
   485			goto unprepare_clk;
   486		}
   487	
   488		ret = v4l2_device_register(dev, &isc->v4l2_dev);
   489		if (ret) {
   490			dev_err(dev, "unable to register v4l2 device.\n");
   491			goto unprepare_clk;
   492		}
   493	
   494		ret = xisc_parse_dt(dev, isc);
   495		if (ret) {
   496			dev_err(dev, "fail to parse device tree\n");
   497			goto unregister_v4l2_device;
   498		}
   499	
   500		if (list_empty(&isc->subdev_entities)) {
   501			dev_err(dev, "no subdev found\n");
   502			ret = -ENODEV;
   503			goto unregister_v4l2_device;
   504		}
   505	
   506		list_for_each_entry(subdev_entity, &isc->subdev_entities, list) {
   507			struct v4l2_async_subdev *asd;
   508	
   509			v4l2_async_nf_init(&subdev_entity->notifier);
   510	
 > 511			asd = v4l2_async_nf_add_fwnode_remote_subdev(
   512						&subdev_entity->notifier,
   513						of_fwnode_handle(subdev_entity->epn),
 > 514						struct v4l2_async_subdev);
   515	
   516			of_node_put(subdev_entity->epn);
   517			subdev_entity->epn = NULL;
   518	
   519			if (IS_ERR(asd)) {
   520				ret = PTR_ERR(asd);
   521				goto cleanup_subdev;
   522			}
   523	
   524			subdev_entity->notifier.ops = &isc_async_ops;
   525	
   526			ret = v4l2_async_nf_register(&isc->v4l2_dev,
   527						     &subdev_entity->notifier);
   528			if (ret) {
   529				dev_err(dev, "fail to register async notifier\n");
   530				goto cleanup_subdev;
   531			}
   532	
   533			if (video_is_registered(&isc->video_dev))
   534				break;
   535		}
   536	
   537		pm_runtime_set_active(dev);
   538		pm_runtime_enable(dev);
   539		pm_request_idle(dev);
   540	
   541		regmap_read(isc->regmap, ISC_VERSION + isc->offsets.version, &ver);
   542		dev_info(dev, "Microchip XISC version %x\n", ver);
   543	
   544		return 0;
   545	
   546	cleanup_subdev:
   547		isc_subdev_cleanup(isc);
   548	
   549	unregister_v4l2_device:
   550		v4l2_device_unregister(&isc->v4l2_dev);
   551	
   552	unprepare_clk:
   553		clk_disable_unprepare(isc->ispck);
   554	unprepare_hclk:
   555		clk_disable_unprepare(isc->hclock);
   556	
   557		isc_clk_cleanup(isc);
   558	
   559		return ret;
   560	}
   561	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux