Message ID | 20230919132322.17352-1-peter.ujfalusi@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ALSA: hda: hda_auto_parser: Always set codec->fixup_name when a quirk found | expand |
On Tue, 19 Sep 2023 15:23:22 +0200, Peter Ujfalusi wrote: > > If a fixup is found via a quirk then the codec->fixup_name is only set if > CONFIG_SND_DEBUG_VERBOSE is enabled, otherwise the fixup_name is set to > NULL. > > This will result prints in __snd_hda_apply_fixup() when applying the found > fixup for example: > ehdaudio0D0: ALC236: Apply fix-func for (null) Are you sure this doesn't break? snd_pci_quirk.name is defined only when CONFIG_SND_DEBUG_VERBOSE=y. thanks, Takashi > Fixes: 73355ddd8775 ("ALSA: hda: Code refactoring snd_hda_pick_fixup()") > Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> > --- > sound/pci/hda/hda_auto_parser.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/sound/pci/hda/hda_auto_parser.c b/sound/pci/hda/hda_auto_parser.c > index 7c6b1fe8dfcc..7b1ddb8d40cb 100644 > --- a/sound/pci/hda/hda_auto_parser.c > +++ b/sound/pci/hda/hda_auto_parser.c > @@ -1043,9 +1043,8 @@ void snd_hda_pick_fixup(struct hda_codec *codec, > > found_device: > id = q->value; > -#ifdef CONFIG_SND_DEBUG_VERBOSE > name = q->name; > -#endif > + > codec_dbg(codec, "%s: picked fixup %s for %s %04x:%04x\n", > codec->core.chip_name, name ? name : "", > type, q->subvendor, q->subdevice); > -- > 2.42.0 >
On 19/09/2023 16:37, Takashi Iwai wrote: > On Tue, 19 Sep 2023 15:23:22 +0200, > Peter Ujfalusi wrote: >> >> If a fixup is found via a quirk then the codec->fixup_name is only set if >> CONFIG_SND_DEBUG_VERBOSE is enabled, otherwise the fixup_name is set to >> NULL. >> >> This will result prints in __snd_hda_apply_fixup() when applying the found >> fixup for example: >> ehdaudio0D0: ALC236: Apply fix-func for (null) > > Are you sure this doesn't break? snd_pci_quirk.name is defined only > when CONFIG_SND_DEBUG_VERBOSE=y. Right, that might cause some issues (I have it enabled), hrm, but the print in __snd_hda_apply_fixup() is not much of a help in this case.. > > thanks, > > Takashi > > >> Fixes: 73355ddd8775 ("ALSA: hda: Code refactoring snd_hda_pick_fixup()") >> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> >> --- >> sound/pci/hda/hda_auto_parser.c | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/sound/pci/hda/hda_auto_parser.c b/sound/pci/hda/hda_auto_parser.c >> index 7c6b1fe8dfcc..7b1ddb8d40cb 100644 >> --- a/sound/pci/hda/hda_auto_parser.c >> +++ b/sound/pci/hda/hda_auto_parser.c >> @@ -1043,9 +1043,8 @@ void snd_hda_pick_fixup(struct hda_codec *codec, >> >> found_device: >> id = q->value; >> -#ifdef CONFIG_SND_DEBUG_VERBOSE >> name = q->name; >> -#endif >> + >> codec_dbg(codec, "%s: picked fixup %s for %s %04x:%04x\n", >> codec->core.chip_name, name ? name : "", >> type, q->subvendor, q->subdevice); >> -- >> 2.42.0 >>
On Tue, 19 Sep 2023 15:51:31 +0200, Péter Ujfalusi wrote: > > > > On 19/09/2023 16:37, Takashi Iwai wrote: > > On Tue, 19 Sep 2023 15:23:22 +0200, > > Peter Ujfalusi wrote: > >> > >> If a fixup is found via a quirk then the codec->fixup_name is only set if > >> CONFIG_SND_DEBUG_VERBOSE is enabled, otherwise the fixup_name is set to > >> NULL. > >> > >> This will result prints in __snd_hda_apply_fixup() when applying the found > >> fixup for example: > >> ehdaudio0D0: ALC236: Apply fix-func for (null) > > > > Are you sure this doesn't break? snd_pci_quirk.name is defined only > > when CONFIG_SND_DEBUG_VERBOSE=y. > > Right, that might cause some issues (I have it enabled), hrm, but the > print in __snd_hda_apply_fixup() is not much of a help in this case.. Yeah, but it shows the target SSID, so you can reverse-search :) Takashi > > > > thanks, > > > > Takashi > > > > > >> Fixes: 73355ddd8775 ("ALSA: hda: Code refactoring snd_hda_pick_fixup()") > >> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> > >> --- > >> sound/pci/hda/hda_auto_parser.c | 3 +-- > >> 1 file changed, 1 insertion(+), 2 deletions(-) > >> > >> diff --git a/sound/pci/hda/hda_auto_parser.c b/sound/pci/hda/hda_auto_parser.c > >> index 7c6b1fe8dfcc..7b1ddb8d40cb 100644 > >> --- a/sound/pci/hda/hda_auto_parser.c > >> +++ b/sound/pci/hda/hda_auto_parser.c > >> @@ -1043,9 +1043,8 @@ void snd_hda_pick_fixup(struct hda_codec *codec, > >> > >> found_device: > >> id = q->value; > >> -#ifdef CONFIG_SND_DEBUG_VERBOSE > >> name = q->name; > >> -#endif > >> + > >> codec_dbg(codec, "%s: picked fixup %s for %s %04x:%04x\n", > >> codec->core.chip_name, name ? name : "", > >> type, q->subvendor, q->subdevice); > >> -- > >> 2.42.0 > >> > > -- > Péter >
Hi Peter,
kernel test robot noticed the following build errors:
[auto build test ERROR on linus/master]
[also build test ERROR on v6.6-rc2 next-20230919]
[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/Peter-Ujfalusi/ALSA-hda-hda_auto_parser-Always-set-codec-fixup_name-when-a-quirk-found/20230919-223534
base: linus/master
patch link: https://lore.kernel.org/r/20230919132322.17352-1-peter.ujfalusi%40linux.intel.com
patch subject: [PATCH] ALSA: hda: hda_auto_parser: Always set codec->fixup_name when a quirk found
config: parisc-randconfig-002-20230919 (https://download.01.org/0day-ci/archive/20230920/202309200115.MPOBOM0E-lkp@intel.com/config)
compiler: hppa-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230920/202309200115.MPOBOM0E-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202309200115.MPOBOM0E-lkp@intel.com/
All errors (new ones prefixed by >>):
sound/pci/hda/hda_auto_parser.c: In function 'snd_hda_pick_fixup':
>> sound/pci/hda/hda_auto_parser.c:1046:17: error: 'const struct snd_pci_quirk' has no member named 'name'
1046 | name = q->name;
| ^~
vim +1046 sound/pci/hda/hda_auto_parser.c
20531415adf308 David Henningsson 2014-05-26 958
95a962c36f6e3c Takashi Iwai 2014-10-29 959 /**
95a962c36f6e3c Takashi Iwai 2014-10-29 960 * snd_hda_pick_fixup - Pick up a fixup matching with PCI/codec SSID or model string
95a962c36f6e3c Takashi Iwai 2014-10-29 961 * @codec: the HDA codec
95a962c36f6e3c Takashi Iwai 2014-10-29 962 * @models: NULL-terminated model string list
95a962c36f6e3c Takashi Iwai 2014-10-29 963 * @quirk: zero-terminated PCI/codec SSID quirk list
95a962c36f6e3c Takashi Iwai 2014-10-29 964 * @fixlist: the fixup list
95a962c36f6e3c Takashi Iwai 2014-10-29 965 *
95a962c36f6e3c Takashi Iwai 2014-10-29 966 * Pick up a fixup entry matching with the given model string or SSID.
95a962c36f6e3c Takashi Iwai 2014-10-29 967 * If a fixup was already set beforehand, the function doesn't do anything.
95a962c36f6e3c Takashi Iwai 2014-10-29 968 * When a special model string "nofixup" is given, also no fixup is applied.
95a962c36f6e3c Takashi Iwai 2014-10-29 969 *
95a962c36f6e3c Takashi Iwai 2014-10-29 970 * The function tries to find the matching model name at first, if given.
a235d5b8e550fa Takashi Iwai 2021-08-23 971 * If the model string contains the SSID alias, try to look up with the given
a235d5b8e550fa Takashi Iwai 2021-08-23 972 * alias ID.
95a962c36f6e3c Takashi Iwai 2014-10-29 973 * If nothing matched, try to look up the PCI SSID.
95a962c36f6e3c Takashi Iwai 2014-10-29 974 * If still nothing matched, try to look up the codec SSID.
95a962c36f6e3c Takashi Iwai 2014-10-29 975 */
23d30f28275ddd Takashi Iwai 2012-05-07 976 void snd_hda_pick_fixup(struct hda_codec *codec,
23d30f28275ddd Takashi Iwai 2012-05-07 977 const struct hda_model_fixup *models,
23d30f28275ddd Takashi Iwai 2012-05-07 978 const struct snd_pci_quirk *quirk,
23d30f28275ddd Takashi Iwai 2012-05-07 979 const struct hda_fixup *fixlist)
23d30f28275ddd Takashi Iwai 2012-05-07 980 {
23d30f28275ddd Takashi Iwai 2012-05-07 981 const struct snd_pci_quirk *q;
f5662e1cbf3f09 David Henningsson 2014-07-22 982 int id = HDA_FIXUP_ID_NOT_SET;
23d30f28275ddd Takashi Iwai 2012-05-07 983 const char *name = NULL;
73355ddd877588 Takashi Iwai 2021-08-23 984 const char *type = NULL;
0444f82766f0b5 Takashi Iwai 2022-01-27 985 unsigned int vendor, device;
23d30f28275ddd Takashi Iwai 2012-05-07 986
f5662e1cbf3f09 David Henningsson 2014-07-22 987 if (codec->fixup_id != HDA_FIXUP_ID_NOT_SET)
f5662e1cbf3f09 David Henningsson 2014-07-22 988 return;
f5662e1cbf3f09 David Henningsson 2014-07-22 989
23d30f28275ddd Takashi Iwai 2012-05-07 990 /* when model=nofixup is given, don't pick up any fixups */
23d30f28275ddd Takashi Iwai 2012-05-07 991 if (codec->modelname && !strcmp(codec->modelname, "nofixup")) {
73355ddd877588 Takashi Iwai 2021-08-23 992 id = HDA_FIXUP_ID_NO_FIXUP;
73355ddd877588 Takashi Iwai 2021-08-23 993 fixlist = NULL;
4f7946eca787ba David Henningsson 2015-01-07 994 codec_dbg(codec, "%s: picked no fixup (nofixup specified)\n",
7639a06c23c7d4 Takashi Iwai 2015-03-03 995 codec->core.chip_name);
73355ddd877588 Takashi Iwai 2021-08-23 996 goto found;
23d30f28275ddd Takashi Iwai 2012-05-07 997 }
23d30f28275ddd Takashi Iwai 2012-05-07 998
73355ddd877588 Takashi Iwai 2021-08-23 999 /* match with the model name string */
23d30f28275ddd Takashi Iwai 2012-05-07 1000 if (codec->modelname && models) {
23d30f28275ddd Takashi Iwai 2012-05-07 1001 while (models->name) {
23d30f28275ddd Takashi Iwai 2012-05-07 1002 if (!strcmp(codec->modelname, models->name)) {
73355ddd877588 Takashi Iwai 2021-08-23 1003 id = models->id;
73355ddd877588 Takashi Iwai 2021-08-23 1004 name = models->name;
4f7946eca787ba David Henningsson 2015-01-07 1005 codec_dbg(codec, "%s: picked fixup %s (model specified)\n",
7639a06c23c7d4 Takashi Iwai 2015-03-03 1006 codec->core.chip_name, codec->fixup_name);
73355ddd877588 Takashi Iwai 2021-08-23 1007 goto found;
23d30f28275ddd Takashi Iwai 2012-05-07 1008 }
23d30f28275ddd Takashi Iwai 2012-05-07 1009 models++;
23d30f28275ddd Takashi Iwai 2012-05-07 1010 }
23d30f28275ddd Takashi Iwai 2012-05-07 1011 }
73355ddd877588 Takashi Iwai 2021-08-23 1012
73355ddd877588 Takashi Iwai 2021-08-23 1013 if (!quirk)
73355ddd877588 Takashi Iwai 2021-08-23 1014 return;
73355ddd877588 Takashi Iwai 2021-08-23 1015
a235d5b8e550fa Takashi Iwai 2021-08-23 1016 /* match with the SSID alias given by the model string "XXXX:YYYY" */
a235d5b8e550fa Takashi Iwai 2021-08-23 1017 if (codec->modelname &&
a235d5b8e550fa Takashi Iwai 2021-08-23 1018 sscanf(codec->modelname, "%04x:%04x", &vendor, &device) == 2) {
a235d5b8e550fa Takashi Iwai 2021-08-23 1019 q = snd_pci_quirk_lookup_id(vendor, device, quirk);
a235d5b8e550fa Takashi Iwai 2021-08-23 1020 if (q) {
a235d5b8e550fa Takashi Iwai 2021-08-23 1021 type = "alias SSID";
a235d5b8e550fa Takashi Iwai 2021-08-23 1022 goto found_device;
a235d5b8e550fa Takashi Iwai 2021-08-23 1023 }
a235d5b8e550fa Takashi Iwai 2021-08-23 1024 }
a235d5b8e550fa Takashi Iwai 2021-08-23 1025
73355ddd877588 Takashi Iwai 2021-08-23 1026 /* match with the PCI SSID */
23d30f28275ddd Takashi Iwai 2012-05-07 1027 q = snd_pci_quirk_lookup(codec->bus->pci, quirk);
23d30f28275ddd Takashi Iwai 2012-05-07 1028 if (q) {
73355ddd877588 Takashi Iwai 2021-08-23 1029 type = "PCI SSID";
73355ddd877588 Takashi Iwai 2021-08-23 1030 goto found_device;
23d30f28275ddd Takashi Iwai 2012-05-07 1031 }
73355ddd877588 Takashi Iwai 2021-08-23 1032
73355ddd877588 Takashi Iwai 2021-08-23 1033 /* match with the codec SSID */
73355ddd877588 Takashi Iwai 2021-08-23 1034 q = snd_pci_quirk_lookup_id(codec->core.subsystem_id >> 16,
73355ddd877588 Takashi Iwai 2021-08-23 1035 codec->core.subsystem_id & 0xffff,
73355ddd877588 Takashi Iwai 2021-08-23 1036 quirk);
73355ddd877588 Takashi Iwai 2021-08-23 1037 if (q) {
73355ddd877588 Takashi Iwai 2021-08-23 1038 type = "codec SSID";
73355ddd877588 Takashi Iwai 2021-08-23 1039 goto found_device;
23d30f28275ddd Takashi Iwai 2012-05-07 1040 }
73355ddd877588 Takashi Iwai 2021-08-23 1041
73355ddd877588 Takashi Iwai 2021-08-23 1042 return; /* no matching */
73355ddd877588 Takashi Iwai 2021-08-23 1043
73355ddd877588 Takashi Iwai 2021-08-23 1044 found_device:
23d30f28275ddd Takashi Iwai 2012-05-07 1045 id = q->value;
23d30f28275ddd Takashi Iwai 2012-05-07 @1046 name = q->name;
diff --git a/sound/pci/hda/hda_auto_parser.c b/sound/pci/hda/hda_auto_parser.c index 7c6b1fe8dfcc..7b1ddb8d40cb 100644 --- a/sound/pci/hda/hda_auto_parser.c +++ b/sound/pci/hda/hda_auto_parser.c @@ -1043,9 +1043,8 @@ void snd_hda_pick_fixup(struct hda_codec *codec, found_device: id = q->value; -#ifdef CONFIG_SND_DEBUG_VERBOSE name = q->name; -#endif + codec_dbg(codec, "%s: picked fixup %s for %s %04x:%04x\n", codec->core.chip_name, name ? name : "", type, q->subvendor, q->subdevice);
If a fixup is found via a quirk then the codec->fixup_name is only set if CONFIG_SND_DEBUG_VERBOSE is enabled, otherwise the fixup_name is set to NULL. This will result prints in __snd_hda_apply_fixup() when applying the found fixup for example: ehdaudio0D0: ALC236: Apply fix-func for (null) Fixes: 73355ddd8775 ("ALSA: hda: Code refactoring snd_hda_pick_fixup()") Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> --- sound/pci/hda/hda_auto_parser.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)