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]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to