Re: [PATCH 2/5] media: adv748x: Add support for v4l2_subdev_state

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

 



Hi Jacopo,

I love your patch! Yet something to improve:

[auto build test ERROR on media-tree/master]
[also build test ERROR on v5.16-rc5 next-20211215]
[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/Jacopo-Mondi/media-adv748x-Add-CSI-2-VC-support/20211217-010519
base:   git://linuxtv.org/media_tree.git master
config: i386-randconfig-m031-20211216 (https://download.01.org/0day-ci/archive/20211217/202112171114.znOy3iE9-lkp@xxxxxxxxx/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://github.com/0day-ci/linux/commit/beac1be47b64ce291e1647699be3f26d88028b3b
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Jacopo-Mondi/media-adv748x-Add-CSI-2-VC-support/20211217-010519
        git checkout beac1be47b64ce291e1647699be3f26d88028b3b
        # save the config file to linux build tree
        mkdir build_dir
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/media/i2c/adv748x/

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

All errors (new ones prefixed by >>):

   drivers/media/i2c/adv748x/adv748x-csi2.c: In function 'adv748x_csi2_init_cfg':
>> drivers/media/i2c/adv748x/adv748x-csi2.c:146:27: error: array type has incomplete element type 'struct v4l2_subdev_route'
     146 |  struct v4l2_subdev_route routes[ADV748X_CSI2_STREAMS] = {
         |                           ^~~~~~
>> drivers/media/i2c/adv748x/adv748x-csi2.c:148:4: error: field name not in record or union initializer
     148 |    .sink_pad = ADV748X_CSI2_SINK,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:148:4: note: (near initialization for 'routes')
   drivers/media/i2c/adv748x/adv748x-csi2.c:149:4: error: field name not in record or union initializer
     149 |    .sink_stream = 0,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:149:4: note: (near initialization for 'routes')
   drivers/media/i2c/adv748x/adv748x-csi2.c:150:4: error: field name not in record or union initializer
     150 |    .source_pad = ADV748X_CSI2_SOURCE,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:150:4: note: (near initialization for 'routes')
   drivers/media/i2c/adv748x/adv748x-csi2.c:151:4: error: field name not in record or union initializer
     151 |    .source_stream = 0,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:151:4: note: (near initialization for 'routes')
   drivers/media/i2c/adv748x/adv748x-csi2.c:152:4: error: field name not in record or union initializer
     152 |    .flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:152:4: note: (near initialization for 'routes')
>> drivers/media/i2c/adv748x/adv748x-csi2.c:152:13: error: 'V4L2_SUBDEV_ROUTE_FL_ACTIVE' undeclared (first use in this function); did you mean 'V4L2_SUBDEV_FORMAT_ACTIVE'?
     152 |    .flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE,
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
         |             V4L2_SUBDEV_FORMAT_ACTIVE
   drivers/media/i2c/adv748x/adv748x-csi2.c:152:13: note: each undeclared identifier is reported only once for each function it appears in
   drivers/media/i2c/adv748x/adv748x-csi2.c:155:4: error: field name not in record or union initializer
     155 |    .sink_pad = ADV748X_CSI2_SINK,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:155:4: note: (near initialization for 'routes')
   drivers/media/i2c/adv748x/adv748x-csi2.c:156:4: error: field name not in record or union initializer
     156 |    .sink_stream = 0,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:156:4: note: (near initialization for 'routes')
   drivers/media/i2c/adv748x/adv748x-csi2.c:157:4: error: field name not in record or union initializer
     157 |    .source_pad = ADV748X_CSI2_SOURCE,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:157:4: note: (near initialization for 'routes')
   drivers/media/i2c/adv748x/adv748x-csi2.c:158:4: error: field name not in record or union initializer
     158 |    .source_stream = 1,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:158:4: note: (near initialization for 'routes')
   drivers/media/i2c/adv748x/adv748x-csi2.c:161:4: error: field name not in record or union initializer
     161 |    .sink_pad = ADV748X_CSI2_SINK,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:161:4: note: (near initialization for 'routes')
   drivers/media/i2c/adv748x/adv748x-csi2.c:162:4: error: field name not in record or union initializer
     162 |    .sink_stream = 0,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:162:4: note: (near initialization for 'routes')
   drivers/media/i2c/adv748x/adv748x-csi2.c:163:4: error: field name not in record or union initializer
     163 |    .source_pad = ADV748X_CSI2_SOURCE,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:163:4: note: (near initialization for 'routes')
   drivers/media/i2c/adv748x/adv748x-csi2.c:164:4: error: field name not in record or union initializer
     164 |    .source_stream = 2,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:164:4: note: (near initialization for 'routes')
   drivers/media/i2c/adv748x/adv748x-csi2.c:167:4: error: field name not in record or union initializer
     167 |    .sink_pad = ADV748X_CSI2_SINK,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:167:4: note: (near initialization for 'routes')
   drivers/media/i2c/adv748x/adv748x-csi2.c:168:4: error: field name not in record or union initializer
     168 |    .sink_stream = 0,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:168:4: note: (near initialization for 'routes')
   drivers/media/i2c/adv748x/adv748x-csi2.c:169:4: error: field name not in record or union initializer
     169 |    .source_pad = ADV748X_CSI2_SOURCE,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:169:4: note: (near initialization for 'routes')
   drivers/media/i2c/adv748x/adv748x-csi2.c:170:4: error: field name not in record or union initializer
     170 |    .source_stream = 3,
         |    ^
   drivers/media/i2c/adv748x/adv748x-csi2.c:170:4: note: (near initialization for 'routes')
>> drivers/media/i2c/adv748x/adv748x-csi2.c:173:30: error: storage size of 'routing' isn't known
     173 |  struct v4l2_subdev_krouting routing;
         |                              ^~~~~~~
>> drivers/media/i2c/adv748x/adv748x-csi2.c:179:2: error: implicit declaration of function 'v4l2_subdev_lock_state'; did you mean 'v4l2_subdev_alloc_state'? [-Werror=implicit-function-declaration]
     179 |  v4l2_subdev_lock_state(state);
         |  ^~~~~~~~~~~~~~~~~~~~~~
         |  v4l2_subdev_alloc_state
>> drivers/media/i2c/adv748x/adv748x-csi2.c:180:8: error: implicit declaration of function 'v4l2_subdev_set_routing'; did you mean 'v4l2_subdev_notify'? [-Werror=implicit-function-declaration]
     180 |  ret = v4l2_subdev_set_routing(sd, state, &routing);
         |        ^~~~~~~~~~~~~~~~~~~~~~~
         |        v4l2_subdev_notify
>> drivers/media/i2c/adv748x/adv748x-csi2.c:181:2: error: implicit declaration of function 'v4l2_subdev_unlock_state'; did you mean 'v4l2_subdev_alloc_state'? [-Werror=implicit-function-declaration]
     181 |  v4l2_subdev_unlock_state(state);
         |  ^~~~~~~~~~~~~~~~~~~~~~~~
         |  v4l2_subdev_alloc_state
   drivers/media/i2c/adv748x/adv748x-csi2.c:173:30: warning: unused variable 'routing' [-Wunused-variable]
     173 |  struct v4l2_subdev_krouting routing;
         |                              ^~~~~~~
   drivers/media/i2c/adv748x/adv748x-csi2.c:146:27: warning: unused variable 'routes' [-Wunused-variable]
     146 |  struct v4l2_subdev_route routes[ADV748X_CSI2_STREAMS] = {
         |                           ^~~~~~
   drivers/media/i2c/adv748x/adv748x-csi2.c: In function 'adv748x_csi2_init':
>> drivers/media/i2c/adv748x/adv748x-csi2.c:362:8: error: 'V4L2_SUBDEV_FL_MULTIPLEXED' undeclared (first use in this function)
     362 |        V4L2_SUBDEV_FL_MULTIPLEXED,
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/media/i2c/adv748x/adv748x-csi2.c:379:8: error: implicit declaration of function 'v4l2_subdev_init_finalize'; did you mean 'v4l2_subdev_init'? [-Werror=implicit-function-declaration]
     379 |  ret = v4l2_subdev_init_finalize(&tx->sd);
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~
         |        v4l2_subdev_init
>> drivers/media/i2c/adv748x/adv748x-csi2.c:396:2: error: implicit declaration of function 'v4l2_subdev_cleanup'; did you mean 'v4l2_subdev_call'? [-Werror=implicit-function-declaration]
     396 |  v4l2_subdev_cleanup(&tx->sd);
         |  ^~~~~~~~~~~~~~~~~~~
         |  v4l2_subdev_call
   cc1: some warnings being treated as errors


vim +146 drivers/media/i2c/adv748x/adv748x-csi2.c

   134	
   135	/* -----------------------------------------------------------------------------
   136	 * v4l2_subdev_pad_ops
   137	 *
   138	 * The CSI2 bus pads are ignorant to the data sizes or formats.
   139	 * But we must support setting the pad formats for format propagation.
   140	 */
   141	
   142	static int adv748x_csi2_init_cfg(struct v4l2_subdev *sd,
   143					 struct v4l2_subdev_state *state)
   144	{
   145		/* One route for each virtual channel. Route 0 enabled by default. */
 > 146		struct v4l2_subdev_route routes[ADV748X_CSI2_STREAMS] = {
   147			{
 > 148				.sink_pad = ADV748X_CSI2_SINK,
   149				.sink_stream = 0,
   150				.source_pad = ADV748X_CSI2_SOURCE,
   151				.source_stream = 0,
 > 152				.flags = V4L2_SUBDEV_ROUTE_FL_ACTIVE,
   153			},
   154			{
   155				.sink_pad = ADV748X_CSI2_SINK,
   156				.sink_stream = 0,
   157				.source_pad = ADV748X_CSI2_SOURCE,
   158				.source_stream = 1,
   159			},
   160			{
   161				.sink_pad = ADV748X_CSI2_SINK,
   162				.sink_stream = 0,
   163				.source_pad = ADV748X_CSI2_SOURCE,
   164				.source_stream = 2,
   165			},
   166			{
   167				.sink_pad = ADV748X_CSI2_SINK,
   168				.sink_stream = 0,
   169				.source_pad = ADV748X_CSI2_SOURCE,
   170				.source_stream = 3,
   171			},
   172		};
 > 173		struct v4l2_subdev_krouting routing;
   174		int ret;
   175	
   176		routing.num_routes = ADV748X_CSI2_STREAMS;
   177		routing.routes = routes;
   178	
 > 179		v4l2_subdev_lock_state(state);
 > 180		ret = v4l2_subdev_set_routing(sd, state, &routing);
 > 181		v4l2_subdev_unlock_state(state);
   182	
   183		return ret;
   184	}
   185	

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



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

  Powered by Linux