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-Make-CS8409-driver-more-generic-by-using-fixups/20210313-024937
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 <[email protected]>

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/[email protected]

Attachment: .config.gz
Description: application/gzip

Reply via email to