[linux-next:master 3956/5128] sound/soc/sof/intel/hda-codec.c:132:35: error: use of undeclared identifier 'CODEC_PROBE_RETRIES'

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Fri Dec 3 15:00:37 CET 2021


[adding alsa-devel]

On 12/3/21 5:25 AM, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head:   7afeac307a9561e3a93682c1e7eb22f918aa1187
> commit: 046aede2f847676f93a2ea4f48b77909c51dba40 [3956/5128] ASoC: SOF: Intel: Retry codec probing if it fails
> config: i386-randconfig-r033-20211202 (https://download.01.org/0day-ci/archive/20211203/202112031943.Twg19fWT-lkp@intel.com/config)
> compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 4b553297ef3ee4dc2119d5429adf3072e90fac38)
> 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://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=046aede2f847676f93a2ea4f48b77909c51dba40
>         git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
>         git fetch --no-tags linux-next master
>         git checkout 046aede2f847676f93a2ea4f48b77909c51dba40
>         # save the config file to linux build tree
>         mkdir build_dir
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp at intel.com>
> 
> All errors (new ones prefixed by >>):
> 
>>> sound/soc/sof/intel/hda-codec.c:132:35: error: use of undeclared identifier 'CODEC_PROBE_RETRIES'
>            } while (resp == -1 && retry++ < CODEC_PROBE_RETRIES);
>                                             ^
>    1 error generated.
> 
> 
> vim +/CODEC_PROBE_RETRIES +132 sound/soc/sof/intel/hda-codec.c
> 
>    110	
>    111	/* probe individual codec */
>    112	static int hda_codec_probe(struct snd_sof_dev *sdev, int address,
>    113				   bool hda_codec_use_common_hdmi)
>    114	{
>    115	#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC)
>    116		struct hdac_hda_priv *hda_priv;
>    117		struct hda_codec *codec;
>    118		int type = HDA_DEV_LEGACY;
>    119	#endif
>    120		struct hda_bus *hbus = sof_to_hbus(sdev);
>    121		struct hdac_device *hdev;
>    122		u32 hda_cmd = (address << 28) | (AC_NODE_ROOT << 20) |
>    123			(AC_VERB_PARAMETERS << 8) | AC_PAR_VENDOR_ID;
>    124		u32 resp = -1;
>    125		int ret, retry = 0;
>    126	
>    127		do {
>    128			mutex_lock(&hbus->core.cmd_mutex);
>    129			snd_hdac_bus_send_cmd(&hbus->core, hda_cmd);
>    130			snd_hdac_bus_get_response(&hbus->core, address, &resp);
>    131			mutex_unlock(&hbus->core.cmd_mutex);
>  > 132		} while (resp == -1 && retry++ < CODEC_PROBE_RETRIES);

Indeed, something's not right here.

CODEC_PROBE_RETRIES is defined conditionally

#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC)
#define IDISP_VID_INTEL	0x80860000
#define CODEC_PROBE_RETRIES 3

but it's used unconditionally.

We could define this constant unconditionally as a quick fix, but this
compilation problem might expose a larger problem.

Kai, I wonder if this is code from lines 120 to 139 that we didn't
update when we moved to support HDMI with the generic HDaudio parts? I
don't see why we could even try to send a command on the bus is there's
no audio codec support?

hda_codec_use_common_hdmi should be the default assumption now, I don't
think we support the old solution, do we?

>    133	
>    134		if (resp == -1)
>    135			return -EIO;
>    136		dev_dbg(sdev->dev, "HDA codec #%d probed OK: response: %x\n",
>    137			address, resp);
>    138	
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
> 


More information about the Alsa-devel mailing list