[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <e1f7b80c-7b7f-40d1-ab0c-051198b245e3@stanley.mountain>
Date: Fri, 21 Mar 2025 19:38:27 +0300
From: Dan Carpenter <dan.carpenter@...aro.org>
To: oe-kbuild@...ts.linux.dev,
Bryan O'Donoghue <bryan.odonoghue@...aro.org>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
Sakari Ailus <sakari.ailus@...ux.intel.com>,
Liam Girdwood <lgirdwood@...il.com>,
Mark Brown <broonie@...nel.org>
Cc: lkp@...el.com, oe-kbuild-all@...ts.linux.dev,
linux-media@...r.kernel.org,
Jingjing Xiong <jingjing.xiong@...el.com>,
Hao Yao <hao.yao@...el.com>, Jim Lai <jim.lai@...el.com>,
You-Sheng Yang <vicamo.yang@...onical.com>,
Alan Stern <stern@...land.harvard.edu>,
Hans de Goede <hdegoede@...hat.com>, linux-kernel@...r.kernel.org,
Bryan O'Donoghue <bryan.odonoghue@...aro.org>
Subject: Re: [PATCH 1/8] media: i2c: add OV02E10 image sensor driver
Hi Bryan,
kernel test robot noticed the following build warnings:
url: https://github.com/intel-lab-lkp/linux/commits/Bryan-O-Donoghue/media-i2c-add-OV02E10-image-sensor-driver/20250317-084316
base: f2151613e040973c868d28c8b00885dfab69eb75
patch link: https://lore.kernel.org/r/20250317-b4-media-comitters-next-25-03-13-ov02e10-v1-1-bd924634b889%40linaro.org
patch subject: [PATCH 1/8] media: i2c: add OV02E10 image sensor driver
config: openrisc-randconfig-r073-20250321 (https://download.01.org/0day-ci/archive/20250322/202503220055.pt1r9P7M-lkp@intel.com/config)
compiler: or1k-linux-gcc (GCC) 11.5.0
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@...el.com>
| Reported-by: Dan Carpenter <dan.carpenter@...aro.org>
| Closes: https://lore.kernel.org/r/202503220055.pt1r9P7M-lkp@intel.com/
smatch warnings:
drivers/media/i2c/ov02e10.c:903 ov02e10_probe() warn: missing unwind goto?
vim +903 drivers/media/i2c/ov02e10.c
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 862 static int ov02e10_probe(struct i2c_client *client)
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 863 {
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 864 struct ov02e10 *ov02e;
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 865 int ret;
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 866
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 867 /* Check HW config */
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 868 ret = ov02e10_check_hwcfg(&client->dev);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 869 if (ret)
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 870 return ret;
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 871
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 872 ov02e = devm_kzalloc(&client->dev, sizeof(*ov02e), GFP_KERNEL);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 873 if (!ov02e)
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 874 return -ENOMEM;
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 875
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 876 /* Initialize subdev */
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 877 ov02e->regmap = devm_cci_regmap_init_i2c(client, 8);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 878 if (IS_ERR(ov02e->regmap))
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 879 return PTR_ERR(ov02e->regmap);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 880
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 881 v4l2_i2c_subdev_init(&ov02e->sd, client, &ov02e10_subdev_ops);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 882 ov02e10_get_pm_resources(&client->dev);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 883
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 884 ret = ov02e10_power_on(&client->dev);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 885 if (ret) {
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 886 dev_err_probe(&client->dev, ret, "failed to power on\n");
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 887 goto error_power_off;
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 888 }
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 889
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 890 /* Check module identity */
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 891 ret = ov02e10_identify_module(ov02e);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 892 if (ret) {
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 893 dev_err(&client->dev, "failed to find sensor: %d\n", ret);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 894 goto error_power_off;
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 895 }
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 896
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 897 /* Set default mode to max resolution */
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 898 ov02e->cur_mode = &supported_modes[0];
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 899
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 900 dev_dbg(&client->dev, "will Init controls\n");
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 901 ret = ov02e10_init_controls(ov02e);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 902 if (ret)
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 @903 return ret;
goto error_power_off;?
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 904
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 905 /* Initialize subdev */
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 906 ov02e->sd.internal_ops = &ov02e10_internal_ops;
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 907 ov02e->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 908 ov02e->sd.entity.ops = &ov02e10_subdev_entity_ops;
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 909 ov02e->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 910
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 911 /* Initialize source pad */
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 912 ov02e->pad.flags = MEDIA_PAD_FL_SOURCE;
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 913 ret = media_entity_pads_init(&ov02e->sd.entity, 1, &ov02e->pad);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 914 if (ret) {
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 915 dev_err(&client->dev, "%s failed:%d\n", __func__, ret);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 916 goto error_handler_free;
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 917 }
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 918
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 919 ret = v4l2_async_register_subdev_sensor(&ov02e->sd);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 920 if (ret < 0) {
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 921 dev_err(&client->dev, "async reg subdev error\n");
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 922 goto error_media_entity;
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 923 }
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 924
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 925 /*
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 926 * Device is already turned on by i2c-core with ACPI domain PM.
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 927 * Enable runtime PM and turn off the device.
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 928 */
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 929 pm_runtime_set_active(&client->dev);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 930 pm_runtime_enable(&client->dev);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 931 pm_runtime_idle(&client->dev);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 932
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 933 return 0;
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 934
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 935 error_media_entity:
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 936 media_entity_cleanup(&ov02e->sd.entity);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 937
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 938 error_handler_free:
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 939 v4l2_ctrl_handler_free(ov02e->sd.ctrl_handler);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 940 mutex_destroy(&ov02e->mutex);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 941 dev_err(&client->dev, "%s failed:%d\n", __func__, ret);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 942 error_power_off:
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 943 ov02e10_power_off(&client->dev);
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 944
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 945 dev_dbg(&client->dev, "probe done\n");
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 946 return ret;
62323d3b3c4dc1 Jingjing Xiong 2025-03-17 947 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists