Hi Mohammad,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on broonie-sound/for-next] [also build test WARNING on next-20230201] [cannot apply to tiwai-sound/for-next tiwai-sound/for-linus linus/master v6.2-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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Mohammad-Rafi-Shaik/ALSA-comp... base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next patch link: https://lore.kernel.org/r/20230201134947.1638197-9-quic_mohs%40quicinc.com patch subject: [PATCH 08/14] ASoC: q6dsp: q6apm-dai: Add open/free compress DAI callbacks config: m68k-allyesconfig (https://download.01.org/0day-ci/archive/20230201/202302012337.pC5Q3lLy-lkp@i...) compiler: m68k-linux-gcc (GCC) 12.1.0 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 # https://github.com/intel-lab-lkp/linux/commit/78a6016e006a8e405679fd335940ee... git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Mohammad-Rafi-Shaik/ALSA-compress-Update-compress-set-params-for-gapless-playback/20230201-215622 git checkout 78a6016e006a8e405679fd335940ee710416c43f # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k SHELL=/bin/bash sound/soc/qcom/qdsp6/
If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot lkp@intel.com
All warnings (new ones prefixed by >>):
sound/soc/qcom/qdsp6/q6apm-dai.c:135:6: warning: no previous prototype for 'event_handler_compr' [-Wmissing-prototypes]
135 | void event_handler_compr(uint32_t opcode, uint32_t token, | ^~~~~~~~~~~~~~~~~~~
vim +/event_handler_compr +135 sound/soc/qcom/qdsp6/q6apm-dai.c
134
135 void event_handler_compr(uint32_t opcode, uint32_t token,
136 uint32_t *payload, void *priv) 137 { 138 struct q6apm_dai_rtd *prtd = priv; 139 struct snd_compr_stream *substream = prtd->cstream; 140 unsigned long flags; 141 uint32_t wflags = 0; 142 uint64_t avail; 143 uint32_t bytes_written, bytes_to_write; 144 bool is_last_buffer = false; 145 146 switch (opcode) { 147 case APM_CLIENT_EVENT_CMD_EOS_DONE: 148 spin_lock_irqsave(&prtd->lock, flags); 149 if (prtd->notify_on_drain) { 150 snd_compr_drain_notify(prtd->cstream); 151 prtd->notify_on_drain = false; 152 } else { 153 prtd->state = Q6APM_STREAM_STOPPED; 154 } 155 spin_unlock_irqrestore(&prtd->lock, flags); 156 break; 157 case APM_CLIENT_EVENT_DATA_WRITE_DONE: 158 spin_lock_irqsave(&prtd->lock, flags); 159 bytes_written = token >> APM_WRITE_TOKEN_LEN_SHIFT; 160 prtd->copied_total += bytes_written; 161 snd_compr_fragment_elapsed(substream); 162 163 if (prtd->state != Q6APM_STREAM_RUNNING) { 164 spin_unlock_irqrestore(&prtd->lock, flags); 165 break; 166 } 167 168 avail = prtd->bytes_received - prtd->bytes_sent; 169 170 if (avail > prtd->pcm_count) { 171 bytes_to_write = prtd->pcm_count; 172 } else { 173 if (substream->partial_drain || prtd->notify_on_drain) 174 is_last_buffer = true; 175 bytes_to_write = avail; 176 } 177 178 if (bytes_to_write) { 179 if (substream->partial_drain && is_last_buffer) 180 wflags |= APM_LAST_BUFFER_FLAG; 181 182 q6apm_write_async_compr(prtd->graph, 183 bytes_to_write, 0, 0, wflags); 184 185 prtd->bytes_sent += bytes_to_write; 186 187 if (prtd->notify_on_drain && is_last_buffer) 188 audioreach_shared_memory_send_eos(prtd->graph); 189 } 190 191 spin_unlock_irqrestore(&prtd->lock, flags); 192 break; 193 default: 194 break; 195 } 196 } 197