* [freescale-fslc:6.1-1.0.x-imx 195/9881] drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:412:46: warning: 'mipi_csi2_sd_internal_ops' defined but not used
@ 2023-06-22 13:17 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-06-22 13:17 UTC (permalink / raw)
To: Otavio Salvador; +Cc: oe-kbuild-all
tree: https://github.com/Freescale/linux-fslc 6.1-1.0.x-imx
head: 3260d1af47b1bedfe12b79a26efa184b9a60a8a3
commit: 038f3061d82c82b6406a3c90ccd1f566d2f103f7 [195/9881] media: mipi csi: add mixel's mipi csi driver
config: i386-allyesconfig (https://download.01.org/0day-ci/archive/20230622/202306222101.zmu5LzQl-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230622/202306222101.zmu5LzQl-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/202306222101.zmu5LzQl-lkp@intel.com/
All warnings (new ones prefixed by >>):
| ^~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:401:16: note: in expansion of macro 'v4l2_subdev_call'
401 | return v4l2_subdev_call(sensor_sd, video, s_parm, a);
| ^~~~~~~~~~~~~~~~
include/media/v4l2-subdev.h:1408:53: error: 'const struct v4l2_subdev_video_ops' has no member named 's_parm'
1408 | v4l2_subdev_call_wrappers.o->f) \
| ^~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:401:16: note: in expansion of macro 'v4l2_subdev_call'
401 | return v4l2_subdev_call(sensor_sd, video, s_parm, a);
| ^~~~~~~~~~~~~~~~
include/media/v4l2-subdev.h:1409:63: error: 'const struct v4l2_subdev_video_ops' has no member named 's_parm'
1409 | __result = v4l2_subdev_call_wrappers.o->f( \
| ^~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:401:16: note: in expansion of macro 'v4l2_subdev_call'
401 | return v4l2_subdev_call(sensor_sd, video, s_parm, a);
| ^~~~~~~~~~~~~~~~
include/media/v4l2-subdev.h:1412:48: error: 'const struct v4l2_subdev_video_ops' has no member named 's_parm'
1412 | __result = __sd->ops->o->f(__sd, ##args); \
| ^~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:401:16: note: in expansion of macro 'v4l2_subdev_call'
401 | return v4l2_subdev_call(sensor_sd, video, s_parm, a);
| ^~~~~~~~~~~~~~~~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c: In function 'mipi_csis_g_parm':
include/media/v4l2-subdev.h:1405:56: error: 'const struct v4l2_subdev_video_ops' has no member named 'g_parm'
1405 | else if (!(__sd->ops->o && __sd->ops->o->f)) \
| ^~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:409:16: note: in expansion of macro 'v4l2_subdev_call'
409 | return v4l2_subdev_call(sensor_sd, video, g_parm, a);
| ^~~~~~~~~~~~~~~~
include/media/v4l2-subdev.h:1408:53: error: 'const struct v4l2_subdev_video_ops' has no member named 'g_parm'
1408 | v4l2_subdev_call_wrappers.o->f) \
| ^~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:409:16: note: in expansion of macro 'v4l2_subdev_call'
409 | return v4l2_subdev_call(sensor_sd, video, g_parm, a);
| ^~~~~~~~~~~~~~~~
include/media/v4l2-subdev.h:1409:63: error: 'const struct v4l2_subdev_video_ops' has no member named 'g_parm'
1409 | __result = v4l2_subdev_call_wrappers.o->f( \
| ^~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:409:16: note: in expansion of macro 'v4l2_subdev_call'
409 | return v4l2_subdev_call(sensor_sd, video, g_parm, a);
| ^~~~~~~~~~~~~~~~
include/media/v4l2-subdev.h:1412:48: error: 'const struct v4l2_subdev_video_ops' has no member named 'g_parm'
1412 | __result = __sd->ops->o->f(__sd, ##args); \
| ^~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:409:16: note: in expansion of macro 'v4l2_subdev_call'
409 | return v4l2_subdev_call(sensor_sd, video, g_parm, a);
| ^~~~~~~~~~~~~~~~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c: At top level:
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:417:28: error: initialization of 'int (*)(struct v4l2_subdev *, struct v4l2_subdev_state *, struct v4l2_subdev_frame_size_enum *)' from incompatible pointer type 'int (*)(struct v4l2_subdev *, struct v4l2_subdev_pad_config *, struct v4l2_subdev_frame_size_enum *)' [-Werror=incompatible-pointer-types]
417 | .enum_frame_size = mipi_csis_enum_framesizes,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:417:28: note: (near initialization for 'mipi_csi2_pad_ops.enum_frame_size')
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:418:32: error: initialization of 'int (*)(struct v4l2_subdev *, struct v4l2_subdev_state *, struct v4l2_subdev_frame_interval_enum *)' from incompatible pointer type 'int (*)(struct v4l2_subdev *, struct v4l2_subdev_pad_config *, struct v4l2_subdev_frame_interval_enum *)' [-Werror=incompatible-pointer-types]
418 | .enum_frame_interval = mipi_csis_enum_frameintervals,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:418:32: note: (near initialization for 'mipi_csi2_pad_ops.enum_frame_interval')
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:419:27: error: initialization of 'int (*)(struct v4l2_subdev *, struct v4l2_subdev_state *, struct v4l2_subdev_mbus_code_enum *)' from incompatible pointer type 'int (*)(struct v4l2_subdev *, struct v4l2_subdev_pad_config *, struct v4l2_subdev_mbus_code_enum *)' [-Werror=incompatible-pointer-types]
419 | .enum_mbus_code = mipi_csis_enum_mbus_code,
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:419:27: note: (near initialization for 'mipi_csi2_pad_ops.enum_mbus_code')
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:420:20: error: initialization of 'int (*)(struct v4l2_subdev *, struct v4l2_subdev_state *, struct v4l2_subdev_format *)' from incompatible pointer type 'int (*)(struct v4l2_subdev *, struct v4l2_subdev_pad_config *, struct v4l2_subdev_format *)' [-Werror=incompatible-pointer-types]
420 | .get_fmt = mipi_csi2_get_fmt,
| ^~~~~~~~~~~~~~~~~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:420:20: note: (near initialization for 'mipi_csi2_pad_ops.get_fmt')
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:421:20: error: initialization of 'int (*)(struct v4l2_subdev *, struct v4l2_subdev_state *, struct v4l2_subdev_format *)' from incompatible pointer type 'int (*)(struct v4l2_subdev *, struct v4l2_subdev_pad_config *, struct v4l2_subdev_format *)' [-Werror=incompatible-pointer-types]
421 | .set_fmt = mipi_csi2_set_fmt,
| ^~~~~~~~~~~~~~~~~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:421:20: note: (near initialization for 'mipi_csi2_pad_ops.set_fmt')
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:431:10: error: 'struct v4l2_subdev_video_ops' has no member named 's_parm'
431 | .s_parm = mipi_csis_s_parm,
| ^~~~~~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:431:19: error: positional initialization of field in 'struct' declared with 'designated_init' attribute [-Werror=designated-init]
431 | .s_parm = mipi_csis_s_parm,
| ^~~~~~~~~~~~~~~~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:431:19: note: (near initialization for 'mipi_csi2_video_ops')
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:431:19: error: initialization of 'int (*)(struct v4l2_subdev *, struct v4l2_dv_timings *)' from incompatible pointer type 'int (*)(struct v4l2_subdev *, struct v4l2_streamparm *)' [-Werror=incompatible-pointer-types]
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:431:19: note: (near initialization for 'mipi_csi2_video_ops.s_dv_timings')
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:432:10: error: 'struct v4l2_subdev_video_ops' has no member named 'g_parm'
432 | .g_parm = mipi_csis_g_parm,
| ^~~~~~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:432:19: error: positional initialization of field in 'struct' declared with 'designated_init' attribute [-Werror=designated-init]
432 | .g_parm = mipi_csis_g_parm,
| ^~~~~~~~~~~~~~~~
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:432:19: note: (near initialization for 'mipi_csi2_video_ops')
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:432:19: error: initialization of 'int (*)(struct v4l2_subdev *)' from incompatible pointer type 'int (*)(struct v4l2_subdev *, struct v4l2_streamparm *)' [-Werror=incompatible-pointer-types]
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:432:19: note: (near initialization for 'mipi_csi2_video_ops.post_streamoff')
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c: In function 'mipi_csis_subdev_host':
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:507:9: error: implicit declaration of function 'v4l2_async_notifier_init'; did you mean 'v4l2_async_nf_init'? [-Werror=implicit-function-declaration]
507 | v4l2_async_notifier_init(&csi2dev->subdev_notifier);
| ^~~~~~~~~~~~~~~~~~~~~~~~
| v4l2_async_nf_init
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:539:9: error: implicit declaration of function 'v4l2_async_notifier_add_subdev'; did you mean 'v4l2_async_register_subdev'? [-Werror=implicit-function-declaration]
539 | v4l2_async_notifier_add_subdev(&csi2dev->subdev_notifier,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| v4l2_async_register_subdev
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:545:15: error: implicit declaration of function 'v4l2_async_notifier_register'; did you mean 'v4l2_async_nf_register'? [-Werror=implicit-function-declaration]
545 | ret = v4l2_async_notifier_register(&csi2dev->v4l2_dev,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| v4l2_async_nf_register
drivers/media/platform/imx8/mxc-mipi-csi2_yav.c: At top level:
>> drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:412:46: warning: 'mipi_csi2_sd_internal_ops' defined but not used [-Wunused-const-variable=]
412 | static const struct v4l2_subdev_internal_ops mipi_csi2_sd_internal_ops = {
| ^~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/mipi_csi2_sd_internal_ops +412 drivers/media/platform/imx8/mxc-mipi-csi2_yav.c
411
> 412 static const struct v4l2_subdev_internal_ops mipi_csi2_sd_internal_ops = {
413 .open = mipi_csi2_open,
414 };
415
416 static struct v4l2_subdev_pad_ops mipi_csi2_pad_ops = {
417 .enum_frame_size = mipi_csis_enum_framesizes,
418 .enum_frame_interval = mipi_csis_enum_frameintervals,
419 .enum_mbus_code = mipi_csis_enum_mbus_code,
420 .get_fmt = mipi_csi2_get_fmt,
421 .set_fmt = mipi_csi2_set_fmt,
422 };
423
424 static struct v4l2_subdev_core_ops mipi_csi2_core_ops = {
425 .s_power = mipi_csi2_s_power,
426 };
427
428 static struct v4l2_subdev_video_ops mipi_csi2_video_ops = {
429 .s_stream = mipi_csi2_s_stream,
430
431 .s_parm = mipi_csis_s_parm,
432 .g_parm = mipi_csis_g_parm,
433 };
434
435 static struct v4l2_subdev_ops mipi_csi2_subdev_ops = {
436 .core = &mipi_csi2_core_ops,
437 .video = &mipi_csi2_video_ops,
438 .pad = &mipi_csi2_pad_ops,
439 };
440
441 static int mipi_csi2_parse_dt(struct mxc_mipi_csi2_dev *csi2dev)
442 {
443 struct device *dev = &csi2dev->pdev->dev;
444 struct device_node *node = dev->of_node;
445 struct v4l2_fwnode_endpoint endpoint;
446 u32 i;
447
448 csi2dev->id = of_alias_get_id(node, "csi");
449
450 csi2dev->vchannel = of_property_read_bool(node, "virtual-channel");
451
452 node = of_graph_get_next_endpoint(node, NULL);
453 if (!node) {
454 dev_err(dev, "No port node at %s\n", node->full_name);
455 return -EINVAL;
456 }
457
458 /* Get port node */
459 memset(&endpoint, 0x0, sizeof(endpoint));
460 v4l2_fwnode_endpoint_parse(of_fwnode_handle(node), &endpoint);
461
462 csi2dev->num_lanes = endpoint.bus.mipi_csi2.num_data_lanes;
463 for (i = 0; i < csi2dev->num_lanes; i++)
464 csi2dev->data_lanes[i] = endpoint.bus.mipi_csi2.data_lanes[i];
465
466 of_node_put(node);
467
468 return 0;
469 }
470
471 static inline struct mxc_mipi_csi2_dev
472 *notifier_to_mipi_dev(struct v4l2_async_notifier *n)
473 {
474 return container_of(n, struct mxc_mipi_csi2_dev, subdev_notifier);
475 }
476
477 static int subdev_notifier_bound(struct v4l2_async_notifier *notifier,
478 struct v4l2_subdev *subdev,
479 struct v4l2_async_subdev *asd)
480 {
481 struct mxc_mipi_csi2_dev *csi2dev = notifier_to_mipi_dev(notifier);
482
483 /* Find platform data for this sensor subdev */
484 if (csi2dev->asd.match.fwnode == of_fwnode_handle(subdev->dev->of_node))
485 csi2dev->sensor_sd = subdev;
486
487 if (subdev == NULL)
488 return -EINVAL;
489
490 v4l2_info(&csi2dev->v4l2_dev, "Registered sensor subdevice: %s\n",
491 subdev->name);
492
493 return 0;
494 }
495
496 static const struct v4l2_async_notifier_operations subdev_notifier_ops = {
497 .bound = subdev_notifier_bound,
498 };
499
500 static int mipi_csis_subdev_host(struct mxc_mipi_csi2_dev *csi2dev)
501 {
502 struct device *dev = &csi2dev->pdev->dev;
503 struct device_node *parent = dev->of_node;
504 struct device_node *node, *port, *rem;
505 int ret;
506
507 v4l2_async_notifier_init(&csi2dev->subdev_notifier);
508
509 /* Attach sensors linked to csi receivers */
510 for_each_available_child_of_node(parent, node) {
511 if (of_node_cmp(node->name, "port"))
512 continue;
513
514 /* The csi node can have only port subnode. */
515 port = of_get_next_child(node, NULL);
516 if (!port)
517 continue;
518 rem = of_graph_get_remote_port_parent(port);
519 of_node_put(port);
520 if (rem == NULL) {
521 v4l2_info(&csi2dev->v4l2_dev,
522 "Remote device at %s not found\n",
523 port->full_name);
524 return -1;
525 } else
526 v4l2_info(&csi2dev->v4l2_dev,
527 "Remote device at %s XXX found\n",
528 port->full_name);
529
530 INIT_LIST_HEAD(&csi2dev->asd.list);
531 csi2dev->asd.match_type = V4L2_ASYNC_MATCH_FWNODE;
532 csi2dev->asd.match.fwnode = of_fwnode_handle(rem);
533 csi2dev->async_subdevs[0] = &csi2dev->asd;
534
535 of_node_put(rem);
536 break;
537 }
538
> 539 v4l2_async_notifier_add_subdev(&csi2dev->subdev_notifier,
540 &csi2dev->asd);
541
542 csi2dev->subdev_notifier.v4l2_dev = &csi2dev->v4l2_dev;
543 csi2dev->subdev_notifier.ops = &subdev_notifier_ops;
544
545 ret = v4l2_async_notifier_register(&csi2dev->v4l2_dev,
546 &csi2dev->subdev_notifier);
547 if (ret)
548 dev_err(dev,
549 "Error register async notifier regoster, ret %d\n",
550 ret);
551
552 return ret;
553 }
554
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-06-22 13:48 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-22 13:17 [freescale-fslc:6.1-1.0.x-imx 195/9881] drivers/media/platform/imx8/mxc-mipi-csi2_yav.c:412:46: warning: 'mipi_csi2_sd_internal_ops' defined but not used 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.