From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: drivers/leds/flash/leds-rt8515.c:354: undefined reference to `v4l2_flash_init'
Date: Fri, 12 Feb 2021 00:01:46 +0800 [thread overview]
Message-ID: <202102120041.OsLcnURI-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 4836 bytes --]
Hi Linus,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 291009f656e8eaebbdfd3a8d99f6b190a9ce9deb
commit: e1c6edcbea13de025c3406645b4cce4ac3baf973 leds: rt8515: Add Richtek RT8515 LED driver
date: 11 days ago
config: i386-randconfig-a005-20210209 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e1c6edcbea13de025c3406645b4cce4ac3baf973
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout e1c6edcbea13de025c3406645b4cce4ac3baf973
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
ld: drivers/leds/flash/leds-rt8515.o: in function `rt8515_v4l2_flash_release':
drivers/leds/flash/leds-rt8515.c:216: undefined reference to `v4l2_flash_release'
ld: drivers/leds/flash/leds-rt8515.o: in function `rt8515_probe':
>> drivers/leds/flash/leds-rt8515.c:354: undefined reference to `v4l2_flash_init'
vim +354 drivers/leds/flash/leds-rt8515.c
275
276 static int rt8515_probe(struct platform_device *pdev)
277 {
278 struct device *dev = &pdev->dev;
279 struct fwnode_handle *child;
280 struct rt8515 *rt;
281 struct led_classdev *led;
282 struct led_classdev_flash *fled;
283 struct led_init_data init_data = {};
284 struct v4l2_flash_config v4l2_sd_cfg = {};
285 int ret;
286
287 rt = devm_kzalloc(dev, sizeof(*rt), GFP_KERNEL);
288 if (!rt)
289 return -ENOMEM;
290
291 rt->dev = dev;
292 fled = &rt->fled;
293 led = &fled->led_cdev;
294
295 /* ENF - Enable Flash line */
296 rt->enable_flash = devm_gpiod_get(dev, "enf", GPIOD_OUT_LOW);
297 if (IS_ERR(rt->enable_flash))
298 return dev_err_probe(dev, PTR_ERR(rt->enable_flash),
299 "cannot get ENF (enable flash) GPIO\n");
300
301 /* ENT - Enable Torch line */
302 rt->enable_torch = devm_gpiod_get(dev, "ent", GPIOD_OUT_LOW);
303 if (IS_ERR(rt->enable_torch))
304 return dev_err_probe(dev, PTR_ERR(rt->enable_torch),
305 "cannot get ENT (enable torch) GPIO\n");
306
307 child = fwnode_get_next_available_child_node(dev->fwnode, NULL);
308 if (!child) {
309 dev_err(dev,
310 "No fwnode child node found for connected LED.\n");
311 return -EINVAL;
312 }
313 init_data.fwnode = child;
314
315 rt8515_determine_max_intensity(rt, child, "richtek,rfs-ohms",
316 "flash-max-microamp",
317 RT8515_FLASH_MAX,
318 &rt->flash_max_intensity);
319 rt8515_determine_max_intensity(rt, child, "richtek,rts-ohms",
320 "led-max-microamp",
321 RT8515_TORCH_MAX,
322 &rt->torch_max_intensity);
323
324 ret = fwnode_property_read_u32(child, "flash-max-timeout-us",
325 &rt->max_timeout);
326 if (ret) {
327 rt->max_timeout = RT8515_MAX_TIMEOUT_US;
328 dev_warn(dev,
329 "flash-max-timeout-us property missing\n");
330 }
331 timer_setup(&rt->powerdown_timer, rt8515_powerdown_timer, 0);
332 rt8515_init_flash_timeout(rt);
333
334 fled->ops = &rt8515_flash_ops;
335
336 led->max_brightness = rt->torch_max_intensity;
337 led->brightness_set_blocking = rt8515_led_brightness_set;
338 led->flags |= LED_CORE_SUSPENDRESUME | LED_DEV_CAP_FLASH;
339
340 mutex_init(&rt->lock);
341
342 platform_set_drvdata(pdev, rt);
343
344 ret = devm_led_classdev_flash_register_ext(dev, fled, &init_data);
345 if (ret) {
346 dev_err(dev, "can't register LED %s\n", led->name);
347 mutex_destroy(&rt->lock);
348 return ret;
349 }
350
351 rt8515_init_v4l2_flash_config(rt, &v4l2_sd_cfg);
352
353 /* Create a V4L2 Flash device if V4L2 flash is enabled */
> 354 rt->v4l2_flash = v4l2_flash_init(dev, child, fled, NULL, &v4l2_sd_cfg);
355 if (IS_ERR(rt->v4l2_flash)) {
356 ret = PTR_ERR(rt->v4l2_flash);
357 dev_err(dev, "failed to register V4L2 flash device (%d)\n",
358 ret);
359 /*
360 * Continue without the V4L2 flash
361 * (we still have the classdev)
362 */
363 }
364
365 return 0;
366 }
367
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34089 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
Pavel Machek <pavel@ucw.cz>,
Sakari Ailus <sakari.ailus@linux.intel.com>
Subject: drivers/leds/flash/leds-rt8515.c:354: undefined reference to `v4l2_flash_init'
Date: Fri, 12 Feb 2021 00:01:46 +0800 [thread overview]
Message-ID: <202102120041.OsLcnURI-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 4706 bytes --]
Hi Linus,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 291009f656e8eaebbdfd3a8d99f6b190a9ce9deb
commit: e1c6edcbea13de025c3406645b4cce4ac3baf973 leds: rt8515: Add Richtek RT8515 LED driver
date: 11 days ago
config: i386-randconfig-a005-20210209 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e1c6edcbea13de025c3406645b4cce4ac3baf973
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout e1c6edcbea13de025c3406645b4cce4ac3baf973
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
ld: drivers/leds/flash/leds-rt8515.o: in function `rt8515_v4l2_flash_release':
drivers/leds/flash/leds-rt8515.c:216: undefined reference to `v4l2_flash_release'
ld: drivers/leds/flash/leds-rt8515.o: in function `rt8515_probe':
>> drivers/leds/flash/leds-rt8515.c:354: undefined reference to `v4l2_flash_init'
vim +354 drivers/leds/flash/leds-rt8515.c
275
276 static int rt8515_probe(struct platform_device *pdev)
277 {
278 struct device *dev = &pdev->dev;
279 struct fwnode_handle *child;
280 struct rt8515 *rt;
281 struct led_classdev *led;
282 struct led_classdev_flash *fled;
283 struct led_init_data init_data = {};
284 struct v4l2_flash_config v4l2_sd_cfg = {};
285 int ret;
286
287 rt = devm_kzalloc(dev, sizeof(*rt), GFP_KERNEL);
288 if (!rt)
289 return -ENOMEM;
290
291 rt->dev = dev;
292 fled = &rt->fled;
293 led = &fled->led_cdev;
294
295 /* ENF - Enable Flash line */
296 rt->enable_flash = devm_gpiod_get(dev, "enf", GPIOD_OUT_LOW);
297 if (IS_ERR(rt->enable_flash))
298 return dev_err_probe(dev, PTR_ERR(rt->enable_flash),
299 "cannot get ENF (enable flash) GPIO\n");
300
301 /* ENT - Enable Torch line */
302 rt->enable_torch = devm_gpiod_get(dev, "ent", GPIOD_OUT_LOW);
303 if (IS_ERR(rt->enable_torch))
304 return dev_err_probe(dev, PTR_ERR(rt->enable_torch),
305 "cannot get ENT (enable torch) GPIO\n");
306
307 child = fwnode_get_next_available_child_node(dev->fwnode, NULL);
308 if (!child) {
309 dev_err(dev,
310 "No fwnode child node found for connected LED.\n");
311 return -EINVAL;
312 }
313 init_data.fwnode = child;
314
315 rt8515_determine_max_intensity(rt, child, "richtek,rfs-ohms",
316 "flash-max-microamp",
317 RT8515_FLASH_MAX,
318 &rt->flash_max_intensity);
319 rt8515_determine_max_intensity(rt, child, "richtek,rts-ohms",
320 "led-max-microamp",
321 RT8515_TORCH_MAX,
322 &rt->torch_max_intensity);
323
324 ret = fwnode_property_read_u32(child, "flash-max-timeout-us",
325 &rt->max_timeout);
326 if (ret) {
327 rt->max_timeout = RT8515_MAX_TIMEOUT_US;
328 dev_warn(dev,
329 "flash-max-timeout-us property missing\n");
330 }
331 timer_setup(&rt->powerdown_timer, rt8515_powerdown_timer, 0);
332 rt8515_init_flash_timeout(rt);
333
334 fled->ops = &rt8515_flash_ops;
335
336 led->max_brightness = rt->torch_max_intensity;
337 led->brightness_set_blocking = rt8515_led_brightness_set;
338 led->flags |= LED_CORE_SUSPENDRESUME | LED_DEV_CAP_FLASH;
339
340 mutex_init(&rt->lock);
341
342 platform_set_drvdata(pdev, rt);
343
344 ret = devm_led_classdev_flash_register_ext(dev, fled, &init_data);
345 if (ret) {
346 dev_err(dev, "can't register LED %s\n", led->name);
347 mutex_destroy(&rt->lock);
348 return ret;
349 }
350
351 rt8515_init_v4l2_flash_config(rt, &v4l2_sd_cfg);
352
353 /* Create a V4L2 Flash device if V4L2 flash is enabled */
> 354 rt->v4l2_flash = v4l2_flash_init(dev, child, fled, NULL, &v4l2_sd_cfg);
355 if (IS_ERR(rt->v4l2_flash)) {
356 ret = PTR_ERR(rt->v4l2_flash);
357 dev_err(dev, "failed to register V4L2 flash device (%d)\n",
358 ret);
359 /*
360 * Continue without the V4L2 flash
361 * (we still have the classdev)
362 */
363 }
364
365 return 0;
366 }
367
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 34089 bytes --]
next reply other threads:[~2021-02-11 16:01 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-11 16:01 kernel test robot [this message]
2021-02-11 16:01 ` drivers/leds/flash/leds-rt8515.c:354: undefined reference to `v4l2_flash_init' 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=202102120041.OsLcnURI-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/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.