All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] v4l: async: Fix kerneldoc documentation for async functions
@ 2021-02-15 12:37 Sakari Ailus
  2021-02-15 15:16   ` kernel test robot
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Sakari Ailus @ 2021-02-15 12:37 UTC (permalink / raw)
  To: linux-media; +Cc: Stephen Rothwell, Mauro Carvalho Chehab

Fix kerneldoc documentation for functions that add async sub-devices to
notifiers. The functions themselves were improved recently but that left
issues with the kerneldoc documentation. Fix them now.

Also remove underscores from macro argument names.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Fixes: b01edcbd409c ("media: v4l2-async: Improve v4l2_async_notifier_add_*_subdev() API")
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
 include/media/v4l2-async.h | 80 +++++++++++++++++++-------------------
 1 file changed, 39 insertions(+), 41 deletions(-)

diff --git a/include/media/v4l2-async.h b/include/media/v4l2-async.h
index 6f22daa6f067..3e2fe7181bee 100644
--- a/include/media/v4l2-async.h
+++ b/include/media/v4l2-async.h
@@ -156,42 +156,44 @@ void v4l2_async_notifier_init(struct v4l2_async_notifier *notifier);
 int __v4l2_async_notifier_add_subdev(struct v4l2_async_notifier *notifier,
 				   struct v4l2_async_subdev *asd);
 
+struct v4l2_async_subdev *
+__v4l2_async_notifier_add_fwnode_subdev(struct v4l2_async_notifier *notifier,
+					struct fwnode_handle *fwnode,
+					unsigned int asd_struct_size);
 /**
  * v4l2_async_notifier_add_fwnode_subdev - Allocate and add a fwnode async
  *				subdev to the notifier's master asd_list.
  *
  * @notifier: pointer to &struct v4l2_async_notifier
- * @fwnode: fwnode handle of the sub-device to be matched
- * @asd_struct_size: size of the driver's async sub-device struct, including
- *		     sizeof(struct v4l2_async_subdev). The &struct
- *		     v4l2_async_subdev shall be the first member of
- *		     the driver's async sub-device struct, i.e. both
- *		     begin at the same memory address.
+ * @fwnode: fwnode handle of the sub-device to be matched, pointer to
+ *	    &struct fwnode_handle
+ * @type: Type of the driver's async sub-device struct. The &struct
+ *	  v4l2_async_subdev shall be the first member of the driver's async
+ *	  sub-device struct, i.e. both begin at the same memory address.
  *
  * Allocate a fwnode-matched asd of size asd_struct_size, and add it to the
  * notifiers @asd_list. The function also gets a reference of the fwnode which
  * is released later at notifier cleanup time.
  */
-struct v4l2_async_subdev *
-__v4l2_async_notifier_add_fwnode_subdev(struct v4l2_async_notifier *notifier,
-					struct fwnode_handle *fwnode,
-					unsigned int asd_struct_size);
-#define v4l2_async_notifier_add_fwnode_subdev(__notifier, __fwnode, __type)	\
-((__type *)__v4l2_async_notifier_add_fwnode_subdev(__notifier, __fwnode,	\
-						   sizeof(__type)))
+#define v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, type)	\
+	((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
+							   sizeof(type)))
 
+struct v4l2_async_subdev *
+__v4l2_async_notifier_add_fwnode_remote_subdev(struct v4l2_async_notifier *notif,
+					       struct fwnode_handle *endpoint,
+					       unsigned int asd_struct_size);
 /**
  * v4l2_async_notifier_add_fwnode_remote_subdev - Allocate and add a fwnode
  *						  remote async subdev to the
  *						  notifier's master asd_list.
  *
- * @notif: pointer to &struct v4l2_async_notifier
- * @endpoint: local endpoint pointing to the remote sub-device to be matched
- * @asd_struct_size: size of the driver's async sub-device struct, including
- *		     sizeof(struct v4l2_async_subdev). The &struct
- *		     v4l2_async_subdev shall be the first member of
- *		     the driver's async sub-device struct, i.e. both
- *		     begin at the same memory address.
+ * @notifier: pointer to &struct v4l2_async_notifier
+ * @ep: local endpoint pointing to the remote sub-device to be matched,
+ *	pointer to &struct fwnode_handle
+ * @type: Type of the driver's async sub-device struct. The &struct
+ *	  v4l2_async_subdev shall be the first member of the driver's async
+ *	  sub-device struct, i.e. both begin at the same memory address.
  *
  * Gets the remote endpoint of a given local endpoint, set it up for fwnode
  * matching and adds the async sub-device to the notifier's @asd_list. The
@@ -201,36 +203,32 @@ __v4l2_async_notifier_add_fwnode_subdev(struct v4l2_async_notifier *notifier,
  * This is just like @v4l2_async_notifier_add_fwnode_subdev, but with the
  * exception that the fwnode refers to a local endpoint, not the remote one.
  */
-struct v4l2_async_subdev *
-__v4l2_async_notifier_add_fwnode_remote_subdev(struct v4l2_async_notifier *notif,
-					       struct fwnode_handle *endpoint,
-					       unsigned int asd_struct_size);
-#define v4l2_async_notifier_add_fwnode_remote_subdev(__notifier, __ep, __type)	\
-((__type *)__v4l2_async_notifier_add_fwnode_remote_subdev(__notifier, __ep,	\
-							  sizeof(__type)))
+#define v4l2_async_notifier_add_fwnode_remote_subdev(notifier, ep, type) \
+	((type *)							\
+	 __v4l2_async_notifier_add_fwnode_remote_subdev(notifier, ep,	\
+							sizeof(type)))
 
+struct v4l2_async_subdev *
+__v4l2_async_notifier_add_i2c_subdev(struct v4l2_async_notifier *notifier,
+				     int adapter_id, unsigned short address,
+				     unsigned int asd_struct_size);
 /**
  * v4l2_async_notifier_add_i2c_subdev - Allocate and add an i2c async
  *				subdev to the notifier's master asd_list.
  *
  * @notifier: pointer to &struct v4l2_async_notifier
- * @adapter_id: I2C adapter ID to be matched
+ * @adapter: I2C adapter ID to be matched
  * @address: I2C address of sub-device to be matched
- * @asd_struct_size: size of the driver's async sub-device struct, including
- *		     sizeof(struct v4l2_async_subdev). The &struct
- *		     v4l2_async_subdev shall be the first member of
- *		     the driver's async sub-device struct, i.e. both
- *		     begin at the same memory address.
+ * @type: Type of the driver's async sub-device struct. The &struct
+ *	  v4l2_async_subdev shall be the first member of the driver's async
+ *	  sub-device struct, i.e. both begin at the same memory address.
  *
- * Same as above but for I2C matched sub-devices.
+ * Same as v4l2_async_notifier_add_fwnode_subdev() but for I2C matched
+ * sub-devices.
  */
-struct v4l2_async_subdev *
-__v4l2_async_notifier_add_i2c_subdev(struct v4l2_async_notifier *notifier,
-				     int adapter_id, unsigned short address,
-				     unsigned int asd_struct_size);
-#define v4l2_async_notifier_add_i2c_subdev(__notifier, __adap, __addr, __type)	\
-((__type *)__v4l2_async_notifier_add_i2c_subdev(__notifier, __adap, __addr,	\
-						sizeof(__type)))
+#define v4l2_async_notifier_add_i2c_subdev(notifier, adapter, address, type) \
+	((type *)__v4l2_async_notifier_add_i2c_subdev(notifier, adapter, \
+						      address, sizeof(type)))
 
 /**
  * v4l2_async_notifier_register - registers a subdevice asynchronous notifier
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/1] v4l: async: Fix kerneldoc documentation for async functions
  2021-02-15 12:37 [PATCH 1/1] v4l: async: Fix kerneldoc documentation for async functions Sakari Ailus
@ 2021-02-15 15:16   ` kernel test robot
  2021-02-15 15:42   ` kernel test robot
  2021-02-15 16:10   ` kernel test robot
  2 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2021-02-15 15:16 UTC (permalink / raw)
  To: Sakari Ailus, linux-media
  Cc: kbuild-all, clang-built-linux, Mauro Carvalho Chehab

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

Hi Sakari,

I love your patch! Yet something to improve:

[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on next-20210212]
[cannot apply to v5.11]
[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/v4l-async-Fix-kerneldoc-documentation-for-async-functions/20210215-204146
base:   git://linuxtv.org/media_tree.git master
config: arm64-randconfig-r006-20210215 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project c9439ca36342fb6013187d0a69aef92736951476)
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/8e8c47cba531c1706847f07a4af5cd19aa33f351
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Sakari-Ailus/v4l-async-Fix-kerneldoc-documentation-for-async-functions/20210215-204146
        git checkout 8e8c47cba531c1706847f07a4af5cd19aa33f351
        # 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@intel.com>

All errors (new ones prefixed by >>):

>> drivers/staging/media/tegra-video/vi.c:1815:10: error: expected expression
                   tvge = v4l2_async_notifier_add_fwnode_subdev(&chan->notifier,
                          ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
>> drivers/staging/media/tegra-video/vi.c:1815:10: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   2 errors generated.
--
>> drivers/media/platform/am437x/am437x-vpfe.c:2366:19: error: expected expression
                   pdata->asd[i] = v4l2_async_notifier_add_fwnode_subdev(
                                   ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
>> drivers/media/platform/am437x/am437x-vpfe.c:2366:19: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   2 errors generated.
--
>> drivers/media/platform/davinci/vpif_capture.c:1585:19: error: expected expression
                   pdata->asd[i] = v4l2_async_notifier_add_fwnode_subdev(
                                   ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
>> drivers/media/platform/davinci/vpif_capture.c:1585:19: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   2 errors generated.
--
>> drivers/media/platform/qcom/camss/camss.c:669:9: error: expected expression
                   csd = v4l2_async_notifier_add_fwnode_subdev(
                         ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
>> drivers/media/platform/qcom/camss/camss.c:669:9: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   2 errors generated.
--
>> drivers/media/platform/rcar-vin/rcar-csi2.c:912:8: error: expected expression
           asd = v4l2_async_notifier_add_fwnode_subdev(&priv->notifier, fwnode,
                 ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
>> drivers/media/platform/rcar-vin/rcar-csi2.c:912:8: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   2 errors generated.
--
>> drivers/media/platform/rcar-vin/rcar-core.c:644:8: error: expected expression
           asd = v4l2_async_notifier_add_fwnode_subdev(&vin->notifier, fwnode,
                 ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
>> drivers/media/platform/rcar-vin/rcar-core.c:644:8: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   drivers/media/platform/rcar-vin/rcar-core.c:844:8: error: expected expression
           asd = v4l2_async_notifier_add_fwnode_subdev(&vin->group->notifier,
                 ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
   drivers/media/platform/rcar-vin/rcar-core.c:844:8: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   4 errors generated.
--
>> drivers/media/platform/xilinx/xilinx-vipp.c:385:9: error: expected expression
                   xge = v4l2_async_notifier_add_fwnode_subdev(
                         ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
>> drivers/media/platform/xilinx/xilinx-vipp.c:385:9: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   2 errors generated.


vim +1815 drivers/staging/media/tegra-video/vi.c

1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1784  
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1785  static int tegra_vi_graph_parse_one(struct tegra_vi_channel *chan,
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1786  				    struct fwnode_handle *fwnode)
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1787  {
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1788  	struct tegra_vi *vi = chan->vi;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1789  	struct fwnode_handle *ep = NULL;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1790  	struct fwnode_handle *remote = NULL;
b01edcbd409cf7 Laurent Pinchart    2021-01-18  1791  	struct tegra_vi_graph_entity *tvge;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1792  	struct device_node *node = NULL;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1793  	int ret;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1794  
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1795  	dev_dbg(vi->dev, "parsing node %pOF\n", to_of_node(fwnode));
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1796  
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1797  	/* parse all the remote entities and put them into the list */
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1798  	for_each_endpoint_of_node(to_of_node(fwnode), node) {
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1799  		ep = of_fwnode_handle(node);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1800  		remote = fwnode_graph_get_remote_port_parent(ep);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1801  		if (!remote) {
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1802  			dev_err(vi->dev,
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1803  				"remote device at %pOF not found\n", node);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1804  			ret = -EINVAL;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1805  			goto cleanup;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1806  		}
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1807  
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1808  		/* skip entities that are already processed */
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1809  		if (remote == dev_fwnode(vi->dev) ||
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1810  		    tegra_vi_graph_find_entity(chan, remote)) {
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1811  			fwnode_handle_put(remote);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1812  			continue;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1813  		}
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1814  
b01edcbd409cf7 Laurent Pinchart    2021-01-18 @1815  		tvge = v4l2_async_notifier_add_fwnode_subdev(&chan->notifier,
b01edcbd409cf7 Laurent Pinchart    2021-01-18  1816  				remote, struct tegra_vi_graph_entity);
b01edcbd409cf7 Laurent Pinchart    2021-01-18  1817  		if (IS_ERR(tvge)) {
b01edcbd409cf7 Laurent Pinchart    2021-01-18  1818  			ret = PTR_ERR(tvge);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1819  			dev_err(vi->dev,
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1820  				"failed to add subdev to notifier: %d\n", ret);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1821  			fwnode_handle_put(remote);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1822  			goto cleanup;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1823  		}
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1824  
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1825  		ret = tegra_vi_graph_parse_one(chan, remote);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1826  		if (ret < 0) {
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1827  			fwnode_handle_put(remote);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1828  			goto cleanup;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1829  		}
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1830  
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1831  		fwnode_handle_put(remote);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1832  	}
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1833  
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1834  	return 0;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1835  
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1836  cleanup:
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1837  	dev_err(vi->dev, "failed parsing the graph: %d\n", ret);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1838  	v4l2_async_notifier_cleanup(&chan->notifier);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1839  	of_node_put(node);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1840  	return ret;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1841  }
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1842  

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 33164 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/1] v4l: async: Fix kerneldoc documentation for async functions
@ 2021-02-15 15:16   ` kernel test robot
  0 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2021-02-15 15:16 UTC (permalink / raw)
  To: kbuild-all

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

Hi Sakari,

I love your patch! Yet something to improve:

[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on next-20210212]
[cannot apply to v5.11]
[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/v4l-async-Fix-kerneldoc-documentation-for-async-functions/20210215-204146
base:   git://linuxtv.org/media_tree.git master
config: arm64-randconfig-r006-20210215 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project c9439ca36342fb6013187d0a69aef92736951476)
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/8e8c47cba531c1706847f07a4af5cd19aa33f351
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Sakari-Ailus/v4l-async-Fix-kerneldoc-documentation-for-async-functions/20210215-204146
        git checkout 8e8c47cba531c1706847f07a4af5cd19aa33f351
        # 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@intel.com>

All errors (new ones prefixed by >>):

>> drivers/staging/media/tegra-video/vi.c:1815:10: error: expected expression
                   tvge = v4l2_async_notifier_add_fwnode_subdev(&chan->notifier,
                          ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
>> drivers/staging/media/tegra-video/vi.c:1815:10: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   2 errors generated.
--
>> drivers/media/platform/am437x/am437x-vpfe.c:2366:19: error: expected expression
                   pdata->asd[i] = v4l2_async_notifier_add_fwnode_subdev(
                                   ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
>> drivers/media/platform/am437x/am437x-vpfe.c:2366:19: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   2 errors generated.
--
>> drivers/media/platform/davinci/vpif_capture.c:1585:19: error: expected expression
                   pdata->asd[i] = v4l2_async_notifier_add_fwnode_subdev(
                                   ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
>> drivers/media/platform/davinci/vpif_capture.c:1585:19: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   2 errors generated.
--
>> drivers/media/platform/qcom/camss/camss.c:669:9: error: expected expression
                   csd = v4l2_async_notifier_add_fwnode_subdev(
                         ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
>> drivers/media/platform/qcom/camss/camss.c:669:9: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   2 errors generated.
--
>> drivers/media/platform/rcar-vin/rcar-csi2.c:912:8: error: expected expression
           asd = v4l2_async_notifier_add_fwnode_subdev(&priv->notifier, fwnode,
                 ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
>> drivers/media/platform/rcar-vin/rcar-csi2.c:912:8: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   2 errors generated.
--
>> drivers/media/platform/rcar-vin/rcar-core.c:644:8: error: expected expression
           asd = v4l2_async_notifier_add_fwnode_subdev(&vin->notifier, fwnode,
                 ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
>> drivers/media/platform/rcar-vin/rcar-core.c:644:8: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   drivers/media/platform/rcar-vin/rcar-core.c:844:8: error: expected expression
           asd = v4l2_async_notifier_add_fwnode_subdev(&vin->group->notifier,
                 ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
   drivers/media/platform/rcar-vin/rcar-core.c:844:8: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   4 errors generated.
--
>> drivers/media/platform/xilinx/xilinx-vipp.c:385:9: error: expected expression
                   xge = v4l2_async_notifier_add_fwnode_subdev(
                         ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
>> drivers/media/platform/xilinx/xilinx-vipp.c:385:9: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   2 errors generated.


vim +1815 drivers/staging/media/tegra-video/vi.c

1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1784  
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1785  static int tegra_vi_graph_parse_one(struct tegra_vi_channel *chan,
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1786  				    struct fwnode_handle *fwnode)
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1787  {
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1788  	struct tegra_vi *vi = chan->vi;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1789  	struct fwnode_handle *ep = NULL;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1790  	struct fwnode_handle *remote = NULL;
b01edcbd409cf7 Laurent Pinchart    2021-01-18  1791  	struct tegra_vi_graph_entity *tvge;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1792  	struct device_node *node = NULL;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1793  	int ret;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1794  
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1795  	dev_dbg(vi->dev, "parsing node %pOF\n", to_of_node(fwnode));
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1796  
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1797  	/* parse all the remote entities and put them into the list */
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1798  	for_each_endpoint_of_node(to_of_node(fwnode), node) {
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1799  		ep = of_fwnode_handle(node);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1800  		remote = fwnode_graph_get_remote_port_parent(ep);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1801  		if (!remote) {
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1802  			dev_err(vi->dev,
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1803  				"remote device at %pOF not found\n", node);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1804  			ret = -EINVAL;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1805  			goto cleanup;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1806  		}
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1807  
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1808  		/* skip entities that are already processed */
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1809  		if (remote == dev_fwnode(vi->dev) ||
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1810  		    tegra_vi_graph_find_entity(chan, remote)) {
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1811  			fwnode_handle_put(remote);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1812  			continue;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1813  		}
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1814  
b01edcbd409cf7 Laurent Pinchart    2021-01-18 @1815  		tvge = v4l2_async_notifier_add_fwnode_subdev(&chan->notifier,
b01edcbd409cf7 Laurent Pinchart    2021-01-18  1816  				remote, struct tegra_vi_graph_entity);
b01edcbd409cf7 Laurent Pinchart    2021-01-18  1817  		if (IS_ERR(tvge)) {
b01edcbd409cf7 Laurent Pinchart    2021-01-18  1818  			ret = PTR_ERR(tvge);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1819  			dev_err(vi->dev,
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1820  				"failed to add subdev to notifier: %d\n", ret);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1821  			fwnode_handle_put(remote);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1822  			goto cleanup;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1823  		}
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1824  
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1825  		ret = tegra_vi_graph_parse_one(chan, remote);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1826  		if (ret < 0) {
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1827  			fwnode_handle_put(remote);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1828  			goto cleanup;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1829  		}
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1830  
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1831  		fwnode_handle_put(remote);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1832  	}
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1833  
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1834  	return 0;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1835  
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1836  cleanup:
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1837  	dev_err(vi->dev, "failed parsing the graph: %d\n", ret);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1838  	v4l2_async_notifier_cleanup(&chan->notifier);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1839  	of_node_put(node);
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1840  	return ret;
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1841  }
1ebaeb09830f36 Sowjanya Komatineni 2020-08-12  1842  

---
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: 33164 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/1] v4l: async: Fix kerneldoc documentation for async functions
  2021-02-15 12:37 [PATCH 1/1] v4l: async: Fix kerneldoc documentation for async functions Sakari Ailus
@ 2021-02-15 15:42   ` kernel test robot
  2021-02-15 15:42   ` kernel test robot
  2021-02-15 16:10   ` kernel test robot
  2 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2021-02-15 15:42 UTC (permalink / raw)
  To: Sakari Ailus, linux-media; +Cc: kbuild-all, Mauro Carvalho Chehab

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

Hi Sakari,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linuxtv-media/master]
[also build test WARNING on next-20210212]
[cannot apply to v5.11]
[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/v4l-async-Fix-kerneldoc-documentation-for-async-functions/20210215-204146
base:   git://linuxtv.org/media_tree.git master
config: sparc-allyesconfig (attached as .config)
compiler: sparc64-linux-gcc (GCC) 9.3.0
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/8e8c47cba531c1706847f07a4af5cd19aa33f351
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Sakari-Ailus/v4l-async-Fix-kerneldoc-documentation-for-async-functions/20210215-204146
        git checkout 8e8c47cba531c1706847f07a4af5cd19aa33f351
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sparc 

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/ti-vpe/cal.c:24:
   drivers/media/platform/ti-vpe/cal.c: In function 'cal_async_notifier_register':
   include/media/v4l2-async.h:179:4: error: '__type' undeclared (first use in this function); did you mean '_ctype'?
     179 |  ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
         |    ^~~~~~
   drivers/media/platform/ti-vpe/cal.c:694:10: note: in expansion of macro 'v4l2_async_notifier_add_fwnode_subdev'
     694 |   casd = v4l2_async_notifier_add_fwnode_subdev(&cal->notifier,
         |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-async.h:179:4: note: each undeclared identifier is reported only once for each function it appears in
     179 |  ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
         |    ^~~~~~
   drivers/media/platform/ti-vpe/cal.c:694:10: note: in expansion of macro 'v4l2_async_notifier_add_fwnode_subdev'
     694 |   casd = v4l2_async_notifier_add_fwnode_subdev(&cal->notifier,
         |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-async.h:179:12: error: expected expression before ')' token
     179 |  ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
         |            ^
   drivers/media/platform/ti-vpe/cal.c:694:10: note: in expansion of macro 'v4l2_async_notifier_add_fwnode_subdev'
     694 |   casd = v4l2_async_notifier_add_fwnode_subdev(&cal->notifier,
         |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/media/platform/ti-vpe/cal.c:688:25: warning: variable 'fwnode' set but not used [-Wunused-but-set-variable]
     688 |   struct fwnode_handle *fwnode;
         |                         ^~~~~~


vim +/fwnode +688 drivers/media/platform/ti-vpe/cal.c

b6ee3f0dcf43dc Laurent Pinchart 2017-08-30  676  
a539a0536f6e22 Laurent Pinchart 2020-07-06  677  static int cal_async_notifier_register(struct cal_dev *cal)
343e89a792a571 Benoit Parrot    2016-01-06  678  {
a539a0536f6e22 Laurent Pinchart 2020-07-06  679  	unsigned int i;
a539a0536f6e22 Laurent Pinchart 2020-07-06  680  	int ret;
a539a0536f6e22 Laurent Pinchart 2020-07-06  681  
a539a0536f6e22 Laurent Pinchart 2020-07-06  682  	v4l2_async_notifier_init(&cal->notifier);
a539a0536f6e22 Laurent Pinchart 2020-07-06  683  	cal->notifier.ops = &cal_async_notifier_ops;
a539a0536f6e22 Laurent Pinchart 2020-07-06  684  
71c1f16ddd528d Laurent Pinchart 2020-12-07  685  	for (i = 0; i < cal->data->num_csi2_phy; ++i) {
539e7c5d7c0281 Laurent Pinchart 2020-07-06  686  		struct cal_camerarx *phy = cal->phy[i];
8fcb7576ad197b Laurent Pinchart 2020-07-06  687  		struct cal_v4l2_async_subdev *casd;
f5ddf19eca3328 Laurent Pinchart 2020-07-06 @688  		struct fwnode_handle *fwnode;
343e89a792a571 Benoit Parrot    2016-01-06  689  
71c1f16ddd528d Laurent Pinchart 2020-12-07  690  		if (!phy->sensor_node)
a539a0536f6e22 Laurent Pinchart 2020-07-06  691  			continue;
d079f94c90469f Steve Longerbeam 2018-09-29  692  
539e7c5d7c0281 Laurent Pinchart 2020-07-06  693  		fwnode = of_fwnode_handle(phy->sensor_node);
b01edcbd409cf7 Laurent Pinchart 2021-01-18  694  		casd = v4l2_async_notifier_add_fwnode_subdev(&cal->notifier,
a539a0536f6e22 Laurent Pinchart 2020-07-06  695  							     fwnode,
b01edcbd409cf7 Laurent Pinchart 2021-01-18  696  							     struct cal_v4l2_async_subdev);
b01edcbd409cf7 Laurent Pinchart 2021-01-18  697  		if (IS_ERR(casd)) {
539e7c5d7c0281 Laurent Pinchart 2020-07-06  698  			phy_err(phy, "Failed to add subdev to notifier\n");
b01edcbd409cf7 Laurent Pinchart 2021-01-18  699  			ret = PTR_ERR(casd);
a539a0536f6e22 Laurent Pinchart 2020-07-06  700  			goto error;
d079f94c90469f Steve Longerbeam 2018-09-29  701  		}
d079f94c90469f Steve Longerbeam 2018-09-29  702  
539e7c5d7c0281 Laurent Pinchart 2020-07-06  703  		casd->phy = phy;
a539a0536f6e22 Laurent Pinchart 2020-07-06  704  	}
8fcb7576ad197b Laurent Pinchart 2020-07-06  705  
a539a0536f6e22 Laurent Pinchart 2020-07-06  706  	ret = v4l2_async_notifier_register(&cal->v4l2_dev, &cal->notifier);
343e89a792a571 Benoit Parrot    2016-01-06  707  	if (ret) {
a539a0536f6e22 Laurent Pinchart 2020-07-06  708  		cal_err(cal, "Error registering async notifier\n");
a539a0536f6e22 Laurent Pinchart 2020-07-06  709  		goto error;
343e89a792a571 Benoit Parrot    2016-01-06  710  	}
343e89a792a571 Benoit Parrot    2016-01-06  711  
f5ddf19eca3328 Laurent Pinchart 2020-07-06  712  	return 0;
a539a0536f6e22 Laurent Pinchart 2020-07-06  713  
a539a0536f6e22 Laurent Pinchart 2020-07-06  714  error:
a539a0536f6e22 Laurent Pinchart 2020-07-06  715  	v4l2_async_notifier_cleanup(&cal->notifier);
a539a0536f6e22 Laurent Pinchart 2020-07-06  716  	return ret;
a539a0536f6e22 Laurent Pinchart 2020-07-06  717  }
a539a0536f6e22 Laurent Pinchart 2020-07-06  718  

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 68816 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/1] v4l: async: Fix kerneldoc documentation for async functions
@ 2021-02-15 15:42   ` kernel test robot
  0 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2021-02-15 15:42 UTC (permalink / raw)
  To: kbuild-all

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

Hi Sakari,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linuxtv-media/master]
[also build test WARNING on next-20210212]
[cannot apply to v5.11]
[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/v4l-async-Fix-kerneldoc-documentation-for-async-functions/20210215-204146
base:   git://linuxtv.org/media_tree.git master
config: sparc-allyesconfig (attached as .config)
compiler: sparc64-linux-gcc (GCC) 9.3.0
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/8e8c47cba531c1706847f07a4af5cd19aa33f351
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Sakari-Ailus/v4l-async-Fix-kerneldoc-documentation-for-async-functions/20210215-204146
        git checkout 8e8c47cba531c1706847f07a4af5cd19aa33f351
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sparc 

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/ti-vpe/cal.c:24:
   drivers/media/platform/ti-vpe/cal.c: In function 'cal_async_notifier_register':
   include/media/v4l2-async.h:179:4: error: '__type' undeclared (first use in this function); did you mean '_ctype'?
     179 |  ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
         |    ^~~~~~
   drivers/media/platform/ti-vpe/cal.c:694:10: note: in expansion of macro 'v4l2_async_notifier_add_fwnode_subdev'
     694 |   casd = v4l2_async_notifier_add_fwnode_subdev(&cal->notifier,
         |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-async.h:179:4: note: each undeclared identifier is reported only once for each function it appears in
     179 |  ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
         |    ^~~~~~
   drivers/media/platform/ti-vpe/cal.c:694:10: note: in expansion of macro 'v4l2_async_notifier_add_fwnode_subdev'
     694 |   casd = v4l2_async_notifier_add_fwnode_subdev(&cal->notifier,
         |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-async.h:179:12: error: expected expression before ')' token
     179 |  ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
         |            ^
   drivers/media/platform/ti-vpe/cal.c:694:10: note: in expansion of macro 'v4l2_async_notifier_add_fwnode_subdev'
     694 |   casd = v4l2_async_notifier_add_fwnode_subdev(&cal->notifier,
         |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/media/platform/ti-vpe/cal.c:688:25: warning: variable 'fwnode' set but not used [-Wunused-but-set-variable]
     688 |   struct fwnode_handle *fwnode;
         |                         ^~~~~~


vim +/fwnode +688 drivers/media/platform/ti-vpe/cal.c

b6ee3f0dcf43dc Laurent Pinchart 2017-08-30  676  
a539a0536f6e22 Laurent Pinchart 2020-07-06  677  static int cal_async_notifier_register(struct cal_dev *cal)
343e89a792a571 Benoit Parrot    2016-01-06  678  {
a539a0536f6e22 Laurent Pinchart 2020-07-06  679  	unsigned int i;
a539a0536f6e22 Laurent Pinchart 2020-07-06  680  	int ret;
a539a0536f6e22 Laurent Pinchart 2020-07-06  681  
a539a0536f6e22 Laurent Pinchart 2020-07-06  682  	v4l2_async_notifier_init(&cal->notifier);
a539a0536f6e22 Laurent Pinchart 2020-07-06  683  	cal->notifier.ops = &cal_async_notifier_ops;
a539a0536f6e22 Laurent Pinchart 2020-07-06  684  
71c1f16ddd528d Laurent Pinchart 2020-12-07  685  	for (i = 0; i < cal->data->num_csi2_phy; ++i) {
539e7c5d7c0281 Laurent Pinchart 2020-07-06  686  		struct cal_camerarx *phy = cal->phy[i];
8fcb7576ad197b Laurent Pinchart 2020-07-06  687  		struct cal_v4l2_async_subdev *casd;
f5ddf19eca3328 Laurent Pinchart 2020-07-06 @688  		struct fwnode_handle *fwnode;
343e89a792a571 Benoit Parrot    2016-01-06  689  
71c1f16ddd528d Laurent Pinchart 2020-12-07  690  		if (!phy->sensor_node)
a539a0536f6e22 Laurent Pinchart 2020-07-06  691  			continue;
d079f94c90469f Steve Longerbeam 2018-09-29  692  
539e7c5d7c0281 Laurent Pinchart 2020-07-06  693  		fwnode = of_fwnode_handle(phy->sensor_node);
b01edcbd409cf7 Laurent Pinchart 2021-01-18  694  		casd = v4l2_async_notifier_add_fwnode_subdev(&cal->notifier,
a539a0536f6e22 Laurent Pinchart 2020-07-06  695  							     fwnode,
b01edcbd409cf7 Laurent Pinchart 2021-01-18  696  							     struct cal_v4l2_async_subdev);
b01edcbd409cf7 Laurent Pinchart 2021-01-18  697  		if (IS_ERR(casd)) {
539e7c5d7c0281 Laurent Pinchart 2020-07-06  698  			phy_err(phy, "Failed to add subdev to notifier\n");
b01edcbd409cf7 Laurent Pinchart 2021-01-18  699  			ret = PTR_ERR(casd);
a539a0536f6e22 Laurent Pinchart 2020-07-06  700  			goto error;
d079f94c90469f Steve Longerbeam 2018-09-29  701  		}
d079f94c90469f Steve Longerbeam 2018-09-29  702  
539e7c5d7c0281 Laurent Pinchart 2020-07-06  703  		casd->phy = phy;
a539a0536f6e22 Laurent Pinchart 2020-07-06  704  	}
8fcb7576ad197b Laurent Pinchart 2020-07-06  705  
a539a0536f6e22 Laurent Pinchart 2020-07-06  706  	ret = v4l2_async_notifier_register(&cal->v4l2_dev, &cal->notifier);
343e89a792a571 Benoit Parrot    2016-01-06  707  	if (ret) {
a539a0536f6e22 Laurent Pinchart 2020-07-06  708  		cal_err(cal, "Error registering async notifier\n");
a539a0536f6e22 Laurent Pinchart 2020-07-06  709  		goto error;
343e89a792a571 Benoit Parrot    2016-01-06  710  	}
343e89a792a571 Benoit Parrot    2016-01-06  711  
f5ddf19eca3328 Laurent Pinchart 2020-07-06  712  	return 0;
a539a0536f6e22 Laurent Pinchart 2020-07-06  713  
a539a0536f6e22 Laurent Pinchart 2020-07-06  714  error:
a539a0536f6e22 Laurent Pinchart 2020-07-06  715  	v4l2_async_notifier_cleanup(&cal->notifier);
a539a0536f6e22 Laurent Pinchart 2020-07-06  716  	return ret;
a539a0536f6e22 Laurent Pinchart 2020-07-06  717  }
a539a0536f6e22 Laurent Pinchart 2020-07-06  718  

---
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: 68816 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/1] v4l: async: Fix kerneldoc documentation for async functions
  2021-02-15 12:37 [PATCH 1/1] v4l: async: Fix kerneldoc documentation for async functions Sakari Ailus
@ 2021-02-15 16:10   ` kernel test robot
  2021-02-15 15:42   ` kernel test robot
  2021-02-15 16:10   ` kernel test robot
  2 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2021-02-15 16:10 UTC (permalink / raw)
  To: Sakari Ailus, linux-media
  Cc: kbuild-all, clang-built-linux, Mauro Carvalho Chehab

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

Hi Sakari,

I love your patch! Yet something to improve:

[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on next-20210212]
[cannot apply to v5.11]
[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/v4l-async-Fix-kerneldoc-documentation-for-async-functions/20210215-204146
base:   git://linuxtv.org/media_tree.git master
config: x86_64-randconfig-r035-20210215 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project c9439ca36342fb6013187d0a69aef92736951476)
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 x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # https://github.com/0day-ci/linux/commit/8e8c47cba531c1706847f07a4af5cd19aa33f351
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Sakari-Ailus/v4l-async-Fix-kerneldoc-documentation-for-async-functions/20210215-204146
        git checkout 8e8c47cba531c1706847f07a4af5cd19aa33f351
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

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

All errors (new ones prefixed by >>):

>> drivers/media/v4l2-core/v4l2-fwnode.c:945:9: error: expected expression
                   asd = v4l2_async_notifier_add_fwnode_subdev(notifier,
                         ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
>> drivers/media/v4l2-core/v4l2-fwnode.c:945:9: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   drivers/media/v4l2-core/v4l2-fwnode.c:1246:9: error: expected expression
                   asd = v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode,
                         ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
   drivers/media/v4l2-core/v4l2-fwnode.c:1246:9: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   4 errors generated.


vim +945 drivers/media/v4l2-core/v4l2-fwnode.c

9ca46531213295 Sakari Ailus          2017-08-17  902  
d84285390f0722 Sakari Ailus          2017-06-20  903  /*
d84285390f0722 Sakari Ailus          2017-06-20  904   * v4l2_fwnode_reference_parse - parse references for async sub-devices
d84285390f0722 Sakari Ailus          2017-06-20  905   * @dev: the device node the properties of which are parsed for references
d84285390f0722 Sakari Ailus          2017-06-20  906   * @notifier: the async notifier where the async subdevs will be added
d84285390f0722 Sakari Ailus          2017-06-20  907   * @prop: the name of the property
d84285390f0722 Sakari Ailus          2017-06-20  908   *
d84285390f0722 Sakari Ailus          2017-06-20  909   * Return: 0 on success
d84285390f0722 Sakari Ailus          2017-06-20  910   *	   -ENOENT if no entries were found
d84285390f0722 Sakari Ailus          2017-06-20  911   *	   -ENOMEM if memory allocation failed
d84285390f0722 Sakari Ailus          2017-06-20  912   *	   -EINVAL if property parsing failed
d84285390f0722 Sakari Ailus          2017-06-20  913   */
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  914  static int v4l2_fwnode_reference_parse(struct device *dev,
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  915  				       struct v4l2_async_notifier *notifier,
d84285390f0722 Sakari Ailus          2017-06-20  916  				       const char *prop)
d84285390f0722 Sakari Ailus          2017-06-20  917  {
d84285390f0722 Sakari Ailus          2017-06-20  918  	struct fwnode_reference_args args;
d84285390f0722 Sakari Ailus          2017-06-20  919  	unsigned int index;
d84285390f0722 Sakari Ailus          2017-06-20  920  	int ret;
d84285390f0722 Sakari Ailus          2017-06-20  921  
d84285390f0722 Sakari Ailus          2017-06-20  922  	for (index = 0;
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  923  	     !(ret = fwnode_property_get_reference_args(dev_fwnode(dev),
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  924  							prop, NULL, 0,
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  925  							index, &args));
d84285390f0722 Sakari Ailus          2017-06-20  926  	     index++)
d84285390f0722 Sakari Ailus          2017-06-20  927  		fwnode_handle_put(args.fwnode);
d84285390f0722 Sakari Ailus          2017-06-20  928  
d84285390f0722 Sakari Ailus          2017-06-20  929  	if (!index)
d84285390f0722 Sakari Ailus          2017-06-20  930  		return -ENOENT;
d84285390f0722 Sakari Ailus          2017-06-20  931  
d84285390f0722 Sakari Ailus          2017-06-20  932  	/*
d84285390f0722 Sakari Ailus          2017-06-20  933  	 * Note that right now both -ENODATA and -ENOENT may signal
d84285390f0722 Sakari Ailus          2017-06-20  934  	 * out-of-bounds access. Return the error in cases other than that.
d84285390f0722 Sakari Ailus          2017-06-20  935  	 */
d84285390f0722 Sakari Ailus          2017-06-20  936  	if (ret != -ENOENT && ret != -ENODATA)
d84285390f0722 Sakari Ailus          2017-06-20  937  		return ret;
d84285390f0722 Sakari Ailus          2017-06-20  938  
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  939  	for (index = 0;
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  940  	     !fwnode_property_get_reference_args(dev_fwnode(dev), prop, NULL,
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  941  						 0, index, &args);
d84285390f0722 Sakari Ailus          2017-06-20  942  	     index++) {
d84285390f0722 Sakari Ailus          2017-06-20  943  		struct v4l2_async_subdev *asd;
d84285390f0722 Sakari Ailus          2017-06-20  944  
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04 @945  		asd = v4l2_async_notifier_add_fwnode_subdev(notifier,
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  946  							    args.fwnode,
b01edcbd409cf7 Laurent Pinchart      2021-01-18  947  							    struct v4l2_async_subdev);
016413d967061f Sakari Ailus          2019-04-04  948  		fwnode_handle_put(args.fwnode);
eae2aed1eab9bf Steve Longerbeam      2018-09-29  949  		if (IS_ERR(asd)) {
eae2aed1eab9bf Steve Longerbeam      2018-09-29  950  			/* not an error if asd already exists */
016413d967061f Sakari Ailus          2019-04-04  951  			if (PTR_ERR(asd) == -EEXIST)
eae2aed1eab9bf Steve Longerbeam      2018-09-29  952  				continue;
d84285390f0722 Sakari Ailus          2017-06-20  953  
016413d967061f Sakari Ailus          2019-04-04  954  			return PTR_ERR(asd);
d84285390f0722 Sakari Ailus          2017-06-20  955  		}
d84285390f0722 Sakari Ailus          2017-06-20  956  	}
d84285390f0722 Sakari Ailus          2017-06-20  957  
d84285390f0722 Sakari Ailus          2017-06-20  958  	return 0;
d84285390f0722 Sakari Ailus          2017-06-20  959  }
d84285390f0722 Sakari Ailus          2017-06-20  960  

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 32772 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/1] v4l: async: Fix kerneldoc documentation for async functions
@ 2021-02-15 16:10   ` kernel test robot
  0 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2021-02-15 16:10 UTC (permalink / raw)
  To: kbuild-all

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

Hi Sakari,

I love your patch! Yet something to improve:

[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on next-20210212]
[cannot apply to v5.11]
[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/v4l-async-Fix-kerneldoc-documentation-for-async-functions/20210215-204146
base:   git://linuxtv.org/media_tree.git master
config: x86_64-randconfig-r035-20210215 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project c9439ca36342fb6013187d0a69aef92736951476)
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 x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # https://github.com/0day-ci/linux/commit/8e8c47cba531c1706847f07a4af5cd19aa33f351
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Sakari-Ailus/v4l-async-Fix-kerneldoc-documentation-for-async-functions/20210215-204146
        git checkout 8e8c47cba531c1706847f07a4af5cd19aa33f351
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

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

All errors (new ones prefixed by >>):

>> drivers/media/v4l2-core/v4l2-fwnode.c:945:9: error: expected expression
                   asd = v4l2_async_notifier_add_fwnode_subdev(notifier,
                         ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
>> drivers/media/v4l2-core/v4l2-fwnode.c:945:9: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   drivers/media/v4l2-core/v4l2-fwnode.c:1246:9: error: expected expression
                   asd = v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode,
                         ^
   include/media/v4l2-async.h:179:12: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
                     ^
   drivers/media/v4l2-core/v4l2-fwnode.c:1246:9: error: use of undeclared identifier '__type'; did you mean '_ctype'?
   include/media/v4l2-async.h:179:4: note: expanded from macro 'v4l2_async_notifier_add_fwnode_subdev'
           ((__type *)__v4l2_async_notifier_add_fwnode_subdev(notifier, fwnode, \
             ^
   include/linux/ctype.h:21:28: note: '_ctype' declared here
   extern const unsigned char _ctype[];
                              ^
   4 errors generated.


vim +945 drivers/media/v4l2-core/v4l2-fwnode.c

9ca46531213295 Sakari Ailus          2017-08-17  902  
d84285390f0722 Sakari Ailus          2017-06-20  903  /*
d84285390f0722 Sakari Ailus          2017-06-20  904   * v4l2_fwnode_reference_parse - parse references for async sub-devices
d84285390f0722 Sakari Ailus          2017-06-20  905   * @dev: the device node the properties of which are parsed for references
d84285390f0722 Sakari Ailus          2017-06-20  906   * @notifier: the async notifier where the async subdevs will be added
d84285390f0722 Sakari Ailus          2017-06-20  907   * @prop: the name of the property
d84285390f0722 Sakari Ailus          2017-06-20  908   *
d84285390f0722 Sakari Ailus          2017-06-20  909   * Return: 0 on success
d84285390f0722 Sakari Ailus          2017-06-20  910   *	   -ENOENT if no entries were found
d84285390f0722 Sakari Ailus          2017-06-20  911   *	   -ENOMEM if memory allocation failed
d84285390f0722 Sakari Ailus          2017-06-20  912   *	   -EINVAL if property parsing failed
d84285390f0722 Sakari Ailus          2017-06-20  913   */
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  914  static int v4l2_fwnode_reference_parse(struct device *dev,
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  915  				       struct v4l2_async_notifier *notifier,
d84285390f0722 Sakari Ailus          2017-06-20  916  				       const char *prop)
d84285390f0722 Sakari Ailus          2017-06-20  917  {
d84285390f0722 Sakari Ailus          2017-06-20  918  	struct fwnode_reference_args args;
d84285390f0722 Sakari Ailus          2017-06-20  919  	unsigned int index;
d84285390f0722 Sakari Ailus          2017-06-20  920  	int ret;
d84285390f0722 Sakari Ailus          2017-06-20  921  
d84285390f0722 Sakari Ailus          2017-06-20  922  	for (index = 0;
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  923  	     !(ret = fwnode_property_get_reference_args(dev_fwnode(dev),
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  924  							prop, NULL, 0,
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  925  							index, &args));
d84285390f0722 Sakari Ailus          2017-06-20  926  	     index++)
d84285390f0722 Sakari Ailus          2017-06-20  927  		fwnode_handle_put(args.fwnode);
d84285390f0722 Sakari Ailus          2017-06-20  928  
d84285390f0722 Sakari Ailus          2017-06-20  929  	if (!index)
d84285390f0722 Sakari Ailus          2017-06-20  930  		return -ENOENT;
d84285390f0722 Sakari Ailus          2017-06-20  931  
d84285390f0722 Sakari Ailus          2017-06-20  932  	/*
d84285390f0722 Sakari Ailus          2017-06-20  933  	 * Note that right now both -ENODATA and -ENOENT may signal
d84285390f0722 Sakari Ailus          2017-06-20  934  	 * out-of-bounds access. Return the error in cases other than that.
d84285390f0722 Sakari Ailus          2017-06-20  935  	 */
d84285390f0722 Sakari Ailus          2017-06-20  936  	if (ret != -ENOENT && ret != -ENODATA)
d84285390f0722 Sakari Ailus          2017-06-20  937  		return ret;
d84285390f0722 Sakari Ailus          2017-06-20  938  
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  939  	for (index = 0;
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  940  	     !fwnode_property_get_reference_args(dev_fwnode(dev), prop, NULL,
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  941  						 0, index, &args);
d84285390f0722 Sakari Ailus          2017-06-20  942  	     index++) {
d84285390f0722 Sakari Ailus          2017-06-20  943  		struct v4l2_async_subdev *asd;
d84285390f0722 Sakari Ailus          2017-06-20  944  
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04 @945  		asd = v4l2_async_notifier_add_fwnode_subdev(notifier,
6087b21533fed7 Mauro Carvalho Chehab 2018-10-04  946  							    args.fwnode,
b01edcbd409cf7 Laurent Pinchart      2021-01-18  947  							    struct v4l2_async_subdev);
016413d967061f Sakari Ailus          2019-04-04  948  		fwnode_handle_put(args.fwnode);
eae2aed1eab9bf Steve Longerbeam      2018-09-29  949  		if (IS_ERR(asd)) {
eae2aed1eab9bf Steve Longerbeam      2018-09-29  950  			/* not an error if asd already exists */
016413d967061f Sakari Ailus          2019-04-04  951  			if (PTR_ERR(asd) == -EEXIST)
eae2aed1eab9bf Steve Longerbeam      2018-09-29  952  				continue;
d84285390f0722 Sakari Ailus          2017-06-20  953  
016413d967061f Sakari Ailus          2019-04-04  954  			return PTR_ERR(asd);
d84285390f0722 Sakari Ailus          2017-06-20  955  		}
d84285390f0722 Sakari Ailus          2017-06-20  956  	}
d84285390f0722 Sakari Ailus          2017-06-20  957  
d84285390f0722 Sakari Ailus          2017-06-20  958  	return 0;
d84285390f0722 Sakari Ailus          2017-06-20  959  }
d84285390f0722 Sakari Ailus          2017-06-20  960  

---
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: 32772 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-02-15 16:18 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-15 12:37 [PATCH 1/1] v4l: async: Fix kerneldoc documentation for async functions Sakari Ailus
2021-02-15 15:16 ` kernel test robot
2021-02-15 15:16   ` kernel test robot
2021-02-15 15:42 ` kernel test robot
2021-02-15 15:42   ` kernel test robot
2021-02-15 16:10 ` kernel test robot
2021-02-15 16:10   ` kernel test robot

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.