Re: [linux-next:master 3956/5128] sound/soc/sof/intel/hda-codec.c:132:35: error: use of undeclared identifier 'CODEC_PROBE_RETRIES'
[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@i...) 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/?... 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@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
Hey,
On Fri, 3 Dec 2021, Pierre-Louis Bossart wrote:
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.
yup, the definition needs to be moved out.
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?
We do still support the hdac-hdmi as well, albeit only for select old hardware to maintain backwards compatibility.
I'll send the quick fix.
Br, Kai
On 12/3/21 8:07 AM, Kai Vehmanen wrote:
Hey,
On Fri, 3 Dec 2021, Pierre-Louis Bossart wrote:
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.
yup, the definition needs to be moved out.
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?
We do still support the hdac-hdmi as well, albeit only for select old hardware to maintain backwards compatibility.
Would it be a major risk to drop this compatibility, possibly in steps that can be reverted quickly? Maintaining this old HDMI-specific path isn't really sustainable.
I'll send the quick fix.
Thanks!
Oh, sorry to introduce this build failure. Thanks Kai to fix it.
Thanks.
On 12/3/21 10:07 PM, Kai Vehmanen wrote:
Hey,
On Fri, 3 Dec 2021, Pierre-Louis Bossart wrote:
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.
yup, the definition needs to be moved out.
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?
We do still support the hdac-hdmi as well, albeit only for select old hardware to maintain backwards compatibility.
I'll send the quick fix.
Br, Kai
participants (3)
-
Hui Wang
-
Kai Vehmanen
-
Pierre-Louis Bossart