On Fri, 19 Jul 2019 20:29:10 +0200, Pierre-Louis Bossart wrote: > > > >> @@ -2055,6 +2078,17 @@ static int azx_probe(struct pci_dev *pci, > >> card->private_data = chip; > >> hda = container_of(chip, struct hda_intel, chip); > >> + /* > >> + * stop probe if digital microphones detected on Skylake+ platform > >> + * with the DSP enabled. This is an opt-in behavior defined at build > >> + * time or at run-time with a module parameter > >> + */ > >> + if (IS_ENABLED(CONFIG_SND_HDA_INTEL_DETECT_DMIC) || dmic_detect >= 0) { > > > > Isn't it "dmic_detect != 0" ? Otherwise passing dmic_detect=0 would > > be treated as positive here. > > Ah, good catch. I literally copied the enable_msi example here, which > relies on >= 0. > > if (enable_msi >= 0) { > chip->msi = !!enable_msi; > return; > } > > Not sure what the intention was here. The MSI-enablement depends on the platform. enable_msi >=0 means that user passed module option explicitly so we follow that. Otherwise, let the system chooses whether to enable MSI or not. > Using dmic_detect != 0 wouldn't work for the default -1 value, > maybe dmic_detect > 0 is probably a better solution? In your case, the logic doesn't look like the dynamically platform dependent, so it should be simpler as below: static bool dmic_detect = IS_ENABLED(CONFIG_SND_HDA_INTEL_DETECT_DMIC); module_param(dmic_detect, bool, 0444); and evaluate it if (dmic_detect) { ret = azx_check_dmic(); .... That is, if Kconfig is set, it's per default enabled, but user can still turn it off via option. Otherwise user needs to enable it via option. Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel