Hi Daniel,
[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on v5.7-rc1 next-20200414]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see
https://stackoverflow.com/a/37406982]
url:
https://github.com/0day-ci/linux/commits/Daniel-Gomez/v4l2-api-changes-fo...
base:
git://linuxtv.org/media_tree.git master
config: parisc-allyesconfig (attached as .config)
compiler: hppa-linux-gcc (GCC) 9.3.0
reproduce:
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=9.3.0 make.cross ARCH=parisc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/media/i2c/imx378.c: In function 'imx378_probe':
> drivers/media/i2c/imx378.c:1754:8: error: implicit declaration of
function 'v4l2_device_register_subdev'; did you mean
'v4l2_async_register_subdev'? [-Werror=implicit-function-declaration]
1754 | ret = v4l2_device_register_subdev(&imx378->v4l2_dev, &imx378->sd);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| v4l2_async_register_subdev
> drivers/media/i2c/imx378.c:1754:43: error: 'struct
imx378' has no member named 'v4l2_dev'
1754 | ret =
v4l2_device_register_subdev(&imx378->v4l2_dev, &imx378->sd);
| ^~
> drivers/media/i2c/imx378.c:1760:8: error: implicit declaration of
function 'v4l2_device_register_subdev_nodes'; did you mean
'v4l2_async_register_subdev'? [-Werror=implicit-function-declaration]
1760 | ret = v4l2_device_register_subdev_nodes(&imx378->v4l2_dev);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| v4l2_async_register_subdev
drivers/media/i2c/imx378.c:1760:49: error: 'struct imx378' has no member named
'v4l2_dev'
1760 | ret = v4l2_device_register_subdev_nodes(&imx378->v4l2_dev);
| ^~
At top level:
drivers/media/i2c/imx378.c:577:12: warning: 'imx378_read_reg16' defined but not
used [-Wunused-function]
577 | static int imx378_read_reg16(struct imx378 *imx378, u16 addr, u16 *val)
| ^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +1754 drivers/media/i2c/imx378.c
1674
1675 static int imx378_probe(struct i2c_client *client)
1676 {
1677 struct device *dev = &client->dev;
1678 struct imx378 *imx378;
1679 int ret;
1680
1681 ret = imx378_parse_fwnode(dev);
1682 if (ret)
1683 return ret;
1684
1685 imx378 = devm_kzalloc(dev, sizeof(*imx378), GFP_KERNEL);
1686 if (!imx378)
1687 return -ENOMEM;
1688
1689 imx378->dev = dev;
1690
1691 imx378->xclk = devm_clk_get(dev, NULL);
1692 if (IS_ERR(imx378->xclk)) {
1693 dev_err(dev, "could not get xclk");
1694 return PTR_ERR(imx378->xclk);
1695 }
1696
1697 ret = clk_set_rate(imx378->xclk, IMX378_DEFAULT_CLK_FREQ);
1698 if (ret) {
1699 dev_err(dev, "could not set xclk frequency\n");
1700 return ret;
1701 }
1702
1703 ret = imx378_get_regulators(dev, imx378);
1704 if (ret < 0) {
1705 dev_err(dev, "could not get regulators\n");
1706 return ret;
1707 }
1708
1709 imx378->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW);
1710 if (IS_ERR(imx378->enable_gpio)) {
1711 dev_err(dev, "could get enable gpio\n");
1712 return PTR_ERR(imx378->enable_gpio);
1713 }
1714
1715 imx378->regmap = devm_regmap_init_i2c(client, &sensor_regmap_config);
1716 if (IS_ERR(imx378->regmap)) {
1717 dev_err(dev, "regmap init failed\n");
1718 return PTR_ERR(imx378->regmap);
1719 }
1720
1721 v4l2_i2c_subdev_init(&imx378->sd, client, &imx378_subdev_ops);
1722
1723 imx378_power_on(imx378->dev);
1724
1725 pm_runtime_set_active(imx378->dev);
1726 pm_runtime_enable(imx378->dev);
1727 pm_runtime_idle(imx378->dev);
1728
1729 ret = imx378_init_controls(imx378);
1730 if (ret) {
1731 dev_err(dev, "failed to init controls: %d", ret);
1732 goto error_probe;
1733 }
1734
1735 imx378->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
1736 imx378->pad.flags = MEDIA_PAD_FL_SOURCE;
1737 imx378->sd.dev = &client->dev;
1738 imx378->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;
1739
1740 ret = media_entity_pads_init(&imx378->sd.entity, 1, &imx378->pad);
1741 if (ret < 0) {
1742 dev_err(dev, "could not register media entity\n");
1743 goto free_ctrl;
1744 }
1745
1746 imx378_entity_init_cfg(&imx378->sd, NULL);
1747
1748 ret = v4l2_async_register_subdev_sensor_common(&imx378->sd);
1749 if (ret < 0) {
1750 dev_err(dev, "could not register v4l2 device\n");
1751 goto free_entity;
1752 }
1753
1754 ret = v4l2_device_register_subdev(&imx378->v4l2_dev,
&imx378->sd);
1755 if (ret < 0) {
1756 dev_err(dev, "could not register v4l2 sd\n");
1757 goto free_entity;
1758 }
1759
1760 ret =
v4l2_device_register_subdev_nodes(&imx378->v4l2_dev);
1761 if (ret) {
1762 dev_err(dev, "imx378 subdev nodes registration failed (err=%d)\n",
1763 ret);
1764 return ret;
1765 }
1766
1767 return 0;
1768
1769 free_entity:
1770 media_entity_cleanup(&imx378->sd.entity);
1771 free_ctrl:
1772 v4l2_ctrl_handler_free(&imx378->ctrls);
1773 error_probe:
1774 mutex_destroy(&imx378->mutex);
1775 pm_runtime_disable(imx378->dev);
1776
1777 return ret;
1778 }
1779
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org