CC: [email protected] CC: [email protected] In-Reply-To: <[email protected]> References: <[email protected]> TO: Bruno Meneguele <[email protected]> TO: [email protected] TO: [email protected] CC: [email protected] CC: [email protected] CC: [email protected] CC: Bruno Meneguele <[email protected]>
Hi Bruno, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on power-supply/for-next] [also build test WARNING on next-20210817] [cannot apply to robh/for-next linux/master linus/master v5.14-rc6] [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/Bruno-Meneguele/add-Watchdog-Timer-delay-support-for-BQ24735/20210817-005512 base: https://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply.git for-next :::::: branch date: 30 hours ago :::::: commit date: 30 hours ago config: riscv-randconfig-c006-20210816 (attached as .config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 2c6448cdc2f68f8c28fd0bd9404182b81306e6e6) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install riscv cross compiling tool for clang build # apt-get install binutils-riscv64-linux-gnu # https://github.com/0day-ci/linux/commit/d6de3f6beb69494e7937619905e8eacceed4a203 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Bruno-Meneguele/add-Watchdog-Timer-delay-support-for-BQ24735/20210817-005512 git checkout d6de3f6beb69494e7937619905e8eacceed4a203 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) fs/f2fs/segment.c:5116:26: note: Calling 'SM_I' for (segno = 0; segno < MAIN_SEGS(sbi); segno += sbi->segs_per_sec) { ^ fs/f2fs/segment.h:73:25: note: expanded from macro 'MAIN_SEGS' #define MAIN_SEGS(sbi) (SM_I(sbi)->main_segments) ^~~~~~~~~ fs/f2fs/f2fs.h:1929:2: note: Returning without writing to 'sbi->segs_per_sec' return (struct f2fs_sm_info *)(sbi->sm_info); ^ fs/f2fs/segment.c:5116:26: note: Returning from 'SM_I' for (segno = 0; segno < MAIN_SEGS(sbi); segno += sbi->segs_per_sec) { ^ fs/f2fs/segment.h:73:25: note: expanded from macro 'MAIN_SEGS' #define MAIN_SEGS(sbi) (SM_I(sbi)->main_segments) ^~~~~~~~~ fs/f2fs/segment.c:5116:18: note: Assuming 'segno' is < field 'main_segments' for (segno = 0; segno < MAIN_SEGS(sbi); segno += sbi->segs_per_sec) { ^~~~~~~~~~~~~~~~~~~~~~ fs/f2fs/segment.c:5116:2: note: Loop condition is true. Entering loop body for (segno = 0; segno < MAIN_SEGS(sbi); segno += sbi->segs_per_sec) { ^ fs/f2fs/segment.c:5120:15: note: Assuming 'i' is >= field 'segs_per_sec' for (i = 0; i < sbi->segs_per_sec; i++) ^~~~~~~~~~~~~~~~~~~~~ fs/f2fs/segment.c:5120:3: note: Loop condition is false. Execution continues on line 5123 for (i = 0; i < sbi->segs_per_sec; i++) ^ fs/f2fs/segment.c:5123:26: note: Passing the value 0 via 2nd parameter 'divisor' mtime = div_u64(mtime, sbi->segs_per_sec); ^~~~~~~~~~~~~~~~~ fs/f2fs/segment.c:5123:11: note: Calling 'div_u64' mtime = div_u64(mtime, sbi->segs_per_sec); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/math64.h:128:31: note: Passing the value 0 via 2nd parameter 'divisor' return div_u64_rem(dividend, divisor, &remainder); ^~~~~~~ include/linux/math64.h:128:9: note: Calling 'div_u64_rem' return div_u64_rem(dividend, divisor, &remainder); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/math64.h:92:15: note: '__base' initialized to 0 *remainder = do_div(dividend, divisor); ^ include/asm-generic/div64.h:226:2: note: expanded from macro 'do_div' uint32_t __base = (base); \ ^~~~~~~~~~~~~~~ include/linux/math64.h:92:15: note: Left side of '&&' is false *remainder = do_div(dividend, divisor); ^ include/asm-generic/div64.h:229:35: note: expanded from macro 'do_div' if (__builtin_constant_p(__base) && \ ^ include/linux/math64.h:92:15: note: 4 is >= 4 *remainder = do_div(dividend, divisor); ^ include/asm-generic/div64.h:233:13: note: expanded from macro 'do_div' } else if (__div64_const32_is_OK && \ ^~~~~~~~~~~~~~~~~~~~~ include/asm-generic/div64.h:68:32: note: expanded from macro '__div64_const32_is_OK' #define __div64_const32_is_OK (__GNUC__ >= 4) ^~~~~~~~ note: expanded from here include/linux/math64.h:92:15: note: Left side of '&&' is true *remainder = do_div(dividend, divisor); ^ include/asm-generic/div64.h:233:13: note: expanded from macro 'do_div' } else if (__div64_const32_is_OK && \ ^ include/asm-generic/div64.h:68:31: note: expanded from macro '__div64_const32_is_OK' #define __div64_const32_is_OK (__GNUC__ >= 4) ^ include/linux/math64.h:92:15: note: Left side of '&&' is false *remainder = do_div(dividend, divisor); ^ include/asm-generic/div64.h:234:35: note: expanded from macro 'do_div' __builtin_constant_p(__base) && \ ^ include/linux/math64.h:92:15: note: Taking true branch *remainder = do_div(dividend, divisor); ^ include/asm-generic/div64.h:241:9: note: expanded from macro 'do_div' } else if (likely(((n) >> 32) == 0)) { \ ^ include/linux/math64.h:92:15: note: Division by zero *remainder = do_div(dividend, divisor); ^ include/asm-generic/div64.h:242:25: note: expanded from macro 'do_div' __rem = (uint32_t)(n) % __base; \ ~~~~~~~~~~~~~~^~~~~~~~ Suppressed 9 warnings (9 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. Suppressed 9 warnings (9 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. Suppressed 9 warnings (9 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 9 warnings generated. Suppressed 9 warnings (9 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 10 warnings generated. >> drivers/power/supply/bq24735-charger.c:527:31: warning: The right operand of >> '>' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult] if (charger->poll_interval > wdt_ms) { ^ ~~~~~~ drivers/power/supply/bq24735-charger.c:397:12: note: Calling 'devm_kzalloc' charger = devm_kzalloc(&client->dev, sizeof(*charger), GFP_KERNEL); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/device.h:208:9: note: Value assigned to field 'platform_data', which participates in a condition later return devm_kmalloc(dev, size, gfp | __GFP_ZERO); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/device.h:208:2: note: Returning pointer, which participates in a condition later return devm_kmalloc(dev, size, gfp | __GFP_ZERO); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/power/supply/bq24735-charger.c:397:12: note: Returning from 'devm_kzalloc' charger = devm_kzalloc(&client->dev, sizeof(*charger), GFP_KERNEL); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/power/supply/bq24735-charger.c:398:6: note: Assuming 'charger' is non-null if (!charger) ^~~~~~~~ drivers/power/supply/bq24735-charger.c:398:2: note: Taking false branch if (!charger) ^ drivers/power/supply/bq24735-charger.c:401:2: note: Loop condition is false. Exiting loop mutex_init(&charger->lock); ^ include/linux/mutex.h:113:32: note: expanded from macro 'mutex_init' #define mutex_init(mutex) \ ^ drivers/power/supply/bq24735-charger.c:405:6: note: Left side of '&&' is true if (IS_ENABLED(CONFIG_OF) && !charger->pdata && client->dev.of_node) ^ include/linux/kconfig.h:73:28: note: expanded from macro 'IS_ENABLED' #define IS_ENABLED(option) __or(IS_BUILTIN(option), IS_MODULE(option)) ^ include/linux/kconfig.h:24:22: note: expanded from macro '__or' #define __or(x, y) ___or(x, y) ^ include/linux/kconfig.h:25:23: note: expanded from macro '___or' #define ___or(x, y) ____or(__ARG_PLACEHOLDER_##x, y) ^ include/linux/kconfig.h:26:65: note: expanded from macro '____or' #define ____or(arg1_or_junk, y) __take_second_arg(arg1_or_junk 1, y) ^ drivers/power/supply/bq24735-charger.c:405:31: note: Assuming field 'pdata' is non-null if (IS_ENABLED(CONFIG_OF) && !charger->pdata && client->dev.of_node) ^~~~~~~~~~~~~~~ drivers/power/supply/bq24735-charger.c:405:47: note: Left side of '&&' is false if (IS_ENABLED(CONFIG_OF) && !charger->pdata && client->dev.of_node) ^ drivers/power/supply/bq24735-charger.c:408:16: note: Field 'pdata' is non-null if (!charger->pdata) { ^ drivers/power/supply/bq24735-charger.c:408:2: note: Taking false branch if (!charger->pdata) { ^ drivers/power/supply/bq24735-charger.c:414:6: note: Assuming 'name' is non-null if (!name) { ^~~~~ drivers/power/supply/bq24735-charger.c:414:2: note: Taking false branch if (!name) { ^ drivers/power/supply/bq24735-charger.c:442:2: note: Calling 'i2c_set_clientdata' i2c_set_clientdata(client, charger); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/i2c.h:365:2: note: Calling 'dev_set_drvdata' dev_set_drvdata(&client->dev, data); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/device.h:686:1: note: Returning without writing to 'data->status_gpio', which participates in a condition later } ^ include/linux/device.h:686:1: note: Returning without writing to 'data->poll_interval', which participates in a condition later include/linux/i2c.h:365:2: note: Returning from 'dev_set_drvdata' dev_set_drvdata(&client->dev, data); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/i2c.h:366:1: note: Returning without writing to 'data->status_gpio', which participates in a condition later } ^ include/linux/i2c.h:366:1: note: Returning without writing to 'client->irq', which participates in a condition later include/linux/i2c.h:366:1: note: Returning without writing to 'data->poll_interval', which participates in a condition later drivers/power/supply/bq24735-charger.c:442:2: note: Returning from 'i2c_set_clientdata' i2c_set_clientdata(client, charger); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/power/supply/bq24735-charger.c:447:6: note: Calling 'IS_ERR' if (IS_ERR(charger->status_gpio)) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/err.h:36:9: note: Assuming the condition is false return IS_ERR_VALUE((unsigned long)ptr); ^ include/linux/err.h:22:34: note: expanded from macro 'IS_ERR_VALUE' #define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO) ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ include/linux/err.h:36:2: note: Returning zero, which participates in a condition later return IS_ERR_VALUE((unsigned long)ptr); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/power/supply/bq24735-charger.c:447:6: note: Returning from 'IS_ERR' if (IS_ERR(charger->status_gpio)) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/power/supply/bq24735-charger.c:447:2: note: Taking false branch if (IS_ERR(charger->status_gpio)) { vim +527 drivers/power/supply/bq24735-charger.c ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 387 ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 388 static int bq24735_charger_probe(struct i2c_client *client, ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 389 const struct i2c_device_id *id) ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 390 { ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 391 int ret; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 392 struct bq24735 *charger; 297d716f6260cc drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 393 struct power_supply_desc *supply_desc; 2dc9215d7c94f7 drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 394 struct power_supply_config psy_cfg = {}; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 395 char *name; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 396 ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 397 charger = devm_kzalloc(&client->dev, sizeof(*charger), GFP_KERNEL); ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 398 if (!charger) ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 399 return -ENOMEM; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 400 5b7a0187391fe9 drivers/power/bq24735-charger.c Peter Rosin 2016-01-12 401 mutex_init(&charger->lock); 5b7a0187391fe9 drivers/power/bq24735-charger.c Peter Rosin 2016-01-12 402 charger->charging = true; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 403 charger->pdata = client->dev.platform_data; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 404 ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 405 if (IS_ENABLED(CONFIG_OF) && !charger->pdata && client->dev.of_node) ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 406 charger->pdata = bq24735_parse_dt_data(client); ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 407 ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 408 if (!charger->pdata) { ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 409 dev_err(&client->dev, "no platform data provided\n"); ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 410 return -EINVAL; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 411 } ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 412 ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 413 name = (char *)charger->pdata->name; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 414 if (!name) { 71a5a508436332 drivers/power/bq24735-charger.c Vaishali Thakkar 2015-07-25 415 name = devm_kasprintf(&client->dev, GFP_KERNEL, 71a5a508436332 drivers/power/bq24735-charger.c Vaishali Thakkar 2015-07-25 416 "bq24735@%s", ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 417 dev_name(&client->dev)); ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 418 if (!name) { ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 419 dev_err(&client->dev, "Failed to alloc device name\n"); ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 420 return -ENOMEM; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 421 } ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 422 } ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 423 ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 424 charger->client = client; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 425 297d716f6260cc drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 426 supply_desc = &charger->charger_desc; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 427 297d716f6260cc drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 428 supply_desc->name = name; 297d716f6260cc drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 429 supply_desc->type = POWER_SUPPLY_TYPE_MAINS; 297d716f6260cc drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 430 supply_desc->properties = bq24735_charger_properties; 297d716f6260cc drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 431 supply_desc->num_properties = ARRAY_SIZE(bq24735_charger_properties); 297d716f6260cc drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 432 supply_desc->get_property = bq24735_charger_get_property; 5b7a0187391fe9 drivers/power/bq24735-charger.c Peter Rosin 2016-01-12 433 supply_desc->set_property = bq24735_charger_set_property; 5b7a0187391fe9 drivers/power/bq24735-charger.c Peter Rosin 2016-01-12 434 supply_desc->property_is_writeable = 5b7a0187391fe9 drivers/power/bq24735-charger.c Peter Rosin 2016-01-12 435 bq24735_charger_property_is_writeable; 2dc9215d7c94f7 drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 436 2dc9215d7c94f7 drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 437 psy_cfg.supplied_to = charger->pdata->supplied_to; 2dc9215d7c94f7 drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 438 psy_cfg.num_supplicants = charger->pdata->num_supplicants; 2dc9215d7c94f7 drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 439 psy_cfg.of_node = client->dev.of_node; 297d716f6260cc drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 440 psy_cfg.drv_data = charger; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 441 ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 442 i2c_set_clientdata(client, charger); ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 443 c65a8b51123a14 drivers/power/supply/bq24735-charger.c Paul Kocialkowski 2016-09-03 444 charger->status_gpio = devm_gpiod_get_optional(&client->dev, c65a8b51123a14 drivers/power/supply/bq24735-charger.c Paul Kocialkowski 2016-09-03 445 "ti,ac-detect", c65a8b51123a14 drivers/power/supply/bq24735-charger.c Paul Kocialkowski 2016-09-03 446 GPIOD_IN); c65a8b51123a14 drivers/power/supply/bq24735-charger.c Paul Kocialkowski 2016-09-03 447 if (IS_ERR(charger->status_gpio)) { c65a8b51123a14 drivers/power/supply/bq24735-charger.c Paul Kocialkowski 2016-09-03 448 ret = PTR_ERR(charger->status_gpio); c65a8b51123a14 drivers/power/supply/bq24735-charger.c Paul Kocialkowski 2016-09-03 449 dev_err(&client->dev, "Getting gpio failed: %d\n", ret); c65a8b51123a14 drivers/power/supply/bq24735-charger.c Paul Kocialkowski 2016-09-03 450 return ret; 1a3adce1c2c834 drivers/power/bq24735-charger.c Jonathan Tinkham 2016-02-02 451 } 1a3adce1c2c834 drivers/power/bq24735-charger.c Jonathan Tinkham 2016-02-02 452 a7d143d42b3d88 drivers/power/supply/bq24735-charger.c Peter Rosin 2016-12-20 453 if (bq24735_charger_is_present(charger)) { ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 454 ret = bq24735_read_word(client, BQ24735_MANUFACTURER_ID); ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 455 if (ret < 0) { ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 456 dev_err(&client->dev, "Failed to read manufacturer id : %d\n", ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 457 ret); 71a5a508436332 drivers/power/bq24735-charger.c Vaishali Thakkar 2015-07-25 458 return ret; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 459 } else if (ret != 0x0040) { ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 460 dev_err(&client->dev, ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 461 "manufacturer id mismatch. 0x0040 != 0x%04x\n", ret); 71a5a508436332 drivers/power/bq24735-charger.c Vaishali Thakkar 2015-07-25 462 return -ENODEV; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 463 } ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 464 ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 465 ret = bq24735_read_word(client, BQ24735_DEVICE_ID); ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 466 if (ret < 0) { ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 467 dev_err(&client->dev, "Failed to read device id : %d\n", ret); 71a5a508436332 drivers/power/bq24735-charger.c Vaishali Thakkar 2015-07-25 468 return ret; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 469 } else if (ret != 0x000B) { ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 470 dev_err(&client->dev, ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 471 "device id mismatch. 0x000b != 0x%04x\n", ret); 71a5a508436332 drivers/power/bq24735-charger.c Vaishali Thakkar 2015-07-25 472 return -ENODEV; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 473 } ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 474 ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 475 ret = bq24735_enable_charging(charger); ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 476 if (ret < 0) { ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 477 dev_err(&client->dev, "Failed to enable charging\n"); 71a5a508436332 drivers/power/bq24735-charger.c Vaishali Thakkar 2015-07-25 478 return ret; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 479 } ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 480 } ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 481 71a5a508436332 drivers/power/bq24735-charger.c Vaishali Thakkar 2015-07-25 482 charger->charger = devm_power_supply_register(&client->dev, supply_desc, 297d716f6260cc drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 483 &psy_cfg); 297d716f6260cc drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 484 if (IS_ERR(charger->charger)) { 297d716f6260cc drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 485 ret = PTR_ERR(charger->charger); ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 486 dev_err(&client->dev, "Failed to register power supply: %d\n", ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 487 ret); 71a5a508436332 drivers/power/bq24735-charger.c Vaishali Thakkar 2015-07-25 488 return ret; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 489 } ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 490 ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 491 if (client->irq) { ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 492 ret = devm_request_threaded_irq(&client->dev, client->irq, ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 493 NULL, bq24735_charger_isr, ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 494 IRQF_TRIGGER_RISING | ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 495 IRQF_TRIGGER_FALLING | ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 496 IRQF_ONESHOT, 297d716f6260cc drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 497 supply_desc->name, 297d716f6260cc drivers/power/bq24735-charger.c Krzysztof Kozlowski 2015-03-12 498 charger->charger); ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 499 if (ret) { ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 500 dev_err(&client->dev, ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 501 "Unable to register IRQ %d err %d\n", ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 502 client->irq, ret); ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 503 return ret; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 504 } dbff4c8eaa85dc drivers/power/supply/bq24735-charger.c Peter Rosin 2016-12-21 505 } else { bf383fea1fdde9 drivers/power/supply/bq24735-charger.c Peter Rosin 2016-12-15 506 ret = device_property_read_u32(&client->dev, "poll-interval", bf383fea1fdde9 drivers/power/supply/bq24735-charger.c Peter Rosin 2016-12-15 507 &charger->poll_interval); bf383fea1fdde9 drivers/power/supply/bq24735-charger.c Peter Rosin 2016-12-15 508 if (ret) bf383fea1fdde9 drivers/power/supply/bq24735-charger.c Peter Rosin 2016-12-15 509 return 0; bf383fea1fdde9 drivers/power/supply/bq24735-charger.c Peter Rosin 2016-12-15 510 if (!charger->poll_interval) bf383fea1fdde9 drivers/power/supply/bq24735-charger.c Peter Rosin 2016-12-15 511 return 0; d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 512 if (charger->pdata->wdt_timeout > 0) { d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 513 int wdt_ms; d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 514 d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 515 switch (charger->pdata->wdt_timeout) { d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 516 case 1: d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 517 wdt_ms = 44000; d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 518 break; d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 519 case 2: d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 520 wdt_ms = 88000; d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 521 break; d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 522 case 3: d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 523 wdt_ms = 175000; d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 524 break; d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 525 } d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 526 d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 @527 if (charger->poll_interval > wdt_ms) { d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 528 dev_err(&client->dev, d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 529 "Poll interval greater than WDT timeout\n"); d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 530 return -EINVAL; d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 531 } d6de3f6beb6949 drivers/power/supply/bq24735-charger.c Bruno Meneguele 2021-08-16 532 } bf383fea1fdde9 drivers/power/supply/bq24735-charger.c Peter Rosin 2016-12-15 533 6d0c5de2fd84a0 drivers/power/supply/bq24735-charger.c Matti Vaittinen 2021-03-23 534 ret = devm_delayed_work_autocancel(&client->dev, &charger->poll, 6d0c5de2fd84a0 drivers/power/supply/bq24735-charger.c Matti Vaittinen 2021-03-23 535 bq24735_poll); 6d0c5de2fd84a0 drivers/power/supply/bq24735-charger.c Matti Vaittinen 2021-03-23 536 if (ret) 6d0c5de2fd84a0 drivers/power/supply/bq24735-charger.c Matti Vaittinen 2021-03-23 537 return ret; 6d0c5de2fd84a0 drivers/power/supply/bq24735-charger.c Matti Vaittinen 2021-03-23 538 bf383fea1fdde9 drivers/power/supply/bq24735-charger.c Peter Rosin 2016-12-15 539 schedule_delayed_work(&charger->poll, bf383fea1fdde9 drivers/power/supply/bq24735-charger.c Peter Rosin 2016-12-15 540 msecs_to_jiffies(charger->poll_interval)); 71a5a508436332 drivers/power/bq24735-charger.c Vaishali Thakkar 2015-07-25 541 } ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 542 ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 543 return 0; ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 544 } ce77399226313a drivers/power/bq24735-charger.c Darbha Sriharsha 2013-10-11 545 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
