All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Miaoqian Lin <linmq006@gmail.com>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
	linmq006@gmail.com, Eugen Hristev <eugen.hristev@microchip.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	linux-media@vger.kernel.org,
	Nicolas Ferre <nicolas.ferre@microchip.com>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	Ludovic Desroches <ludovic.desroches@microchip.com>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] media: atmel: atmel-isc: Fix PM disable depth imbalance in atmel_isc_probe
Date: Thu, 6 Jan 2022 20:42:45 +0800	[thread overview]
Message-ID: <202201062034.BD2L4uCe-lkp@intel.com> (raw)
In-Reply-To: <20220105111056.4662-1-linmq006@gmail.com>

Hi Miaoqian,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on media-tree/master]
[also build test WARNING on v5.16-rc8 next-20220105]
[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/Miaoqian-Lin/media-atmel-atmel-isc-Fix-PM-disable-depth-imbalance-in-atmel_isc_probe/20220105-191228
base:   git://linuxtv.org/media_tree.git master
config: riscv-randconfig-r002-20220106 (https://download.01.org/0day-ci/archive/20220106/202201062034.BD2L4uCe-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project ca7ffe09dc6e525109e3cd570cc5182ce568be13)
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 riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://github.com/0day-ci/linux/commit/f116d8f81c642486900c9589a7c10d137d7eb0a2
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Miaoqian-Lin/media-atmel-atmel-isc-Fix-PM-disable-depth-imbalance-in-atmel_isc_probe/20220105-191228
        git checkout f116d8f81c642486900c9589a7c10d137d7eb0a2
        # 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=riscv SHELL=/bin/bash drivers/media/platform/atmel/ net/xfrm/

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 >>):

   In file included from drivers/media/platform/atmel/atmel-sama5d2-isc.c:30:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from ./arch/riscv/include/generated/asm/hardirq.h:1:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/riscv/include/asm/io.h:136:
   include/asm-generic/io.h:464:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __raw_readb(PCI_IOBASE + addr);
                             ~~~~~~~~~~ ^
   include/asm-generic/io.h:477:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
                                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:36:51: note: expanded from macro '__le16_to_cpu'
   #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
                                                     ^
   In file included from drivers/media/platform/atmel/atmel-sama5d2-isc.c:30:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from ./arch/riscv/include/generated/asm/hardirq.h:1:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/riscv/include/asm/io.h:136:
   include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
                                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:34:51: note: expanded from macro '__le32_to_cpu'
   #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
                                                     ^
   In file included from drivers/media/platform/atmel/atmel-sama5d2-isc.c:30:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from ./arch/riscv/include/generated/asm/hardirq.h:1:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/riscv/include/asm/io.h:136:
   include/asm-generic/io.h:501:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writeb(value, PCI_IOBASE + addr);
                               ~~~~~~~~~~ ^
   include/asm-generic/io.h:511:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
                                                         ~~~~~~~~~~ ^
   include/asm-generic/io.h:521:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
                                                         ~~~~~~~~~~ ^
   include/asm-generic/io.h:1024:55: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           return (port > MMIO_UPPER_LIMIT) ? NULL : PCI_IOBASE + port;
                                                     ~~~~~~~~~~ ^
>> drivers/media/platform/atmel/atmel-sama5d2-isc.c:562:1: warning: unused label 'disable_pm_runtime' [-Wunused-label]
   disable_pm_runtime:
   ^~~~~~~~~~~~~~~~~~~
   8 warnings generated.


vim +/disable_pm_runtime +562 drivers/media/platform/atmel/atmel-sama5d2-isc.c

   380	
   381	static int atmel_isc_probe(struct platform_device *pdev)
   382	{
   383		struct device *dev = &pdev->dev;
   384		struct isc_device *isc;
   385		struct resource *res;
   386		void __iomem *io_base;
   387		struct isc_subdev_entity *subdev_entity;
   388		int irq;
   389		int ret;
   390		u32 ver;
   391	
   392		isc = devm_kzalloc(dev, sizeof(*isc), GFP_KERNEL);
   393		if (!isc)
   394			return -ENOMEM;
   395	
   396		platform_set_drvdata(pdev, isc);
   397		isc->dev = dev;
   398	
   399		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
   400		io_base = devm_ioremap_resource(dev, res);
   401		if (IS_ERR(io_base))
   402			return PTR_ERR(io_base);
   403	
   404		isc->regmap = devm_regmap_init_mmio(dev, io_base, &isc_regmap_config);
   405		if (IS_ERR(isc->regmap)) {
   406			ret = PTR_ERR(isc->regmap);
   407			dev_err(dev, "failed to init register map: %d\n", ret);
   408			return ret;
   409		}
   410	
   411		irq = platform_get_irq(pdev, 0);
   412		if (irq < 0)
   413			return irq;
   414	
   415		ret = devm_request_irq(dev, irq, isc_interrupt, 0,
   416				       "atmel-sama5d2-isc", isc);
   417		if (ret < 0) {
   418			dev_err(dev, "can't register ISR for IRQ %u (ret=%i)\n",
   419				irq, ret);
   420			return ret;
   421		}
   422	
   423		isc->gamma_table = isc_sama5d2_gamma_table;
   424		isc->gamma_max = 2;
   425	
   426		isc->max_width = ISC_SAMA5D2_MAX_SUPPORT_WIDTH;
   427		isc->max_height = ISC_SAMA5D2_MAX_SUPPORT_HEIGHT;
   428	
   429		isc->config_dpc = isc_sama5d2_config_dpc;
   430		isc->config_csc = isc_sama5d2_config_csc;
   431		isc->config_cbc = isc_sama5d2_config_cbc;
   432		isc->config_cc = isc_sama5d2_config_cc;
   433		isc->config_gam = isc_sama5d2_config_gam;
   434		isc->config_rlp = isc_sama5d2_config_rlp;
   435		isc->config_ctrls = isc_sama5d2_config_ctrls;
   436	
   437		isc->adapt_pipeline = isc_sama5d2_adapt_pipeline;
   438	
   439		isc->offsets.csc = ISC_SAMA5D2_CSC_OFFSET;
   440		isc->offsets.cbc = ISC_SAMA5D2_CBC_OFFSET;
   441		isc->offsets.sub422 = ISC_SAMA5D2_SUB422_OFFSET;
   442		isc->offsets.sub420 = ISC_SAMA5D2_SUB420_OFFSET;
   443		isc->offsets.rlp = ISC_SAMA5D2_RLP_OFFSET;
   444		isc->offsets.his = ISC_SAMA5D2_HIS_OFFSET;
   445		isc->offsets.dma = ISC_SAMA5D2_DMA_OFFSET;
   446		isc->offsets.version = ISC_SAMA5D2_VERSION_OFFSET;
   447		isc->offsets.his_entry = ISC_SAMA5D2_HIS_ENTRY_OFFSET;
   448	
   449		isc->controller_formats = sama5d2_controller_formats;
   450		isc->controller_formats_size = ARRAY_SIZE(sama5d2_controller_formats);
   451		isc->formats_list = sama5d2_formats_list;
   452		isc->formats_list_size = ARRAY_SIZE(sama5d2_formats_list);
   453	
   454		/* sama5d2-isc - 8 bits per beat */
   455		isc->dcfg = ISC_DCFG_YMBSIZE_BEATS8 | ISC_DCFG_CMBSIZE_BEATS8;
   456	
   457		/* sama5d2-isc : ISPCK is required and mandatory */
   458		isc->ispck_required = true;
   459	
   460		ret = isc_pipeline_init(isc);
   461		if (ret)
   462			return ret;
   463	
   464		isc->hclock = devm_clk_get(dev, "hclock");
   465		if (IS_ERR(isc->hclock)) {
   466			ret = PTR_ERR(isc->hclock);
   467			dev_err(dev, "failed to get hclock: %d\n", ret);
   468			return ret;
   469		}
   470	
   471		ret = clk_prepare_enable(isc->hclock);
   472		if (ret) {
   473			dev_err(dev, "failed to enable hclock: %d\n", ret);
   474			return ret;
   475		}
   476	
   477		ret = isc_clk_init(isc);
   478		if (ret) {
   479			dev_err(dev, "failed to init isc clock: %d\n", ret);
   480			goto unprepare_hclk;
   481		}
   482		ret = v4l2_device_register(dev, &isc->v4l2_dev);
   483		if (ret) {
   484			dev_err(dev, "unable to register v4l2 device.\n");
   485			goto unprepare_clk;
   486		}
   487	
   488		ret = isc_parse_dt(dev, isc);
   489		if (ret) {
   490			dev_err(dev, "fail to parse device tree\n");
   491			goto unregister_v4l2_device;
   492		}
   493	
   494		if (list_empty(&isc->subdev_entities)) {
   495			dev_err(dev, "no subdev found\n");
   496			ret = -ENODEV;
   497			goto unregister_v4l2_device;
   498		}
   499	
   500		list_for_each_entry(subdev_entity, &isc->subdev_entities, list) {
   501			struct v4l2_async_subdev *asd;
   502			struct fwnode_handle *fwnode =
   503				of_fwnode_handle(subdev_entity->epn);
   504	
   505			v4l2_async_nf_init(&subdev_entity->notifier);
   506	
   507			asd = v4l2_async_nf_add_fwnode_remote(&subdev_entity->notifier,
   508							      fwnode,
   509							      struct v4l2_async_subdev);
   510	
   511			of_node_put(subdev_entity->epn);
   512			subdev_entity->epn = NULL;
   513	
   514			if (IS_ERR(asd)) {
   515				ret = PTR_ERR(asd);
   516				goto cleanup_subdev;
   517			}
   518	
   519			subdev_entity->notifier.ops = &isc_async_ops;
   520	
   521			ret = v4l2_async_nf_register(&isc->v4l2_dev,
   522						     &subdev_entity->notifier);
   523			if (ret) {
   524				dev_err(dev, "fail to register async notifier\n");
   525				goto cleanup_subdev;
   526			}
   527	
   528			if (video_is_registered(&isc->video_dev))
   529				break;
   530		}
   531	
   532		pm_runtime_set_active(dev);
   533		pm_runtime_enable(dev);
   534		pm_request_idle(dev);
   535	
   536		isc->ispck = isc->isc_clks[ISC_ISPCK].clk;
   537	
   538		ret = clk_prepare_enable(isc->ispck);
   539		if (ret) {
   540			dev_err(dev, "failed to enable ispck: %d\n", ret);
   541			goto cleanup_subdev;
   542		}
   543	
   544		/* ispck should be greater or equal to hclock */
   545		ret = clk_set_rate(isc->ispck, clk_get_rate(isc->hclock));
   546		if (ret) {
   547			dev_err(dev, "failed to set ispck rate: %d\n", ret);
   548			goto unprepare_clk;
   549		}
   550	
   551		regmap_read(isc->regmap, ISC_VERSION + isc->offsets.version, &ver);
   552		dev_info(dev, "Microchip ISC version %x\n", ver);
   553	
   554		return 0;
   555	
   556	unprepare_clk:
   557		clk_disable_unprepare(isc->ispck);
   558	
   559	cleanup_subdev:
   560		isc_subdev_cleanup(isc);
   561	
 > 562	disable_pm_runtime:
   563		pm_runtime_disable(dev);
   564	
   565	unregister_v4l2_device:
   566		v4l2_device_unregister(&isc->v4l2_dev);
   567	
   568	unprepare_hclk:
   569		clk_disable_unprepare(isc->hclock);
   570	
   571		isc_clk_cleanup(isc);
   572	
   573		return ret;
   574	}
   575	

---
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: Miaoqian Lin <linmq006@gmail.com>
Cc: linmq006@gmail.com, kbuild-all@lists.01.org,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	llvm@lists.linux.dev, linux-kernel@vger.kernel.org,
	Hans Verkuil <hverkuil@xs4all.nl>,
	Ludovic Desroches <ludovic.desroches@microchip.com>,
	Eugen Hristev <eugen.hristev@microchip.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-media@vger.kernel.org
Subject: Re: [PATCH] media: atmel: atmel-isc: Fix PM disable depth imbalance in atmel_isc_probe
Date: Thu, 6 Jan 2022 20:42:45 +0800	[thread overview]
Message-ID: <202201062034.BD2L4uCe-lkp@intel.com> (raw)
In-Reply-To: <20220105111056.4662-1-linmq006@gmail.com>

Hi Miaoqian,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on media-tree/master]
[also build test WARNING on v5.16-rc8 next-20220105]
[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/Miaoqian-Lin/media-atmel-atmel-isc-Fix-PM-disable-depth-imbalance-in-atmel_isc_probe/20220105-191228
base:   git://linuxtv.org/media_tree.git master
config: riscv-randconfig-r002-20220106 (https://download.01.org/0day-ci/archive/20220106/202201062034.BD2L4uCe-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project ca7ffe09dc6e525109e3cd570cc5182ce568be13)
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 riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://github.com/0day-ci/linux/commit/f116d8f81c642486900c9589a7c10d137d7eb0a2
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Miaoqian-Lin/media-atmel-atmel-isc-Fix-PM-disable-depth-imbalance-in-atmel_isc_probe/20220105-191228
        git checkout f116d8f81c642486900c9589a7c10d137d7eb0a2
        # 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=riscv SHELL=/bin/bash drivers/media/platform/atmel/ net/xfrm/

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 >>):

   In file included from drivers/media/platform/atmel/atmel-sama5d2-isc.c:30:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from ./arch/riscv/include/generated/asm/hardirq.h:1:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/riscv/include/asm/io.h:136:
   include/asm-generic/io.h:464:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __raw_readb(PCI_IOBASE + addr);
                             ~~~~~~~~~~ ^
   include/asm-generic/io.h:477:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
                                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:36:51: note: expanded from macro '__le16_to_cpu'
   #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
                                                     ^
   In file included from drivers/media/platform/atmel/atmel-sama5d2-isc.c:30:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from ./arch/riscv/include/generated/asm/hardirq.h:1:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/riscv/include/asm/io.h:136:
   include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
                                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:34:51: note: expanded from macro '__le32_to_cpu'
   #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
                                                     ^
   In file included from drivers/media/platform/atmel/atmel-sama5d2-isc.c:30:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from ./arch/riscv/include/generated/asm/hardirq.h:1:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/riscv/include/asm/io.h:136:
   include/asm-generic/io.h:501:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writeb(value, PCI_IOBASE + addr);
                               ~~~~~~~~~~ ^
   include/asm-generic/io.h:511:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
                                                         ~~~~~~~~~~ ^
   include/asm-generic/io.h:521:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
                                                         ~~~~~~~~~~ ^
   include/asm-generic/io.h:1024:55: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           return (port > MMIO_UPPER_LIMIT) ? NULL : PCI_IOBASE + port;
                                                     ~~~~~~~~~~ ^
>> drivers/media/platform/atmel/atmel-sama5d2-isc.c:562:1: warning: unused label 'disable_pm_runtime' [-Wunused-label]
   disable_pm_runtime:
   ^~~~~~~~~~~~~~~~~~~
   8 warnings generated.


vim +/disable_pm_runtime +562 drivers/media/platform/atmel/atmel-sama5d2-isc.c

   380	
   381	static int atmel_isc_probe(struct platform_device *pdev)
   382	{
   383		struct device *dev = &pdev->dev;
   384		struct isc_device *isc;
   385		struct resource *res;
   386		void __iomem *io_base;
   387		struct isc_subdev_entity *subdev_entity;
   388		int irq;
   389		int ret;
   390		u32 ver;
   391	
   392		isc = devm_kzalloc(dev, sizeof(*isc), GFP_KERNEL);
   393		if (!isc)
   394			return -ENOMEM;
   395	
   396		platform_set_drvdata(pdev, isc);
   397		isc->dev = dev;
   398	
   399		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
   400		io_base = devm_ioremap_resource(dev, res);
   401		if (IS_ERR(io_base))
   402			return PTR_ERR(io_base);
   403	
   404		isc->regmap = devm_regmap_init_mmio(dev, io_base, &isc_regmap_config);
   405		if (IS_ERR(isc->regmap)) {
   406			ret = PTR_ERR(isc->regmap);
   407			dev_err(dev, "failed to init register map: %d\n", ret);
   408			return ret;
   409		}
   410	
   411		irq = platform_get_irq(pdev, 0);
   412		if (irq < 0)
   413			return irq;
   414	
   415		ret = devm_request_irq(dev, irq, isc_interrupt, 0,
   416				       "atmel-sama5d2-isc", isc);
   417		if (ret < 0) {
   418			dev_err(dev, "can't register ISR for IRQ %u (ret=%i)\n",
   419				irq, ret);
   420			return ret;
   421		}
   422	
   423		isc->gamma_table = isc_sama5d2_gamma_table;
   424		isc->gamma_max = 2;
   425	
   426		isc->max_width = ISC_SAMA5D2_MAX_SUPPORT_WIDTH;
   427		isc->max_height = ISC_SAMA5D2_MAX_SUPPORT_HEIGHT;
   428	
   429		isc->config_dpc = isc_sama5d2_config_dpc;
   430		isc->config_csc = isc_sama5d2_config_csc;
   431		isc->config_cbc = isc_sama5d2_config_cbc;
   432		isc->config_cc = isc_sama5d2_config_cc;
   433		isc->config_gam = isc_sama5d2_config_gam;
   434		isc->config_rlp = isc_sama5d2_config_rlp;
   435		isc->config_ctrls = isc_sama5d2_config_ctrls;
   436	
   437		isc->adapt_pipeline = isc_sama5d2_adapt_pipeline;
   438	
   439		isc->offsets.csc = ISC_SAMA5D2_CSC_OFFSET;
   440		isc->offsets.cbc = ISC_SAMA5D2_CBC_OFFSET;
   441		isc->offsets.sub422 = ISC_SAMA5D2_SUB422_OFFSET;
   442		isc->offsets.sub420 = ISC_SAMA5D2_SUB420_OFFSET;
   443		isc->offsets.rlp = ISC_SAMA5D2_RLP_OFFSET;
   444		isc->offsets.his = ISC_SAMA5D2_HIS_OFFSET;
   445		isc->offsets.dma = ISC_SAMA5D2_DMA_OFFSET;
   446		isc->offsets.version = ISC_SAMA5D2_VERSION_OFFSET;
   447		isc->offsets.his_entry = ISC_SAMA5D2_HIS_ENTRY_OFFSET;
   448	
   449		isc->controller_formats = sama5d2_controller_formats;
   450		isc->controller_formats_size = ARRAY_SIZE(sama5d2_controller_formats);
   451		isc->formats_list = sama5d2_formats_list;
   452		isc->formats_list_size = ARRAY_SIZE(sama5d2_formats_list);
   453	
   454		/* sama5d2-isc - 8 bits per beat */
   455		isc->dcfg = ISC_DCFG_YMBSIZE_BEATS8 | ISC_DCFG_CMBSIZE_BEATS8;
   456	
   457		/* sama5d2-isc : ISPCK is required and mandatory */
   458		isc->ispck_required = true;
   459	
   460		ret = isc_pipeline_init(isc);
   461		if (ret)
   462			return ret;
   463	
   464		isc->hclock = devm_clk_get(dev, "hclock");
   465		if (IS_ERR(isc->hclock)) {
   466			ret = PTR_ERR(isc->hclock);
   467			dev_err(dev, "failed to get hclock: %d\n", ret);
   468			return ret;
   469		}
   470	
   471		ret = clk_prepare_enable(isc->hclock);
   472		if (ret) {
   473			dev_err(dev, "failed to enable hclock: %d\n", ret);
   474			return ret;
   475		}
   476	
   477		ret = isc_clk_init(isc);
   478		if (ret) {
   479			dev_err(dev, "failed to init isc clock: %d\n", ret);
   480			goto unprepare_hclk;
   481		}
   482		ret = v4l2_device_register(dev, &isc->v4l2_dev);
   483		if (ret) {
   484			dev_err(dev, "unable to register v4l2 device.\n");
   485			goto unprepare_clk;
   486		}
   487	
   488		ret = isc_parse_dt(dev, isc);
   489		if (ret) {
   490			dev_err(dev, "fail to parse device tree\n");
   491			goto unregister_v4l2_device;
   492		}
   493	
   494		if (list_empty(&isc->subdev_entities)) {
   495			dev_err(dev, "no subdev found\n");
   496			ret = -ENODEV;
   497			goto unregister_v4l2_device;
   498		}
   499	
   500		list_for_each_entry(subdev_entity, &isc->subdev_entities, list) {
   501			struct v4l2_async_subdev *asd;
   502			struct fwnode_handle *fwnode =
   503				of_fwnode_handle(subdev_entity->epn);
   504	
   505			v4l2_async_nf_init(&subdev_entity->notifier);
   506	
   507			asd = v4l2_async_nf_add_fwnode_remote(&subdev_entity->notifier,
   508							      fwnode,
   509							      struct v4l2_async_subdev);
   510	
   511			of_node_put(subdev_entity->epn);
   512			subdev_entity->epn = NULL;
   513	
   514			if (IS_ERR(asd)) {
   515				ret = PTR_ERR(asd);
   516				goto cleanup_subdev;
   517			}
   518	
   519			subdev_entity->notifier.ops = &isc_async_ops;
   520	
   521			ret = v4l2_async_nf_register(&isc->v4l2_dev,
   522						     &subdev_entity->notifier);
   523			if (ret) {
   524				dev_err(dev, "fail to register async notifier\n");
   525				goto cleanup_subdev;
   526			}
   527	
   528			if (video_is_registered(&isc->video_dev))
   529				break;
   530		}
   531	
   532		pm_runtime_set_active(dev);
   533		pm_runtime_enable(dev);
   534		pm_request_idle(dev);
   535	
   536		isc->ispck = isc->isc_clks[ISC_ISPCK].clk;
   537	
   538		ret = clk_prepare_enable(isc->ispck);
   539		if (ret) {
   540			dev_err(dev, "failed to enable ispck: %d\n", ret);
   541			goto cleanup_subdev;
   542		}
   543	
   544		/* ispck should be greater or equal to hclock */
   545		ret = clk_set_rate(isc->ispck, clk_get_rate(isc->hclock));
   546		if (ret) {
   547			dev_err(dev, "failed to set ispck rate: %d\n", ret);
   548			goto unprepare_clk;
   549		}
   550	
   551		regmap_read(isc->regmap, ISC_VERSION + isc->offsets.version, &ver);
   552		dev_info(dev, "Microchip ISC version %x\n", ver);
   553	
   554		return 0;
   555	
   556	unprepare_clk:
   557		clk_disable_unprepare(isc->ispck);
   558	
   559	cleanup_subdev:
   560		isc_subdev_cleanup(isc);
   561	
 > 562	disable_pm_runtime:
   563		pm_runtime_disable(dev);
   564	
   565	unregister_v4l2_device:
   566		v4l2_device_unregister(&isc->v4l2_dev);
   567	
   568	unprepare_hclk:
   569		clk_disable_unprepare(isc->hclock);
   570	
   571		isc_clk_cleanup(isc);
   572	
   573		return ret;
   574	}
   575	

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

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH] media: atmel: atmel-isc: Fix PM disable depth imbalance in atmel_isc_probe
Date: Thu, 06 Jan 2022 20:42:45 +0800	[thread overview]
Message-ID: <202201062034.BD2L4uCe-lkp@intel.com> (raw)
In-Reply-To: <20220105111056.4662-1-linmq006@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 12536 bytes --]

Hi Miaoqian,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on media-tree/master]
[also build test WARNING on v5.16-rc8 next-20220105]
[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/Miaoqian-Lin/media-atmel-atmel-isc-Fix-PM-disable-depth-imbalance-in-atmel_isc_probe/20220105-191228
base:   git://linuxtv.org/media_tree.git master
config: riscv-randconfig-r002-20220106 (https://download.01.org/0day-ci/archive/20220106/202201062034.BD2L4uCe-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project ca7ffe09dc6e525109e3cd570cc5182ce568be13)
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 riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://github.com/0day-ci/linux/commit/f116d8f81c642486900c9589a7c10d137d7eb0a2
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Miaoqian-Lin/media-atmel-atmel-isc-Fix-PM-disable-depth-imbalance-in-atmel_isc_probe/20220105-191228
        git checkout f116d8f81c642486900c9589a7c10d137d7eb0a2
        # 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=riscv SHELL=/bin/bash drivers/media/platform/atmel/ net/xfrm/

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 >>):

   In file included from drivers/media/platform/atmel/atmel-sama5d2-isc.c:30:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from ./arch/riscv/include/generated/asm/hardirq.h:1:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/riscv/include/asm/io.h:136:
   include/asm-generic/io.h:464:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __raw_readb(PCI_IOBASE + addr);
                             ~~~~~~~~~~ ^
   include/asm-generic/io.h:477:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
                                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:36:51: note: expanded from macro '__le16_to_cpu'
   #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
                                                     ^
   In file included from drivers/media/platform/atmel/atmel-sama5d2-isc.c:30:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from ./arch/riscv/include/generated/asm/hardirq.h:1:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/riscv/include/asm/io.h:136:
   include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
                                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:34:51: note: expanded from macro '__le32_to_cpu'
   #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
                                                     ^
   In file included from drivers/media/platform/atmel/atmel-sama5d2-isc.c:30:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from ./arch/riscv/include/generated/asm/hardirq.h:1:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/riscv/include/asm/io.h:136:
   include/asm-generic/io.h:501:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writeb(value, PCI_IOBASE + addr);
                               ~~~~~~~~~~ ^
   include/asm-generic/io.h:511:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
                                                         ~~~~~~~~~~ ^
   include/asm-generic/io.h:521:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
                                                         ~~~~~~~~~~ ^
   include/asm-generic/io.h:1024:55: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           return (port > MMIO_UPPER_LIMIT) ? NULL : PCI_IOBASE + port;
                                                     ~~~~~~~~~~ ^
>> drivers/media/platform/atmel/atmel-sama5d2-isc.c:562:1: warning: unused label 'disable_pm_runtime' [-Wunused-label]
   disable_pm_runtime:
   ^~~~~~~~~~~~~~~~~~~
   8 warnings generated.


vim +/disable_pm_runtime +562 drivers/media/platform/atmel/atmel-sama5d2-isc.c

   380	
   381	static int atmel_isc_probe(struct platform_device *pdev)
   382	{
   383		struct device *dev = &pdev->dev;
   384		struct isc_device *isc;
   385		struct resource *res;
   386		void __iomem *io_base;
   387		struct isc_subdev_entity *subdev_entity;
   388		int irq;
   389		int ret;
   390		u32 ver;
   391	
   392		isc = devm_kzalloc(dev, sizeof(*isc), GFP_KERNEL);
   393		if (!isc)
   394			return -ENOMEM;
   395	
   396		platform_set_drvdata(pdev, isc);
   397		isc->dev = dev;
   398	
   399		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
   400		io_base = devm_ioremap_resource(dev, res);
   401		if (IS_ERR(io_base))
   402			return PTR_ERR(io_base);
   403	
   404		isc->regmap = devm_regmap_init_mmio(dev, io_base, &isc_regmap_config);
   405		if (IS_ERR(isc->regmap)) {
   406			ret = PTR_ERR(isc->regmap);
   407			dev_err(dev, "failed to init register map: %d\n", ret);
   408			return ret;
   409		}
   410	
   411		irq = platform_get_irq(pdev, 0);
   412		if (irq < 0)
   413			return irq;
   414	
   415		ret = devm_request_irq(dev, irq, isc_interrupt, 0,
   416				       "atmel-sama5d2-isc", isc);
   417		if (ret < 0) {
   418			dev_err(dev, "can't register ISR for IRQ %u (ret=%i)\n",
   419				irq, ret);
   420			return ret;
   421		}
   422	
   423		isc->gamma_table = isc_sama5d2_gamma_table;
   424		isc->gamma_max = 2;
   425	
   426		isc->max_width = ISC_SAMA5D2_MAX_SUPPORT_WIDTH;
   427		isc->max_height = ISC_SAMA5D2_MAX_SUPPORT_HEIGHT;
   428	
   429		isc->config_dpc = isc_sama5d2_config_dpc;
   430		isc->config_csc = isc_sama5d2_config_csc;
   431		isc->config_cbc = isc_sama5d2_config_cbc;
   432		isc->config_cc = isc_sama5d2_config_cc;
   433		isc->config_gam = isc_sama5d2_config_gam;
   434		isc->config_rlp = isc_sama5d2_config_rlp;
   435		isc->config_ctrls = isc_sama5d2_config_ctrls;
   436	
   437		isc->adapt_pipeline = isc_sama5d2_adapt_pipeline;
   438	
   439		isc->offsets.csc = ISC_SAMA5D2_CSC_OFFSET;
   440		isc->offsets.cbc = ISC_SAMA5D2_CBC_OFFSET;
   441		isc->offsets.sub422 = ISC_SAMA5D2_SUB422_OFFSET;
   442		isc->offsets.sub420 = ISC_SAMA5D2_SUB420_OFFSET;
   443		isc->offsets.rlp = ISC_SAMA5D2_RLP_OFFSET;
   444		isc->offsets.his = ISC_SAMA5D2_HIS_OFFSET;
   445		isc->offsets.dma = ISC_SAMA5D2_DMA_OFFSET;
   446		isc->offsets.version = ISC_SAMA5D2_VERSION_OFFSET;
   447		isc->offsets.his_entry = ISC_SAMA5D2_HIS_ENTRY_OFFSET;
   448	
   449		isc->controller_formats = sama5d2_controller_formats;
   450		isc->controller_formats_size = ARRAY_SIZE(sama5d2_controller_formats);
   451		isc->formats_list = sama5d2_formats_list;
   452		isc->formats_list_size = ARRAY_SIZE(sama5d2_formats_list);
   453	
   454		/* sama5d2-isc - 8 bits per beat */
   455		isc->dcfg = ISC_DCFG_YMBSIZE_BEATS8 | ISC_DCFG_CMBSIZE_BEATS8;
   456	
   457		/* sama5d2-isc : ISPCK is required and mandatory */
   458		isc->ispck_required = true;
   459	
   460		ret = isc_pipeline_init(isc);
   461		if (ret)
   462			return ret;
   463	
   464		isc->hclock = devm_clk_get(dev, "hclock");
   465		if (IS_ERR(isc->hclock)) {
   466			ret = PTR_ERR(isc->hclock);
   467			dev_err(dev, "failed to get hclock: %d\n", ret);
   468			return ret;
   469		}
   470	
   471		ret = clk_prepare_enable(isc->hclock);
   472		if (ret) {
   473			dev_err(dev, "failed to enable hclock: %d\n", ret);
   474			return ret;
   475		}
   476	
   477		ret = isc_clk_init(isc);
   478		if (ret) {
   479			dev_err(dev, "failed to init isc clock: %d\n", ret);
   480			goto unprepare_hclk;
   481		}
   482		ret = v4l2_device_register(dev, &isc->v4l2_dev);
   483		if (ret) {
   484			dev_err(dev, "unable to register v4l2 device.\n");
   485			goto unprepare_clk;
   486		}
   487	
   488		ret = isc_parse_dt(dev, isc);
   489		if (ret) {
   490			dev_err(dev, "fail to parse device tree\n");
   491			goto unregister_v4l2_device;
   492		}
   493	
   494		if (list_empty(&isc->subdev_entities)) {
   495			dev_err(dev, "no subdev found\n");
   496			ret = -ENODEV;
   497			goto unregister_v4l2_device;
   498		}
   499	
   500		list_for_each_entry(subdev_entity, &isc->subdev_entities, list) {
   501			struct v4l2_async_subdev *asd;
   502			struct fwnode_handle *fwnode =
   503				of_fwnode_handle(subdev_entity->epn);
   504	
   505			v4l2_async_nf_init(&subdev_entity->notifier);
   506	
   507			asd = v4l2_async_nf_add_fwnode_remote(&subdev_entity->notifier,
   508							      fwnode,
   509							      struct v4l2_async_subdev);
   510	
   511			of_node_put(subdev_entity->epn);
   512			subdev_entity->epn = NULL;
   513	
   514			if (IS_ERR(asd)) {
   515				ret = PTR_ERR(asd);
   516				goto cleanup_subdev;
   517			}
   518	
   519			subdev_entity->notifier.ops = &isc_async_ops;
   520	
   521			ret = v4l2_async_nf_register(&isc->v4l2_dev,
   522						     &subdev_entity->notifier);
   523			if (ret) {
   524				dev_err(dev, "fail to register async notifier\n");
   525				goto cleanup_subdev;
   526			}
   527	
   528			if (video_is_registered(&isc->video_dev))
   529				break;
   530		}
   531	
   532		pm_runtime_set_active(dev);
   533		pm_runtime_enable(dev);
   534		pm_request_idle(dev);
   535	
   536		isc->ispck = isc->isc_clks[ISC_ISPCK].clk;
   537	
   538		ret = clk_prepare_enable(isc->ispck);
   539		if (ret) {
   540			dev_err(dev, "failed to enable ispck: %d\n", ret);
   541			goto cleanup_subdev;
   542		}
   543	
   544		/* ispck should be greater or equal to hclock */
   545		ret = clk_set_rate(isc->ispck, clk_get_rate(isc->hclock));
   546		if (ret) {
   547			dev_err(dev, "failed to set ispck rate: %d\n", ret);
   548			goto unprepare_clk;
   549		}
   550	
   551		regmap_read(isc->regmap, ISC_VERSION + isc->offsets.version, &ver);
   552		dev_info(dev, "Microchip ISC version %x\n", ver);
   553	
   554		return 0;
   555	
   556	unprepare_clk:
   557		clk_disable_unprepare(isc->ispck);
   558	
   559	cleanup_subdev:
   560		isc_subdev_cleanup(isc);
   561	
 > 562	disable_pm_runtime:
   563		pm_runtime_disable(dev);
   564	
   565	unregister_v4l2_device:
   566		v4l2_device_unregister(&isc->v4l2_dev);
   567	
   568	unprepare_hclk:
   569		clk_disable_unprepare(isc->hclock);
   570	
   571		isc_clk_cleanup(isc);
   572	
   573		return ret;
   574	}
   575	

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

  reply	other threads:[~2022-01-06 12:43 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-05 11:10 [PATCH] media: atmel: atmel-isc: Fix PM disable depth imbalance in atmel_isc_probe Miaoqian Lin
2022-01-05 11:10 ` Miaoqian Lin
2022-01-06 12:42 ` kernel test robot [this message]
2022-01-06 12:42   ` kernel test robot
2022-01-06 12:42   ` kernel test robot
2022-03-01  7:18 ` [PATCH v2] " Miaoqian Lin
2022-03-01  7:18   ` Miaoqian Lin
2022-03-01 13:51   ` Eugen.Hristev
2022-03-01 13:51     ` Eugen.Hristev
2022-03-02  5:44     ` Miaoqian Lin
2022-03-02  5:44       ` Miaoqian Lin
2022-03-02  6:17       ` Eugen.Hristev
2022-03-02  6:17         ` Eugen.Hristev
2022-03-07  7:38   ` Hans Verkuil
2022-03-07  7:38     ` Hans Verkuil
2022-03-07  8:16     ` [PATCH v3] " Miaoqian Lin
2022-03-07  8:16       ` Miaoqian Lin
2022-05-09 19:13       ` Eugen.Hristev
2022-05-09 19:13         ` Eugen.Hristev
  -- strict thread matches above, loose matches on Subject: below --
2022-01-05 18:52 [PATCH] " 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=202201062034.BD2L4uCe-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=eugen.hristev@microchip.com \
    --cc=hverkuil@xs4all.nl \
    --cc=kbuild-all@lists.01.org \
    --cc=linmq006@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=ludovic.desroches@microchip.com \
    --cc=mchehab@kernel.org \
    --cc=nicolas.ferre@microchip.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.