Hi Vitaly,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on sound/for-next]
[also build test WARNING on next-20210312]
[cannot apply to v5.12-rc2]
[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]
url:
https://github.com/0day-ci/linux/commits/Vitaly-Rodionov/ALSA-hda-cirrus-...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next
config: microblaze-randconfig-m031-20210312 (attached as .config)
compiler: microblaze-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
New smatch warnings:
sound/pci/hda/patch_cirrus.c:2143 cs8409_cs42l42_fixups() warn: always true condition
'(caps >= 0) => (0-u32max >= 0)'
Old smatch warnings:
sound/pci/hda/patch_cirrus.c:2150 cs8409_cs42l42_fixups() warn: always true condition
'(caps >= 0) => (0-u32max >= 0)'
sound/pci/hda/patch_cirrus.c:2156 cs8409_cs42l42_fixups() warn: always true condition
'(caps >= 0) => (0-u32max >= 0)'
sound/pci/hda/patch_cirrus.c:2161 cs8409_cs42l42_fixups() warn: always true condition
'(caps >= 0) => (0-u32max >= 0)'
vim +2143 sound/pci/hda/patch_cirrus.c
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2098
89b3eea4b1e18f Stefan Binding 2021-03-12 2099 static void cs8409_cs42l42_fixups(struct
hda_codec *codec,
89b3eea4b1e18f Stefan Binding 2021-03-12 2100 const struct hda_fixup *fix, int
action)
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2101 {
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2102 struct cs_spec *spec = codec->spec;
76e2b57d1d60d1 Stefan Binding 2021-03-12 2103 unsigned int caps;
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2104
89b3eea4b1e18f Stefan Binding 2021-03-12 2105 switch (action) {
89b3eea4b1e18f Stefan Binding 2021-03-12 2106 case HDA_FIXUP_ACT_PRE_PROBE:
89b3eea4b1e18f Stefan Binding 2021-03-12 2107 snd_hda_add_verbs(codec,
cs8409_cs42l42_init_verbs);
89b3eea4b1e18f Stefan Binding 2021-03-12 2108 /* verb exec op override */
89b3eea4b1e18f Stefan Binding 2021-03-12 2109 spec->exec_verb =
codec->core.exec_verb;
89b3eea4b1e18f Stefan Binding 2021-03-12 2110 codec->core.exec_verb =
cs8409_cs42l42_exec_verb;
89b3eea4b1e18f Stefan Binding 2021-03-12 2111
89b3eea4b1e18f Stefan Binding 2021-03-12 2112
mutex_init(&spec->cs8409_i2c_mux);
89b3eea4b1e18f Stefan Binding 2021-03-12 2113
89b3eea4b1e18f Stefan Binding 2021-03-12 2114 codec->patch_ops =
cs8409_cs42l42_patch_ops;
89b3eea4b1e18f Stefan Binding 2021-03-12 2115
89b3eea4b1e18f Stefan Binding 2021-03-12 2116 spec->gen.suppress_auto_mute = 1;
89b3eea4b1e18f Stefan Binding 2021-03-12 2117 spec->gen.no_primary_hp = 1;
89b3eea4b1e18f Stefan Binding 2021-03-12 2118 spec->gen.suppress_vmaster = 1;
89b3eea4b1e18f Stefan Binding 2021-03-12 2119
89b3eea4b1e18f Stefan Binding 2021-03-12 2120 /* GPIO 5 out, 3,4 in */
89b3eea4b1e18f Stefan Binding 2021-03-12 2121 spec->gpio_dir = GPIO5_INT;
89b3eea4b1e18f Stefan Binding 2021-03-12 2122 spec->gpio_data = 0;
89b3eea4b1e18f Stefan Binding 2021-03-12 2123 spec->gpio_mask = 0x03f;
89b3eea4b1e18f Stefan Binding 2021-03-12 2124
89b3eea4b1e18f Stefan Binding 2021-03-12 2125 spec->cs42l42_hp_jack_in = 0;
89b3eea4b1e18f Stefan Binding 2021-03-12 2126 spec->cs42l42_mic_jack_in = 0;
89b3eea4b1e18f Stefan Binding 2021-03-12 2127
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2128 /* Basic initial sequence for specific
hw configuration */
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2129 snd_hda_sequence_write(codec,
cs8409_cs42l42_init_verbs);
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2130
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2131 /* CS8409 is simple HDA bridge and
intended to be used with a remote
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2132 * companion codec. Most of
input/output PIN(s) have only basic
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2133 * capabilities. NID(s) 0x24 and 0x34
have only OUTC and INC
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2134 * capabilities and no presence detect
capable (PDC) and call to
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2135 * snd_hda_gen_build_controls() will
mark them as non detectable
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2136 * phantom jacks. However, in this
configuration companion codec
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2137 * CS42L42 is connected to these pins
and it has jack detect
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2138 * capabilities. We have to override
pin capabilities,
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2139 * otherwise they will not be created
as input devices.
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2140 */
76e2b57d1d60d1 Stefan Binding 2021-03-12 2141 caps =
snd_hdac_read_parm(&codec->core, CS8409_CS42L42_HP_PIN_NID,
76e2b57d1d60d1 Stefan Binding 2021-03-12 2142 AC_PAR_PIN_CAP);
76e2b57d1d60d1 Stefan Binding 2021-03-12 @2143 if (caps >= 0)
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2144
snd_hdac_override_parm(&codec->core,
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2145 CS8409_CS42L42_HP_PIN_NID,
AC_PAR_PIN_CAP,
76e2b57d1d60d1 Stefan Binding 2021-03-12 2146 (caps | (AC_PINCAP_IMP_SENSE |
AC_PINCAP_PRES_DETECT)));
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2147
76e2b57d1d60d1 Stefan Binding 2021-03-12 2148 caps =
snd_hdac_read_parm(&codec->core, CS8409_CS42L42_AMIC_PIN_NID,
76e2b57d1d60d1 Stefan Binding 2021-03-12 2149 AC_PAR_PIN_CAP);
76e2b57d1d60d1 Stefan Binding 2021-03-12 2150 if (caps >= 0)
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2151
snd_hdac_override_parm(&codec->core,
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2152 CS8409_CS42L42_AMIC_PIN_NID,
AC_PAR_PIN_CAP,
76e2b57d1d60d1 Stefan Binding 2021-03-12 2153 (caps | (AC_PINCAP_IMP_SENSE |
AC_PINCAP_PRES_DETECT)));
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2154
76e2b57d1d60d1 Stefan Binding 2021-03-12 2155 caps = get_wcaps(codec,
CS8409_CS42L42_HP_PIN_NID);
76e2b57d1d60d1 Stefan Binding 2021-03-12 2156 if (caps >= 0)
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2157 snd_hda_override_wcaps(codec,
CS8409_CS42L42_HP_PIN_NID,
76e2b57d1d60d1 Stefan Binding 2021-03-12 2158 (caps | AC_WCAP_UNSOL_CAP));
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2159
76e2b57d1d60d1 Stefan Binding 2021-03-12 2160 caps = get_wcaps(codec,
CS8409_CS42L42_AMIC_PIN_NID);
76e2b57d1d60d1 Stefan Binding 2021-03-12 2161 if (caps >= 0)
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2162 snd_hda_override_wcaps(codec,
CS8409_CS42L42_AMIC_PIN_NID,
76e2b57d1d60d1 Stefan Binding 2021-03-12 2163 (caps | AC_WCAP_UNSOL_CAP));
89b3eea4b1e18f Stefan Binding 2021-03-12 2164 break;
89b3eea4b1e18f Stefan Binding 2021-03-12 2165 case HDA_FIXUP_ACT_PROBE:
89b3eea4b1e18f Stefan Binding 2021-03-12 2166
snd_hda_gen_add_kctl(&spec->gen,
89b3eea4b1e18f Stefan Binding 2021-03-12 2167 NULL,
&cs8409_cs42l42_hp_volume_mixer);
89b3eea4b1e18f Stefan Binding 2021-03-12 2168
snd_hda_gen_add_kctl(&spec->gen,
89b3eea4b1e18f Stefan Binding 2021-03-12 2169 NULL,
&cs8409_cs42l42_amic_volume_mixer);
89b3eea4b1e18f Stefan Binding 2021-03-12 2170 cs8409_cs42l42_hw_init(codec);
89b3eea4b1e18f Stefan Binding 2021-03-12 2171 snd_hda_codec_set_name(codec,
"CS8409/CS42L42");
89b3eea4b1e18f Stefan Binding 2021-03-12 2172 break;
89b3eea4b1e18f Stefan Binding 2021-03-12 2173 case HDA_FIXUP_ACT_INIT:
89b3eea4b1e18f Stefan Binding 2021-03-12 2174 cs8409_cs42l42_hw_init(codec);
89b3eea4b1e18f Stefan Binding 2021-03-12 2175 // Fall through
89b3eea4b1e18f Stefan Binding 2021-03-12 2176 case HDA_FIXUP_ACT_BUILD:
89b3eea4b1e18f Stefan Binding 2021-03-12 2177 /* Run jack auto detect first time on
boot
89b3eea4b1e18f Stefan Binding 2021-03-12 2178 * after controls have been added, to
check if jack has
89b3eea4b1e18f Stefan Binding 2021-03-12 2179 * been already plugged in.
89b3eea4b1e18f Stefan Binding 2021-03-12 2180 * Run immediately after init.
89b3eea4b1e18f Stefan Binding 2021-03-12 2181 */
89b3eea4b1e18f Stefan Binding 2021-03-12 2182 cs8409_cs42l42_run_jack_detect(codec);
89b3eea4b1e18f Stefan Binding 2021-03-12 2183 usleep_range(100000, 150000);
89b3eea4b1e18f Stefan Binding 2021-03-12 2184 break;
89b3eea4b1e18f Stefan Binding 2021-03-12 2185 default:
89b3eea4b1e18f Stefan Binding 2021-03-12 2186 break;
89b3eea4b1e18f Stefan Binding 2021-03-12 2187 }
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2188 }
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 2189
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org