CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Vincent Knecht <[email protected]>
CC: Mark Brown <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   a33f5c380c4bd3fa5278d690421b72052456d9fe
commit: 53778b8292b5492ec3ecf1efb84163eac2a6e422 ASoC: Add AK4375 support
date:   4 weeks ago
:::::: branch date: 9 hours ago
:::::: commit date: 4 weeks ago
config: arm-randconfig-c002-20220111 
(https://download.01.org/0day-ci/archive/20220115/[email protected]/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
244dd2913a43a200f5a6544d424cdc37b771028b)
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 arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=53778b8292b5492ec3ecf1efb84163eac2a6e422
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 53778b8292b5492ec3ecf1efb84163eac2a6e422
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm 
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 >>)
                   ^
   include/asm-generic/bug.h:123:3: note: expanded from macro 'WARN_ON'
                   __WARN();                                               \
                   ^
   include/asm-generic/bug.h:88:19: note: expanded from macro '__WARN'
   #define __WARN()                __WARN_printf(TAINT_WARN, NULL)
                                   ^
   include/asm-generic/bug.h:90:3: note: expanded from macro '__WARN_printf'
                   instrumentation_begin();                                \
                   ^
   include/linux/instrumentation.h:57:34: note: expanded from macro 
'instrumentation_begin'
   # define instrumentation_begin()        do { } while(0)
                                           ^
   fs/btrfs/disk-io.c:2178:3: note: Loop condition is false.  Exiting loop
                   WARN_ON(test_bit(BTRFS_ROOT_DEAD_RELOC_TREE, &root->state));
                   ^
   include/asm-generic/bug.h:123:3: note: expanded from macro 'WARN_ON'
                   __WARN();                                               \
                   ^
   include/asm-generic/bug.h:88:19: note: expanded from macro '__WARN'
   #define __WARN()                __WARN_printf(TAINT_WARN, NULL)
                                   ^
   include/asm-generic/bug.h:92:3: note: expanded from macro '__WARN_printf'
                   instrumentation_end();                                  \
                   ^
   include/linux/instrumentation.h:58:33: note: expanded from macro 
'instrumentation_end'
   # define instrumentation_end()          do { } while(0)
                                           ^
   fs/btrfs/disk-io.c:2178:3: note: Loop condition is false.  Exiting loop
                   WARN_ON(test_bit(BTRFS_ROOT_DEAD_RELOC_TREE, &root->state));
                   ^
   include/asm-generic/bug.h:123:3: note: expanded from macro 'WARN_ON'
                   __WARN();                                               \
                   ^
   include/asm-generic/bug.h:88:19: note: expanded from macro '__WARN'
   #define __WARN()                __WARN_printf(TAINT_WARN, NULL)
                                   ^
   include/asm-generic/bug.h:89:38: note: expanded from macro '__WARN_printf'
   #define __WARN_printf(taint, arg...) do {                               \
                                        ^
   fs/btrfs/disk-io.c:2179:7: note: Assuming field 'anon_dev' is 0
                   if (root->anon_dev)
                       ^~~~~~~~~~~~~~
   fs/btrfs/disk-io.c:2179:3: note: Taking false branch
                   if (root->anon_dev)
                   ^
   fs/btrfs/disk-io.c:2188:3: note: Memory is released
                   kfree(root);
                   ^~~~~~~~~~~
   fs/btrfs/disk-io.c:2205:3: note: Returning; memory was released
                   btrfs_put_root(gang[0]);
                   ^~~~~~~~~~~~~~~~~~~~~~~
   fs/btrfs/disk-io.c:2198:2: note: Loop condition is true.  Entering loop body
           while (!list_empty(&fs_info->dead_roots)) {
           ^
   fs/btrfs/disk-io.c:2201:3: note: Calling 'list_del'
                   list_del(&gang[0]->root_list);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:149:14: note: Use of memory after it is freed
           entry->next = LIST_POISON1;
           ~~~~~~~~~~~ ^
   Suppressed 3 warnings (3 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   4 warnings generated.
   drivers/media/i2c/rj54n1cb0c.c:687:3: warning: Value stored to 'input_w' is 
never read [clang-analyzer-deadcode.DeadStores]
                   input_w = output_w;
                   ^         ~~~~~~~~
   drivers/media/i2c/rj54n1cb0c.c:687:3: note: Value stored to 'input_w' is 
never read
                   input_w = output_w;
                   ^         ~~~~~~~~
   drivers/media/i2c/rj54n1cb0c.c:688:3: warning: Value stored to 'input_h' is 
never read [clang-analyzer-deadcode.DeadStores]
                   input_h = output_h;
                   ^         ~~~~~~~~
   drivers/media/i2c/rj54n1cb0c.c:688:3: note: Value stored to 'input_h' is 
never read
                   input_h = output_h;
                   ^         ~~~~~~~~
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   4 warnings generated.
>> sound/soc/codecs/ak4375.c:343:3: warning: Value stored to 'mclk' is never 
>> read [clang-analyzer-deadcode.DeadStores]
                   mclk = 128 * ak4375->rate;
                   ^      ~~~~~~~~~~~~~~~~~~
   sound/soc/codecs/ak4375.c:343:3: note: Value stored to 'mclk' is never read
                   mclk = 128 * ak4375->rate;
                   ^      ~~~~~~~~~~~~~~~~~~
   Suppressed 3 warnings (2 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   sound/soc/codecs/alc5623.c:700:23: warning: Value stored to 'alc5623' during 
its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct alc5623_priv *alc5623 = 
snd_soc_component_get_drvdata(component);
                                ^~~~~~~   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/soc/codecs/alc5623.c:700:23: note: Value stored to 'alc5623' during 
its initialization is never read
           struct alc5623_priv *alc5623 = 
snd_soc_component_get_drvdata(component);
                                ^~~~~~~   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   4 warnings generated.
   sound/soc/codecs/lpass-tx-macro.c:771:4: warning: 2nd function call argument 
is an uninitialized value [clang-analyzer-core.CallAndMessage]
                           snd_soc_component_write_field(component, mic_sel_reg,
                           ^                                        ~~~~~~~~~~~
   sound/soc/codecs/lpass-tx-macro.c:736:2: note: 'mic_sel_reg' declared 
without an initial value
           u16 mic_sel_reg;
           ^~~~~~~~~~~~~~~
   sound/soc/codecs/lpass-tx-macro.c:742:2: note: 'Default' branch taken. 
Execution continues on line 769
           switch (e->reg) {
           ^
   sound/soc/codecs/lpass-tx-macro.c:769:6: note: Assuming 'val' is not equal 
to 0
           if (val != 0) {
               ^~~~~~~~
   sound/soc/codecs/lpass-tx-macro.c:769:2: note: Taking true branch
           if (val != 0) {
           ^
   sound/soc/codecs/lpass-tx-macro.c:770:7: note: Assuming 'val' is < 5
                   if (val < 5) {
                       ^~~~~~~
   sound/soc/codecs/lpass-tx-macro.c:770:3: note: Taking true branch
                   if (val < 5) {
                   ^
   sound/soc/codecs/lpass-tx-macro.c:771:4: note: 2nd function call argument is 
an uninitialized value
                           snd_soc_component_write_field(component, mic_sel_reg,
                           ^                                        ~~~~~~~~~~~
   sound/soc/codecs/lpass-tx-macro.c:774:4: warning: 2nd function call argument 
is an uninitialized value [clang-analyzer-core.CallAndMessage]
                           snd_soc_component_write_field(component, mic_sel_reg,
                           ^                                        ~~~~~~~~~~~
   sound/soc/codecs/lpass-tx-macro.c:736:2: note: 'mic_sel_reg' declared 
without an initial value
           u16 mic_sel_reg;
           ^~~~~~~~~~~~~~~
   sound/soc/codecs/lpass-tx-macro.c:742:2: note: 'Default' branch taken. 
Execution continues on line 769
           switch (e->reg) {
           ^
   sound/soc/codecs/lpass-tx-macro.c:769:6: note: Assuming 'val' is not equal 
to 0
           if (val != 0) {
               ^~~~~~~~
   sound/soc/codecs/lpass-tx-macro.c:769:2: note: Taking true branch
           if (val != 0) {
           ^
   sound/soc/codecs/lpass-tx-macro.c:770:7: note: Assuming 'val' is >= 5
                   if (val < 5) {
                       ^~~~~~~
   sound/soc/codecs/lpass-tx-macro.c:770:3: note: Taking false branch
                   if (val < 5) {
                   ^
   sound/soc/codecs/lpass-tx-macro.c:774:4: note: 2nd function call argument is 
an uninitialized value
                           snd_soc_component_write_field(component, mic_sel_reg,
                           ^                                        ~~~~~~~~~~~
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   4 warnings generated.
   sound/isa/gus/gus_mem.c:84:21: warning: Access to field 'prev' results in a 
dereference of a null pointer (loaded from field 'next') 
[clang-analyzer-core.NullDereference]
                   block->next->prev = block->prev;
                                     ^
   sound/isa/gus/gus_mem.c:261:2: note: Loop condition is true.  Entering loop 
body
           while (block) {
           ^
   sound/isa/gus/gus_mem.c:263:3: note: Calling 'snd_gf1_mem_xfree'
                   snd_gf1_mem_xfree(alloc, block);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/isa/gus/gus_mem.c:65:6: note: Assuming field 'share' is 0
           if (block->share) {     /* ok.. shared block */
               ^~~~~~~~~~~~
   sound/isa/gus/gus_mem.c:65:2: note: Taking false branch
           if (block->share) {     /* ok.. shared block */
           ^
   sound/isa/gus/gus_mem.c:70:22: note: 'block' is equal to field 'first'
           if (alloc->first == block) {
                               ^~~~~
   sound/isa/gus/gus_mem.c:70:2: note: Taking true branch
           if (alloc->first == block) {
           ^
   sound/isa/gus/gus_mem.c:72:7: note: Assuming field 'next' is null
                   if (block->next)
--
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/slab.h:724:2: note: Returning pointer, which participates in a 
condition later
           return kmalloc(size, flags | __GFP_ZERO);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/slab.h:724:2: note: Returning pointer
           return kmalloc(size, flags | __GFP_ZERO);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/target/target_core_transport.c:1493:21: note: Returning from 
'kzalloc'
                   cmd->t_task_cdb = kzalloc(scsi_command_size(cdb), gfp);
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/target/target_core_transport.c:1493:3: note: Value assigned to field 
't_task_cdb'
                   cmd->t_task_cdb = kzalloc(scsi_command_size(cdb), gfp);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/target/target_core_transport.c:1494:7: note: Assuming field 
't_task_cdb' is null
                   if (!cmd->t_task_cdb) {
                       ^~~~~~~~~~~~~~~~
   drivers/target/target_core_transport.c:1494:7: note: Assuming pointer value 
is null
                   if (!cmd->t_task_cdb) {
                       ^~~~~~~~~~~~~~~~
   drivers/target/target_core_transport.c:1494:3: note: Taking true branch
                   if (!cmd->t_task_cdb) {
                   ^
   drivers/target/target_core_transport.c:1495:4: note: Loop condition is 
false.  Exiting loop
                           pr_err("Unable to allocate cmd->t_task_cdb"
                           ^
   include/linux/printk.h:489:2: note: expanded from macro 'pr_err'
           printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/printk.h:446:26: note: expanded from macro 'printk'
   #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
                            ^
   include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap'
                   __printk_index_emit(_fmt, NULL, NULL);                  \
                   ^
   include/linux/printk.h:392:34: note: expanded from macro 
'__printk_index_emit'
   #define __printk_index_emit(...) do {} while (0)
                                    ^
   drivers/target/target_core_transport.c:1500:4: note: Control jumps to line 
1516
                           goto err;
                           ^
   drivers/target/target_core_transport.c:1516:31: note: Assuming 
'__UNIQUE_ID___x517' is >= '__UNIQUE_ID___y518'
           memcpy(cmd->t_task_cdb, cdb, min(scsi_command_size(cdb),
                                        ^
   include/linux/minmax.h:45:19: note: expanded from macro 'min'
   #define min(x, y)       __careful_cmp(x, y, <)
                           ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^~~~~~~~~~
   drivers/target/target_core_transport.c:1516:31: note: '?' condition is false
           memcpy(cmd->t_task_cdb, cdb, min(scsi_command_size(cdb),
                                        ^
   include/linux/minmax.h:45:19: note: expanded from macro 'min'
   #define min(x, y)       __careful_cmp(x, y, <)
                           ^
   include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^
   include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^
   include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^
   drivers/target/target_core_transport.c:1516:2: note: Null pointer passed as 
1st argument to memory copy function
           memcpy(cmd->t_task_cdb, cdb, min(scsi_command_size(cdb),
           ^      ~~~~~~~~~~~~~~~
   drivers/target/target_core_transport.c:3105:12: warning: Value stored to 
'cdb' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           const u8 *cdb = cmd->t_task_cdb;
                     ^~~   ~~~~~~~~~~~~~~~
   drivers/target/target_core_transport.c:3105:12: note: Value stored to 'cdb' 
during its initialization is never read
           const u8 *cdb = cmd->t_task_cdb;
                     ^~~   ~~~~~~~~~~~~~~~
   drivers/target/target_core_transport.c:3106:21: warning: Value stored to 
'tmf' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           struct se_tmr_req *tmf = cmd->se_tmr_req;
                              ^~~   ~~~~~~~~~~~~~~~
   drivers/target/target_core_transport.c:3106:21: note: Value stored to 'tmf' 
during its initialization is never read
           struct se_tmr_req *tmf = cmd->se_tmr_req;
                              ^~~   ~~~~~~~~~~~~~~~
   Suppressed 6 warnings (6 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   4 warnings generated.
>> sound/soc/codecs/ak4375.c:343:3: warning: Value stored to 'mclk' is never 
>> read [clang-analyzer-deadcode.DeadStores]
                   mclk = 128 * ak4375->rate;
                   ^      ~~~~~~~~~~~~~~~~~~
   sound/soc/codecs/ak4375.c:343:3: note: Value stored to 'mclk' is never read
                   mclk = 128 * ak4375->rate;
                   ^      ~~~~~~~~~~~~~~~~~~
   Suppressed 3 warnings (2 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   sound/soc/codecs/alc5623.c:700:23: warning: Value stored to 'alc5623' during 
its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct alc5623_priv *alc5623 = 
snd_soc_component_get_drvdata(component);
                                ^~~~~~~   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/soc/codecs/alc5623.c:700:23: note: Value stored to 'alc5623' during 
its initialization is never read
           struct alc5623_priv *alc5623 = 
snd_soc_component_get_drvdata(component);
                                ^~~~~~~   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   3 warnings generated.
   sound/soc/codecs/cs35l34.c:260:3: warning: Value stored to 'ret' is never 
read [clang-analyzer-deadcode.DeadStores]
                   ret = regmap_update_bits(priv->regmap, CS35L34_PWRCTL1,
                   ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/soc/codecs/cs35l34.c:260:3: note: Value stored to 'ret' is never read
                   ret = regmap_update_bits(priv->regmap, CS35L34_PWRCTL1,
                   ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   6 warnings generated.
   sound/pci/lx6464es/lx6464es.c:428:3: warning: Value stored to 'err' is never 
read [clang-analyzer-deadcode.DeadStores]
                   err = lx_buffer_ask(chip, 0, is_capture, &needed, &freed,
                   ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/pci/lx6464es/lx6464es.c:428:3: note: Value stored to 'err' is never 
read
                   err = lx_buffer_ask(chip, 0, is_capture, &needed, &freed,
                   ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/pci/lx6464es/lx6464es.c:433:3: warning: Value stored to 'err' is never 
read [clang-analyzer-deadcode.DeadStores]
                   err = lx_buffer_give(chip, 0, is_capture, period_bytes,
                   ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/pci/lx6464es/lx6464es.c:433:3: note: Value stored to 'err' is never 
read
                   err = lx_buffer_give(chip, 0, is_capture, period_bytes,
                   ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/pci/lx6464es/lx6464es.c:442:2: warning: Value stored to 'err' is never 
read [clang-analyzer-deadcode.DeadStores]
           err = lx_buffer_ask(chip, 0, is_capture, &needed, &freed, 
size_array);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/pci/lx6464es/lx6464es.c:442:2: note: Value stored to 'err' is never 
read
           err = lx_buffer_ask(chip, 0, is_capture, &needed, &freed, 
size_array);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/pci/lx6464es/lx6464es.c:817:2: warning: Call to function 'strcpy' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           strcpy(pcm->name, card_name);
           ^~~~~~
   sound/pci/lx6464es/lx6464es.c:817:2: note: Call to function 'strcpy' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcpy'. CWE-119
           strcpy(pcm->name, card_name);
           ^~~~~~
   Suppressed 2 warnings (2 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.
   7 warnings generated.
   sound/pci/lx6464es/lx_core.c:995:44: warning: The left operand of '<<' is a 
garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
                   *r_notified_in_pipe_mask = ((u64)stat[3] << 32)
                                                            ^
   sound/pci/lx6464es/lx_core.c:1113:8: note: Calling 
'lx_interrupt_handle_async_events'
           err = lx_interrupt_handle_async_events(chip, chip->irqsrc,
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/pci/lx6464es/lx_core.c:985:24: note: Assuming the condition is false
           int eb_pending_out = (irqsrc & MASK_SYS_STATUS_EOBO) ? 1 : 0;
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/pci/lx6464es/lx_core.c:985:23: note: '?' condition is false
           int eb_pending_out = (irqsrc & MASK_SYS_STATUS_EOBO) ? 1 : 0;
                                ^
   sound/pci/lx6464es/lx_core.c:986:24: note: Assuming the condition is true
           int eb_pending_in  = (irqsrc & MASK_SYS_STATUS_EOBI) ? 1 : 0;
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/pci/lx6464es/lx_core.c:986:23: note: '?' condition is true
           int eb_pending_in  = (irqsrc & MASK_SYS_STATUS_EOBI) ? 1 : 0;
                                ^
   sound/pci/lx6464es/lx_core.c:988:21: note: Assuming the condition is false
           *r_freq_changed = (irqsrc & MASK_SYS_STATUS_FREQ) ? 1 : 0;
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/pci/lx6464es/lx_core.c:988:20: note: '?' condition is false
           *r_freq_changed = (irqsrc & MASK_SYS_STATUS_FREQ) ? 1 : 0;
                             ^
   sound/pci/lx6464es/lx_core.c:990:8: note: Calling 'lx_dsp_read_async_events'
           err = lx_dsp_read_async_events(chip, stat);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/pci/lx6464es/lx_core.c:407:6: note: Assuming 'ret' is not equal to 0
           if (!ret)
               ^~~~
   sound/pci/lx6464es/lx_core.c:407:2: note: Taking false branch
           if (!ret)
           ^
   sound/pci/lx6464es/lx_core.c:990:8: note: Returning from 
'lx_dsp_read_async_events'
           err = lx_dsp_read_async_events(chip, stat);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/pci/lx6464es/lx_core.c:991:6: note: Assuming 'err' is >= 0
           if (err < 0)

vim +/mclk +343 sound/soc/codecs/ak4375.c

53778b8292b549 Vincent Knecht 2021-12-20  280  
53778b8292b549 Vincent Knecht 2021-12-20  281  static int 
ak4375_dai_set_pll(struct snd_soc_dai *dai, int pll_id, int source,
53778b8292b549 Vincent Knecht 2021-12-20  282                         unsigned 
int freq_in, unsigned int freq_out)
53778b8292b549 Vincent Knecht 2021-12-20  283  {
53778b8292b549 Vincent Knecht 2021-12-20  284   struct snd_soc_component 
*component = dai->component;
53778b8292b549 Vincent Knecht 2021-12-20  285   struct ak4375_priv *ak4375 = 
snd_soc_component_get_drvdata(component);
53778b8292b549 Vincent Knecht 2021-12-20  286   unsigned int mclk, plm, mdiv, 
div;
53778b8292b549 Vincent Knecht 2021-12-20  287   u8 cms, fs, cm;
53778b8292b549 Vincent Knecht 2021-12-20  288  
53778b8292b549 Vincent Knecht 2021-12-20  289   cms = 
snd_soc_component_read(component, AK4375_05_CLOCK_MODE_SELECT);
53778b8292b549 Vincent Knecht 2021-12-20  290   fs = cms & ~FS_MASK;
53778b8292b549 Vincent Knecht 2021-12-20  291   cm = cms & ~CM_MASK;
53778b8292b549 Vincent Knecht 2021-12-20  292  
53778b8292b549 Vincent Knecht 2021-12-20  293   switch (ak4375->rate) {
53778b8292b549 Vincent Knecht 2021-12-20  294   case 8000:
53778b8292b549 Vincent Knecht 2021-12-20  295           fs |= FS_8KHZ;
53778b8292b549 Vincent Knecht 2021-12-20  296           break;
53778b8292b549 Vincent Knecht 2021-12-20  297   case 11025:
53778b8292b549 Vincent Knecht 2021-12-20  298           fs |= FS_11_025KHZ;
53778b8292b549 Vincent Knecht 2021-12-20  299           break;
53778b8292b549 Vincent Knecht 2021-12-20  300   case 16000:
53778b8292b549 Vincent Knecht 2021-12-20  301           fs |= FS_16KHZ;
53778b8292b549 Vincent Knecht 2021-12-20  302           break;
53778b8292b549 Vincent Knecht 2021-12-20  303   case 22050:
53778b8292b549 Vincent Knecht 2021-12-20  304           fs |= FS_22_05KHZ;
53778b8292b549 Vincent Knecht 2021-12-20  305           break;
53778b8292b549 Vincent Knecht 2021-12-20  306   case 32000:
53778b8292b549 Vincent Knecht 2021-12-20  307           fs |= FS_32KHZ;
53778b8292b549 Vincent Knecht 2021-12-20  308           break;
53778b8292b549 Vincent Knecht 2021-12-20  309   case 44100:
53778b8292b549 Vincent Knecht 2021-12-20  310           fs |= FS_44_1KHZ;
53778b8292b549 Vincent Knecht 2021-12-20  311           break;
53778b8292b549 Vincent Knecht 2021-12-20  312   case 48000:
53778b8292b549 Vincent Knecht 2021-12-20  313           fs |= FS_48KHZ;
53778b8292b549 Vincent Knecht 2021-12-20  314           break;
53778b8292b549 Vincent Knecht 2021-12-20  315   case 88200:
53778b8292b549 Vincent Knecht 2021-12-20  316           fs |= FS_88_2KHZ;
53778b8292b549 Vincent Knecht 2021-12-20  317           break;
53778b8292b549 Vincent Knecht 2021-12-20  318   case 96000:
53778b8292b549 Vincent Knecht 2021-12-20  319           fs |= FS_96KHZ;
53778b8292b549 Vincent Knecht 2021-12-20  320           break;
53778b8292b549 Vincent Knecht 2021-12-20  321   case 176400:
53778b8292b549 Vincent Knecht 2021-12-20  322           fs |= FS_176_4KHZ;
53778b8292b549 Vincent Knecht 2021-12-20  323           break;
53778b8292b549 Vincent Knecht 2021-12-20  324   case 192000:
53778b8292b549 Vincent Knecht 2021-12-20  325           fs |= FS_192KHZ;
53778b8292b549 Vincent Knecht 2021-12-20  326           break;
53778b8292b549 Vincent Knecht 2021-12-20  327   default:
53778b8292b549 Vincent Knecht 2021-12-20  328           return -EINVAL;
53778b8292b549 Vincent Knecht 2021-12-20  329   }
53778b8292b549 Vincent Knecht 2021-12-20  330  
53778b8292b549 Vincent Knecht 2021-12-20  331   if (ak4375->rate <= 24000) {
53778b8292b549 Vincent Knecht 2021-12-20  332           cm |= CM_1;
53778b8292b549 Vincent Knecht 2021-12-20  333           mclk = 512 * 
ak4375->rate;
53778b8292b549 Vincent Knecht 2021-12-20  334           mdiv = freq_out / mclk 
- 1;
53778b8292b549 Vincent Knecht 2021-12-20  335           div = 0;
53778b8292b549 Vincent Knecht 2021-12-20  336   } else if (ak4375->rate <= 
96000) {
53778b8292b549 Vincent Knecht 2021-12-20  337           cm |= CM_0;
53778b8292b549 Vincent Knecht 2021-12-20  338           mclk = 256 * 
ak4375->rate;
53778b8292b549 Vincent Knecht 2021-12-20  339           mdiv = freq_out / mclk 
- 1;
53778b8292b549 Vincent Knecht 2021-12-20  340           div = 0;
53778b8292b549 Vincent Knecht 2021-12-20  341   } else {
53778b8292b549 Vincent Knecht 2021-12-20  342           cm |= CM_3;
53778b8292b549 Vincent Knecht 2021-12-20 @343           mclk = 128 * 
ak4375->rate;
53778b8292b549 Vincent Knecht 2021-12-20  344           mdiv = 4;
53778b8292b549 Vincent Knecht 2021-12-20  345           div = 1;
53778b8292b549 Vincent Knecht 2021-12-20  346   }
53778b8292b549 Vincent Knecht 2021-12-20  347  
53778b8292b549 Vincent Knecht 2021-12-20  348   /* Writing both fields in one 
go seems to make playback choppy on start */
53778b8292b549 Vincent Knecht 2021-12-20  349   
snd_soc_component_update_bits(component, AK4375_05_CLOCK_MODE_SELECT, FS_MASK, 
fs);
53778b8292b549 Vincent Knecht 2021-12-20  350   
snd_soc_component_update_bits(component, AK4375_05_CLOCK_MODE_SELECT, CM_MASK, 
cm);
53778b8292b549 Vincent Knecht 2021-12-20  351  
53778b8292b549 Vincent Knecht 2021-12-20  352   
snd_soc_component_write(component, AK4375_0F_PLL_REF_CLK_DIVIDER1,
53778b8292b549 Vincent Knecht 2021-12-20  353                           
(ak4375->pld & 0xff00) >> 8);
53778b8292b549 Vincent Knecht 2021-12-20  354   
snd_soc_component_write(component, AK4375_10_PLL_REF_CLK_DIVIDER2,
53778b8292b549 Vincent Knecht 2021-12-20  355                           
ak4375->pld & 0x00ff);
53778b8292b549 Vincent Knecht 2021-12-20  356  
53778b8292b549 Vincent Knecht 2021-12-20  357   plm = freq_out / freq_in - 1;
53778b8292b549 Vincent Knecht 2021-12-20  358   
snd_soc_component_write(component, AK4375_11_PLL_FB_CLK_DIVIDER1, (plm & 
0xff00) >> 8);
53778b8292b549 Vincent Knecht 2021-12-20  359   
snd_soc_component_write(component, AK4375_12_PLL_FB_CLK_DIVIDER2, plm & 0x00ff);
53778b8292b549 Vincent Knecht 2021-12-20  360  
53778b8292b549 Vincent Knecht 2021-12-20  361   
snd_soc_component_update_bits(component, AK4375_13_SRC_CLK_SOURCE, DIV, div);
53778b8292b549 Vincent Knecht 2021-12-20  362  
53778b8292b549 Vincent Knecht 2021-12-20  363   /* SRCCKS bit: force to 1 for 
SRC PLL source clock */
53778b8292b549 Vincent Knecht 2021-12-20  364   
snd_soc_component_update_bits(component, AK4375_13_SRC_CLK_SOURCE, SRCCKS, 
SRCCKS);
53778b8292b549 Vincent Knecht 2021-12-20  365  
53778b8292b549 Vincent Knecht 2021-12-20  366   
snd_soc_component_write(component, AK4375_14_DAC_CLK_DIVIDER, mdiv);
53778b8292b549 Vincent Knecht 2021-12-20  367  
53778b8292b549 Vincent Knecht 2021-12-20  368   dev_dbg(ak4375->dev, "rate=%d 
mclk=%d f_in=%d f_out=%d PLD=%d PLM=%d MDIV=%d DIV=%d\n",
53778b8292b549 Vincent Knecht 2021-12-20  369           ak4375->rate, mclk, 
freq_in, freq_out, ak4375->pld, plm, mdiv, div);
53778b8292b549 Vincent Knecht 2021-12-20  370  
53778b8292b549 Vincent Knecht 2021-12-20  371   return 0;
53778b8292b549 Vincent Knecht 2021-12-20  372  }
53778b8292b549 Vincent Knecht 2021-12-20  373  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to