Re: [PATCH 6/6] ALSA: hda/intel: stop probe if DMICS are detected on Skylake+ platforms

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux