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
next prev parent 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.