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]
