Re: [PATCH v2 3/3] ALSA: hda/tas2781: Firmware load for tas2781 driver for SPI

From: kernel test robot
Date: Tue Apr 09 2024 - 14:27:25 EST


Hi Baojun,

kernel test robot noticed the following build warnings:

[auto build test WARNING on tiwai-sound/for-next]
[also build test WARNING on tiwai-sound/for-linus rafael-pm/linux-next linus/master v6.9-rc3 next-20240409]
[cannot apply to rafael-pm/acpi-bus rafael-pm/devprop]
[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#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Baojun-Xu/ALSA-hda-tas2781-Modification-for-add-tas2781-driver-for-SPI/20240409-105140
base: https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next
patch link: https://lore.kernel.org/r/20240409024816.1180-4-baojun.xu%40ti.com
patch subject: [PATCH v2 3/3] ALSA: hda/tas2781: Firmware load for tas2781 driver for SPI
config: arm64-allyesconfig (https://download.01.org/0day-ci/archive/20240410/202404100229.tkI9vGOu-lkp@xxxxxxxxx/config)
compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project 8b3b4a92adee40483c27f26c478a384cd69c6f05)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240410/202404100229.tkI9vGOu-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202404100229.tkI9vGOu-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

In file included from sound/pci/hda/tas2781_spi_fwlib.c:17:
In file included from include/sound/pcm_params.h:10:
In file included from include/sound/pcm.h:15:
In file included from include/linux/mm.h:2208:
include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> sound/pci/hda/tas2781_spi_fwlib.c:2149:3: warning: variable 'status' is uninitialized when used here [-Wuninitialized]
2149 | status++;
| ^~~~~~
sound/pci/hda/tas2781_spi_fwlib.c:2084:12: note: initialize the variable 'status' to silence this warning
2084 | int status;
| ^
| = 0
6 warnings generated.


vim +/status +2149 sound/pci/hda/tas2781_spi_fwlib.c

2073
2074 int tasdevice_spi_select_tuningprm_cfg(void *context, int prm_no,
2075 int cfg_no, int rca_conf_no)
2076 {
2077 struct tasdevice_priv *tas_priv = (struct tasdevice_priv *) context;
2078 struct tasdevice_rca *rca = &(tas_priv->rcabin);
2079 struct tasdevice_config_info **cfg_info = rca->cfg_info;
2080 struct tasdevice_fw *tas_fmw = tas_priv->fmw;
2081 struct tasdevice_prog *program;
2082 struct tasdevice_config *conf;
2083 int prog_status = 0;
2084 int status;
2085
2086 if (!tas_fmw) {
2087 dev_err(tas_priv->dev, "%s: Firmware is NULL\n", __func__);
2088 return 0;
2089 }
2090
2091 if (cfg_no >= tas_fmw->nr_configurations) {
2092 dev_err(tas_priv->dev,
2093 "%s: cfg(%d) is not in range of conf %u\n",
2094 __func__, cfg_no, tas_fmw->nr_configurations);
2095 return 0;
2096 }
2097
2098 if (prm_no >= tas_fmw->nr_programs) {
2099 dev_err(tas_priv->dev,
2100 "%s: prm(%d) is not in range of Programs %u\n",
2101 __func__, prm_no, tas_fmw->nr_programs);
2102 return 0;
2103 }
2104
2105 if (rca_conf_no >= rca->ncfgs || rca_conf_no < 0 ||
2106 !cfg_info) {
2107 dev_err(tas_priv->dev,
2108 "conf_no:%d should be in range from 0 to %u\n",
2109 rca_conf_no, rca->ncfgs-1);
2110 return 0;
2111 }
2112
2113 if (cfg_info[rca_conf_no]->active_dev & 1) {
2114 if (prm_no >= 0 && (tas_priv->tasdevice.cur_prog != prm_no
2115 || tas_priv->force_fwload_status)) {
2116 tas_priv->tasdevice.cur_conf = -1;
2117 tas_priv->tasdevice.is_loading = true;
2118 prog_status++;
2119 }
2120 } else {
2121 tas_priv->tasdevice.is_loading = false;
2122 }
2123
2124 if (prog_status) {
2125 program = &(tas_fmw->programs[prm_no]);
2126 tasdevice_load_data(tas_priv, &(program->dev_data));
2127 if (tas_priv->tasdevice.is_loaderr == false
2128 && tas_priv->tasdevice.is_loading == true) {
2129 struct tasdevice_fw *cal_fmw =
2130 tas_priv->tasdevice.cali_data_fmw;
2131
2132 if (cal_fmw) {
2133 struct tasdevice_calibration
2134 *cal = cal_fmw->calibrations;
2135
2136 if (cal)
2137 load_calib_data(tas_priv,
2138 &(cal->dev_data));
2139 }
2140 tas_priv->tasdevice.cur_prog = prm_no;
2141 }
2142
2143 }
2144
2145 if (cfg_no >= 0
2146 && (tas_priv->tasdevice.cur_conf != cfg_no)
2147 && (cfg_info[rca_conf_no]->active_dev & 1)
2148 && (tas_priv->tasdevice.is_loaderr == false)) {
> 2149 status++;
2150 tas_priv->tasdevice.is_loading = true;
2151 } else {
2152 tas_priv->tasdevice.is_loading = false;
2153 }
2154
2155 if (status) {
2156 conf = &(tas_fmw->configs[cfg_no]);
2157 status = 0;
2158 tasdevice_load_data(tas_priv, &(conf->dev_data));
2159 if (tas_priv->tasdevice.is_loaderr == true) {
2160 status |= 1 << 4;
2161 } else if (tas_priv->tasdevice.is_loaderr == false
2162 && tas_priv->tasdevice.is_loading == true) {
2163 tas_priv->tasdevice.cur_conf = cfg_no;
2164 }
2165 } else
2166 dev_dbg(tas_priv->dev, "%s: Unneeded loading dsp conf %d\n",
2167 __func__, cfg_no);
2168
2169 status |= cfg_info[rca_conf_no]->active_dev;
2170
2171 return prog_status;
2172 }
2173

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki