All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: Re: [PATCH v3 3/7] media: v4l2-subdev: Store frame interval in subdev state
Date: Wed, 6 Dec 2023 09:00:58 +0800	[thread overview]
Message-ID: <202312060829.GmtNe4FB-lkp@intel.com> (raw)
In-Reply-To: <20231205140810.22368-3-laurent.pinchart@ideasonboard.com>

Hi Laurent,

kernel test robot noticed the following build errors:

[auto build test ERROR on bec3db03911bd85da29c1c8ee556162153002c9a]

url:    https://github.com/intel-lab-lkp/linux/commits/Laurent-Pinchart/media-v4l2-subdev-Add-which-field-to-struct-v4l2_subdev_frame_interval/20231205-220946
base:   bec3db03911bd85da29c1c8ee556162153002c9a
patch link:    https://lore.kernel.org/r/20231205140810.22368-3-laurent.pinchart%40ideasonboard.com
patch subject: [PATCH v3 3/7] media: v4l2-subdev: Store frame interval in subdev state
config: x86_64-randconfig-002-20231206 (https://download.01.org/0day-ci/archive/20231206/202312060829.GmtNe4FB-lkp@intel.com/config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231206/202312060829.GmtNe4FB-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312060829.GmtNe4FB-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from include/media/v4l2-device.h:13:0,
                    from drivers/media/v4l2-core/v4l2-subdev.c:24:
   drivers/media/v4l2-core/v4l2-subdev.c: In function 'v4l2_subdev_get_frame_interval':
   include/media/v4l2-subdev.h:1577:9: error: implicit declaration of function '__v4l2_subdev_state_get_interval___VA_OPT__'; did you mean '__v4l2_subdev_state_get_interval_'? [-Werror=implicit-function-declaration]
            __v4l2_subdev_state_get_interval_ ## __VA_OPT__(stream) \
            ^
   include/media/v4l2-subdev.h:1577:9: note: in definition of macro 'v4l2_subdev_state_get_interval'
            __v4l2_subdev_state_get_interval_ ## __VA_OPT__(stream) \
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/media/v4l2-subdev.h:1577:57: error: 'stream' undeclared (first use in this function); did you mean 'strim'?
            __v4l2_subdev_state_get_interval_ ## __VA_OPT__(stream) \
                                                            ^
   drivers/media/v4l2-core/v4l2-subdev.c:1762:13: note: in expansion of macro 'v4l2_subdev_state_get_interval'
     interval = v4l2_subdev_state_get_interval(state, fi->pad, fi->stream);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/media/v4l2-subdev.h:1577:57: note: each undeclared identifier is reported only once for each function it appears in
            __v4l2_subdev_state_get_interval_ ## __VA_OPT__(stream) \
                                                            ^
   drivers/media/v4l2-core/v4l2-subdev.c:1762:13: note: in expansion of macro 'v4l2_subdev_state_get_interval'
     interval = v4l2_subdev_state_get_interval(state, fi->pad, fi->stream);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/media/v4l2-subdev.h:1578:21: error: expected ')' before '__VA_OPT__'
            (state, pad __VA_OPT__(,) __VA_ARGS__)
                        ^
   drivers/media/v4l2-core/v4l2-subdev.c:1762:13: note: in expansion of macro 'v4l2_subdev_state_get_interval'
     interval = v4l2_subdev_state_get_interval(state, fi->pad, fi->stream);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +1577 include/media/v4l2-subdev.h

  1483	
  1484	/**
  1485	 * v4l2_subdev_get_fmt() - Fill format based on state
  1486	 * @sd: subdevice
  1487	 * @state: subdevice state
  1488	 * @format: pointer to &struct v4l2_subdev_format
  1489	 *
  1490	 * Fill @format->format field based on the information in the @format struct.
  1491	 *
  1492	 * This function can be used by the subdev drivers which support active state to
  1493	 * implement v4l2_subdev_pad_ops.get_fmt if the subdev driver does not need to
  1494	 * do anything special in their get_fmt op.
  1495	 *
  1496	 * Returns 0 on success, error value otherwise.
  1497	 */
  1498	int v4l2_subdev_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_state *state,
  1499				struct v4l2_subdev_format *format);
  1500	
  1501	/**
  1502	 * v4l2_subdev_get_frame_interval() - Fill frame interval based on state
  1503	 * @sd: subdevice
  1504	 * @state: subdevice state
  1505	 * @fi: pointer to &struct v4l2_subdev_frame_interval
  1506	 *
  1507	 * Fill @fi->interval field based on the information in the @fi struct.
  1508	 *
  1509	 * This function can be used by the subdev drivers which support active state to
  1510	 * implement v4l2_subdev_pad_ops.get_frame_interval if the subdev driver does
  1511	 * not need to do anything special in their get_frame_interval op.
  1512	 *
  1513	 * Returns 0 on success, error value otherwise.
  1514	 */
  1515	int v4l2_subdev_get_frame_interval(struct v4l2_subdev *sd,
  1516					   struct v4l2_subdev_state *state,
  1517					   struct v4l2_subdev_frame_interval *fi);
  1518	
  1519	/**
  1520	 * v4l2_subdev_set_routing() - Set given routing to subdev state
  1521	 * @sd: The subdevice
  1522	 * @state: The subdevice state
  1523	 * @routing: Routing that will be copied to subdev state
  1524	 *
  1525	 * This will release old routing table (if any) from the state, allocate
  1526	 * enough space for the given routing, and copy the routing.
  1527	 *
  1528	 * This can be used from the subdev driver's set_routing op, after validating
  1529	 * the routing.
  1530	 */
  1531	int v4l2_subdev_set_routing(struct v4l2_subdev *sd,
  1532				    struct v4l2_subdev_state *state,
  1533				    const struct v4l2_subdev_krouting *routing);
  1534	
  1535	struct v4l2_subdev_route *
  1536	__v4l2_subdev_next_active_route(const struct v4l2_subdev_krouting *routing,
  1537					struct v4l2_subdev_route *route);
  1538	
  1539	/**
  1540	 * for_each_active_route - iterate on all active routes of a routing table
  1541	 * @routing: The routing table
  1542	 * @route: The route iterator
  1543	 */
  1544	#define for_each_active_route(routing, route) \
  1545		for ((route) = NULL;                  \
  1546		     ((route) = __v4l2_subdev_next_active_route((routing), (route)));)
  1547	
  1548	/**
  1549	 * v4l2_subdev_set_routing_with_fmt() - Set given routing and format to subdev
  1550	 *					state
  1551	 * @sd: The subdevice
  1552	 * @state: The subdevice state
  1553	 * @routing: Routing that will be copied to subdev state
  1554	 * @fmt: Format used to initialize all the streams
  1555	 *
  1556	 * This is the same as v4l2_subdev_set_routing, but additionally initializes
  1557	 * all the streams using the given format.
  1558	 */
  1559	int v4l2_subdev_set_routing_with_fmt(struct v4l2_subdev *sd,
  1560					     struct v4l2_subdev_state *state,
  1561					     const struct v4l2_subdev_krouting *routing,
  1562					     const struct v4l2_mbus_framefmt *fmt);
  1563	
  1564	/**
  1565	 * v4l2_subdev_state_get_interval() - Get pointer to a stream frame interval
  1566	 * @state: subdevice state
  1567	 * @pad: pad id
  1568	 * @...: stream id (optional argument)
  1569	 *
  1570	 * This returns a pointer to the frame interval for the given pad + stream in
  1571	 * the subdev state.
  1572	 *
  1573	 * For stream-unaware drivers the frame interval for the corresponding pad is
  1574	 * returned. If the pad does not exist, NULL is returned.
  1575	 */
  1576	#define v4l2_subdev_state_get_interval(state, pad, ...)         \
> 1577	        __v4l2_subdev_state_get_interval_ ## __VA_OPT__(stream) \
> 1578	        (state, pad __VA_OPT__(,) __VA_ARGS__)
  1579	#define __v4l2_subdev_state_get_interval_(state, pad)	\
  1580	        __v4l2_subdev_state_get_interval(state, pad, 0)
  1581	#define __v4l2_subdev_state_get_interval_stream(state, pad, stream)	\
  1582	        __v4l2_subdev_state_get_interval(state, pad, stream)
  1583	struct v4l2_fract *
  1584	__v4l2_subdev_state_get_interval(struct v4l2_subdev_state *state,
  1585					 unsigned int pad, u32 stream);
  1586	

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

  reply	other threads:[~2023-12-06  1:01 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-05 14:08 [PATCH v3 1/7] media: v4l2-subdev: Turn .[gs]_frame_interval into pad operations Laurent Pinchart
2023-12-05 14:08 ` [PATCH v3 2/7] media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval Laurent Pinchart
2023-12-06  8:58   ` Hans Verkuil
2023-12-05 14:08 ` [PATCH v3 3/7] media: v4l2-subdev: Store frame interval in subdev state Laurent Pinchart
2023-12-06  1:00   ` kernel test robot [this message]
2023-12-06  3:06   ` kernel test robot
2023-12-05 14:08 ` [PATCH v3 4/7] media: docs: uAPI: Clarify error documentation for invalid 'which' value Laurent Pinchart
2023-12-05 14:08 ` [PATCH v3 5/7] media: docs: uAPI: Expand " Laurent Pinchart
2023-12-05 14:08 ` [PATCH v3 6/7] media: docs: uAPI: Fix documentation of 'which' field for routing ioctls Laurent Pinchart
2023-12-05 14:08 ` [PATCH v3 7/7] media: i2c: thp7312: Store frame interval in subdev state Laurent Pinchart
2023-12-05 14:11 ` [PATCH v3 1/7] media: v4l2-subdev: Turn .[gs]_frame_interval into pad operations Laurent Pinchart
2023-12-06  3:52 ` 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=202312060829.GmtNe4FB-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    /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.